roborock.data.v1.v1_code_mappings

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

Roborock Enum for codes with int values

manual_interrupt = <RoborockFinishReason.manual_interrupt: 21>
cleanup_interrupted = <RoborockFinishReason.cleanup_interrupted: 24>
manual_interrupt_2 = <RoborockFinishReason.manual_interrupt: 21>
manual_interrupt_12 = <RoborockFinishReason.manual_interrupt_12: 29>
breakpoint = <RoborockFinishReason.breakpoint: 32>
breakpoint_2 = <RoborockFinishReason.breakpoint_2: 33>
cleanup_interrupted_2 = <RoborockFinishReason.cleanup_interrupted_2: 34>
manual_interrupt_3 = <RoborockFinishReason.manual_interrupt_3: 35>
manual_interrupt_4 = <RoborockFinishReason.manual_interrupt_4: 36>
manual_interrupt_5 = <RoborockFinishReason.manual_interrupt_5: 37>
manual_interrupt_6 = <RoborockFinishReason.manual_interrupt_6: 43>
locate_fail = <RoborockFinishReason.locate_fail: 45>
cleanup_interrupted_3 = <RoborockFinishReason.cleanup_interrupted_3: 64>
locate_fail_2 = <RoborockFinishReason.locate_fail_2: 65>
manual_interrupt_7 = <RoborockFinishReason.manual_interrupt_7: 48>
manual_interrupt_8 = <RoborockFinishReason.manual_interrupt_8: 49>
manual_interrupt_9 = <RoborockFinishReason.manual_interrupt_9: 50>
cleanup_interrupted_4 = <RoborockFinishReason.cleanup_interrupted_4: 51>
finished_cleaning = <RoborockFinishReason.finished_cleaning: 52>
finished_cleaning_2 = <RoborockFinishReason.finished_cleaning_2: 54>
finished_cleaning_3 = <RoborockFinishReason.finished_cleaning_3: 55>
finished_cleaning_4 = <RoborockFinishReason.finished_cleaning_4: 56>
finished_clenaing_5 = <RoborockFinishReason.finished_clenaing_5: 57>
manual_interrupt_10 = <RoborockFinishReason.manual_interrupt_10: 60>
area_unreachable = <RoborockFinishReason.area_unreachable: 61>
area_unreachable_2 = <RoborockFinishReason.area_unreachable_2: 62>
washing_error = <RoborockFinishReason.washing_error: 67>
back_to_wash_failure = <RoborockFinishReason.back_to_wash_failure: 68>
cleanup_interrupted_5 = <RoborockFinishReason.cleanup_interrupted_5: 101>
breakpoint_4 = <RoborockFinishReason.breakpoint_4: 102>
manual_interrupt_11 = <RoborockFinishReason.manual_interrupt_11: 103>
cleanup_interrupted_6 = <RoborockFinishReason.cleanup_interrupted_6: 104>
cleanup_interrupted_7 = <RoborockFinishReason.cleanup_interrupted_7: 105>
cleanup_interrupted_8 = <RoborockFinishReason.cleanup_interrupted_8: 106>
cleanup_interrupted_9 = <RoborockFinishReason.cleanup_interrupted_9: 107>
cleanup_interrupted_10 = <RoborockFinishReason.cleanup_interrupted_10: 109>
cleanup_interrupted_11 = <RoborockFinishReason.cleanup_interrupted_11: 110>
patrol_success = <RoborockFinishReason.patrol_success: 114>
patrol_fail = <RoborockFinishReason.patrol_fail: 115>
pet_patrol_success = <RoborockFinishReason.pet_patrol_success: 116>
pet_patrol_fail = <RoborockFinishReason.pet_patrol_fail: 117>
class RoborockInCleaning(roborock.data.code_mappings.RoborockEnum):
51class RoborockInCleaning(RoborockEnum):
52    complete = 0
53    global_clean_not_complete = 1
54    zone_clean_not_complete = 2
55    segment_clean_not_complete = 3

Roborock Enum for codes with int values

complete = <RoborockInCleaning.complete: 0>
global_clean_not_complete = <RoborockInCleaning.global_clean_not_complete: 1>
zone_clean_not_complete = <RoborockInCleaning.zone_clean_not_complete: 2>
segment_clean_not_complete = <RoborockInCleaning.segment_clean_not_complete: 3>
class RoborockCleanType(roborock.data.code_mappings.RoborockEnum):
58class RoborockCleanType(RoborockEnum):
59    all_zone = 1
60    draw_zone = 2
61    select_zone = 3
62    quick_build = 4
63    video_patrol = 5
64    pet_patrol = 6

Roborock Enum for codes with int values

all_zone = <RoborockCleanType.all_zone: 1>
draw_zone = <RoborockCleanType.draw_zone: 2>
select_zone = <RoborockCleanType.select_zone: 3>
quick_build = <RoborockCleanType.quick_build: 4>
video_patrol = <RoborockCleanType.video_patrol: 5>
pet_patrol = <RoborockCleanType.pet_patrol: 6>
class RoborockStartType(roborock.data.code_mappings.RoborockEnum):
67class RoborockStartType(RoborockEnum):
68    button = 1
69    app = 2
70    schedule = 3
71    mi_home = 4
72    quick_start = 5
73    voice_control = 13
74    routines = 101
75    alexa = 801
76    google = 802
77    ifttt = 803
78    yandex = 804
79    homekit = 805
80    xiaoai = 806
81    tmall_genie = 807
82    duer = 808
83    dingdong = 809
84    siri = 810
85    clova = 811
86    wechat = 901
87    alipay = 902
88    aqara = 903
89    hisense = 904
90    huawei = 905
91    widget_launch = 820
92    smart_watch = 821

Roborock Enum for codes with int values

button = <RoborockStartType.button: 1>
schedule = <RoborockStartType.schedule: 3>
mi_home = <RoborockStartType.mi_home: 4>
quick_start = <RoborockStartType.quick_start: 5>
voice_control = <RoborockStartType.voice_control: 13>
routines = <RoborockStartType.routines: 101>
alexa = <RoborockStartType.alexa: 801>
google = <RoborockStartType.google: 802>
ifttt = <RoborockStartType.ifttt: 803>
yandex = <RoborockStartType.yandex: 804>
homekit = <RoborockStartType.homekit: 805>
xiaoai = <RoborockStartType.xiaoai: 806>
tmall_genie = <RoborockStartType.tmall_genie: 807>
duer = <RoborockStartType.duer: 808>
dingdong = <RoborockStartType.dingdong: 809>
siri = <RoborockStartType.siri: 810>
clova = <RoborockStartType.clova: 811>
wechat = <RoborockStartType.wechat: 901>
alipay = <RoborockStartType.alipay: 902>
aqara = <RoborockStartType.aqara: 903>
hisense = <RoborockStartType.hisense: 904>
huawei = <RoborockStartType.huawei: 905>
widget_launch = <RoborockStartType.widget_launch: 820>
smart_watch = <RoborockStartType.smart_watch: 821>
class RoborockDssCodes(roborock.data.code_mappings.RoborockEnum):
 95class RoborockDssCodes(RoborockEnum):
 96    @classmethod
 97    def _missing_(cls: type[Self], key) -> Self:
 98        # If the calculated value is not provided, then it should be viewed as okay.
 99        # As the math will sometimes result in you getting numbers that don't matter.
100        return cls.okay  # type: ignore

Roborock Enum for codes with int values

class ClearWaterBoxStatus(RoborockDssCodes):
103class ClearWaterBoxStatus(RoborockDssCodes):
104    """Status of the clear water box."""
105
106    okay = 0
107    out_of_water = 1
108    out_of_water_2 = 38
109    refill_error = 48

Status of the clear water box.

out_of_water = <ClearWaterBoxStatus.out_of_water: 1>
out_of_water_2 = <ClearWaterBoxStatus.out_of_water_2: 38>
refill_error = <ClearWaterBoxStatus.refill_error: 48>
class DirtyWaterBoxStatus(RoborockDssCodes):
112class DirtyWaterBoxStatus(RoborockDssCodes):
113    """Status of the dirty water box."""
114
115    okay = 0
116    full_not_installed = 1
117    full_not_installed_2 = 39
118    drain_error = 49

Status of the dirty water box.

full_not_installed = <DirtyWaterBoxStatus.full_not_installed: 1>
full_not_installed_2 = <DirtyWaterBoxStatus.full_not_installed_2: 39>
drain_error = <DirtyWaterBoxStatus.drain_error: 49>
class DustBagStatus(RoborockDssCodes):
121class DustBagStatus(RoborockDssCodes):
122    """Status of the dust bag."""
123
124    okay = 0
125    not_installed = 1
126    full = 34

Status of the dust bag.

okay = <DustBagStatus.okay: 0>
not_installed = <DustBagStatus.not_installed: 1>
full = <DustBagStatus.full: 34>
class CleanFluidStatus(RoborockDssCodes):
129class CleanFluidStatus(RoborockDssCodes):
130    """Status of the cleaning fluid container."""
131
132    empty_not_installed = 1
133    okay = 2

Status of the cleaning fluid container.

empty_not_installed = <CleanFluidStatus.empty_not_installed: 1>
okay = <CleanFluidStatus.okay: 2>
class RoborockErrorCode(roborock.data.code_mappings.RoborockEnum):
136class RoborockErrorCode(RoborockEnum):
137    none = 0
138    lidar_blocked = 1
139    bumper_stuck = 2
140    wheels_suspended = 3
141    cliff_sensor_error = 4
142    main_brush_jammed = 5
143    side_brush_jammed = 6
144    wheels_jammed = 7
145    robot_trapped = 8
146    no_dustbin = 9
147    strainer_error = 10  # Filter is wet or blocked
148    compass_error = 11  # Strong magnetic field detected
149    low_battery = 12
150    charging_error = 13
151    battery_error = 14
152    wall_sensor_dirty = 15
153    robot_tilted = 16
154    side_brush_error = 17
155    fan_error = 18
156    dock = 19  # Dock not connected to power
157    optical_flow_sensor_dirt = 20
158    vertical_bumper_pressed = 21
159    dock_locator_error = 22
160    return_to_dock_fail = 23
161    nogo_zone_detected = 24
162    visual_sensor = 25  # Camera error
163    light_touch = 26  # Wall sensor error
164    vibrarise_jammed = 27
165    robot_on_carpet = 28
166    filter_blocked = 29
167    invisible_wall_detected = 30
168    cannot_cross_carpet = 31
169    internal_error = 32
170    collect_dust_error_3 = 34  # Clean auto-empty dock
171    collect_dust_error_4 = 35  # Auto empty dock voltage error
172    mopping_roller_1 = 36  # Wash roller may be jammed
173    mopping_roller_error_2 = 37  # wash roller not lowered properly
174    clear_water_box_hoare = 38  # Check the clean water tank
175    dirty_water_box_hoare = 39  # Check the dirty water tank
176    sink_strainer_hoare = 40  # Reinstall the water filter
177    clear_water_box_exception = 41  # Clean water tank empty
178    clear_brush_exception = 42  # Check that the water filter has been correctly installed
179    clear_brush_exception_2 = 43  # Positioning button error
180    filter_screen_exception = 44  # Clean the dock water filter
181    mopping_roller_2 = 45  # Wash roller may be jammed
182    up_water_exception = 48
183    drain_water_exception = 49
184    temperature_protection = 51  # Unit temperature protection
185    clean_carousel_exception = 52
186    clean_carousel_water_full = 53
187    water_carriage_drop = 54
188    check_clean_carouse = 55
189    audio_error = 56

Roborock Enum for codes with int values

lidar_blocked = <RoborockErrorCode.lidar_blocked: 1>
bumper_stuck = <RoborockErrorCode.bumper_stuck: 2>
wheels_suspended = <RoborockErrorCode.wheels_suspended: 3>
cliff_sensor_error = <RoborockErrorCode.cliff_sensor_error: 4>
main_brush_jammed = <RoborockErrorCode.main_brush_jammed: 5>
side_brush_jammed = <RoborockErrorCode.side_brush_jammed: 6>
wheels_jammed = <RoborockErrorCode.wheels_jammed: 7>
robot_trapped = <RoborockErrorCode.robot_trapped: 8>
no_dustbin = <RoborockErrorCode.no_dustbin: 9>
strainer_error = <RoborockErrorCode.strainer_error: 10>
compass_error = <RoborockErrorCode.compass_error: 11>
low_battery = <RoborockErrorCode.low_battery: 12>
charging_error = <RoborockErrorCode.charging_error: 13>
battery_error = <RoborockErrorCode.battery_error: 14>
wall_sensor_dirty = <RoborockErrorCode.wall_sensor_dirty: 15>
robot_tilted = <RoborockErrorCode.robot_tilted: 16>
side_brush_error = <RoborockErrorCode.side_brush_error: 17>
fan_error = <RoborockErrorCode.fan_error: 18>
dock = <RoborockErrorCode.dock: 19>
optical_flow_sensor_dirt = <RoborockErrorCode.optical_flow_sensor_dirt: 20>
vertical_bumper_pressed = <RoborockErrorCode.vertical_bumper_pressed: 21>
dock_locator_error = <RoborockErrorCode.dock_locator_error: 22>
return_to_dock_fail = <RoborockErrorCode.return_to_dock_fail: 23>
nogo_zone_detected = <RoborockErrorCode.nogo_zone_detected: 24>
visual_sensor = <RoborockErrorCode.visual_sensor: 25>
light_touch = <RoborockErrorCode.light_touch: 26>
vibrarise_jammed = <RoborockErrorCode.vibrarise_jammed: 27>
robot_on_carpet = <RoborockErrorCode.robot_on_carpet: 28>
filter_blocked = <RoborockErrorCode.filter_blocked: 29>
invisible_wall_detected = <RoborockErrorCode.invisible_wall_detected: 30>
cannot_cross_carpet = <RoborockErrorCode.cannot_cross_carpet: 31>
internal_error = <RoborockErrorCode.internal_error: 32>
collect_dust_error_3 = <RoborockErrorCode.collect_dust_error_3: 34>
collect_dust_error_4 = <RoborockErrorCode.collect_dust_error_4: 35>
mopping_roller_1 = <RoborockErrorCode.mopping_roller_1: 36>
mopping_roller_error_2 = <RoborockErrorCode.mopping_roller_error_2: 37>
clear_water_box_hoare = <RoborockErrorCode.clear_water_box_hoare: 38>
dirty_water_box_hoare = <RoborockErrorCode.dirty_water_box_hoare: 39>
sink_strainer_hoare = <RoborockErrorCode.sink_strainer_hoare: 40>
clear_water_box_exception = <RoborockErrorCode.clear_water_box_exception: 41>
clear_brush_exception = <RoborockErrorCode.clear_brush_exception: 42>
clear_brush_exception_2 = <RoborockErrorCode.clear_brush_exception_2: 43>
filter_screen_exception = <RoborockErrorCode.filter_screen_exception: 44>
mopping_roller_2 = <RoborockErrorCode.mopping_roller_2: 45>
up_water_exception = <RoborockErrorCode.up_water_exception: 48>
drain_water_exception = <RoborockErrorCode.drain_water_exception: 49>
temperature_protection = <RoborockErrorCode.temperature_protection: 51>
water_carriage_drop = <RoborockErrorCode.water_carriage_drop: 54>
check_clean_carouse = <RoborockErrorCode.check_clean_carouse: 55>
audio_error = <RoborockErrorCode.audio_error: 56>
class RoborockFanPowerCode(roborock.data.code_mappings.RoborockEnum):
192class RoborockFanPowerCode(RoborockEnum):
193    """Describes the fan power of the vacuum cleaner."""
194
195    # Fan speeds should have the first letter capitalized - as there is no way to change the name in translations as
196    # far as I am aware

Describes the fan power of the vacuum cleaner.

class RoborockFanSpeedV1(RoborockFanPowerCode):
199class RoborockFanSpeedV1(RoborockFanPowerCode):
200    silent = 38
201    standard = 60
202    medium = 77
203    turbo = 90

Describes the fan power of the vacuum cleaner.

silent = <RoborockFanSpeedV1.silent: 38>
standard = <RoborockFanSpeedV1.standard: 60>
medium = <RoborockFanSpeedV1.medium: 77>
turbo = <RoborockFanSpeedV1.turbo: 90>
class RoborockFanSpeedV2(RoborockFanPowerCode):
206class RoborockFanSpeedV2(RoborockFanPowerCode):
207    silent = 101
208    balanced = 102
209    turbo = 103
210    max = 104
211    gentle = 105
212    auto = 106

Describes the fan power of the vacuum cleaner.

silent = <RoborockFanSpeedV2.silent: 101>
balanced = <RoborockFanSpeedV2.balanced: 102>
turbo = <RoborockFanSpeedV2.turbo: 103>
max = <RoborockFanSpeedV2.max: 104>
gentle = <RoborockFanSpeedV2.gentle: 105>
auto = <RoborockFanSpeedV2.auto: 106>
class RoborockFanSpeedV3(RoborockFanPowerCode):
215class RoborockFanSpeedV3(RoborockFanPowerCode):
216    silent = 38
217    standard = 60
218    medium = 75
219    turbo = 100

Describes the fan power of the vacuum cleaner.

silent = <RoborockFanSpeedV3.silent: 38>
standard = <RoborockFanSpeedV3.standard: 60>
medium = <RoborockFanSpeedV3.medium: 75>
turbo = <RoborockFanSpeedV3.turbo: 100>
class RoborockFanSpeedE2(RoborockFanPowerCode):
222class RoborockFanSpeedE2(RoborockFanPowerCode):
223    gentle = 41
224    silent = 50
225    standard = 68
226    medium = 79
227    turbo = 100

Describes the fan power of the vacuum cleaner.

gentle = <RoborockFanSpeedE2.gentle: 41>
silent = <RoborockFanSpeedE2.silent: 50>
standard = <RoborockFanSpeedE2.standard: 68>
medium = <RoborockFanSpeedE2.medium: 79>
turbo = <RoborockFanSpeedE2.turbo: 100>
class RoborockFanSpeedS7(RoborockFanPowerCode):
230class RoborockFanSpeedS7(RoborockFanPowerCode):
231    off = 105
232    quiet = 101
233    balanced = 102
234    turbo = 103
235    max = 104
236    custom = 106

Describes the fan power of the vacuum cleaner.

off = <RoborockFanSpeedS7.off: 105>
quiet = <RoborockFanSpeedS7.quiet: 101>
balanced = <RoborockFanSpeedS7.balanced: 102>
turbo = <RoborockFanSpeedS7.turbo: 103>
max = <RoborockFanSpeedS7.max: 104>
custom = <RoborockFanSpeedS7.custom: 106>
class RoborockFanSpeedS7MaxV(RoborockFanPowerCode):
239class RoborockFanSpeedS7MaxV(RoborockFanPowerCode):
240    off = 105
241    quiet = 101
242    balanced = 102
243    turbo = 103
244    max = 104
245    custom = 106
246    max_plus = 108

Describes the fan power of the vacuum cleaner.

class RoborockFanSpeedS6Pure(RoborockFanPowerCode):
249class RoborockFanSpeedS6Pure(RoborockFanPowerCode):
250    gentle = 105
251    quiet = 101
252    balanced = 102
253    turbo = 103
254    max = 104
255    custom = 106

Describes the fan power of the vacuum cleaner.

class RoborockFanSpeedQ7Max(RoborockFanPowerCode):
258class RoborockFanSpeedQ7Max(RoborockFanPowerCode):
259    quiet = 101
260    balanced = 102
261    turbo = 103
262    max = 104

Describes the fan power of the vacuum cleaner.

balanced = <RoborockFanSpeedQ7Max.balanced: 102>
class RoborockFanSpeedQRevoMaster(RoborockFanPowerCode):
265class RoborockFanSpeedQRevoMaster(RoborockFanPowerCode):
266    off = 105
267    quiet = 101
268    balanced = 102
269    turbo = 103
270    max = 104
271    custom = 106
272    max_plus = 108
273    smart_mode = 110

Describes the fan power of the vacuum cleaner.

class RoborockFanSpeedQRevoCurv(RoborockFanPowerCode):
276class RoborockFanSpeedQRevoCurv(RoborockFanPowerCode):
277    quiet = 101
278    balanced = 102
279    turbo = 103
280    max = 104
281    off = 105
282    custom = 106
283    max_plus = 108
284    smart_mode = 110

Describes the fan power of the vacuum cleaner.

class RoborockFanSpeedQRevoMaxV(RoborockFanPowerCode):
287class RoborockFanSpeedQRevoMaxV(RoborockFanPowerCode):
288    off = 105
289    quiet = 101
290    balanced = 102
291    turbo = 103
292    max = 104
293    custom = 106
294    max_plus = 108
295    smart_mode = 110

Describes the fan power of the vacuum cleaner.

class RoborockFanSpeedP10(RoborockFanPowerCode):
298class RoborockFanSpeedP10(RoborockFanPowerCode):
299    off = 105
300    quiet = 101
301    balanced = 102
302    turbo = 103
303    max = 104
304    custom = 106
305    max_plus = 108
306    smart_mode = 110

Describes the fan power of the vacuum cleaner.

quiet = <RoborockFanSpeedP10.quiet: 101>
balanced = <RoborockFanSpeedP10.balanced: 102>
turbo = <RoborockFanSpeedP10.turbo: 103>
custom = <RoborockFanSpeedP10.custom: 106>
max_plus = <RoborockFanSpeedP10.max_plus: 108>
smart_mode = <RoborockFanSpeedP10.smart_mode: 110>
class RoborockFanSpeedS8MaxVUltra(RoborockFanPowerCode):
309class RoborockFanSpeedS8MaxVUltra(RoborockFanPowerCode):
310    off = 105
311    quiet = 101
312    balanced = 102
313    turbo = 103
314    max = 104
315    custom = 106
316    max_plus = 108
317    smart_mode = 110

Describes the fan power of the vacuum cleaner.

class RoborockFanSpeedSaros10(RoborockFanPowerCode):
320class RoborockFanSpeedSaros10(RoborockFanPowerCode):
321    off = 105
322    quiet = 101
323    balanced = 102
324    turbo = 103
325    max = 104
326    custom = 106
327    max_plus = 108
328    smart_mode = 110

Describes the fan power of the vacuum cleaner.

class RoborockFanSpeedSaros10R(RoborockFanPowerCode):
331class RoborockFanSpeedSaros10R(RoborockFanPowerCode):
332    off = 105
333    quiet = 101
334    balanced = 102
335    turbo = 103
336    max = 104
337    custom = 106
338    max_plus = 108
339    smart_mode = 110

Describes the fan power of the vacuum cleaner.

class RoborockMopModeCode(roborock.data.code_mappings.RoborockEnum):
342class RoborockMopModeCode(RoborockEnum):
343    """Describes the mop mode of the vacuum cleaner."""

Describes the mop mode of the vacuum cleaner.

class RoborockMopModeQRevoCurv(RoborockMopModeCode):
346class RoborockMopModeQRevoCurv(RoborockMopModeCode):
347    standard = 300
348    deep = 301
349    custom = 302
350    deep_plus = 303
351    fast = 304
352    smart_mode = 306

Describes the mop mode of the vacuum cleaner.

class RoborockMopModeS7(RoborockMopModeCode):
355class RoborockMopModeS7(RoborockMopModeCode):
356    """Describes the mop mode of the vacuum cleaner."""
357
358    standard = 300
359    deep = 301
360    custom = 302
361    deep_plus = 303

Describes the mop mode of the vacuum cleaner.

standard = <RoborockMopModeS7.standard: 300>
deep = <RoborockMopModeS7.deep: 301>
custom = <RoborockMopModeS7.custom: 302>
deep_plus = <RoborockMopModeS7.deep_plus: 303>
class RoborockMopModeS8ProUltra(RoborockMopModeCode):
364class RoborockMopModeS8ProUltra(RoborockMopModeCode):
365    standard = 300
366    deep = 301
367    deep_plus = 303
368    fast = 304
369    custom = 302
370    smart_mode = 306

Describes the mop mode of the vacuum cleaner.

class RoborockMopModeS8MaxVUltra(RoborockMopModeCode):
373class RoborockMopModeS8MaxVUltra(RoborockMopModeCode):
374    standard = 300
375    deep = 301
376    custom = 302
377    deep_plus = 303
378    fast = 304
379    deep_plus_pearl = 305
380    smart_mode = 306

Describes the mop mode of the vacuum cleaner.

class RoborockMopModeSaros10R(RoborockMopModeCode):
383class RoborockMopModeSaros10R(RoborockMopModeCode):
384    standard = 300
385    deep = 301
386    custom = 302
387    deep_plus = 303
388    fast = 304
389    smart_mode = 306

Describes the mop mode of the vacuum cleaner.

class RoborockMopModeQRevoMaster(RoborockMopModeCode):
392class RoborockMopModeQRevoMaster(RoborockMopModeCode):
393    standard = 300
394    deep = 301
395    custom = 302
396    deep_plus = 303
397    fast = 304
398    smart_mode = 306

Describes the mop mode of the vacuum cleaner.

class RoborockMopModeQRevoMaxV(RoborockMopModeCode):
401class RoborockMopModeQRevoMaxV(RoborockMopModeCode):
402    standard = 300
403    deep = 301
404    custom = 302
405    deep_plus = 303
406    fast = 304
407    smart_mode = 306

Describes the mop mode of the vacuum cleaner.

class RoborockMopModeSaros10(RoborockMopModeCode):
410class RoborockMopModeSaros10(RoborockMopModeCode):
411    standard = 300
412    deep = 301
413    custom = 302
414    deep_plus = 303
415    fast = 304
416    smart_mode = 306

Describes the mop mode of the vacuum cleaner.

smart_mode = <RoborockMopModeSaros10.smart_mode: 306>
class RoborockMopIntensityCode(roborock.data.code_mappings.RoborockEnum):
419class RoborockMopIntensityCode(RoborockEnum):
420    """Describes the mop intensity of the vacuum cleaner."""

Describes the mop intensity of the vacuum cleaner.

class RoborockMopIntensityS7(RoborockMopIntensityCode):
423class RoborockMopIntensityS7(RoborockMopIntensityCode):
424    """Describes the mop intensity of the vacuum cleaner."""
425
426    off = 200
427    mild = 201
428    moderate = 202
429    intense = 203
430    custom = 204

Describes the mop intensity of the vacuum cleaner.

class RoborockMopIntensityV2(RoborockMopIntensityCode):
433class RoborockMopIntensityV2(RoborockMopIntensityCode):
434    """Describes the mop intensity of the vacuum cleaner."""
435
436    off = 200
437    low = 201
438    medium = 202
439    high = 203
440    custom = 207

Describes the mop intensity of the vacuum cleaner.

class RoborockMopIntensityQRevoMaster(RoborockMopIntensityCode):
443class RoborockMopIntensityQRevoMaster(RoborockMopIntensityCode):
444    """Describes the mop intensity of the vacuum cleaner."""
445
446    off = 200
447    low = 201
448    medium = 202
449    high = 203
450    custom = 204
451    custom_water_flow = 207
452    smart_mode = 209

Describes the mop intensity of the vacuum cleaner.

class RoborockMopIntensityQRevoCurv(RoborockMopIntensityCode):
455class RoborockMopIntensityQRevoCurv(RoborockMopIntensityCode):
456    off = 200
457    low = 201
458    medium = 202
459    high = 203
460    custom = 204
461    custom_water_flow = 207
462    smart_mode = 209

Describes the mop intensity of the vacuum cleaner.

class RoborockMopIntensityQRevoMaxV(RoborockMopIntensityCode):
465class RoborockMopIntensityQRevoMaxV(RoborockMopIntensityCode):
466    off = 200
467    low = 201
468    medium = 202
469    high = 203
470    custom = 204
471    custom_water_flow = 207
472    smart_mode = 209

Describes the mop intensity of the vacuum cleaner.

class RoborockMopIntensityP10(RoborockMopIntensityCode):
475class RoborockMopIntensityP10(RoborockMopIntensityCode):
476    """Describes the mop intensity of the vacuum cleaner."""
477
478    off = 200
479    low = 201
480    medium = 202
481    high = 203
482    custom = 204
483    custom_water_flow = 207
484    smart_mode = 209

Describes the mop intensity of the vacuum cleaner.

custom_water_flow = <RoborockMopIntensityP10.custom_water_flow: 207>
class RoborockMopIntensityS8MaxVUltra(RoborockMopIntensityCode):
487class RoborockMopIntensityS8MaxVUltra(RoborockMopIntensityCode):
488    off = 200
489    low = 201
490    medium = 202
491    high = 203
492    custom = 204
493    max = 208
494    smart_mode = 209
495    custom_water_flow = 207

Describes the mop intensity of the vacuum cleaner.

class RoborockMopIntensitySaros10(RoborockMopIntensityCode):
498class RoborockMopIntensitySaros10(RoborockMopIntensityCode):
499    off = 200
500    mild = 201
501    standard = 202
502    intense = 203
503    extreme = 208
504    custom = 204
505    smart_mode = 209

Describes the mop intensity of the vacuum cleaner.

class RoborockMopIntensitySaros10R(RoborockMopIntensityCode):
508class RoborockMopIntensitySaros10R(RoborockMopIntensityCode):
509    off = 200
510    low = 201
511    medium = 202
512    high = 203
513    custom = 204
514    extreme = 250
515    vac_followed_by_mop = 235
516    smart_mode = 209

Describes the mop intensity of the vacuum cleaner.

class RoborockMopIntensityS5Max(RoborockMopIntensityCode):
519class RoborockMopIntensityS5Max(RoborockMopIntensityCode):
520    """Describes the mop intensity of the vacuum cleaner."""
521
522    off = 200
523    low = 201
524    medium = 202
525    high = 203
526    custom = 204
527    custom_water_flow = 207

Describes the mop intensity of the vacuum cleaner.

custom_water_flow = <RoborockMopIntensityS5Max.custom_water_flow: 207>
class RoborockMopIntensityS6MaxV(RoborockMopIntensityCode):
530class RoborockMopIntensityS6MaxV(RoborockMopIntensityCode):
531    """Describes the mop intensity of the vacuum cleaner."""
532
533    off = 200
534    low = 201
535    medium = 202
536    high = 203
537    custom = 204
538    custom_water_flow = 207

Describes the mop intensity of the vacuum cleaner.

class RoborockMopIntensityQ7Max(RoborockMopIntensityCode):
541class RoborockMopIntensityQ7Max(RoborockMopIntensityCode):
542    """Describes the mop intensity of the vacuum cleaner."""
543
544    off = 200
545    low = 201
546    medium = 202
547    high = 203
548    custom_water_flow = 207

Describes the mop intensity of the vacuum cleaner.

custom_water_flow = <RoborockMopIntensityQ7Max.custom_water_flow: 207>
class RoborockDockErrorCode(roborock.data.code_mappings.RoborockEnum):
551class RoborockDockErrorCode(RoborockEnum):
552    """Describes the error code of the dock."""
553
554    ok = 0
555    duct_blockage = 34
556    water_empty = 38
557    waste_water_tank_full = 39
558    maintenance_brush_jammed = 42
559    dirty_tank_latch_open = 44
560    no_dustbin = 46
561    cleaning_tank_full_or_blocked = 53

Describes the error code of the dock.

duct_blockage = <RoborockDockErrorCode.duct_blockage: 34>
water_empty = <RoborockDockErrorCode.water_empty: 38>
waste_water_tank_full = <RoborockDockErrorCode.waste_water_tank_full: 39>
maintenance_brush_jammed = <RoborockDockErrorCode.maintenance_brush_jammed: 42>
dirty_tank_latch_open = <RoborockDockErrorCode.dirty_tank_latch_open: 44>
cleaning_tank_full_or_blocked = <RoborockDockErrorCode.cleaning_tank_full_or_blocked: 53>
class RoborockDockTypeCode(roborock.data.code_mappings.RoborockEnum):
564class RoborockDockTypeCode(RoborockEnum):
565    unknown = -9999
566    no_dock = 0
567    auto_empty_dock = 1
568    empty_wash_fill_dock = 3
569    auto_empty_dock_pure = 5
570    s7_max_ultra_dock = 6
571    s8_dock = 7
572    p10_dock = 8
573    p10_pro_dock = 9
574    s8_maxv_ultra_dock = 10
575    qrevo_master_dock = 14
576    qrevo_s_dock = 15
577    saros_r10_dock = 16
578    qrevo_curv_dock = 17
579    saros_10_dock = 18

Roborock Enum for codes with int values

unknown = <RoborockDockTypeCode.unknown: -9999>
auto_empty_dock = <RoborockDockTypeCode.auto_empty_dock: 1>
empty_wash_fill_dock = <RoborockDockTypeCode.empty_wash_fill_dock: 3>
auto_empty_dock_pure = <RoborockDockTypeCode.auto_empty_dock_pure: 5>
s7_max_ultra_dock = <RoborockDockTypeCode.s7_max_ultra_dock: 6>
p10_pro_dock = <RoborockDockTypeCode.p10_pro_dock: 9>
s8_maxv_ultra_dock = <RoborockDockTypeCode.s8_maxv_ultra_dock: 10>
qrevo_master_dock = <RoborockDockTypeCode.qrevo_master_dock: 14>
qrevo_s_dock = <RoborockDockTypeCode.qrevo_s_dock: 15>
saros_r10_dock = <RoborockDockTypeCode.saros_r10_dock: 16>
qrevo_curv_dock = <RoborockDockTypeCode.qrevo_curv_dock: 17>
saros_10_dock = <RoborockDockTypeCode.saros_10_dock: 18>
class RoborockDockDustCollectionModeCode(roborock.data.code_mappings.RoborockEnum):
582class RoborockDockDustCollectionModeCode(RoborockEnum):
583    """Describes the dust collection mode of the vacuum cleaner."""
584
585    # TODO: Get the correct values for various different docks
586    unknown = -9999
587    smart = 0
588    light = 1
589    balanced = 2
590    max = 4

Describes the dust collection mode of the vacuum cleaner.

class RoborockStateCode(roborock.data.code_mappings.RoborockEnum):
593class RoborockStateCode(RoborockEnum):
594    unknown = 0
595    starting = 1
596    charger_disconnected = 2
597    idle = 3
598    remote_control_active = 4
599    cleaning = 5
600    returning_home = 6
601    manual_mode = 7
602    charging = 8
603    charging_problem = 9
604    paused = 10
605    spot_cleaning = 11
606    error = 12
607    shutting_down = 13
608    updating = 14
609    docking = 15
610    going_to_target = 16
611    zoned_cleaning = 17
612    segment_cleaning = 18
613    emptying_the_bin = 22  # on s7+
614    washing_the_mop = 23  # on a46
615    washing_the_mop_2 = 25
616    going_to_wash_the_mop = 26  # on a46
617    in_call = 28
618    mapping = 29
619    egg_attack = 30
620    patrol = 32
621    attaching_the_mop = 33  # on g20s ultra
622    detaching_the_mop = 34  # on g20s ultra
623    charging_complete = 100
624    device_offline = 101
625    locked = 103
626    air_drying_stopping = 202
627    robot_status_mopping = 6301
628    clean_mop_cleaning = 6302
629    clean_mop_mopping = 6303
630    segment_mopping = 6304
631    segment_clean_mop_cleaning = 6305
632    segment_clean_mop_mopping = 6306
633    zoned_mopping = 6307
634    zoned_clean_mop_cleaning = 6308
635    zoned_clean_mop_mopping = 6309
636    back_to_dock_washing_duster = 6310

Roborock Enum for codes with int values

unknown = <RoborockStateCode.unknown: 0>
starting = <RoborockStateCode.starting: 1>
charger_disconnected = <RoborockStateCode.charger_disconnected: 2>
remote_control_active = <RoborockStateCode.remote_control_active: 4>
cleaning = <RoborockStateCode.cleaning: 5>
returning_home = <RoborockStateCode.returning_home: 6>
manual_mode = <RoborockStateCode.manual_mode: 7>
charging = <RoborockStateCode.charging: 8>
charging_problem = <RoborockStateCode.charging_problem: 9>
paused = <RoborockStateCode.paused: 10>
spot_cleaning = <RoborockStateCode.spot_cleaning: 11>
error = <RoborockStateCode.error: 12>
shutting_down = <RoborockStateCode.shutting_down: 13>
updating = <RoborockStateCode.updating: 14>
docking = <RoborockStateCode.docking: 15>
going_to_target = <RoborockStateCode.going_to_target: 16>
zoned_cleaning = <RoborockStateCode.zoned_cleaning: 17>
segment_cleaning = <RoborockStateCode.segment_cleaning: 18>
emptying_the_bin = <RoborockStateCode.emptying_the_bin: 22>
washing_the_mop = <RoborockStateCode.washing_the_mop: 23>
washing_the_mop_2 = <RoborockStateCode.washing_the_mop_2: 25>
going_to_wash_the_mop = <RoborockStateCode.going_to_wash_the_mop: 26>
in_call = <RoborockStateCode.in_call: 28>
mapping = <RoborockStateCode.mapping: 29>
egg_attack = <RoborockStateCode.egg_attack: 30>
patrol = <RoborockStateCode.patrol: 32>
attaching_the_mop = <RoborockStateCode.attaching_the_mop: 33>
detaching_the_mop = <RoborockStateCode.detaching_the_mop: 34>
charging_complete = <RoborockStateCode.charging_complete: 100>
device_offline = <RoborockStateCode.device_offline: 101>
locked = <RoborockStateCode.locked: 103>
air_drying_stopping = <RoborockStateCode.air_drying_stopping: 202>
robot_status_mopping = <RoborockStateCode.robot_status_mopping: 6301>
clean_mop_cleaning = <RoborockStateCode.clean_mop_cleaning: 6302>
clean_mop_mopping = <RoborockStateCode.clean_mop_mopping: 6303>
segment_mopping = <RoborockStateCode.segment_mopping: 6304>
segment_clean_mop_cleaning = <RoborockStateCode.segment_clean_mop_cleaning: 6305>
segment_clean_mop_mopping = <RoborockStateCode.segment_clean_mop_mopping: 6306>
zoned_mopping = <RoborockStateCode.zoned_mopping: 6307>
zoned_clean_mop_cleaning = <RoborockStateCode.zoned_clean_mop_cleaning: 6308>
zoned_clean_mop_mopping = <RoborockStateCode.zoned_clean_mop_mopping: 6309>
back_to_dock_washing_duster = <RoborockStateCode.back_to_dock_washing_duster: 6310>