[RELEASE] Philips Hue Zigbee Driver (not using Hue Bridge)

Fantastic, works great. Thanks. I guess this is why they can get away with charging big bucks for their products.

Have a feeling I'm not going to see any of my Inovelli Blue switches anytime soon (only on backorder for 3+ months :frowning_face:) but at least I can start replacing my downlights.

Thanks again.

I've posted a couple of minor update tweaks to the driver based on my heavy usage of it.

  • I ran into a situation where if you turn the light off, then instead of turning it back on you set a dim level (e.g. 20%) it would turn on to the last level and THEN dim to 20%. While this follows the Zigbee specifications as far as I can tell, I changed the code so that if it detects the light is off when a dim command is issued, it will force it to dim UP from off and so you don't get temporarily blinded at night :laughing:

  • I made a change to the preferences to determine what happens when you turn OFF the light.

    • The default is the native 0.8s fade to off
    • I found a Zigbee parameter that also allows for instant off so I added that as an option too
    • Lastly, there is the option to change the OFF command to a DIM to zero which allows for a custom transition length to be used and saves the previous level to use for the ON command

I just received one of the new 6 inch low profile RGBW downlights and will be testing the driver with it this weekend to see if any changes are needed for it.

3 Likes

Update to 1.05 now pushed live

  • Includes new "setScene" command with a list of Philips Hue scene definitions that I was able to find online.
  • This will set color temperature for the ambiance lights and RGB colors for the Color and Ambience lights.

Also, I have tested the new 6 inch low profile downlight and it works with the driver without any changes :slight_smile: It is not cheap but it is well constructed and really bright!

2 Likes

This is fantastic! Solved several of my problems with my recessed lights. White driver works great too. Thanks for whipping this up!

1 Like

@jonathanb Just installed a few Hue White bulbs and your driver isn't reporting the level unless I turn Enable State Reporting off. Does that only work for gen 3 bulbs? These are gen 4.

Does this mean anything:

dev:312023-03-24 11:12:15.335 PMwarnzigbee read private cluster 0xFC03 attribute 0x0002 error: UNSUPPORTED ATTRIBUTE

dev:312023-03-24 11:12:15.135 PMwarnzigbee read private cluster 0xFC03 attribute 0x0001 error: UNSUPPORTED ATTRIBUTE

Make sure you have the latest firmware update from Hue. You can do this via Bluetooth if you don't have a Hue hub and take a screenshot of the "Data" section of the device where it says endPointId etc.

Updating the firmware fixed it. Thanks!

Something still isn't quite right. I have a Philips Dimmer Switch controller v2 connected to HE (no hue hub). I have the following set up in Button Controller:

The start raising and lowering commands don't work with your driver. Using the built-in "Advanced Zigbee Bulb" driver, it works fine. I don't see any errors in the logs. Any ideas?

That is curious, I have a white (no color temperature) here for testing and it works from the device page so can you try two things:

  1. Check that it is not working when run from the device page (the start level change command)
  2. If it doesn't work, make one edit in the driver code, changing from 0x05 to 0x01 which is what I believe the generic driver uses.

Line 267:

return zigbee.command(zigbee.LEVEL_CONTROL_CLUSTER, 0x01, [:], 0, "${upDown} ${rate}")

For those with White and Color Ambience (RGB) bulbs, I have been able to extract all 97 or so of the Hue application scenes (each scene has 5 colors defined which you can see in the circles in the Hue app) as I know this is one of the things I missed when moving from the Hue hub to Hubitat.

I'm not yet certain the best way to surface these in Hubitat but most likely it will be via an app since you will need to be able to select multiple bulbs for the scene.

1 Like

Ok, my bad. It's actually working but the change rate is so slow that I didn't notice that it was actually changing until I held the button down a long time.

0x01 didn't change anything. Changing the Level change rate setting seems to have no effect. It's like it's always set to Very Slow.

Can you re-install the driver as I've fixed a typo that was ignoring the configuration for the change rate (slow, medium fast etc.) and using the wrong setting.

It should now be:

List<String> startLevelChange(String direction) {
    if (settings.txtEnable) { log.info "startLevelChange (${direction})" }
    String upDown = direction == 'down' ? '01' : '00'
    String rateHex = intToHexStr(settings.levelChangeRate as Integer)
    scheduleCommandTimeoutCheck()
    return zigbee.command(zigbee.LEVEL_CONTROL_CLUSTER, 0x05, [:], 0, "${upDown} ${rateHex}")
}
2 Likes

Works great now. Thanks!

1 Like

Hi @jonathanb -- thanks for the latest update here!

I see you implemented the binding options ala Inovelli -- out of curiosity, how have you used that so far?

I suspect I'm not being imaginative enough, but I'm struggling to think of how that binding option can be useful here at the "bulb-level" (for lack of a better term)

Thanks for your thoughts and great work on this driver!

I would not see the need for them in common cases where you have already put the lights into a Hubitat group (either legacy or new room lighting with zigbee groups enabled). You'll see the Hubitat created zigbee group numbers (which will match the app id from what I can tell) show up in the Hue device (on a refresh) in the state under "groups".

However, I'm playing with an RGB remote that uses Zigbee groups itself (having a sniffer helps figure out what it is doing) and have had some success manually setting the group on the bulbs to the same.

I've also been able to bypass the Hubitat groups and just set the same group number on the Inovelli switch and the bulb though it doesn't really gain me anything that way over the built in groups unless you hate those apps for some reason :rofl:

I started down this path to see if it was possible for the bulb to tell the Inovelli switch about its on/off and level state to keep the LED bar in sync regardless of how the state was changed (and without using an app). Unfortunately I've not had any success in that so I'm using an app right now to do it.

2 Likes

Hi,
I'm sorry to be so dense but I need help.
I'm starting with 1 white bulb.
I have paired it to the hue app using bluetooth - was that right?
I've installed your drivers.

They do not show under Apps. I saw a mention (above) of running configure but have no idea where to find it.

I've tried zigbee pairing but that doesn't find the buld.

I read your documentarion but it does not really describe what to do after the drivers are installed. I'm totally lost at this point.

Please help.

Thank you

Like all smart things, a hue bulb can only be paired to one thing, so you need to unpair it from the hue app & Bluetooth, then pair it to Hubitat.

But making sure it has the latest Hue firmware (via the BT/ Hue app) connection is smart - then it's in the best possible shape to bring into Hubitat.

Ok. I've managed to get it paired.

In the device page, there are a bunch of buttons that don; t seem to do anything when I click them but I don't see any buttons to turn the device on/off or set the level.

The bulb is on now but

Current States

  • level : 20
  • switch : off

State Variables

  • bin : 0
  • lastAddress : CA35
  • bulbLevel : 33

What have I missed?

Post the Device Details - Data section (model and manufacturer) - can be found on HE device web page.

Data

endpointId: 0B
application: 02
firmwareMT: 100B-0114-01001F0A
manufacturer: Signify Netherlands B.V.
model: LWA025
softwareBuild: 01001F0A