610 lines
19 KiB
Python
610 lines
19 KiB
Python
"""Test Z-Wave Lights."""
|
|
from homeassistant.components.ozw.light import byte_to_zwave_brightness
|
|
|
|
from .common import setup_ozw
|
|
|
|
|
|
async def test_light(hass, light_data, light_msg, light_rgb_msg, sent_messages):
|
|
"""Test setting up config entry."""
|
|
receive_message = await setup_ozw(hass, fixture=light_data)
|
|
|
|
# Test loaded
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "off"
|
|
|
|
# Test turning on
|
|
# Beware that due to rounding, a roundtrip conversion does not always work
|
|
new_brightness = 44
|
|
new_transition = 0
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{
|
|
"entity_id": "light.led_bulb_6_multi_colour_level",
|
|
"brightness": new_brightness,
|
|
"transition": new_transition,
|
|
},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 2
|
|
|
|
msg = sent_messages[0]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 0, "ValueIDKey": 1407375551070225}
|
|
|
|
msg = sent_messages[1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {
|
|
"Value": byte_to_zwave_brightness(new_brightness),
|
|
"ValueIDKey": 659128337,
|
|
}
|
|
|
|
# Feedback on state
|
|
light_msg.decode()
|
|
light_msg.payload["Value"] = byte_to_zwave_brightness(new_brightness)
|
|
light_msg.encode()
|
|
receive_message(light_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "on"
|
|
assert state.attributes["brightness"] == new_brightness
|
|
|
|
# Test turning off
|
|
new_transition = 6553
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_off",
|
|
{
|
|
"entity_id": "light.led_bulb_6_multi_colour_level",
|
|
"transition": new_transition,
|
|
},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 4
|
|
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 237, "ValueIDKey": 1407375551070225}
|
|
|
|
msg = sent_messages[-1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 0, "ValueIDKey": 659128337}
|
|
|
|
# Feedback on state
|
|
light_msg.decode()
|
|
light_msg.payload["Value"] = 0
|
|
light_msg.encode()
|
|
receive_message(light_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "off"
|
|
|
|
# Test turn on without brightness
|
|
new_transition = 127
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{
|
|
"entity_id": "light.led_bulb_6_multi_colour_level",
|
|
"transition": new_transition,
|
|
},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 6
|
|
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 127, "ValueIDKey": 1407375551070225}
|
|
|
|
msg = sent_messages[-1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {
|
|
"Value": 255,
|
|
"ValueIDKey": 659128337,
|
|
}
|
|
|
|
# Feedback on state
|
|
light_msg.decode()
|
|
light_msg.payload["Value"] = byte_to_zwave_brightness(new_brightness)
|
|
light_msg.encode()
|
|
receive_message(light_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "on"
|
|
assert state.attributes["brightness"] == new_brightness
|
|
|
|
# Test set brightness to 0
|
|
new_brightness = 0
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{
|
|
"entity_id": "light.led_bulb_6_multi_colour_level",
|
|
"brightness": new_brightness,
|
|
},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 7
|
|
msg = sent_messages[-1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {
|
|
"Value": byte_to_zwave_brightness(new_brightness),
|
|
"ValueIDKey": 659128337,
|
|
}
|
|
|
|
# Feedback on state
|
|
light_msg.decode()
|
|
light_msg.payload["Value"] = byte_to_zwave_brightness(new_brightness)
|
|
light_msg.encode()
|
|
receive_message(light_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "off"
|
|
|
|
# Test setting color_name
|
|
new_color = "blue"
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{"entity_id": "light.led_bulb_6_multi_colour_level", "color_name": new_color},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 9
|
|
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": "#0000ff0000", "ValueIDKey": 659341335}
|
|
|
|
msg = sent_messages[-1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 255, "ValueIDKey": 659128337}
|
|
|
|
# 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"] = "#0000ff0000"
|
|
light_rgb_msg.encode()
|
|
receive_message(light_msg)
|
|
receive_message(light_rgb_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "on"
|
|
assert state.attributes["rgb_color"] == (0, 0, 255)
|
|
|
|
# Test setting hs_color
|
|
new_color = [300, 70]
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{"entity_id": "light.led_bulb_6_multi_colour_level", "hs_color": new_color},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 11
|
|
msg = sent_messages[-1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 255, "ValueIDKey": 659128337}
|
|
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": "#ff4cff0000", "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"] = "#ff4cff0000"
|
|
light_rgb_msg.encode()
|
|
receive_message(light_msg)
|
|
receive_message(light_rgb_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "on"
|
|
assert state.attributes["hs_color"] == (300.0, 70.196)
|
|
|
|
# Test setting rgb_color
|
|
new_color = [255, 154, 0]
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{"entity_id": "light.led_bulb_6_multi_colour_level", "rgb_color": new_color},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 13
|
|
msg = sent_messages[-1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 255, "ValueIDKey": 659128337}
|
|
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": "#ff99000000", "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"] = "#ff99000000"
|
|
light_rgb_msg.encode()
|
|
receive_message(light_msg)
|
|
receive_message(light_rgb_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "on"
|
|
assert state.attributes["rgb_color"] == (255, 153, 0)
|
|
|
|
# Test setting xy_color
|
|
new_color = [0.52, 0.43]
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{"entity_id": "light.led_bulb_6_multi_colour_level", "xy_color": new_color},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 15
|
|
msg = sent_messages[-1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 255, "ValueIDKey": 659128337}
|
|
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": "#ffbb370000", "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"] = "#ffbb370000"
|
|
light_rgb_msg.encode()
|
|
receive_message(light_msg)
|
|
receive_message(light_rgb_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "on"
|
|
assert state.attributes["xy_color"] == (0.519, 0.429)
|
|
|
|
# Test setting color temp
|
|
new_color = 200
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{"entity_id": "light.led_bulb_6_multi_colour_level", "color_temp": new_color},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 17
|
|
msg = sent_messages[-1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 255, "ValueIDKey": 659128337}
|
|
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": "#00000037c8", "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"] = "#00000037c8"
|
|
light_rgb_msg.encode()
|
|
receive_message(light_msg)
|
|
receive_message(light_rgb_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "on"
|
|
assert state.attributes["color_temp"] == 200
|
|
|
|
# Test setting invalid color temp
|
|
new_color = 120
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{"entity_id": "light.led_bulb_6_multi_colour_level", "color_temp": new_color},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 19
|
|
msg = sent_messages[-1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 255, "ValueIDKey": 659128337}
|
|
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": "#00000000ff", "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"] = "#00000000ff"
|
|
light_rgb_msg.encode()
|
|
receive_message(light_msg)
|
|
receive_message(light_rgb_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "on"
|
|
assert state.attributes["color_temp"] == 153
|
|
|
|
|
|
async def test_no_rgb_light(hass, light_no_rgb_data, light_no_rgb_msg, sent_messages):
|
|
"""Test setting up config entry."""
|
|
receive_message = await setup_ozw(hass, fixture=light_no_rgb_data)
|
|
|
|
# Test loaded no RGBW support (dimmer only)
|
|
state = hass.states.get("light.master_bedroom_l_level")
|
|
assert state is not None
|
|
assert state.state == "off"
|
|
|
|
# Turn on the light
|
|
new_brightness = 44
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{"entity_id": "light.master_bedroom_l_level", "brightness": new_brightness},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 1
|
|
msg = sent_messages[-1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {
|
|
"Value": byte_to_zwave_brightness(new_brightness),
|
|
"ValueIDKey": 38371345,
|
|
}
|
|
|
|
# Feedback on state
|
|
|
|
light_no_rgb_msg.decode()
|
|
light_no_rgb_msg.payload["Value"] = byte_to_zwave_brightness(new_brightness)
|
|
light_no_rgb_msg.encode()
|
|
receive_message(light_no_rgb_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.master_bedroom_l_level")
|
|
assert state is not None
|
|
assert state.state == "on"
|
|
assert state.attributes["brightness"] == new_brightness
|
|
|
|
|
|
async def test_no_ww_light(
|
|
hass, light_no_ww_data, light_msg, light_rgb_msg, sent_messages
|
|
):
|
|
"""Test setting up config entry."""
|
|
receive_message = await setup_ozw(hass, fixture=light_no_ww_data)
|
|
|
|
# Test loaded no ww support
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "off"
|
|
|
|
# Turn on the light
|
|
white_color = 190
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{
|
|
"entity_id": "light.led_bulb_6_multi_colour_level",
|
|
"white_value": white_color,
|
|
},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 2
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": "#00000000be", "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"] = "#00000000be"
|
|
light_rgb_msg.encode()
|
|
receive_message(light_msg)
|
|
receive_message(light_rgb_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "on"
|
|
assert state.attributes["white_value"] == 190
|
|
|
|
|
|
async def test_no_cw_light(
|
|
hass, light_no_cw_data, light_msg, light_rgb_msg, sent_messages
|
|
):
|
|
"""Test setting up config entry."""
|
|
receive_message = await setup_ozw(hass, fixture=light_no_cw_data)
|
|
|
|
# Test loaded no cw support
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "off"
|
|
|
|
# Turn on the light
|
|
white_color = 190
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{
|
|
"entity_id": "light.led_bulb_6_multi_colour_level",
|
|
"white_value": white_color,
|
|
},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 2
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": "#000000be00", "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.encode()
|
|
receive_message(light_msg)
|
|
receive_message(light_rgb_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "on"
|
|
assert state.attributes["white_value"] == 190
|
|
|
|
|
|
async def test_wc_light(hass, light_wc_data, light_msg, light_rgb_msg, sent_messages):
|
|
"""Test setting up config entry."""
|
|
receive_message = await setup_ozw(hass, fixture=light_wc_data)
|
|
|
|
# Test loaded only white LED support
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "off"
|
|
|
|
assert state.attributes["min_mireds"] == 153
|
|
assert state.attributes["max_mireds"] == 370
|
|
|
|
# Turn on the light
|
|
new_color = 190
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{"entity_id": "light.led_bulb_6_multi_colour_level", "color_temp": new_color},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 2
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": "#0000002bd4", "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"] = "#0000002bd4"
|
|
light_rgb_msg.encode()
|
|
receive_message(light_msg)
|
|
receive_message(light_rgb_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "on"
|
|
assert state.attributes["color_temp"] == 190
|
|
|
|
|
|
async def test_new_ozw_light(hass, light_new_ozw_data, light_msg, sent_messages):
|
|
"""Test setting up config entry."""
|
|
receive_message = await setup_ozw(hass, fixture=light_new_ozw_data)
|
|
|
|
# Test loaded only white LED support
|
|
state = hass.states.get("light.led_bulb_6_multi_colour_level")
|
|
assert state is not None
|
|
assert state.state == "off"
|
|
|
|
# Test turning on with new duration (newer openzwave)
|
|
new_transition = 4180
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{
|
|
"entity_id": "light.led_bulb_6_multi_colour_level",
|
|
"transition": new_transition,
|
|
},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 2
|
|
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 4180, "ValueIDKey": 1407375551070225}
|
|
|
|
msg = sent_messages[-1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 255, "ValueIDKey": 659128337}
|
|
|
|
# Feedback on state
|
|
light_msg.decode()
|
|
light_msg.payload["Value"] = 255
|
|
light_msg.encode()
|
|
receive_message(light_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
# Test turning off with new duration (newer openzwave)(new max)
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_off",
|
|
{"entity_id": "light.led_bulb_6_multi_colour_level"},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 4
|
|
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 7621, "ValueIDKey": 1407375551070225}
|
|
|
|
msg = sent_messages[-1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 0, "ValueIDKey": 659128337}
|
|
|
|
# Feedback on state
|
|
light_msg.decode()
|
|
light_msg.payload["Value"] = 0
|
|
light_msg.encode()
|
|
receive_message(light_msg)
|
|
await hass.async_block_till_done()
|
|
|
|
# Test turning on with new duration (newer openzwave)(factory default)
|
|
new_transition = 8000
|
|
await hass.services.async_call(
|
|
"light",
|
|
"turn_on",
|
|
{
|
|
"entity_id": "light.led_bulb_6_multi_colour_level",
|
|
"transition": new_transition,
|
|
},
|
|
blocking=True,
|
|
)
|
|
assert len(sent_messages) == 6
|
|
|
|
msg = sent_messages[-2]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 6553, "ValueIDKey": 1407375551070225}
|
|
|
|
msg = sent_messages[-1]
|
|
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
|
|
assert msg["payload"] == {"Value": 255, "ValueIDKey": 659128337}
|
|
|
|
# Feedback on state
|
|
light_msg.decode()
|
|
light_msg.payload["Value"] = 255
|
|
light_msg.encode()
|
|
receive_message(light_msg)
|
|
await hass.async_block_till_done()
|