Skip to content

Commit 156ac51

Browse files
fix: command prefixes
1 parent bd8de01 commit 156ac51

File tree

2 files changed

+16
-16
lines changed

2 files changed

+16
-16
lines changed

roborock/roborock_message.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ def encode(roborock_messages: list[RoborockMessage] | RoborockMessage, local_key
7979

8080
msg = b""
8181
for roborock_message in roborock_messages:
82+
if len(roborock_message.prefix) not in [0, 4]:
83+
raise RoborockException("Invalid prefix")
8284
aes_key = md5bin(encode_timestamp(roborock_message.timestamp) + local_key + salt)
8385
cipher = AES.new(aes_key, AES.MODE_ECB)
8486
payload = roborock_message.payload

roborock/typing.py

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ class RoborockCommand(str, Enum):
9292
SET_LED_STATUS = "set_led_status"
9393
GET_CAMERA_STATUS = "get_camera_status"
9494
CLOSE_DND_TIMER = "close_dnd_timer"
95-
GET_MULTI_MAP = "get_multi_map"
9695
SET_COLLISION_AVOID_STATUS = "set_collision_avoid_status"
9796
SET_IDENTIFY_GROUND_MATERIAL_STATUS = "set_identify_ground_material_status"
9897
GET_IDENTIFY_GROUND_MATERIAL_STATUS = "get_identify_ground_material_status"
@@ -121,7 +120,7 @@ class CommandInfo:
121120
RoborockCommand.GET_STATUS: CommandInfo(prefix=b"\x00\x00\x00\x77"),
122121
RoborockCommand.SET_CUSTOM_MODE: CommandInfo(prefix=b"\x00\x00\x00w"),
123122
RoborockCommand.GET_CHILD_LOCK_STATUS: CommandInfo(prefix=b"\x00\x00\x00\x87"),
124-
RoborockCommand.GET_MULTI_MAPS_LIST: CommandInfo(prefix=b"\x00\x00\x00\x87"),
123+
RoborockCommand.GET_MULTI_MAPS_LIST: CommandInfo(prefix=b"\x00\x00\x00\xd7"),
125124
RoborockCommand.GET_IDENTIFY_FURNITURE_STATUS: CommandInfo(prefix=b"\x00\x00\x00\x87"),
126125
RoborockCommand.SET_WATER_BOX_CUSTOM_MODE: CommandInfo(prefix=b"\x00\x00\x00\x87"),
127126
RoborockCommand.GET_CLEAN_SEQUENCE: CommandInfo(prefix=b"\x00\x00\x00\x87"),
@@ -154,16 +153,15 @@ class CommandInfo:
154153
RoborockCommand.GET_CARPET_MODE: CommandInfo(prefix=b"\x00\x00\x00w"),
155154
RoborockCommand.GET_TIMEZONE: CommandInfo(prefix=b"\x00\x00\x00w"),
156155
RoborockCommand.SET_CARPET_MODE: CommandInfo(prefix=b"\x00\x00\x00\xd7"),
157-
RoborockCommand.GET_MULTI_MAP: CommandInfo(prefix=b"\x00\x00\x00\xd7"),
158-
RoborockCommand.SET_COLLISION_AVOID_STATUS: CommandInfo(prefix=b"\x00\x00\x97"),
159-
RoborockCommand.SET_CARPET_CLEAN_MODE: CommandInfo(prefix=b"\x00\x00\x97"),
160-
RoborockCommand.SET_IDENTIFY_GROUND_MATERIAL_STATUS: CommandInfo(prefix=b"\x00\x00\x97"),
161-
RoborockCommand.GET_IDENTIFY_GROUND_MATERIAL_STATUS: CommandInfo(prefix=b"\x00\x00\x97"),
162-
RoborockCommand.SET_VALLEY_ELECTRICITY_TIMER: CommandInfo(prefix=b"\x00\x00\x97"),
163-
RoborockCommand.SWITCH_WATER_MARK: CommandInfo(prefix=b"\x00\x00\x97"),
164-
RoborockCommand.SET_IDENTIFY_FURNITURE_STATUS: CommandInfo(prefix=b"\x00\x00\x97"),
165-
RoborockCommand.SET_CHILD_LOCK_STATUS: CommandInfo(prefix=b"\x00\x00\x97"),
166-
RoborockCommand.GET_CLEAN_RECORD_MAP: CommandInfo(prefix=b"\x00\x00\xe7"),
156+
RoborockCommand.SET_COLLISION_AVOID_STATUS: CommandInfo(prefix=b"\x00\x00\x00\x97"),
157+
RoborockCommand.SET_CARPET_CLEAN_MODE: CommandInfo(prefix=b"\x00\x00\x00\x97"),
158+
RoborockCommand.SET_IDENTIFY_GROUND_MATERIAL_STATUS: CommandInfo(prefix=b"\x00\x00\x00\x97"),
159+
RoborockCommand.GET_IDENTIFY_GROUND_MATERIAL_STATUS: CommandInfo(prefix=b"\x00\x00\x00\x97"),
160+
RoborockCommand.SET_VALLEY_ELECTRICITY_TIMER: CommandInfo(prefix=b"\x00\x00\x00\x97"),
161+
RoborockCommand.SWITCH_WATER_MARK: CommandInfo(prefix=b"\x00\x00\x00\x97"),
162+
RoborockCommand.SET_IDENTIFY_FURNITURE_STATUS: CommandInfo(prefix=b"\x00\x00\x00\x97"),
163+
RoborockCommand.SET_CHILD_LOCK_STATUS: CommandInfo(prefix=b"\x00\x00\x00\x97"),
164+
RoborockCommand.GET_CLEAN_RECORD_MAP: CommandInfo(prefix=b"\x00\x00\x00\xe7"),
167165
RoborockCommand.APP_START: CommandInfo(prefix=b"\x00\x00\x00w"),
168166
RoborockCommand.APP_STOP: CommandInfo(prefix=b"\x00\x00\x00w"),
169167
RoborockCommand.APP_CHARGE: CommandInfo(prefix=b"\x00\x00\x00w"),
@@ -177,16 +175,16 @@ class CommandInfo:
177175
RoborockCommand.APP_RC_END: CommandInfo(prefix=b"\x00\x00\x00w"),
178176
RoborockCommand.APP_RC_MOVE: CommandInfo(prefix=b"\x00\x00\x00w"),
179177
RoborockCommand.APP_GOTO_TARGET: CommandInfo(prefix=b"\x00\x00\x00\x87"),
180-
RoborockCommand.APP_SEGMENT_CLEAN: CommandInfo(prefix=b"\x00\x00\x00\xc7"),
181-
RoborockCommand.APP_ZONED_CLEAN: CommandInfo(prefix=b"\x00\x00\x00w"),
178+
RoborockCommand.APP_SEGMENT_CLEAN: CommandInfo(prefix=b"\x00\x00\x00\x87"),
179+
RoborockCommand.APP_ZONED_CLEAN: CommandInfo(prefix=b"\x00\x00\x00\x97"),
182180
RoborockCommand.APP_START_WASH: CommandInfo(prefix=b"\x00\x00\x00w"),
183181
RoborockCommand.APP_STOP_WASH: CommandInfo(prefix=b"\x00\x00\x00w"),
184-
RoborockCommand.SET_FDS_ENDPOINT: CommandInfo(prefix=b"\x00\x00\x97"),
182+
RoborockCommand.SET_FDS_ENDPOINT: CommandInfo(prefix=b"\x00\x00\x00\x97"),
185183
RoborockCommand.ENABLE_LOG_UPLOAD: CommandInfo(prefix=b"\x00\x00\x87"),
186184
RoborockCommand.GET_SOUND_VOLUME: CommandInfo(prefix=b"\x00\x00\x00w"),
187185
RoborockCommand.TEST_SOUND_VOLUME: CommandInfo(prefix=b"\x00\x00\x00w"),
188186
RoborockCommand.UPD_SERVER_TIMER: CommandInfo(prefix=b"\x00\x00\x00\x97"),
189-
RoborockCommand.SET_APP_TIMEZONE: CommandInfo(prefix=b"\x00\x00\x97"),
187+
RoborockCommand.SET_APP_TIMEZONE: CommandInfo(prefix=b"\x00\x00\x00\x97"),
190188
RoborockCommand.CHANGE_SOUND_VOLUME: CommandInfo(prefix=b"\x00\x00\x00\x87"),
191189
RoborockCommand.GET_SOUND_PROGRESS: CommandInfo(prefix=b"\x00\x00\x00w"),
192190
RoborockCommand.SET_SERVER_TIMER: CommandInfo(prefix=b"\x00\x00\x00\xc7"),

0 commit comments

Comments
 (0)