home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
72.67k stars 30.42k forks source link

Setting color temperature for RGBWW lights uses RGB channels instead of WW chanels #54216

Closed oxan closed 2 years ago

oxan commented 3 years ago

The problem

When a light that (only) supports COLOR_MODE_RGBWW is set to a color temperature (e.g. using the color_temp option of light.turn_on), this will use the RGB channels instead of the WW channels to set the color temperature.

This happens because the color temperature is first converted to a HS color. Then, this HS color is converted to an RGB color, and the RGB color is further converted to a RGBWW color. This last conversion sets the WW channels to the same level.

Combined with the conversion of the ESPHome integration to use color modes (#53854), this is a serious breaking change for ESPHome users. Previously, ESPHome exposed RGBWW lights with supports_color_temperature set, so it directly got the color temperature from the user, which it then used to set the WW channels. Now, suddenly the RGB channels are used as well, with the white channels set to the same level. This is made worse by the color interlock feature (in pre-v1.21 ESPHome versions), which disables the RGB channels when either white channel is nonzero. Thus, the color temperature control is turned into a brightness control!

What is version of Home Assistant Core has the issue?

2021.8.3

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant Container

Integration causing the issue

light, esphome

Link to integration documentation on our website

https://www.home-assistant.io/integrations/light/

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

probot-home-assistant[bot] commented 3 years ago

light documentation light source (message by IssueLinks)

markusressel commented 3 years ago

Not sure if I am facing the same issue, but I also noticed that all of my ESPHome lights are suddenly much, much warmer. So much so that at night the lights are completely red, and at daytime a glaring yellow. I haven't looked into this more yet. I am using RGBW strips (single white channel) with QuinLED Quad controller boards.

regoras commented 3 years ago

Rolling back to 2021.7.x reverts the issue, so it does appear to be something that appeared with 2021.8

oxan commented 3 years ago

Not stale.

Seba-VT commented 3 years ago

I'm having the same issue with the RGBWW lights. I also have WiZ lights and they are RGBWW but they does control the RGB and CW/WW channels as it should on both modes.

oxan commented 3 years ago

I also have WiZ lights and they are RGBWW but they does control the RGB and CW/WW channels as it should on both modes.

If you're using this custom integration: that doesn't use color modes yet, and this bug only applies to integrations using color modes. Note that support for lights not using color modes will go away in HA soon.

Seba-VT commented 3 years ago

If you're using this custom integration: that doesn't use color modes yet, and this bug only applies to integrations using color modes.

Yes, I use that integration. Are you sure about that? I'm confused now, I can call the color modes from the HA color picker and from node red for those bulbs and they react as expected.

Note that support for lights not using color modes will go away in HA soon.

crap! if this is true... half of my lights will stop working!

oxan commented 3 years ago

This is very off-topic for this issue, but

Are you sure about that? I'm confused now, I can call the color modes from the HA color picker and from node red for those bulbs and they react as expected.

Yes, that happens because HA has a compatibility layer for old integrations that don't support color modes yet.