roborock-cli 0.1.1__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.
Files changed (106) hide show
  1. roborock_cli/__init__.py +3 -0
  2. roborock_cli/__main__.py +76 -0
  3. roborock_cli/_vendor/VERSION +6 -0
  4. roborock_cli/_vendor/__init__.py +0 -0
  5. roborock_cli/_vendor/roborock/__init__.py +27 -0
  6. roborock_cli/_vendor/roborock/broadcast_protocol.py +114 -0
  7. roborock_cli/_vendor/roborock/callbacks.py +130 -0
  8. roborock_cli/_vendor/roborock/cli.py +1338 -0
  9. roborock_cli/_vendor/roborock/const.py +84 -0
  10. roborock_cli/_vendor/roborock/data/__init__.py +9 -0
  11. roborock_cli/_vendor/roborock/data/b01_q10/__init__.py +2 -0
  12. roborock_cli/_vendor/roborock/data/b01_q10/b01_q10_code_mappings.py +213 -0
  13. roborock_cli/_vendor/roborock/data/b01_q10/b01_q10_containers.py +102 -0
  14. roborock_cli/_vendor/roborock/data/b01_q7/__init__.py +2 -0
  15. roborock_cli/_vendor/roborock/data/b01_q7/b01_q7_code_mappings.py +303 -0
  16. roborock_cli/_vendor/roborock/data/b01_q7/b01_q7_containers.py +302 -0
  17. roborock_cli/_vendor/roborock/data/code_mappings.py +198 -0
  18. roborock_cli/_vendor/roborock/data/containers.py +530 -0
  19. roborock_cli/_vendor/roborock/data/dyad/__init__.py +2 -0
  20. roborock_cli/_vendor/roborock/data/dyad/dyad_code_mappings.py +102 -0
  21. roborock_cli/_vendor/roborock/data/dyad/dyad_containers.py +28 -0
  22. roborock_cli/_vendor/roborock/data/v1/__init__.py +3 -0
  23. roborock_cli/_vendor/roborock/data/v1/v1_clean_modes.py +192 -0
  24. roborock_cli/_vendor/roborock/data/v1/v1_code_mappings.py +644 -0
  25. roborock_cli/_vendor/roborock/data/v1/v1_containers.py +800 -0
  26. roborock_cli/_vendor/roborock/data/zeo/__init__.py +2 -0
  27. roborock_cli/_vendor/roborock/data/zeo/zeo_code_mappings.py +138 -0
  28. roborock_cli/_vendor/roborock/data/zeo/zeo_containers.py +0 -0
  29. roborock_cli/_vendor/roborock/device_features.py +668 -0
  30. roborock_cli/_vendor/roborock/devices/README.md +41 -0
  31. roborock_cli/_vendor/roborock/devices/__init__.py +11 -0
  32. roborock_cli/_vendor/roborock/devices/cache.py +143 -0
  33. roborock_cli/_vendor/roborock/devices/device.py +240 -0
  34. roborock_cli/_vendor/roborock/devices/device_manager.py +269 -0
  35. roborock_cli/_vendor/roborock/devices/file_cache.py +79 -0
  36. roborock_cli/_vendor/roborock/devices/rpc/__init__.py +14 -0
  37. roborock_cli/_vendor/roborock/devices/rpc/a01_channel.py +94 -0
  38. roborock_cli/_vendor/roborock/devices/rpc/b01_q10_channel.py +57 -0
  39. roborock_cli/_vendor/roborock/devices/rpc/b01_q7_channel.py +101 -0
  40. roborock_cli/_vendor/roborock/devices/rpc/v1_channel.py +457 -0
  41. roborock_cli/_vendor/roborock/devices/traits/__init__.py +28 -0
  42. roborock_cli/_vendor/roborock/devices/traits/a01/__init__.py +191 -0
  43. roborock_cli/_vendor/roborock/devices/traits/b01/__init__.py +12 -0
  44. roborock_cli/_vendor/roborock/devices/traits/b01/q10/__init__.py +76 -0
  45. roborock_cli/_vendor/roborock/devices/traits/b01/q10/command.py +32 -0
  46. roborock_cli/_vendor/roborock/devices/traits/b01/q10/common.py +115 -0
  47. roborock_cli/_vendor/roborock/devices/traits/b01/q10/status.py +32 -0
  48. roborock_cli/_vendor/roborock/devices/traits/b01/q10/vacuum.py +81 -0
  49. roborock_cli/_vendor/roborock/devices/traits/b01/q7/__init__.py +136 -0
  50. roborock_cli/_vendor/roborock/devices/traits/b01/q7/clean_summary.py +75 -0
  51. roborock_cli/_vendor/roborock/devices/traits/traits_mixin.py +64 -0
  52. roborock_cli/_vendor/roborock/devices/traits/v1/__init__.py +344 -0
  53. roborock_cli/_vendor/roborock/devices/traits/v1/child_lock.py +29 -0
  54. roborock_cli/_vendor/roborock/devices/traits/v1/clean_summary.py +83 -0
  55. roborock_cli/_vendor/roborock/devices/traits/v1/command.py +38 -0
  56. roborock_cli/_vendor/roborock/devices/traits/v1/common.py +172 -0
  57. roborock_cli/_vendor/roborock/devices/traits/v1/consumeable.py +48 -0
  58. roborock_cli/_vendor/roborock/devices/traits/v1/device_features.py +74 -0
  59. roborock_cli/_vendor/roborock/devices/traits/v1/do_not_disturb.py +41 -0
  60. roborock_cli/_vendor/roborock/devices/traits/v1/dust_collection_mode.py +13 -0
  61. roborock_cli/_vendor/roborock/devices/traits/v1/flow_led_status.py +29 -0
  62. roborock_cli/_vendor/roborock/devices/traits/v1/home.py +285 -0
  63. roborock_cli/_vendor/roborock/devices/traits/v1/led_status.py +43 -0
  64. roborock_cli/_vendor/roborock/devices/traits/v1/map_content.py +83 -0
  65. roborock_cli/_vendor/roborock/devices/traits/v1/maps.py +80 -0
  66. roborock_cli/_vendor/roborock/devices/traits/v1/network_info.py +55 -0
  67. roborock_cli/_vendor/roborock/devices/traits/v1/rooms.py +105 -0
  68. roborock_cli/_vendor/roborock/devices/traits/v1/routines.py +26 -0
  69. roborock_cli/_vendor/roborock/devices/traits/v1/smart_wash_params.py +13 -0
  70. roborock_cli/_vendor/roborock/devices/traits/v1/status.py +101 -0
  71. roborock_cli/_vendor/roborock/devices/traits/v1/valley_electricity_timer.py +44 -0
  72. roborock_cli/_vendor/roborock/devices/traits/v1/volume.py +27 -0
  73. roborock_cli/_vendor/roborock/devices/traits/v1/wash_towel_mode.py +13 -0
  74. roborock_cli/_vendor/roborock/devices/transport/__init__.py +8 -0
  75. roborock_cli/_vendor/roborock/devices/transport/channel.py +32 -0
  76. roborock_cli/_vendor/roborock/devices/transport/local_channel.py +295 -0
  77. roborock_cli/_vendor/roborock/devices/transport/mqtt_channel.py +118 -0
  78. roborock_cli/_vendor/roborock/diagnostics.py +166 -0
  79. roborock_cli/_vendor/roborock/exceptions.py +95 -0
  80. roborock_cli/_vendor/roborock/map/__init__.py +7 -0
  81. roborock_cli/_vendor/roborock/map/map_parser.py +123 -0
  82. roborock_cli/_vendor/roborock/mqtt/__init__.py +10 -0
  83. roborock_cli/_vendor/roborock/mqtt/health_manager.py +60 -0
  84. roborock_cli/_vendor/roborock/mqtt/roborock_session.py +463 -0
  85. roborock_cli/_vendor/roborock/mqtt/session.py +108 -0
  86. roborock_cli/_vendor/roborock/protocol.py +558 -0
  87. roborock_cli/_vendor/roborock/protocols/__init__.py +3 -0
  88. roborock_cli/_vendor/roborock/protocols/a01_protocol.py +74 -0
  89. roborock_cli/_vendor/roborock/protocols/b01_q10_protocol.py +87 -0
  90. roborock_cli/_vendor/roborock/protocols/b01_q7_protocol.py +81 -0
  91. roborock_cli/_vendor/roborock/protocols/v1_protocol.py +271 -0
  92. roborock_cli/_vendor/roborock/py.typed +0 -0
  93. roborock_cli/_vendor/roborock/roborock_message.py +246 -0
  94. roborock_cli/_vendor/roborock/roborock_typing.py +382 -0
  95. roborock_cli/_vendor/roborock/util.py +54 -0
  96. roborock_cli/_vendor/roborock/web_api.py +761 -0
  97. roborock_cli/cli.py +715 -0
  98. roborock_cli/connection.py +202 -0
  99. roborock_cli/helpers.py +71 -0
  100. roborock_cli/server.py +759 -0
  101. roborock_cli/setup_auth.py +92 -0
  102. roborock_cli-0.1.1.dist-info/METADATA +172 -0
  103. roborock_cli-0.1.1.dist-info/RECORD +106 -0
  104. roborock_cli-0.1.1.dist-info/WHEEL +4 -0
  105. roborock_cli-0.1.1.dist-info/entry_points.txt +2 -0
  106. roborock_cli-0.1.1.dist-info/licenses/LICENSE +674 -0
@@ -0,0 +1,644 @@
1
+ from ..code_mappings import RoborockEnum
2
+
3
+
4
+ class RoborockFinishReason(RoborockEnum):
5
+ manual_interrupt = 21 # Cleaning interrupted by user
6
+ cleanup_interrupted = 24 # Cleanup interrupted
7
+ manual_interrupt_2 = 21
8
+ manual_interrupt_12 = 29
9
+ breakpoint = 32 # Could not continue cleaning
10
+ breakpoint_2 = 33
11
+ cleanup_interrupted_2 = 34
12
+ manual_interrupt_3 = 35
13
+ manual_interrupt_4 = 36
14
+ manual_interrupt_5 = 37
15
+ manual_interrupt_6 = 43
16
+ locate_fail = 45 # Positioning Failed
17
+ cleanup_interrupted_3 = 64
18
+ locate_fail_2 = 65
19
+ manual_interrupt_7 = 48
20
+ manual_interrupt_8 = 49
21
+ manual_interrupt_9 = 50
22
+ cleanup_interrupted_4 = 51
23
+ finished_cleaning = 52 # Finished cleaning
24
+ finished_cleaning_2 = 54
25
+ finished_cleaning_3 = 55
26
+ finished_cleaning_4 = 56
27
+ finished_clenaing_5 = 57
28
+ manual_interrupt_10 = 60
29
+ area_unreachable = 61 # Area unreachable
30
+ area_unreachable_2 = 62
31
+ washing_error = 67 # Washing error
32
+ back_to_wash_failure = 68 # Failed to return to the dock
33
+ cleanup_interrupted_5 = 101
34
+ breakpoint_4 = 102
35
+ manual_interrupt_11 = 103
36
+ cleanup_interrupted_6 = 104
37
+ cleanup_interrupted_7 = 105
38
+ cleanup_interrupted_8 = 106
39
+ cleanup_interrupted_9 = 107
40
+ cleanup_interrupted_10 = 109
41
+ cleanup_interrupted_11 = 110
42
+ patrol_success = 114 # Cruise completed
43
+ patrol_fail = 115 # Cruise failed
44
+ pet_patrol_success = 116 # Pet found
45
+ pet_patrol_fail = 117 # Pet found failed
46
+
47
+
48
+ class RoborockInCleaning(RoborockEnum):
49
+ complete = 0
50
+ global_clean_not_complete = 1
51
+ zone_clean_not_complete = 2
52
+ segment_clean_not_complete = 3
53
+
54
+
55
+ class RoborockCleanType(RoborockEnum):
56
+ all_zone = 1
57
+ draw_zone = 2
58
+ select_zone = 3
59
+ quick_build = 4
60
+ video_patrol = 5
61
+ pet_patrol = 6
62
+
63
+
64
+ class RoborockStartType(RoborockEnum):
65
+ button = 1
66
+ app = 2
67
+ schedule = 3
68
+ mi_home = 4
69
+ quick_start = 5
70
+ voice_control = 13
71
+ routines = 101
72
+ alexa = 801
73
+ google = 802
74
+ ifttt = 803
75
+ yandex = 804
76
+ homekit = 805
77
+ xiaoai = 806
78
+ tmall_genie = 807
79
+ duer = 808
80
+ dingdong = 809
81
+ siri = 810
82
+ clova = 811
83
+ wechat = 901
84
+ alipay = 902
85
+ aqara = 903
86
+ hisense = 904
87
+ huawei = 905
88
+ widget_launch = 820
89
+ smart_watch = 821
90
+
91
+
92
+ class RoborockDssCodes(RoborockEnum):
93
+ @classmethod
94
+ def _missing_(cls: type[RoborockEnum], key) -> RoborockEnum:
95
+ # If the calculated value is not provided, then it should be viewed as okay.
96
+ # As the math will sometimes result in you getting numbers that don't matter.
97
+ return cls.okay # type: ignore
98
+
99
+
100
+ class ClearWaterBoxStatus(RoborockDssCodes):
101
+ """Status of the clear water box."""
102
+
103
+ okay = 0
104
+ out_of_water = 1
105
+ out_of_water_2 = 38
106
+ refill_error = 48
107
+
108
+
109
+ class DirtyWaterBoxStatus(RoborockDssCodes):
110
+ """Status of the dirty water box."""
111
+
112
+ okay = 0
113
+ full_not_installed = 1
114
+ full_not_installed_2 = 39
115
+ drain_error = 49
116
+
117
+
118
+ class DustBagStatus(RoborockDssCodes):
119
+ """Status of the dust bag."""
120
+
121
+ okay = 0
122
+ not_installed = 1
123
+ full = 34
124
+
125
+
126
+ class CleanFluidStatus(RoborockDssCodes):
127
+ """Status of the cleaning fluid container."""
128
+
129
+ empty_not_installed = 1
130
+ okay = 2
131
+
132
+
133
+ class RoborockErrorCode(RoborockEnum):
134
+ none = 0
135
+ lidar_blocked = 1
136
+ bumper_stuck = 2
137
+ wheels_suspended = 3
138
+ cliff_sensor_error = 4
139
+ main_brush_jammed = 5
140
+ side_brush_jammed = 6
141
+ wheels_jammed = 7
142
+ robot_trapped = 8
143
+ no_dustbin = 9
144
+ strainer_error = 10 # Filter is wet or blocked
145
+ compass_error = 11 # Strong magnetic field detected
146
+ low_battery = 12
147
+ charging_error = 13
148
+ battery_error = 14
149
+ wall_sensor_dirty = 15
150
+ robot_tilted = 16
151
+ side_brush_error = 17
152
+ fan_error = 18
153
+ dock = 19 # Dock not connected to power
154
+ optical_flow_sensor_dirt = 20
155
+ vertical_bumper_pressed = 21
156
+ dock_locator_error = 22
157
+ return_to_dock_fail = 23
158
+ nogo_zone_detected = 24
159
+ visual_sensor = 25 # Camera error
160
+ light_touch = 26 # Wall sensor error
161
+ vibrarise_jammed = 27
162
+ robot_on_carpet = 28
163
+ filter_blocked = 29
164
+ invisible_wall_detected = 30
165
+ cannot_cross_carpet = 31
166
+ internal_error = 32
167
+ collect_dust_error_3 = 34 # Clean auto-empty dock
168
+ collect_dust_error_4 = 35 # Auto empty dock voltage error
169
+ mopping_roller_1 = 36 # Wash roller may be jammed
170
+ mopping_roller_error_2 = 37 # wash roller not lowered properly
171
+ clear_water_box_hoare = 38 # Check the clean water tank
172
+ dirty_water_box_hoare = 39 # Check the dirty water tank
173
+ sink_strainer_hoare = 40 # Reinstall the water filter
174
+ clear_water_box_exception = 41 # Clean water tank empty
175
+ clear_brush_exception = 42 # Check that the water filter has been correctly installed
176
+ clear_brush_exception_2 = 43 # Positioning button error
177
+ filter_screen_exception = 44 # Clean the dock water filter
178
+ mopping_roller_2 = 45 # Wash roller may be jammed
179
+ up_water_exception = 48
180
+ drain_water_exception = 49
181
+ temperature_protection = 51 # Unit temperature protection
182
+ clean_carousel_exception = 52
183
+ clean_carousel_water_full = 53
184
+ water_carriage_drop = 54
185
+ check_clean_carouse = 55
186
+ audio_error = 56
187
+
188
+
189
+ class RoborockFanPowerCode(RoborockEnum):
190
+ """Describes the fan power of the vacuum cleaner."""
191
+
192
+ # Fan speeds should have the first letter capitalized - as there is no way to change the name in translations as
193
+ # far as I am aware
194
+
195
+
196
+ class RoborockFanSpeedV1(RoborockFanPowerCode):
197
+ silent = 38
198
+ standard = 60
199
+ medium = 77
200
+ turbo = 90
201
+
202
+
203
+ class RoborockFanSpeedV2(RoborockFanPowerCode):
204
+ silent = 101
205
+ balanced = 102
206
+ turbo = 103
207
+ max = 104
208
+ gentle = 105
209
+ auto = 106
210
+
211
+
212
+ class RoborockFanSpeedV3(RoborockFanPowerCode):
213
+ silent = 38
214
+ standard = 60
215
+ medium = 75
216
+ turbo = 100
217
+
218
+
219
+ class RoborockFanSpeedE2(RoborockFanPowerCode):
220
+ gentle = 41
221
+ silent = 50
222
+ standard = 68
223
+ medium = 79
224
+ turbo = 100
225
+
226
+
227
+ class RoborockFanSpeedS7(RoborockFanPowerCode):
228
+ off = 105
229
+ quiet = 101
230
+ balanced = 102
231
+ turbo = 103
232
+ max = 104
233
+ custom = 106
234
+
235
+
236
+ class RoborockFanSpeedS7MaxV(RoborockFanPowerCode):
237
+ off = 105
238
+ quiet = 101
239
+ balanced = 102
240
+ turbo = 103
241
+ max = 104
242
+ custom = 106
243
+ max_plus = 108
244
+
245
+
246
+ class RoborockFanSpeedS6Pure(RoborockFanPowerCode):
247
+ gentle = 105
248
+ quiet = 101
249
+ balanced = 102
250
+ turbo = 103
251
+ max = 104
252
+ custom = 106
253
+
254
+
255
+ class RoborockFanSpeedQ7Max(RoborockFanPowerCode):
256
+ quiet = 101
257
+ balanced = 102
258
+ turbo = 103
259
+ max = 104
260
+
261
+
262
+ class RoborockFanSpeedQRevoMaster(RoborockFanPowerCode):
263
+ off = 105
264
+ quiet = 101
265
+ balanced = 102
266
+ turbo = 103
267
+ max = 104
268
+ custom = 106
269
+ max_plus = 108
270
+ smart_mode = 110
271
+
272
+
273
+ class RoborockFanSpeedQRevoCurv(RoborockFanPowerCode):
274
+ quiet = 101
275
+ balanced = 102
276
+ turbo = 103
277
+ max = 104
278
+ off = 105
279
+ custom = 106
280
+ max_plus = 108
281
+ smart_mode = 110
282
+
283
+
284
+ class RoborockFanSpeedQRevoMaxV(RoborockFanPowerCode):
285
+ off = 105
286
+ quiet = 101
287
+ balanced = 102
288
+ turbo = 103
289
+ max = 104
290
+ custom = 106
291
+ max_plus = 108
292
+ smart_mode = 110
293
+
294
+
295
+ class RoborockFanSpeedP10(RoborockFanPowerCode):
296
+ off = 105
297
+ quiet = 101
298
+ balanced = 102
299
+ turbo = 103
300
+ max = 104
301
+ custom = 106
302
+ max_plus = 108
303
+ smart_mode = 110
304
+
305
+
306
+ class RoborockFanSpeedS8MaxVUltra(RoborockFanPowerCode):
307
+ off = 105
308
+ quiet = 101
309
+ balanced = 102
310
+ turbo = 103
311
+ max = 104
312
+ custom = 106
313
+ max_plus = 108
314
+ smart_mode = 110
315
+
316
+
317
+ class RoborockFanSpeedSaros10(RoborockFanPowerCode):
318
+ off = 105
319
+ quiet = 101
320
+ balanced = 102
321
+ turbo = 103
322
+ max = 104
323
+ custom = 106
324
+ max_plus = 108
325
+ smart_mode = 110
326
+
327
+
328
+ class RoborockFanSpeedSaros10R(RoborockFanPowerCode):
329
+ off = 105
330
+ quiet = 101
331
+ balanced = 102
332
+ turbo = 103
333
+ max = 104
334
+ custom = 106
335
+ max_plus = 108
336
+ smart_mode = 110
337
+
338
+
339
+ class RoborockMopModeCode(RoborockEnum):
340
+ """Describes the mop mode of the vacuum cleaner."""
341
+
342
+
343
+ class RoborockMopModeQRevoCurv(RoborockMopModeCode):
344
+ standard = 300
345
+ deep = 301
346
+ custom = 302
347
+ deep_plus = 303
348
+ fast = 304
349
+ smart_mode = 306
350
+
351
+
352
+ class RoborockMopModeS7(RoborockMopModeCode):
353
+ """Describes the mop mode of the vacuum cleaner."""
354
+
355
+ standard = 300
356
+ deep = 301
357
+ custom = 302
358
+ deep_plus = 303
359
+
360
+
361
+ class RoborockMopModeS8ProUltra(RoborockMopModeCode):
362
+ standard = 300
363
+ deep = 301
364
+ deep_plus = 303
365
+ fast = 304
366
+ custom = 302
367
+ smart_mode = 306
368
+
369
+
370
+ class RoborockMopModeS8MaxVUltra(RoborockMopModeCode):
371
+ standard = 300
372
+ deep = 301
373
+ custom = 302
374
+ deep_plus = 303
375
+ fast = 304
376
+ deep_plus_pearl = 305
377
+ smart_mode = 306
378
+
379
+
380
+ class RoborockMopModeSaros10R(RoborockMopModeCode):
381
+ standard = 300
382
+ deep = 301
383
+ custom = 302
384
+ deep_plus = 303
385
+ fast = 304
386
+ smart_mode = 306
387
+
388
+
389
+ class RoborockMopModeQRevoMaster(RoborockMopModeCode):
390
+ standard = 300
391
+ deep = 301
392
+ custom = 302
393
+ deep_plus = 303
394
+ fast = 304
395
+ smart_mode = 306
396
+
397
+
398
+ class RoborockMopModeQRevoMaxV(RoborockMopModeCode):
399
+ standard = 300
400
+ deep = 301
401
+ custom = 302
402
+ deep_plus = 303
403
+ fast = 304
404
+ smart_mode = 306
405
+
406
+
407
+ class RoborockMopModeSaros10(RoborockMopModeCode):
408
+ standard = 300
409
+ deep = 301
410
+ custom = 302
411
+ deep_plus = 303
412
+ fast = 304
413
+ smart_mode = 306
414
+
415
+
416
+ class RoborockMopIntensityCode(RoborockEnum):
417
+ """Describes the mop intensity of the vacuum cleaner."""
418
+
419
+
420
+ class RoborockMopIntensityS7(RoborockMopIntensityCode):
421
+ """Describes the mop intensity of the vacuum cleaner."""
422
+
423
+ off = 200
424
+ mild = 201
425
+ moderate = 202
426
+ intense = 203
427
+ custom = 204
428
+
429
+
430
+ class RoborockMopIntensityV2(RoborockMopIntensityCode):
431
+ """Describes the mop intensity of the vacuum cleaner."""
432
+
433
+ off = 200
434
+ low = 201
435
+ medium = 202
436
+ high = 203
437
+ custom = 207
438
+
439
+
440
+ class RoborockMopIntensityQRevoMaster(RoborockMopIntensityCode):
441
+ """Describes the mop intensity of the vacuum cleaner."""
442
+
443
+ off = 200
444
+ low = 201
445
+ medium = 202
446
+ high = 203
447
+ custom = 204
448
+ custom_water_flow = 207
449
+ smart_mode = 209
450
+
451
+
452
+ class RoborockMopIntensityQRevoCurv(RoborockMopIntensityCode):
453
+ off = 200
454
+ low = 201
455
+ medium = 202
456
+ high = 203
457
+ custom = 204
458
+ custom_water_flow = 207
459
+ smart_mode = 209
460
+
461
+
462
+ class RoborockMopIntensityQRevoMaxV(RoborockMopIntensityCode):
463
+ off = 200
464
+ low = 201
465
+ medium = 202
466
+ high = 203
467
+ custom = 204
468
+ custom_water_flow = 207
469
+ smart_mode = 209
470
+
471
+
472
+ class RoborockMopIntensityP10(RoborockMopIntensityCode):
473
+ """Describes the mop intensity of the vacuum cleaner."""
474
+
475
+ off = 200
476
+ low = 201
477
+ medium = 202
478
+ high = 203
479
+ custom = 204
480
+ custom_water_flow = 207
481
+ smart_mode = 209
482
+
483
+
484
+ class RoborockMopIntensityS8MaxVUltra(RoborockMopIntensityCode):
485
+ off = 200
486
+ low = 201
487
+ medium = 202
488
+ high = 203
489
+ custom = 204
490
+ max = 208
491
+ smart_mode = 209
492
+ custom_water_flow = 207
493
+
494
+
495
+ class RoborockMopIntensitySaros10(RoborockMopIntensityCode):
496
+ off = 200
497
+ mild = 201
498
+ standard = 202
499
+ intense = 203
500
+ extreme = 208
501
+ custom = 204
502
+ smart_mode = 209
503
+
504
+
505
+ class RoborockMopIntensitySaros10R(RoborockMopIntensityCode):
506
+ off = 200
507
+ low = 201
508
+ medium = 202
509
+ high = 203
510
+ custom = 204
511
+ extreme = 250
512
+ vac_followed_by_mop = 235
513
+ smart_mode = 209
514
+
515
+
516
+ class RoborockMopIntensityS5Max(RoborockMopIntensityCode):
517
+ """Describes the mop intensity of the vacuum cleaner."""
518
+
519
+ off = 200
520
+ low = 201
521
+ medium = 202
522
+ high = 203
523
+ custom = 204
524
+ custom_water_flow = 207
525
+
526
+
527
+ class RoborockMopIntensityS6MaxV(RoborockMopIntensityCode):
528
+ """Describes the mop intensity of the vacuum cleaner."""
529
+
530
+ off = 200
531
+ low = 201
532
+ medium = 202
533
+ high = 203
534
+ custom = 204
535
+ custom_water_flow = 207
536
+
537
+
538
+ class RoborockMopIntensityQ7Max(RoborockMopIntensityCode):
539
+ """Describes the mop intensity of the vacuum cleaner."""
540
+
541
+ off = 200
542
+ low = 201
543
+ medium = 202
544
+ high = 203
545
+ custom_water_flow = 207
546
+
547
+
548
+ class RoborockDockErrorCode(RoborockEnum):
549
+ """Describes the error code of the dock."""
550
+
551
+ ok = 0
552
+ duct_blockage = 34
553
+ water_empty = 38
554
+ waste_water_tank_full = 39
555
+ maintenance_brush_jammed = 42
556
+ dirty_tank_latch_open = 44
557
+ no_dustbin = 46
558
+ cleaning_tank_full_or_blocked = 53
559
+
560
+
561
+ class RoborockDockTypeCode(RoborockEnum):
562
+ unknown = -9999
563
+ no_dock = 0
564
+ auto_empty_dock = 1
565
+ empty_wash_fill_dock = 3
566
+ auto_empty_dock_pure = 5
567
+ s7_max_ultra_dock = 6
568
+ s8_dock = 7
569
+ p10_dock = 8
570
+ p10_pro_dock = 9
571
+ s8_maxv_ultra_dock = 10
572
+ qrevo_master_dock = 14
573
+ qrevo_s_dock = 15
574
+ saros_r10_dock = 16
575
+ qrevo_curv_dock = 17
576
+ saros_10_dock = 18
577
+
578
+
579
+ class RoborockDockDustCollectionModeCode(RoborockEnum):
580
+ """Describes the dust collection mode of the vacuum cleaner."""
581
+
582
+ # TODO: Get the correct values for various different docks
583
+ unknown = -9999
584
+ smart = 0
585
+ light = 1
586
+ balanced = 2
587
+ max = 4
588
+
589
+
590
+ class RoborockDockWashTowelModeCode(RoborockEnum):
591
+ """Describes the wash towel mode of the vacuum cleaner."""
592
+
593
+ # TODO: Get the correct values for various different docks
594
+ unknown = -9999
595
+ light = 0
596
+ balanced = 1
597
+ deep = 2
598
+ smart = 10
599
+
600
+
601
+ class RoborockStateCode(RoborockEnum):
602
+ unknown = 0
603
+ starting = 1
604
+ charger_disconnected = 2
605
+ idle = 3
606
+ remote_control_active = 4
607
+ cleaning = 5
608
+ returning_home = 6
609
+ manual_mode = 7
610
+ charging = 8
611
+ charging_problem = 9
612
+ paused = 10
613
+ spot_cleaning = 11
614
+ error = 12
615
+ shutting_down = 13
616
+ updating = 14
617
+ docking = 15
618
+ going_to_target = 16
619
+ zoned_cleaning = 17
620
+ segment_cleaning = 18
621
+ emptying_the_bin = 22 # on s7+
622
+ washing_the_mop = 23 # on a46
623
+ washing_the_mop_2 = 25
624
+ going_to_wash_the_mop = 26 # on a46
625
+ in_call = 28
626
+ mapping = 29
627
+ egg_attack = 30
628
+ patrol = 32
629
+ attaching_the_mop = 33 # on g20s ultra
630
+ detaching_the_mop = 34 # on g20s ultra
631
+ charging_complete = 100
632
+ device_offline = 101
633
+ locked = 103
634
+ air_drying_stopping = 202
635
+ robot_status_mopping = 6301
636
+ clean_mop_cleaning = 6302
637
+ clean_mop_mopping = 6303
638
+ segment_mopping = 6304
639
+ segment_clean_mop_cleaning = 6305
640
+ segment_clean_mop_mopping = 6306
641
+ zoned_mopping = 6307
642
+ zoned_clean_mop_cleaning = 6308
643
+ zoned_clean_mop_mopping = 6309
644
+ back_to_dock_washing_duster = 6310