Skip to content

Commit 158766f

Browse files
fix: change device info class to dataclass
1 parent ad3afc0 commit 158766f

File tree

4 files changed

+12
-17
lines changed

4 files changed

+12
-17
lines changed

roborock/api.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -318,9 +318,6 @@ async def get_multi_maps_list(self, device_id) -> MultiMapsList:
318318
except RoborockTimeout as e:
319319
_LOGGER.error(e)
320320

321-
async def get_map_v1(self, device_id):
322-
return await self.send_command(device_id, RoborockCommand.GET_MAP_V1)
323-
324321

325322
class RoborockApiClient:
326323
def __init__(self, username: str, base_url=None) -> None:

roborock/cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ async def command(ctx, cmd, params):
118118
home_data = login_data.home_data
119119
device_map: dict[str, RoborockDeviceInfo] = {}
120120
for device in home_data.devices + home_data.received_devices:
121-
device_map[device.duid] = RoborockDeviceInfo({"device": device})
121+
device_map[device.duid] = RoborockDeviceInfo(device=device)
122122
mqtt_client = RoborockMqttClient(login_data.user_data, device_map)
123123
await mqtt_client.send_command(home_data.devices[0].duid, cmd, params)
124124
mqtt_client.__del__()

roborock/cloud_api.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
UserData,
2121
RoborockDeviceInfo,
2222
)
23-
from .roborock_queue import RoborockQueue
2423
from .roborock_message import RoborockParser, md5bin, RoborockMessage
24+
from .roborock_queue import RoborockQueue
2525
from .typing import RoborockCommand
2626
from .util import run_in_executor
2727

@@ -210,3 +210,6 @@ async def send_command(
210210
else:
211211
_LOGGER.debug(f"id={request_id} Response from {method}: {response}")
212212
return response
213+
214+
async def get_map_v1(self, device_id):
215+
return await self.send_command(device_id, RoborockCommand.GET_MAP_V1)

roborock/containers.py

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from dataclasses import dataclass
12
from enum import Enum
23

34
from .code_mappings import STATE_CODE_TO_STATUS, ERROR_CODE_TO_TEXT, FAN_SPEED_CODES, MOP_MODE_CODES, \
@@ -260,7 +261,7 @@ def __init__(self, data: dict[str, any]) -> None:
260261
def is_valid(self):
261262
return set(self.keys()) == set([
262263
f for f in dir(self)
263-
if not callable(getattr(self,f)) and not f.startswith('__')
264+
if not callable(getattr(self, f)) and not f.startswith('__')
264265
])
265266

266267
def as_dict(self):
@@ -1072,17 +1073,11 @@ def rssi(self) -> int:
10721073
return self.get(NetworkInfoField.RSSI)
10731074

10741075

1075-
class RoborockDeviceInfo(RoborockBase):
1076-
@property
1077-
def device(self) -> HomeDataDevice:
1078-
return HomeDataDevice(self.get(RoborockDeviceInfoField.DEVICE))
1079-
1080-
@property
1081-
def product(self) -> HomeDataProduct:
1082-
return HomeDataProduct(self.get(RoborockDeviceInfoField.PRODUCT))
1076+
@dataclass
1077+
class RoborockDeviceInfo:
1078+
device: HomeDataDevice
10831079

10841080

1081+
@dataclass
10851082
class RoborockLocalDeviceInfo(RoborockDeviceInfo):
1086-
@property
1087-
def network_info(self) -> NetworkInfo:
1088-
return NetworkInfo(self.get(RoborockLocalDeviceInfoField.NETWORK_INFO))
1083+
network_info: NetworkInfo

0 commit comments

Comments
 (0)