[ST Edge] Hampton Bay / King of Fans Zigbee Fan Controller

This is an Edge driver for the Hampton Bay / King of Fans zigbee ceiling fan and light control.

The Fan component includes the switchLevel capability (not shown on the detail view) for voice assistant control. The levels map to the different fan speeds as follows:

  • 0 - Off
  • 1 - Breeze
  • 2-25 - Low
  • 26-50 - Medium
  • 51-75 - High
  • 76-100 - Max

Thanks to @MarkTr for the loaner device for development!

Channel invite:

Source code:


Nice! I know this one has been highly requested.


Thanks for all of your work in giving the community an option for fans. There are so few options in this category losing this devise was a loss for SmartThings.


Just an FYI since this is a multi component driver, SmartThings seems to be moving back to parent/child style drivers for devices with switch capability. There’s about 6 pull requests on the official Edge driver repo like this one below

None of them have been merged yet, but may be something to keep an eye one. Maybe the lack of voice assistant control for multi component switch devices finally swayed them to go back to parent/child :man_shrugging:


Thanks so much for this!
Is the only way to switch devices over to this Edge driver (before SmartThings does the migration for us) to delete the old device handler(s) and the devices then join/add them again? Wasn’t sure if there was a way to switch them via the IDE but I don’t see it.

1 Like

You can NOT use the IDE to switch from IDE to Edge Drivers. The IDE is obsolete and does not work with Edge.

You have 2 options.

  1. Delete the DTH device and repair the device with Edge.

  2. Wait for ST’s automatic migration.


I did this to test the driver this weekend. If you have a bunch of automations I would wait so you don’t have to recreate them. The alternative is to create a virtual switch, and include it in all your automations in addition to the fan, then delete the fan. This keeps those automations from being deleted if the fan was the only device in the If or Then. When you re-add it, you can put it back into the automations and delete the virtual switch back out.

The good news is you don’t even have to reset the fan controller. Delete from the app, light flashes to confirm; enter pairing mode immediately and it should pick up and flash again to indicate pairing. I don’t have a hard switch on mine and I was pleasantly surprised that I didn’t need to go flip any breakers.

Edited to add: if you wait too long to start pairing from the hub, the fan controller will probably time out and you’ll need to cycle power (maybe not a full reset sequence) to put it in pairing mode again.


I’ve seen those, but I haven’t found support for what they’re doing in the Lua libraries yet. Maybe it’s in the 45.x library, but they haven’t posted yet. I’d like to be add the option to split the light as a child once this is officially supported.

1 Like

I agree wholeheartedly. Thank you so much @philh30!

1 Like

Great to see you accomplished a working driver for this controller. Way to go Philh. You beat the previous DTH dev to the punch. Very nice

1 Like

I have a general question about the automatic migration. I understand if we manually update to a driver now, we will need to delete the item and DTH and then re-add the item with the new driver. If we wait for the automatic migration will we have do the same or will the item “pair” with the new driver automatically without the need to delete and re-add every item?

The transition FAQ indicates that this will happen sometime after October 15. I’m guessing nothing has actually happened due to the current firmware push. I’m in the firmware beta and have had multiple devices automatically converted over the past few months, and mine all migrated seamlessly. If you install this driver then your fans should migrate automatically to it, we just don’t know when.

1 Like

My understanding is that devices will automatically switch to Edge drivers without the need to delete and repair. You may need to change drivers, but that is simple after the conversation.

But only time will tell how well that works.


Thank you for your answers.

1 Like

My understanding is the same, with one exception - I don’t expect child devices will migrate smoothly, unless ST finishes implementing and documenting the child devices that have recently started appearing, and gives developers time to convert subcomponents to children before migration.

1 Like

woot happy dance!!!


Ok tried to move one of mine over, but I could not get it to pick up any edge drive and kept going back to groovy drivers

You can edit your Groovy device handler, find the line with the fingerprint, and comment it out by adding “//” in front of it:

//		fingerprint mfr:

This won’t affect any devices currently running with the handler, but will prevent it from automatically being selected at pairing. Edited to add: Make sure to publish it after you modify it.

1 Like

I deleted the DTH and now it comes up as a z-wave repeater

Navigate to this device in the IDE and post what it lists as the manufacturer and model.