Skip to content

Commit 54a7e53

Browse files
authored
feat: Add Saros 10 code mappings (#419)
1 parent 5a2dac0 commit 54a7e53

File tree

3 files changed

+43
-0
lines changed

3 files changed

+43
-0
lines changed

roborock/code_mappings.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,17 @@ class RoborockFanSpeedS8MaxVUltra(RoborockFanPowerCode):
300300
smart_mode = 110
301301

302302

303+
class RoborockFanSpeedSaros10(RoborockFanPowerCode):
304+
off = 105
305+
quiet = 101
306+
balanced = 102
307+
turbo = 103
308+
max = 104
309+
custom = 106
310+
max_plus = 108
311+
smart_mode = 110
312+
313+
303314
class RoborockFanSpeedSaros10R(RoborockFanPowerCode):
304315
off = 105
305316
quiet = 101
@@ -379,6 +390,15 @@ class RoborockMopModeQRevoMaxV(RoborockMopModeCode):
379390
smart_mode = 306
380391

381392

393+
class RoborockMopModeSaros10(RoborockMopModeCode):
394+
standard = 300
395+
deep = 301
396+
custom = 302
397+
deep_plus = 303
398+
fast = 304
399+
smart_mode = 306
400+
401+
382402
class RoborockMopIntensityCode(RoborockEnum):
383403
"""Describes the mop intensity of the vacuum cleaner."""
384404

@@ -458,6 +478,16 @@ class RoborockMopIntensityS8MaxVUltra(RoborockMopIntensityCode):
458478
custom_water_flow = 207
459479

460480

481+
class RoborockMopIntensitySaros10(RoborockMopIntensityCode):
482+
off = 200
483+
mild = 201
484+
standard = 202
485+
intense = 203
486+
extreme = 208
487+
custom = 204
488+
smart_mode = 209
489+
490+
461491
class RoborockMopIntensitySaros10R(RoborockMopIntensityCode):
462492
off = 200
463493
low = 201

roborock/const.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
ROBOROCK_QREVO_PRO = "roborock.vacuum.a101"
5252
ROBOROCK_QREVO_MAXV = "roborock.vacuum.a87"
5353
ROBOROCK_SAROS_10R = "roborock.vacuum.a144"
54+
ROBOROCK_SAROS_10 = "roborock.vacuum.a147"
5455

5556
ROBOROCK_DYAD_AIR = "roborock.wetdryvac.a107"
5657
ROBOROCK_DYAD_PRO_COMBO = "roborock.wetdryvac.a83"

roborock/containers.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
RoborockFanSpeedS7,
2929
RoborockFanSpeedS7MaxV,
3030
RoborockFanSpeedS8MaxVUltra,
31+
RoborockFanSpeedSaros10,
3132
RoborockFanSpeedSaros10R,
3233
RoborockFinishReason,
3334
RoborockInCleaning,
@@ -41,6 +42,7 @@
4142
RoborockMopIntensityS6MaxV,
4243
RoborockMopIntensityS7,
4344
RoborockMopIntensityS8MaxVUltra,
45+
RoborockMopIntensitySaros10,
4446
RoborockMopIntensitySaros10R,
4547
RoborockMopModeCode,
4648
RoborockMopModeQRevoCurv,
@@ -49,6 +51,7 @@
4951
RoborockMopModeS7,
5052
RoborockMopModeS8MaxVUltra,
5153
RoborockMopModeS8ProUltra,
54+
RoborockMopModeSaros10,
5255
RoborockMopModeSaros10R,
5356
RoborockStartType,
5457
RoborockStateCode,
@@ -77,6 +80,7 @@
7780
ROBOROCK_S8,
7881
ROBOROCK_S8_MAXV_ULTRA,
7982
ROBOROCK_S8_PRO_ULTRA,
83+
ROBOROCK_SAROS_10,
8084
ROBOROCK_SAROS_10R,
8185
SENSOR_DIRTY_REPLACE_TIME,
8286
SIDE_BRUSH_REPLACE_TIME,
@@ -689,6 +693,13 @@ class Saros10RStatus(Status):
689693
mop_mode: RoborockMopModeSaros10R | None = None
690694

691695

696+
@dataclass
697+
class Saros10Status(Status):
698+
fan_power: RoborockFanSpeedSaros10 | None = None
699+
water_box_mode: RoborockMopIntensitySaros10 | None = None
700+
mop_mode: RoborockMopModeSaros10 | None = None
701+
702+
692703
ModelStatus: dict[str, type[Status]] = {
693704
ROBOROCK_S4_MAX: S4MaxStatus,
694705
ROBOROCK_S5_MAX: S5MaxStatus,
@@ -713,6 +724,7 @@ class Saros10RStatus(Status):
713724
ROBOROCK_QREVO_PRO: P10Status,
714725
ROBOROCK_S8_MAXV_ULTRA: S8MaxvUltraStatus,
715726
ROBOROCK_SAROS_10R: Saros10RStatus,
727+
ROBOROCK_SAROS_10: Saros10Status,
716728
}
717729

718730

0 commit comments

Comments
 (0)