Skip to content

Commit a405e6c

Browse files
authored
Add wall_display_set_screen method (#977)
1 parent 94e7218 commit a405e6c

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

aioshelly/rpc_device/device.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,11 @@ async def update_cover_status(self, id_: int) -> None:
575575
cover_status = await self.cover_get_status(id_)
576576
self._status[key].update(cover_status)
577577

578+
async def wall_display_set_screen(self, value: bool) -> None:
579+
"""Set Wall Display screen on/off."""
580+
params = {"on": value}
581+
await self.call_rpc("Ui.Screen.Set", params)
582+
578583
async def poll(self) -> None:
579584
"""Poll device for calls that do not receive push updates."""
580585
calls: list[tuple[str, dict[str, Any] | None]] = [("Shelly.GetStatus", None)]

tests/rpc_device/test_device.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1651,3 +1651,17 @@ async def test_rpc_device_initialize_ble() -> None:
16511651
# Verify BLE connect was called
16521652
assert mock_ble_rpc.connect.called
16531653
assert rpc_device.initialized
1654+
1655+
1656+
@pytest.mark.asyncio
1657+
async def test_wall_display_set_screen(
1658+
rpc_device: RpcDevice,
1659+
) -> None:
1660+
"""Test RpcDevice wall_display_set_screen() method."""
1661+
await rpc_device.wall_display_set_screen(True)
1662+
1663+
assert rpc_device.call_rpc_multiple.call_count == 1
1664+
call_args_list = rpc_device.call_rpc_multiple.call_args_list
1665+
1666+
assert call_args_list[0][0][0][0][0] == "Ui.Screen.Set"
1667+
assert call_args_list[0][0][0][0][1] == {"on": True}

0 commit comments

Comments
 (0)