Skip to content

Commit cf618aa

Browse files
committed
feat: Add Saros 10 code mappings
1 parent 5a2dac0 commit cf618aa

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

roborock/code_mappings.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,16 @@ class RoborockFanSpeedS8MaxVUltra(RoborockFanPowerCode):
299299
max_plus = 108
300300
smart_mode = 110
301301

302+
class RoborockFanSpeedSaros10(RoborockFanPowerCode):
303+
off = 105
304+
quiet = 101
305+
balanced = 102
306+
turbo = 103
307+
max = 104
308+
custom = 106
309+
max_plus = 108
310+
smart_mode = 110
311+
302312

303313
class RoborockFanSpeedSaros10R(RoborockFanPowerCode):
304314
off = 105
@@ -378,6 +388,14 @@ class RoborockMopModeQRevoMaxV(RoborockMopModeCode):
378388
fast = 304
379389
smart_mode = 306
380390

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

382400
class RoborockMopIntensityCode(RoborockEnum):
383401
"""Describes the mop intensity of the vacuum cleaner."""
@@ -457,6 +475,14 @@ class RoborockMopIntensityS8MaxVUltra(RoborockMopIntensityCode):
457475
smart_mode = 209
458476
custom_water_flow = 207
459477

478+
class RoborockMopIntensitySaros10(RoborockMopIntensityCode):
479+
off = 200
480+
mild = 201
481+
standard = 202
482+
intense = 203
483+
extreme = 208
484+
custom = 204
485+
smart_mode = 209
460486

461487
class RoborockMopIntensitySaros10R(RoborockMopIntensityCode):
462488
off = 200

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
@@ -29,6 +29,7 @@
2929
RoborockFanSpeedS7MaxV,
3030
RoborockFanSpeedS8MaxVUltra,
3131
RoborockFanSpeedSaros10R,
32+
RoborockFanSpeedSaros10,
3233
RoborockFinishReason,
3334
RoborockInCleaning,
3435
RoborockMopIntensityCode,
@@ -42,6 +43,7 @@
4243
RoborockMopIntensityS7,
4344
RoborockMopIntensityS8MaxVUltra,
4445
RoborockMopIntensitySaros10R,
46+
RoborockMopIntensitySaros10,
4547
RoborockMopModeCode,
4648
RoborockMopModeQRevoCurv,
4749
RoborockMopModeQRevoMaster,
@@ -50,6 +52,7 @@
5052
RoborockMopModeS8MaxVUltra,
5153
RoborockMopModeS8ProUltra,
5254
RoborockMopModeSaros10R,
55+
RoborockMopModeSaros10,
5356
RoborockStartType,
5457
RoborockStateCode,
5558
)
@@ -78,6 +81,7 @@
7881
ROBOROCK_S8_MAXV_ULTRA,
7982
ROBOROCK_S8_PRO_ULTRA,
8083
ROBOROCK_SAROS_10R,
84+
ROBOROCK_SAROS_10,
8185
SENSOR_DIRTY_REPLACE_TIME,
8286
SIDE_BRUSH_REPLACE_TIME,
8387
STRAINER_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)