[DEPRECATED][Alpha] Hampton Bay/Home Decorators Zigbee Ceiling Fan Controller

This topic is to discuss the Hampton Bay/Home Decorators Zigbee Ceiling Fan Controller.

Created an initial device handler. Still in Alpha state and will be posting the code after some cleanup.

Below is the description:

Endpoint 01
Profile ID 0104
Device ID 000E
Device version 00
Number of in/server clusters 07
List of In/server clusters 0000 0003 0004 0005 0006 0008 0202
Number of out/client clusters 02
List of out/client clusters 0003 0019

I am able to use the clusters 0006 & 0008 for turning the light bulb on and dimming it. And 0202 cluster to set the fan On/Off/Breeze/Low/Medium/High.

Updated Screenshot:

You can use the following for integrating the IDE:
Owner: rangasuman
Name: SmartThings
Branch: Master

Select the following DTH:


Thanks so much for stepping out to work on this @ranga What exactly do you need some help on from the guys now? Based on your original post you are new to SmartThings coming from Wink.

I first paired the device with ST, which was showed up as wait status. Then through IDE, I published my device type and selected the Simulator and selected the new device and installed it. Now, the ST app showed me as the device type. Is this the process followed usually? Also I dont see my device type handler in the list anywhere in the ST app, is that normal?

Is there anyway to automatically detect the device with the custom Device Handler and not have to go through the steps.

Additionally, I need to execute “st wattr” or “st rattr” commands to be able to handle the 0202 cluster. The only syntax checking happens when I save/publish the Device Handler. How can I debug those commands to see if they ran successfully or have any issues. Are there any better options to execute these commands.

And finally, there are no zigbee builtin capability for Fans in ST. I am currently relying on Thermostat Fan Control. Any suggestions to create a custom capability? Is that even possible?

I am able to fix the fingerprint metadata to automatically pick the device. No need to select it in the IDE anymore.

I am able to find the correct syntax by reading up documentation and going through logs for now. Still trying to learn better ways to be able to do this.

Anyhow, I cleaned up the code and it is ready for testing. Added the link and Github instructions to first post.

Please send me your suggestions/issues so I can try to fix them.


Would you be so kind as to provide GitHub integration settings for future updates in the IDE?

I am looking into that. I haven’t done that previously. I will provide instructions soon.

Edit: Added instructions to integrate from GitHub in the first post.

1 Like

Anyone have a link for purchase?

Are all the functions of the remote control not affected with this device handler? I am referring to

  • “walk away time delay”
  • 2-4-8 hour timers
  • Comfort Breeze

If yes, are you able to make any of the states or any info about these other items available to ST for monitoring

The Comfort Breeze is available in the DTH. If the remote changes the mode to Comfort Breeze, then ST gets updated as well. If the fan is set to any speed, the ST gets updated as well.

The 2-4-8 hour timers are not available in the DTH. I don’t remember them being available in Wink app as well. If someone is using from the Wink app, please let me know if that is not the case.

I do not know what you meant by “walk away time delay”.

The only function that Wink has additionally is the fan direction. Unfortunately, I cant read the value of the fan direction in the DTH. If anyone who has the original fan is willing to help me, I can try to add that feature as well.

1 Like

I grabbed this from the manual about the walk away feature.

So if I understand you correctly the DTH kind of sits in the background while the remote control can provide local control of the fan/light. It is unfortunate the hardware isn’t passing some kind of indication when the Timer button is pressed so that we could tell the Timer is operational. Same with the Comfort Breeze button being monitored, going “blind” will cause confusion on the ST monitoring side of things.

Ah, interesting… never knew that. Shoulda read the manual :slight_smile:

The remote works independently to the Zigbee control. I believe it is still RF. All the functions you would do with a remote work as is. The only ones available from Zigbee control are the light, speed control including comfort breeze and a setting for the fan direction. And as I said before, I could not get the fan direction to work as I am unable to read the value being set. I dont want to try it too much and kill my perfectly working fan motor as my fan has a physical switch to reverse the direction and does not support the feature. If this feature is supported on your fan, I can send in a different code and we can try to figure the values out.

Although we can write a smartapp to add timers to ST, it would not be working in conjunction with the remote. I am looking into creating one to add this feature as well as voice control via Amazon Echo or Google Home.

OK, I am trying to find a universal method to modify my existing 3-speed fan control smartapp to work with your new device type as well as the other z-wave fan controller now. The timer functions can be implemented in my smartapp which is helpful for the GE devices but redundant on the HamptonBay. This is why I was interested in monitoring the status within the Hampton Bay because it can conflict with the automatic control applications.

I looked at your code for the zwave fan controller. it seems to be able to select the level as a dimmer function between 0-100. You can create any number of speeds by defining the values for each. So, the controller can theoretically work at 100 different speeds as long as you set it up to do so, although the fan may not support the same. But the zigbee fan controller only uses 6 discreet states: Off, One, Two, Three, Four, Comfort Breeze. And it also handles both the light and fan functionality vs the zwave controller handling only fan modes.

That being said, you will need to make the code generic enough to determine which fan was selected and call a different function based on the fan selected. If you look at my DTH, there are custom commands (fanOff, fanOne, fanTwo, fanThree, fanFour, fanAuto) that you need to call to set the speeds from your smartapp. If you select the zigbee fan with the current code, it will set the light to 30% for low, 60% for med & 90% for high and not operate the fan at all.


I just wanted to say thank you @ranga !!
I just installed and quickly tested the handler and it works like a champ with no issues on install/setup/use.

This was my last remaining “wink” item I had to deal with in my conversion to smart things and could not be happier.
A work around for Wink and Alexa was to create a shortcut (routine) using the light and then add it to Alexa. Once it was in and tested we would go back in wink and change the shortcut to fan speed.

PS Is their any way we can get it to show up in CoRE as a “control thermostat or fan”?? Would give us a ton of automation options based on temp and motion etc.

Edit, found it in the switch’s/lights!

1 Like

I am glad it is working for you! It was one of the last standing Wink items for me as well.

To be able to use the fan function from either Alexa or Google Home, I created a virtual switch for each function using CoRE. The light function though is available automatically.

My next steps is to work on getting either a smartapp preconfigured to do the same and have Alexa/Google Home to automatically find the virtual switches.

I wanted to do this, but there is no ST inbuilt “Capability” for fans. If you want the device to show up under Thermostats, just add a line to the code under the metadata/definition where the rest of the capabilities are listed:

capability “Thermostat”


Got some strange behavior on the OnOff tile not acting the same as the Remote OnOff. For example the Remote OnOff always toggles the fan and light and remembers the last known state to return to when toggling on. However on the Tile OnOff sometimes I get a lock up and it sticks on “blue” background and I can’t control from any tile now. If I use the remote to change speeds it will and the Tiles become unfrozen. The Tile OnOff seems to only be controlling fan motor.

UPDATE: looking at the code it looks like you intended the Tile to work like this to only operate the fan.

OK after a few more days of operating the device I have some feature requests. I tried to do this via your github but I am still really new on github and I could not make it work right on pull requests and such.

-Move the light control tile off the primary location down to a standard tile in the mobile app and instead…

  • Duplicate the method that @ChadCK uses on his z-wave GE fan smart device so that the ceiling fan speed control/status is on the primary tile. I find this is more useful from the user interface when viewing the Things listing on the app. This was my original suggestion in the other thread.
    -Change the fanOff to be onOff function so that it mimics the remote and toggles both light and fan
    -Rename the fan speeds LOW, MED, MED-HI, HIGH

-Is it possible to have the Timer function triggered on the device handler as well as the Reverse function? I can’t remember what you found if those features where being made available on the zigbee side of things.

-Making custom icons to be compatible with SmartThings device handlers was more challenging then I thought it should have been but after lots of tweaking of the some custom icons to get them to look correctly I finally have some draft versions, thanks to my designer son they are at least suitable for testing.

I am modifying the device handler locally on my ST hub for testing as I try to implement some of the feature requests to see how it works plus I am wanting to learn coding a zigbee device handler so I am learning as you work. I have broken it so many times LOL

This is a screen capture below is concept only to show latest tweaks to the icons look in the tiles. The icons designs were taken from the remote control itself so that we have matching functions and less confusion to the user. I used the lighting icon just to show it to you but of course we need to move the lighting control off the primary tile. For some reason I was unable to change the multiAttributeTile icon yet but I wasn’t spending time on it because I think that location should be the fan control/status only with the light/dimmer control down below in the secondary tile locations.

Any thoughts, concerns?

Fan Icon

Breeze Icon

Light Icon

OnOff Icon

Correct, I tried to match the same functionality in the Wink app. The app is not exactly a copy of the remote.

I am reading further into the tiles and interface for ST and am planning to make some changes to this. I will hopefully get some time soon to work on it.

Thanks for the icons!

I am doing the same. So far every time I have attempted to duplicate the interface that ChadCK did I get an error so I am hunting down the syntax issue I am having. With the helpful people on this forum we are going to get this beast tamed :grinning:

Sorry about not knowing GitHub enough but I think I am supposed to be able to make changes on my local version that you can see somehow and merge at your discretion. But in the meantime I am just testing off a local version that isn’t linked.