Skip to content

Commit 94e7218

Browse files
authored
Add cury_set_mode method (#972)
* Add cury_set_mode method * Handle "none" value
1 parent 25ae06b commit 94e7218

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

aioshelly/rpc_device/device.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,16 @@ async def cury_set_away_mode(
508508
}
509509
await self.call_rpc("Cury.SetAwayMode", params=params)
510510

511+
async def cury_set_mode(
512+
self,
513+
id_: int,
514+
value: str,
515+
) -> None:
516+
"""Set mode for Cury."""
517+
params: dict[str, Any] = {"id": id_}
518+
params["mode"] = None if value == "none" else value
519+
await self.call_rpc("Cury.SetMode", params=params)
520+
511521
async def enum_set(self, id_: int, value: str) -> None:
512522
"""Set the value for the enum component."""
513523
params = {

tests/rpc_device/test_device.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1457,6 +1457,33 @@ async def test_cury_set_away_mode(
14571457
}
14581458

14591459

1460+
@pytest.mark.asyncio
1461+
async def test_cury_set_mode(
1462+
rpc_device: RpcDevice,
1463+
) -> None:
1464+
"""Test RpcDevice cury_set_mode() method."""
1465+
await rpc_device.cury_set_mode(9, "living_room")
1466+
1467+
assert rpc_device.call_rpc_multiple.call_count == 1
1468+
call_args_list = rpc_device.call_rpc_multiple.call_args_list
1469+
1470+
assert call_args_list[0][0][0][0][0] == "Cury.SetMode"
1471+
assert call_args_list[0][0][0][0][1] == {
1472+
"id": 9,
1473+
"mode": "living_room",
1474+
}
1475+
1476+
await rpc_device.cury_set_mode(9, "none")
1477+
1478+
assert rpc_device.call_rpc_multiple.call_count == 2
1479+
call_args_list = rpc_device.call_rpc_multiple.call_args_list
1480+
1481+
assert call_args_list[1][0][0][0][1] == {
1482+
"id": 9,
1483+
"mode": None,
1484+
}
1485+
1486+
14601487
@pytest.mark.asyncio
14611488
async def test_rpc_device_init_with_ble(ws_context: WsServer) -> None:
14621489
"""Test RpcDevice initialization with BLE device."""

0 commit comments

Comments
 (0)