Remove unwanted brightness check in zwave_js light (#45597)

This commit is contained in:
Marcel van der Veldt 2021-01-27 13:07:02 +01:00 committed by GitHub
parent 78b057ce02
commit 32c6509d55
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 18 deletions

View File

@ -164,15 +164,14 @@ class ZwaveLight(ZWaveBaseEntity, LightEntity):
await self._async_set_color("Red", red) await self._async_set_color("Red", red)
await self._async_set_color("Green", green) await self._async_set_color("Green", green)
await self._async_set_color("Blue", blue) await self._async_set_color("Blue", blue)
else:
# turn off rgb when setting white values
await self._async_set_color("Red", 0)
await self._async_set_color("Green", 0)
await self._async_set_color("Blue", 0)
# Color temperature # Color temperature
color_temp = kwargs.get(ATTR_COLOR_TEMP) color_temp = kwargs.get(ATTR_COLOR_TEMP)
if color_temp is not None and self._supports_color_temp: if color_temp is not None and self._supports_color_temp:
# turn off rgb when setting white values
await self._async_set_color("Red", 0)
await self._async_set_color("Green", 0)
await self._async_set_color("Blue", 0)
# Limit color temp to min/max values # Limit color temp to min/max values
cold = max( cold = max(
0, 0,
@ -192,6 +191,10 @@ class ZwaveLight(ZWaveBaseEntity, LightEntity):
# White value # White value
white_value = kwargs.get(ATTR_WHITE_VALUE) white_value = kwargs.get(ATTR_WHITE_VALUE)
if white_value is not None and self._supports_white_value: if white_value is not None and self._supports_white_value:
# turn off rgb when setting white values
await self._async_set_color("Red", 0)
await self._async_set_color("Green", 0)
await self._async_set_color("Blue", 0)
await self._async_set_color("Warm White", white_value) await self._async_set_color("Warm White", white_value)
# set brightness # set brightness
@ -213,9 +216,6 @@ class ZwaveLight(ZWaveBaseEntity, LightEntity):
# guard for unsupported command # guard for unsupported command
if cur_zwave_value is None: if cur_zwave_value is None:
return return
# no need to send same value
if cur_zwave_value.value == new_value:
return
# actually set the new color value # actually set the new color value
target_zwave_value = self.get_zwave_value( target_zwave_value = self.get_zwave_value(
"targetColor", "targetColor",
@ -240,9 +240,6 @@ class ZwaveLight(ZWaveBaseEntity, LightEntity):
# Zwave multilevel switches use a range of [0, 99] to control brightness. # Zwave multilevel switches use a range of [0, 99] to control brightness.
zwave_brightness = byte_to_zwave_brightness(brightness) zwave_brightness = byte_to_zwave_brightness(brightness)
if self.info.primary_value.value == zwave_brightness:
# no point in setting same brightness
return
# set transition value before sending new brightness # set transition value before sending new brightness
await self._async_set_transition_duration(transition) await self._async_set_transition_duration(transition)
# setting a value requires setting targetValue # setting a value requires setting targetValue

View File

@ -92,7 +92,7 @@ async def test_light(hass, client, bulb_6_multi_color, integration):
blocking=True, blocking=True,
) )
assert len(client.async_send_command.call_args_list) == 0 assert len(client.async_send_command.call_args_list) == 1
client.async_send_command.reset_mock() client.async_send_command.reset_mock()
@ -136,7 +136,7 @@ async def test_light(hass, client, bulb_6_multi_color, integration):
blocking=True, blocking=True,
) )
assert len(client.async_send_command.call_args_list) == 4 assert len(client.async_send_command.call_args_list) == 5
warm_args = client.async_send_command.call_args_list[0][0][0] # warm white 0 warm_args = client.async_send_command.call_args_list[0][0][0] # warm white 0
assert warm_args["command"] == "node.set_value" assert warm_args["command"] == "node.set_value"
assert warm_args["nodeId"] == 39 assert warm_args["nodeId"] == 39
@ -147,7 +147,18 @@ async def test_light(hass, client, bulb_6_multi_color, integration):
assert warm_args["valueId"]["property"] == "targetColor" assert warm_args["valueId"]["property"] == "targetColor"
assert warm_args["valueId"]["propertyName"] == "targetColor" assert warm_args["valueId"]["propertyName"] == "targetColor"
assert warm_args["value"] == 0 assert warm_args["value"] == 0
red_args = client.async_send_command.call_args_list[1][0][0] # red 255
cold_args = client.async_send_command.call_args_list[1][0][0] # cold white 0
assert cold_args["command"] == "node.set_value"
assert cold_args["nodeId"] == 39
assert cold_args["valueId"]["commandClassName"] == "Color Switch"
assert cold_args["valueId"]["commandClass"] == 51
assert cold_args["valueId"]["endpoint"] == 0
assert cold_args["valueId"]["metadata"]["label"] == "Target value (Cold White)"
assert cold_args["valueId"]["property"] == "targetColor"
assert cold_args["valueId"]["propertyName"] == "targetColor"
assert cold_args["value"] == 0
red_args = client.async_send_command.call_args_list[2][0][0] # red 255
assert red_args["command"] == "node.set_value" assert red_args["command"] == "node.set_value"
assert red_args["nodeId"] == 39 assert red_args["nodeId"] == 39
assert red_args["valueId"]["commandClassName"] == "Color Switch" assert red_args["valueId"]["commandClassName"] == "Color Switch"
@ -157,7 +168,7 @@ async def test_light(hass, client, bulb_6_multi_color, integration):
assert red_args["valueId"]["property"] == "targetColor" assert red_args["valueId"]["property"] == "targetColor"
assert red_args["valueId"]["propertyName"] == "targetColor" assert red_args["valueId"]["propertyName"] == "targetColor"
assert red_args["value"] == 255 assert red_args["value"] == 255
green_args = client.async_send_command.call_args_list[2][0][0] # green 76 green_args = client.async_send_command.call_args_list[3][0][0] # green 76
assert green_args["command"] == "node.set_value" assert green_args["command"] == "node.set_value"
assert green_args["nodeId"] == 39 assert green_args["nodeId"] == 39
assert green_args["valueId"]["commandClassName"] == "Color Switch" assert green_args["valueId"]["commandClassName"] == "Color Switch"
@ -167,7 +178,7 @@ async def test_light(hass, client, bulb_6_multi_color, integration):
assert green_args["valueId"]["property"] == "targetColor" assert green_args["valueId"]["property"] == "targetColor"
assert green_args["valueId"]["propertyName"] == "targetColor" assert green_args["valueId"]["propertyName"] == "targetColor"
assert green_args["value"] == 76 assert green_args["value"] == 76
blue_args = client.async_send_command.call_args_list[3][0][0] # blue 255 blue_args = client.async_send_command.call_args_list[4][0][0] # blue 255
assert blue_args["command"] == "node.set_value" assert blue_args["command"] == "node.set_value"
assert blue_args["nodeId"] == 39 assert blue_args["nodeId"] == 39
assert blue_args["valueId"]["commandClassName"] == "Color Switch" assert blue_args["valueId"]["commandClassName"] == "Color Switch"
@ -225,7 +236,7 @@ async def test_light(hass, client, bulb_6_multi_color, integration):
blocking=True, blocking=True,
) )
assert len(client.async_send_command.call_args_list) == 0 assert len(client.async_send_command.call_args_list) == 5
client.async_send_command.reset_mock() client.async_send_command.reset_mock()
@ -343,7 +354,7 @@ async def test_light(hass, client, bulb_6_multi_color, integration):
blocking=True, blocking=True,
) )
assert len(client.async_send_command.call_args_list) == 0 assert len(client.async_send_command.call_args_list) == 5
client.async_send_command.reset_mock() client.async_send_command.reset_mock()