Standards for Light Bulb "Transitions" from Off?

I have smart lights from 4 different manufactures:

  • Philips Hue.
  • Sengled
  • Third Reality
  • Aqara

I have been testing how they handle transitions between brightness levels and colors.

Light Starts On

If the light is turned on they all seem to work in one of two ways:

  1. Do a simple RGB transition.
  2. Separate brightness and color, so transition them both over time.

The difference in approach isn’t super noticeable unless you are radically changing both the color and the brightness - generally more expensive bulbs look better.


Light Starts Off

However if the bulb is OFF, different manufactures handle the transition very differently:

Philips Hue
Treats “off” as brightness zero.
Hence they gradually fade up the brightness to the requested level.
At the same time they transition the color from the color that the light was when it was turned off to the new color.

Sengled
Has a unique quirk, it appears to store the attribute separately:

  • Brightness
  • Color Temperature
  • Color (XY)
  • Which color mode (XY or Temperature) it is currently using.

When turned on, it immediately returns to its previous settings (Brightness, color & color mode).
If you change between Color Temp and XY that change happens immediately.
Then both the color and brightness transition to the new values

To say that another way when in XY color mode Sengled bulbs remember their last color temperature too (and vice versa).

Third Reality
Changes to the new color (before any light is visible)
Then gradually increases the brightness to the new level.

Aqara
Briefly flashes the old color.
Instantly switches to the new color.
Then gradually increases the brightness to the new level.


Are there any standards around this behavior, or is it just a crap shoot based on which manufacturer you buy, what behavior you get?

It’s a crap shoot & entirely manufacturer (and integration) dependent.

There’s plenty of old threads here about it, mostly about the fact that the majority of lights don’t allow you to set colour while the light is off to avoid the brief flash with the old colour when turning on.
I’m guessing transition is similarly affected by this, though it’s good to know that Third Reality bulbs seem to handle it properly.

There is a philosophical question there, does a light that is off have a color?

If Yes - Philips hue handles it properly.
If No - Third Reality handles it properly.

More practically, you can exploit the Hue bulbs behavior to do some really nice looking transitions.

It’s Schrodinger’s lightbulb! :upside_down_face:

Hue also lets you change color before any light is visible, if you prefer the Third Reality behavior.

If your bulbs are on ZHA/Z2M, just change the XY color attribute before turning them on. Correction Mar 1: It looks like a Hue Bridge is required to access this feature, as Z2M appears not to support it.

If you use a Hue Bridge, I built an integration to set brightness and color temperature while bulbs are off, and can add XY color easily too if people want it. More info at “Set/Check Brightness or Color Temp Without Turning On” in this post.

I am using Zigbee2MQTT.
There is an option in the Z2M frontend which “appears” to change the color while a Hue bulb is off.

My test case was:

  • With the light turned on.
  • Set the the color to pure Blue 100% brightness.
  • Turn off the light.
  • Use Z2M frontend to change the XY color to pure Red.
  • Use HA with a 5 second transition to turn the light on using a pure Green color

The light comes on dim blue.
Then fades through turquoise - as it is getting brighter.
Ends up pure Green

I.e. in my test changing the XY color to Red whilst the light was off didn’t change anything.

Is there something different I should have tested?

That’s odd. It sounds like Z2M isn’t passing the message to the bulb while off, or I’m mistaken about Hue supporting color pre-staging, or you’re using a different bulb to me.

What happens if you try to change brightness or color temperature on your bulb while it’s off? Those are definitely supported by regular Hue bulbs. If it still doesn’t work, is your bulb a regular Hue or a Hue Essential? The latter is Signify’s lower-cost entry point range and they may have stripped this feature from Essential.

Its a regular Hue bulb:

LCA009
Signify Netherlands B.V. (Hue white and color ambiance E26/A19 1600lm)

Changing the settings in Z2M whilst the light is off doesn’t appear to do anything.
Using Ember stack and ZBT 2 connect

Dang! I assumed that Z2M can do everything the Hue hub does, based on the number of threads that extol the virtues of replacing the Hue Bridge with ZHA/Z2M. It sounds like Hue Bridge is better after all for some use cases.

Sorry for getting your hopes up. I’ll correct my post above.

@j112 Any chance you could run my three color (Blue, Red, Green) test case detailed above.

I would be interested to know what happens with a Hue Hub, most likely either:

  • Start Red → Yellow → Green.
  • Start Blue → Turquoise → Green.

I do have on old Hue hub kicking around somewhere, so I could plug it back in if there is additional functionality.

I don’t have a color Hue bulb to test, hence why I didn’t implement color yet in my integration.

But I’m 99% sure you’ll find it works, assuming you have a V2 hub, because:

  1. Color Temperature and Brightness work fine
  2. Color is documented in Hue’s API identically to Color Temp and Brightness in the PUT call, with no caveats. (You need to register for a free account to view the API doc).
  3. This reddit post (“API V2, can you really not set the color/brightness of a group while it’s turned off? Seems to only works with individual lights”) implies the author has color working fine for individual Hue lights. Their complaint is that API-while-off doesn’t work with groups; I discovered that same behavior for CT and brightness while testing my integration, and fixed it by creating one API call per grouped bulb.

LMK how you get on with testing on your old hub, or if you want me to add color to the integration for you to test. I’m curious…