python-roborock 2.2.0__py3-none-any.whl → 2.2.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-roborock
3
- Version: 2.2.0
3
+ Version: 2.2.2
4
4
  Summary: A package to control Roborock vacuums.
5
5
  Home-page: https://github.com/humbertogontijo/python-roborock
6
6
  License: GPL-3.0-only
@@ -2,7 +2,7 @@ roborock/__init__.py,sha256=AqfxNGj4wILqL7dooJyQQd6w7o2EW02fMAF51wT9VK8,165
2
2
  roborock/api.py,sha256=jI5jbBZf47HHEI8j_JM_00DqrhrgbmlA6FivPCgFajc,4123
3
3
  roborock/cli.py,sha256=l4dOt9HZ4TZOZNp_btsNCZEDUihM94Dz173KPtUYdm4,6826
4
4
  roborock/cloud_api.py,sha256=8p_iRfXRstBW5KfdxFtya41VJjeRXbdwfpASXIqASqM,7144
5
- roborock/code_mappings.py,sha256=cFWDk5VXzXRPum-MZUS42mMiVXV2E-Yy1h8kxAMNVD8,14400
5
+ roborock/code_mappings.py,sha256=O2TDyMXZdpR7-cCPBWAD2ltGT7oFmn_yzwcXNgguzCQ,14415
6
6
  roborock/command_cache.py,sha256=E8e7EYzYFZEmw_cIfhPYZXNpBuSJbIAT9KXnE-e5NPg,7912
7
7
  roborock/const.py,sha256=p2d52jaX7ZSNFSoLgq2nZVKP0qxnoONSm7y2eaQFqbM,2386
8
8
  roborock/containers.py,sha256=s9IXGYNlX9WwmkSUZZzkOPMlgy1Z5juHaB9S8heXXoY,27991
@@ -15,15 +15,15 @@ roborock/roborock_message.py,sha256=2-boInkxHLD4dZxRFslfoqyIy5XalTlJsSdxNQbvUBg,
15
15
  roborock/roborock_typing.py,sha256=3guzjcgwbwmz-COZyCBY6UAtLh7Br56GCFYL2L08ot0,23536
16
16
  roborock/util.py,sha256=kXIWW5EWs7w_7u26jPjBmeZUM_WR9bD8A2-qWL5baTQ,3465
17
17
  roborock/version_1_apis/__init__.py,sha256=BDAkBZPOtpyYUPUa6VaZd7Aaza1hbvM2fIzsjIGD9Vc,183
18
- roborock/version_1_apis/roborock_client_v1.py,sha256=hvbGIMCyISUcOndn-H4W-U2hJTq7AVr_MBmr3v5AKVA,20099
18
+ roborock/version_1_apis/roborock_client_v1.py,sha256=-tQ0I90adCYM-XPuemW9MBaiEWkYhL-xRDPLRE7BADc,21262
19
19
  roborock/version_1_apis/roborock_local_client_v1.py,sha256=tPou8JnUEIKbUZcmUA7RRLycCSEjg0JFaZNdNLU6nmE,3477
20
20
  roborock/version_1_apis/roborock_mqtt_client_v1.py,sha256=5MhgmosZu-ujj3fuKr6QAN-H5LtF_OIwM-t-Zsd0J_w,3358
21
21
  roborock/version_a01_apis/__init__.py,sha256=i_WTIX0LUCG93YX3RraNaQYNYBMY-xJI7ncWMdUFQVs,111
22
22
  roborock/version_a01_apis/roborock_client_a01.py,sha256=ISXMQ7pFoohoHG2mmukdZx6J7S2sgYvvInpJGqtKGL8,7424
23
23
  roborock/version_a01_apis/roborock_mqtt_client_a01.py,sha256=fiy2LdCVYwAXo70QN5vwOM8abEHTGACmaLzaEiB8rmk,3043
24
24
  roborock/web_api.py,sha256=p3hNVVJ7QYFjcYc1wTrJs4EtE83tDThbQHSJFWanWN4,13040
25
- python_roborock-2.2.0.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
26
- python_roborock-2.2.0.dist-info/METADATA,sha256=SwT6UE9S3meAjW_kIjv1gq0V-RJ8CdgGO10eYlDm9k8,2598
27
- python_roborock-2.2.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
28
- python_roborock-2.2.0.dist-info/entry_points.txt,sha256=3V_nm8VDR5Wg8m9QlRy9R4olW2lC--6JrDjZJpQpDNI,46
29
- python_roborock-2.2.0.dist-info/RECORD,,
25
+ python_roborock-2.2.2.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
26
+ python_roborock-2.2.2.dist-info/METADATA,sha256=t6MTuxzD56JShT4tJTSikpeMp_edUkhGmKvMix2p6ck,2598
27
+ python_roborock-2.2.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
28
+ python_roborock-2.2.2.dist-info/entry_points.txt,sha256=3V_nm8VDR5Wg8m9QlRy9R4olW2lC--6JrDjZJpQpDNI,46
29
+ python_roborock-2.2.2.dist-info/RECORD,,
roborock/code_mappings.py CHANGED
@@ -323,6 +323,7 @@ class RoborockMopIntensityS8MaxVUltra(RoborockMopIntensityCode):
323
323
  off = 200
324
324
  low = 201
325
325
  medium = 202
326
+ high = 203
326
327
  smart_mode = 209
327
328
  custom_water_flow = 207
328
329
 
@@ -197,6 +197,24 @@ class RoborockClientV1(RoborockClient):
197
197
  if isinstance(record, dict):
198
198
  return CleanRecord.from_dict(record)
199
199
  elif isinstance(record, list):
200
+ if isinstance(record[-1], dict):
201
+ records = [CleanRecord.from_dict(rec) for rec in record]
202
+ final_record = records[-1]
203
+ try:
204
+ # This code is semi-presumptions - so it is put in a try finally to be safe.
205
+ final_record.begin = records[0].begin
206
+ final_record.begin_datetime = records[0].begin_datetime
207
+ final_record.start_type = records[0].start_type
208
+ for rec in records[0:-1]:
209
+ final_record.duration += rec.duration if rec.duration is not None else 0
210
+ final_record.area += rec.area if rec.area is not None else 0
211
+ final_record.avoid_count += rec.avoid_count if rec.avoid_count is not None else 0
212
+ final_record.wash_count += rec.wash_count if rec.wash_count is not None else 0
213
+ final_record.square_meter_area += (
214
+ rec.square_meter_area if rec.square_meter_area is not None else 0
215
+ )
216
+ finally:
217
+ return final_record
200
218
  # There are still a few unknown variables in this.
201
219
  begin, end, duration, area = unpack_list(record, 4)
202
220
  return CleanRecord(begin=begin, end=end, duration=duration, area=area)
@@ -277,7 +295,7 @@ class RoborockClientV1(RoborockClient):
277
295
  """Gets the mapping from segment id -> iot id. Only works on local api."""
278
296
  mapping: list = await self.send_command(RoborockCommand.GET_ROOM_MAPPING)
279
297
  if isinstance(mapping, list):
280
- if not isinstance(mapping[0], list) and len(mapping) == 2:
298
+ if len(mapping) == 2 and not isinstance(mapping[0], list):
281
299
  return [RoomMapping(segment_id=mapping[0], iot_id=mapping[1])]
282
300
  return [
283
301
  RoomMapping(segment_id=segment_id, iot_id=iot_id) # type: ignore