From 573db337664be1f768254e384e3eef6c957955ba Mon Sep 17 00:00:00 2001 From: Luke Date: Fri, 7 Apr 2023 12:16:16 -0400 Subject: [PATCH 1/2] fix: assume device prop attr can be none --- roborock/typing.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/roborock/typing.py b/roborock/typing.py index 5d4a5888..3350d2c7 100644 --- a/roborock/typing.py +++ b/roborock/typing.py @@ -1,5 +1,6 @@ from __future__ import annotations +import typing from dataclasses import dataclass from enum import Enum @@ -183,7 +184,7 @@ class CommandInfo: RoborockCommand.TEST_SOUND_VOLUME: CommandInfo(prefix=b'\x00\x00\x00w'), RoborockCommand.UPD_SERVER_TIMER: CommandInfo(prefix=b'\x00\x00\x00w'), RoborockCommand.SET_APP_TIMEZONE: CommandInfo(prefix=b'\x00\x00\x97'), - #TODO discover prefix for following commands + # TODO discover prefix for following commands # RoborockCommand.APP_GET_DRYER_SETTING: CommandInfo(prefix=b'\x00\x00\x00w'), # RoborockCommand.APP_SET_DRYER_SETTING: CommandInfo(prefix=b'\x00\x00\x00w'), # RoborockCommand.GET_DUST_COLLECTION_MODE: CommandInfo(prefix=b'\x00\x00\x00w'), @@ -208,8 +209,10 @@ def __init__(self, dust_collection_mode: DustCollectionMode, class RoborockDeviceProp: - def __init__(self, status: Status, dnd_timer: DNDTimer, clean_summary: CleanSummary, consumable: Consumable, - last_clean_record: CleanRecord = None, dock_summary: RoborockDockSummary = None): + def __init__(self, status: typing.Optional[Status] = None, dnd_timer: typing.Optional[DNDTimer] = None, + clean_summary: typing.Optional[CleanSummary] = None, consumable: typing.Optional[Consumable] = None, + last_clean_record: typing.Optional[CleanRecord] = None, + dock_summary: typing.Optional[RoborockDockSummary] = None): self.status = status self.dnd_timer = dnd_timer self.clean_summary = clean_summary From 111d7627aa5999fc82cde650326857e51c4dc4a2 Mon Sep 17 00:00:00 2001 From: Luke Date: Fri, 7 Apr 2023 12:44:27 -0400 Subject: [PATCH 2/2] fix: change to dataclass --- roborock/typing.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/roborock/typing.py b/roborock/typing.py index 3350d2c7..a383d895 100644 --- a/roborock/typing.py +++ b/roborock/typing.py @@ -208,17 +208,14 @@ def __init__(self, dust_collection_mode: DustCollectionMode, self.smart_wash_params = smart_wash_params +@dataclass class RoborockDeviceProp: - def __init__(self, status: typing.Optional[Status] = None, dnd_timer: typing.Optional[DNDTimer] = None, - clean_summary: typing.Optional[CleanSummary] = None, consumable: typing.Optional[Consumable] = None, - last_clean_record: typing.Optional[CleanRecord] = None, - dock_summary: typing.Optional[RoborockDockSummary] = None): - self.status = status - self.dnd_timer = dnd_timer - self.clean_summary = clean_summary - self.consumable = consumable - self.last_clean_record = last_clean_record - self.dock_summary = dock_summary + status: typing.Optional[Status] = None + dnd_timer: typing.Optional[DNDTimer] = None + clean_summary: typing.Optional[CleanSummary] = None + consumable: typing.Optional[Consumable] = None + last_clean_record: typing.Optional[CleanRecord] = None + dock_summary: typing.Optional[RoborockDockSummary] = None def update(self, device_prop: 'RoborockDeviceProp'): if device_prop.status: