Background
I am using Philips Hue White and Color Ambiance bulbs (the latest generation which have both Zigbee 3 and Bluetooth) directly attached to Hubitat (the Zigbee 3 version appears to be a decent enough router for a strong mesh). I am doing this so I can bind the new Inovelli Blue switches to the bulbs to allow for direct control. While the existing Hubitat Zigbee drivers are functional, they do not provide access to some of the bulb features (effects etc.) and I was less than successful at keeping the bulb in sync when using the direct binding from the switch. I decided to write my first Zigbee driver to address these shortcomings.
This driver is only for Hue bulbs (works best with generation 3 or newer that have the bluetooth capability) that have been directly paired to the hub using Zigbee (not when using the Hue hub).
This driver provides the following features:
- Standard On/Off, Level, Color Temperature and Color control
- Enhanced Hue color command (provides expanded 0 - 360 hue range)
- Standard start and stop level change native commands
- Native stepped level change and stepped hue change commands
- Effects support for the built-in bulb effects (firmware version dependent)
- Reporting (push) updates when bulb state is changed from outside Hubitat
- Uses Hue private cluster decoding to reduce Zigbee traffic (similar to the bridge)
- Power restore state setting (dependent on recent bulb firmware)
- Independent configuration of default transition times for level and color changes (note that on and off transitions are hardcoded in the bulb and cannot be changed so the driver has an option to make ON and OFF use dim commands as a workaround if needed)
- Support for level pre-staging using preset level command when bulb is off
- Support for color/CT pre-staging using set hue and set saturation and set color temperature commands while the bulb is off (the set level and set color commands will turn on the bulb to be compatible with room lighting app which I use extensively)
- Fallback polling mode to support earlier generation of Hue bulbs
- Health Check attribute to detect device being offline (option to select check interval up to an hour) or after 10 seconds if a command gets no response
One behavior to be aware of. Because these bulbs push updates to the driver, when doing any transitions you will see the intermediate values populate until the transition is complete and the bulb sends the final value. For example, dimming from 10 to 100, you will see the level value changes to e.g. 47, then maybe a 86 before eventually showing 100.
Installation
To use this driver with an existing Hue device you can change the existing Zigbee driver on the device to this one, set the preferences, and then click done (It will automatically run the configure and refresh commands when settings are updated)
The driver is available from the Hubitat Package Manager (HPM) or directly via Github at hubitat-drivers/PhilipsHue at main · bradsjm/hubitat-drivers · GitHub