LIFX binding - different colour temperature after OH 3.1 update


after updating to OH 3.1, the colour temperature is different. I use the sun position to change colour temperature for LIFX Downlights and LIFX Z Lightstrips. The colour temperature between the two light types matched perfectly before the update. I could just send a command with the same value for the colour temperature to all lights and got the matching colour temperature for all lights.

The warmest colour temperature setting I use is 96% which equates to 2750 K (checked with the LIFX app). When I now send the value 96 after the update, the lightstrips still show 2750 K, but the downlights are now set to 1800 K, which does no longer match the lightstrips.

It seems something changed with the colour temperature settings after the update. Can please somebody explain why those colour temperature values no longer create identical colour temperatures across different LIFX lights? And what I can do to fix all my rules?

Most likely the percentages are now applied to a different temperature range now that the binding also supports the color temperature ranges provided by firmware updates (openhab-addons#10383).

So in the short term you probably want to update the percentages based on the Kelvin ranges that are supported by your lights.

We probably also should support handling color temperature commands in Kelvin in the binding. That would make it easier to use the same value with every light. It would also prevent these color temperature changes when the color temperature range changes with future firmware updates.

Thanks for the links. I had a look at the Kelvin ranges and indeed they have changed. While my lights used to have all the same temperature range (2500 - 9000 Kelvin), the Downlights must have been updated at some stage and now support a range of 1500 - 9000 Kelvin. I grabbed the details below from the LIFX website:

LIFX Z Lightstrips Product ID: 32, Host Version: 2.77, Kelvin Range: 2500 - 9000
LIFX Downlights Product ID: 36, Host Version: 2.80, Kelvin Range: 1500 – 9000 (was before 2500 – 9000)

With the OH update to 3.1, it is no longer possible to achieve the same colour temperature when sending the same value to all lights (which used to work with OH 3.0). This is bad and certainly is a braking change when updating from 3.0 to 3.1. I have no longer the option to set all lights to the same colour temperature. As a workaround, I have modified my scripts to reflect the different colour temperature ranges, but now have to send different commands to each type of light.

The LIFX SDK uses the HSBK model, which, with the K value, allows to directly set the colour temperature in Kelvin. This is the best and only option to directly set the colour temperature for all lights identically without relying on the supported colour temperature range.

As you mentioned in your response, the LIFX binding should support setting the colour temperature directly with the Kelvin value. I totally agree and would like to ask you to implement this.

I am unsure if the binding currently supports sending commands with HSBK values, but as this is the native way LIFX receives commands through the SDK, it should be supported as well if it is currently not supported.

I just created a PR to make it possible to set the absolute color temperature in Kelvin:

1 Like

Great, that sounds good. Thanks.