python-roborock 2.0.0__tar.gz → 2.1.0__tar.gz

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.
Files changed (28) hide show
  1. {python_roborock-2.0.0 → python_roborock-2.1.0}/PKG-INFO +1 -1
  2. {python_roborock-2.0.0 → python_roborock-2.1.0}/pyproject.toml +1 -1
  3. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/code_mappings.py +37 -0
  4. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/const.py +1 -0
  5. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/containers.py +12 -0
  6. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/roborock_typing.py +29 -0
  7. {python_roborock-2.0.0 → python_roborock-2.1.0}/LICENSE +0 -0
  8. {python_roborock-2.0.0 → python_roborock-2.1.0}/README.md +0 -0
  9. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/__init__.py +0 -0
  10. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/api.py +0 -0
  11. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/cli.py +0 -0
  12. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/cloud_api.py +0 -0
  13. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/command_cache.py +0 -0
  14. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/exceptions.py +0 -0
  15. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/local_api.py +0 -0
  16. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/protocol.py +0 -0
  17. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/py.typed +0 -0
  18. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/roborock_future.py +0 -0
  19. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/roborock_message.py +0 -0
  20. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/util.py +0 -0
  21. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/version_1_apis/__init__.py +0 -0
  22. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/version_1_apis/roborock_client_v1.py +0 -0
  23. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/version_1_apis/roborock_local_client_v1.py +0 -0
  24. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/version_1_apis/roborock_mqtt_client_v1.py +0 -0
  25. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/version_a01_apis/__init__.py +0 -0
  26. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/version_a01_apis/roborock_client_a01.py +0 -0
  27. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/version_a01_apis/roborock_mqtt_client_a01.py +0 -0
  28. {python_roborock-2.0.0 → python_roborock-2.1.0}/roborock/web_api.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-roborock
3
- Version: 2.0.0
3
+ Version: 2.1.0
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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "python-roborock"
3
- version = "2.0.0"
3
+ version = "2.1.0"
4
4
  description = "A package to control Roborock vacuums."
5
5
  authors = ["humbertogontijo <humbertogontijo@users.noreply.github.com>"]
6
6
  license = "GPL-3.0-only"
@@ -65,10 +65,12 @@ class RoborockStateCode(RoborockEnum):
65
65
  segment_cleaning = 18
66
66
  emptying_the_bin = 22 # on s7+
67
67
  washing_the_mop = 23 # on a46
68
+ washing_the_mop_2 = 25
68
69
  going_to_wash_the_mop = 26 # on a46
69
70
  in_call = 28
70
71
  mapping = 29
71
72
  egg_attack = 30
73
+ patrol = 32
72
74
  charging_complete = 100
73
75
  device_offline = 101
74
76
  locked = 103
@@ -126,6 +128,7 @@ class RoborockErrorCode(RoborockEnum):
126
128
  side_brush_error = 17
127
129
  fan_error = 18
128
130
  dock = 19 # Dock not connected to power
131
+ optical_flow_sensor_dirt = 20
129
132
  vertical_bumper_pressed = 21
130
133
  dock_locator_error = 22
131
134
  return_to_dock_fail = 23
@@ -150,7 +153,14 @@ class RoborockErrorCode(RoborockEnum):
150
153
  clear_brush_exception_2 = 43 # Positioning button error
151
154
  filter_screen_exception = 44 # Clean the dock water filter
152
155
  mopping_roller_2 = 45 # Wash roller may be jammed
156
+ up_water_exception = 48
157
+ drain_water_exception = 49
153
158
  temperature_protection = 51 # Unit temperature protection
159
+ clean_carousel_exception = 52
160
+ clean_carousel_water_full = 53
161
+ water_carriage_drop = 54
162
+ check_clean_carouse = 55
163
+ audio_error = 56
154
164
 
155
165
 
156
166
  class RoborockFanPowerCode(RoborockEnum):
@@ -236,6 +246,14 @@ class RoborockFanSpeedP10(RoborockFanPowerCode):
236
246
  max_plus = 108
237
247
 
238
248
 
249
+ class RoborockFanSpeedS8MaxVUltra(RoborockFanPowerCode):
250
+ off = 105
251
+ balanced = 102
252
+ custom = 106
253
+ max_plus = 108
254
+ smart_mode = 110
255
+
256
+
239
257
  class RoborockMopModeCode(RoborockEnum):
240
258
  """Describes the mop mode of the vacuum cleaner."""
241
259
 
@@ -257,6 +275,15 @@ class RoborockMopModeS8ProUltra(RoborockMopModeCode):
257
275
  custom = 302
258
276
 
259
277
 
278
+ class RoborockMopModeS8MaxVUltra(RoborockMopModeCode):
279
+ standard = 300
280
+ deep = 301
281
+ deep_plus = 303
282
+ fast = 304
283
+ deep_plus_pearl = 305
284
+ smart_mode = 306
285
+
286
+
260
287
  class RoborockMopIntensityCode(RoborockEnum):
261
288
  """Describes the mop intensity of the vacuum cleaner."""
262
289
 
@@ -292,6 +319,14 @@ class RoborockMopIntensityP10(RoborockMopIntensityCode):
292
319
  custom_water_flow = 207
293
320
 
294
321
 
322
+ class RoborockMopIntensityS8MaxVUltra(RoborockMopIntensityCode):
323
+ off = 200
324
+ low = 201
325
+ medium = 202
326
+ smart_mode = 209
327
+ custom_water_flow = 207
328
+
329
+
295
330
  class RoborockMopIntensityS5Max(RoborockMopIntensityCode):
296
331
  """Describes the mop intensity of the vacuum cleaner."""
297
332
 
@@ -321,6 +356,7 @@ class RoborockDockErrorCode(RoborockEnum):
321
356
  duct_blockage = 34
322
357
  water_empty = 38
323
358
  waste_water_tank_full = 39
359
+ maintenance_brush_jammed = 42
324
360
  dirty_tank_latch_open = 44
325
361
  no_dustbin = 46
326
362
  cleaning_tank_full_or_blocked = 53
@@ -335,6 +371,7 @@ class RoborockDockTypeCode(RoborockEnum):
335
371
  s7_max_ultra_dock = 6
336
372
  s8_dock = 7
337
373
  p10_dock = 8
374
+ s8_maxv_ultra_dock = 10
338
375
 
339
376
 
340
377
  class RoborockDockDustCollectionModeCode(RoborockEnum):
@@ -43,6 +43,7 @@ ROBOROCK_C1 = "roborock.vacuum.c1"
43
43
  ROBOROCK_S8_PRO_ULTRA = "roborock.vacuum.a70"
44
44
  ROBOROCK_S8 = "roborock.vacuum.a51"
45
45
  ROBOROCK_P10 = "roborock.vacuum.a75"
46
+ ROBOROCK_S8_MAXV_ULTRA = "roborock.vacuum.a97"
46
47
 
47
48
  ROBOROCK_DYAD_AIR = "roborock.wetdryvac.a107"
48
49
  ROBOROCK_DYAD_PRO_COMBO = "roborock.wetdryvac.a83"
@@ -24,14 +24,17 @@ from .code_mappings import (
24
24
  RoborockFanSpeedS6Pure,
25
25
  RoborockFanSpeedS7,
26
26
  RoborockFanSpeedS7MaxV,
27
+ RoborockFanSpeedS8MaxVUltra,
27
28
  RoborockMopIntensityCode,
28
29
  RoborockMopIntensityP10,
29
30
  RoborockMopIntensityS5Max,
30
31
  RoborockMopIntensityS6MaxV,
31
32
  RoborockMopIntensityS7,
33
+ RoborockMopIntensityS8MaxVUltra,
32
34
  RoborockMopIntensityV2,
33
35
  RoborockMopModeCode,
34
36
  RoborockMopModeS7,
37
+ RoborockMopModeS8MaxVUltra,
35
38
  RoborockMopModeS8ProUltra,
36
39
  RoborockStateCode,
37
40
  )
@@ -52,6 +55,7 @@ from .const import (
52
55
  ROBOROCK_S7,
53
56
  ROBOROCK_S7_MAXV,
54
57
  ROBOROCK_S8,
58
+ ROBOROCK_S8_MAXV_ULTRA,
55
59
  ROBOROCK_S8_PRO_ULTRA,
56
60
  SENSOR_DIRTY_REPLACE_TIME,
57
61
  SIDE_BRUSH_REPLACE_TIME,
@@ -550,6 +554,13 @@ class P10Status(Status):
550
554
  mop_mode: RoborockMopModeS8ProUltra | None = None
551
555
 
552
556
 
557
+ @dataclass
558
+ class S8MaxvUltraStatus(Status):
559
+ fan_power: RoborockFanSpeedS8MaxVUltra | None = None
560
+ water_box_mode: RoborockMopIntensityS8MaxVUltra | None = None
561
+ mop_mode: RoborockMopModeS8MaxVUltra | None = None
562
+
563
+
553
564
  ModelStatus: dict[str, type[Status]] = {
554
565
  ROBOROCK_S4_MAX: S4MaxStatus,
555
566
  ROBOROCK_S5_MAX: S5MaxStatus,
@@ -563,6 +574,7 @@ ModelStatus: dict[str, type[Status]] = {
563
574
  ROBOROCK_S8_PRO_ULTRA: S8ProUltraStatus,
564
575
  ROBOROCK_G10S_PRO: S7MaxVStatus,
565
576
  ROBOROCK_P10: P10Status,
577
+ ROBOROCK_S8_MAXV_ULTRA: S8MaxvUltraStatus,
566
578
  }
567
579
 
568
580
 
@@ -35,10 +35,13 @@ class RoborockCommand(str, Enum):
35
35
  APP_RC_START = "app_rc_start"
36
36
  APP_RC_STOP = "app_rc_stop"
37
37
  APP_RESUME_BUILD_MAP = "app_resume_build_map"
38
+ APP_RESUME_PATROL = "app_resume_patrol"
38
39
  APP_SEGMENT_CLEAN = "app_segment_clean"
39
40
  APP_SET_AMETHYST_STATUS = "app_set_amethyst_status"
40
41
  APP_SET_CARPET_DEEP_CLEAN_STATUS = "app_set_carpet_deep_clean_status"
42
+ APP_SET_CROSS_CARPET_CLEANING_STATUS = "app_set_cross_carpet_cleaning_status"
41
43
  APP_SET_DOOR_SILL_BLOCKS = "app_set_door_sill_blocks"
44
+ APP_SET_DIRTY_REPLENISH_CLEAN_STATUS = "app_set_dirty_replenish_clean_status"
42
45
  APP_SET_DRYER_SETTING = "app_set_dryer_setting"
43
46
  APP_SET_DRYER_STATUS = "app_set_dryer_status"
44
47
  APP_SET_DYNAMIC_CONFIG = "app_set_dynamic_config"
@@ -50,6 +53,8 @@ class RoborockCommand(str, Enum):
50
53
  APP_START_BUILD_MAP = "app_start_build_map"
51
54
  APP_START_COLLECT_DUST = "app_start_collect_dust"
52
55
  APP_START_EASTER_EGG = "app_start_easter_egg"
56
+ APP_START_PATROL = "app_start_patrol"
57
+ APP_START_PET_PATROL = "app_start_pet_patrol"
53
58
  APP_START_WASH = "app_start_wash"
54
59
  APP_STAT = "app_stat"
55
60
  APP_STOP = "app_stop"
@@ -177,6 +182,7 @@ class RoborockCommand(str, Enum):
177
182
  SET_CLEAN_FOLLOW_GROUND_MATERIAL_STATUS = "set_clean_follow_ground_material_status"
178
183
  SET_CLEAN_MOTOR_MODE = "set_clean_motor_mode"
179
184
  SET_CLEAN_SEQUENCE = "set_clean_sequence"
185
+ SET_CLEAN_REPEAT_TIMES = "set_clean_repeat_times"
180
186
  SET_COLLISION_AVOID_STATUS = "set_collision_avoid_status"
181
187
  SET_CUSTOM_MODE = "set_custom_mode"
182
188
  SET_CUSTOMIZE_CLEAN_MODE = "set_customize_clean_mode"
@@ -239,6 +245,29 @@ class RoborockCommand(str, Enum):
239
245
  USE_NEW_MAP = "use_new_map"
240
246
  USE_OLD_MAP = "use_old_map"
241
247
  USER_UPLOAD_LOG = "user_upload_log"
248
+ SET_STRETCH_TAG_STATUS = "set_stretch_tag_status"
249
+ GET_STRETCH_TAG_STATUS = "get_stretch_tag_status"
250
+ SET_RIGHT_BRUSH_STRETCH_STATUS = "set_right_brush_stretch_status"
251
+ GET_RIGHT_BRUSH_STRETCH_STATUS = "get_right_brush_stretch_status"
252
+ SET_DIRTY_OBJECT_DETECT_STATUS = "set_dirty_object_detect_status"
253
+ GET_DIRTY_OBJECT_DETECT_STATUS = "get_dirty_object_detect_status"
254
+ SET_WASH_WATER_TEMPERATURE = "set_wash_water_temperature"
255
+ GET_WASH_WATER_TEMPERATURE = "get_wash_water_temperature"
256
+ APP_EMPTY_RINSE_TANK_WATER = "app_empty_rinse_tank_water"
257
+ SET_PET_SUPPLIES_DEEP_CLEAN_STATUS = "set_pet_supplies_deep_clean_status"
258
+ GET_PET_SUPPLIES_DEEP_CLEAN_STATUS = "get_pet_supplies_deep_clean_status"
259
+ SET_AP_MIC_LED_STATUS = "set_ap_mic_led_status"
260
+ GET_AP_MIC_LED_STATUS = "get_ap_mic_led_status"
261
+ SET_HANDLE_LEAK_WATER_STATUS = "set_handle_leak_water_status"
262
+ GET_HANDLE_LEAK_WATER_STATUS = "get_handle_leak_water_status"
263
+ APP_IGNORE_DIRTY_OBJECTS = "app_ignore_dirty_objects"
264
+ MATTER_GET_STATUS = "matter.get_status"
265
+ MATTER_DNLD_KEY = "matter.dnld_key"
266
+ MATTER_RESET = "matter.reset"
267
+ SET_GAP_DEEP_CLEAN_STATUS = "set_gap_deep_clean_status"
268
+ GET_GAP_DEEP_CLEAN_STATUS = "get_gap_deep_clean_status"
269
+ APP_SET_ROBOT_SETTING = "app_set_robot_setting"
270
+ APP_GET_ROBOT_SETTING = "app_get_robot_setting"
242
271
 
243
272
 
244
273
  @dataclass
File without changes