diff --git a/homeassistant/components/ozw/light.py b/homeassistant/components/ozw/light.py index 209bd035fcd..b5fffbcf34f 100644 --- a/homeassistant/components/ozw/light.py +++ b/homeassistant/components/ozw/light.py @@ -204,12 +204,17 @@ class ZwaveLight(ZWaveDeviceEntity, LightEntity): rgbw = "#" for colorval in color_util.color_hs_to_RGB(*hs_color): rgbw += f"{colorval:02x}" - rgbw += "0000" + if self._color_channels and self._color_channels & COLOR_CHANNEL_COLD_WHITE: + rgbw += "0000" + else: + # trim the CW value or it will not work correctly + rgbw += "00" # white LED must be off in order for color to work elif white is not None: if self._color_channels & COLOR_CHANNEL_WARM_WHITE: - rgbw = f"#000000{white:02x}00" + # trim the CW value or it will not work correctly + rgbw = f"#000000{white:02x}" else: rgbw = f"#00000000{white:02x}" diff --git a/tests/components/ozw/test_light.py b/tests/components/ozw/test_light.py index f1055be90d3..498bf4d0cd9 100644 --- a/tests/components/ozw/test_light.py +++ b/tests/components/ozw/test_light.py @@ -377,11 +377,11 @@ async def test_pure_rgb_dimmer_light( msg = sent_messages[-2] assert msg["topic"] == "OpenZWave/1/command/setvalue/" - assert msg["payload"] == {"Value": "#ff4cff0000", "ValueIDKey": 122470423} + assert msg["payload"] == {"Value": "#ff4cff00", "ValueIDKey": 122470423} # Feedback on state light_pure_rgb_msg.decode() - light_pure_rgb_msg.payload["Value"] = "#ff4cff0000" + light_pure_rgb_msg.payload["Value"] = "#ff4cff00" light_pure_rgb_msg.encode() receive_message(light_pure_rgb_msg) await hass.async_block_till_done() @@ -500,14 +500,14 @@ async def test_no_cw_light( assert len(sent_messages) == 2 msg = sent_messages[-2] assert msg["topic"] == "OpenZWave/1/command/setvalue/" - assert msg["payload"] == {"Value": "#000000be00", "ValueIDKey": 659341335} + assert msg["payload"] == {"Value": "#000000be", "ValueIDKey": 659341335} # Feedback on state light_msg.decode() light_msg.payload["Value"] = byte_to_zwave_brightness(255) light_msg.encode() light_rgb_msg.decode() - light_rgb_msg.payload["Value"] = "#000000be00" + light_rgb_msg.payload["Value"] = "#000000be" light_rgb_msg.encode() receive_message(light_msg) receive_message(light_rgb_msg)