Skip to content

Commit e42729a

Browse files
feat: add support for qrevo curv (#253)
* add support for qrevo curv * add dock support * revert unnecessary changes * fix: lint --------- Co-authored-by: Luke Lashley <[email protected]>
1 parent 2d24a66 commit e42729a

File tree

4 files changed

+41
-0
lines changed

4 files changed

+41
-0
lines changed

roborock/code_mappings.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,15 @@ class RoborockFanSpeedQRevoMaster(RoborockFanPowerCode):
254254
smart_mode = 110
255255

256256

257+
class RoborockFanSpeedQRevoCurv(RoborockFanPowerCode):
258+
quiet = 101
259+
balanced = 102
260+
turbo = 103
261+
max = 104
262+
max_plus = 105
263+
smart_mode = 110
264+
265+
257266
class RoborockFanSpeedP10(RoborockFanPowerCode):
258267
off = 105
259268
quiet = 101
@@ -279,6 +288,14 @@ class RoborockMopModeCode(RoborockEnum):
279288
"""Describes the mop mode of the vacuum cleaner."""
280289

281290

291+
class RoborockMopModeQRevoCurv(RoborockMopModeCode):
292+
standard = 300
293+
deep = 301
294+
deep_plus = 303
295+
fast = 304
296+
smart_mode = 306
297+
298+
282299
class RoborockMopModeS7(RoborockMopModeCode):
283300
"""Describes the mop mode of the vacuum cleaner."""
284301

@@ -351,6 +368,15 @@ class RoborockMopIntensityQRevoMaster(RoborockMopIntensityCode):
351368
smart_mode = 209
352369

353370

371+
class RoborockMopIntensityQRevoCurv(RoborockMopIntensityCode):
372+
off = 200
373+
low = 201
374+
medium = 202
375+
high = 203
376+
custom_water_flow = 207
377+
smart_mode = 209
378+
379+
354380
class RoborockMopIntensityP10(RoborockMopIntensityCode):
355381
"""Describes the mop intensity of the vacuum cleaner."""
356382

@@ -431,6 +457,7 @@ class RoborockDockTypeCode(RoborockEnum):
431457
s8_maxv_ultra_dock = 10
432458
qrevo_master_dock = 14
433459
qrevo_s_dock = 15
460+
qrevo_curv_dock = 17
434461

435462

436463
class RoborockDockDustCollectionModeCode(RoborockEnum):

roborock/const.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
ROBOROCK_Q7_MAX = "roborock.vacuum.a38"
3232
ROBOROCK_Q7PLUS = "roborock.vacuum.a40"
3333
ROBOROCK_QREVO_MASTER = "roborock.vacuum.a117"
34+
ROBOROCK_QREVO_CURV = "roborock.vacuum.a135"
3435
ROBOROCK_Q8_MAX = "roborock.vacuum.a73"
3536
ROBOROCK_G10S_PRO = "roborock.vacuum.a26"
3637
ROBOROCK_G10S = "roborock.vacuum.a46"

roborock/containers.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
RoborockFanPowerCode,
2121
RoborockFanSpeedP10,
2222
RoborockFanSpeedQ7Max,
23+
RoborockFanSpeedQRevoCurv,
2324
RoborockFanSpeedQRevoMaster,
2425
RoborockFanSpeedS6Pure,
2526
RoborockFanSpeedS7,
@@ -30,12 +31,14 @@
3031
RoborockMopIntensityCode,
3132
RoborockMopIntensityP10,
3233
RoborockMopIntensityQ7Max,
34+
RoborockMopIntensityQRevoCurv,
3335
RoborockMopIntensityQRevoMaster,
3436
RoborockMopIntensityS5Max,
3537
RoborockMopIntensityS6MaxV,
3638
RoborockMopIntensityS7,
3739
RoborockMopIntensityS8MaxVUltra,
3840
RoborockMopModeCode,
41+
RoborockMopModeQRevoCurv,
3942
RoborockMopModeQRevoMaster,
4043
RoborockMopModeS7,
4144
RoborockMopModeS8MaxVUltra,
@@ -52,6 +55,7 @@
5255
ROBOROCK_G10S_PRO,
5356
ROBOROCK_P10,
5457
ROBOROCK_Q7_MAX,
58+
ROBOROCK_QREVO_CURV,
5559
ROBOROCK_QREVO_MASTER,
5660
ROBOROCK_QREVO_MAXV,
5761
ROBOROCK_QREVO_PRO,
@@ -581,6 +585,13 @@ class QRevoMasterStatus(Status):
581585
mop_mode: RoborockMopModeQRevoMaster | None = None
582586

583587

588+
@dataclass
589+
class QRevoCurvStatus(Status):
590+
fan_power: RoborockFanSpeedQRevoCurv | None = None
591+
water_box_mode: RoborockMopIntensityQRevoCurv | None = None
592+
mop_mode: RoborockMopModeQRevoCurv | None = None
593+
594+
584595
@dataclass
585596
class S6MaxVStatus(Status):
586597
fan_power: RoborockFanSpeedS7MaxV | None = None
@@ -639,6 +650,7 @@ class S8MaxvUltraStatus(Status):
639650
ROBOROCK_S5_MAX: S5MaxStatus,
640651
ROBOROCK_Q7_MAX: Q7MaxStatus,
641652
ROBOROCK_QREVO_MASTER: QRevoMasterStatus,
653+
ROBOROCK_QREVO_CURV: QRevoCurvStatus,
642654
ROBOROCK_S6: S6PureStatus,
643655
ROBOROCK_S6_MAXV: S6MaxVStatus,
644656
ROBOROCK_S6_PURE: S6PureStatus,

roborock/version_1_apis/roborock_client_v1.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
RoborockDockTypeCode.p10_pro_dock,
7272
RoborockDockTypeCode.s8_maxv_ultra_dock,
7373
RoborockDockTypeCode.qrevo_s_dock,
74+
RoborockDockTypeCode.qrevo_curv_dock,
7475
]
7576
RT = TypeVar("RT", bound=RoborockBase)
7677
EVICT_TIME = 60

0 commit comments

Comments
 (0)