16
16
RoborockDockWashTowelModeCode ,
17
17
RoborockErrorCode ,
18
18
RoborockFanPowerCode ,
19
+ RoborockFanSpeedP10 ,
19
20
RoborockFanSpeedQ7Max ,
20
21
RoborockFanSpeedS6Pure ,
21
22
RoborockFanSpeedS7 ,
32
33
FILTER_REPLACE_TIME ,
33
34
MAIN_BRUSH_REPLACE_TIME ,
34
35
ROBOROCK_G10S_PRO ,
36
+ ROBOROCK_P10 ,
35
37
ROBOROCK_Q7_MAX ,
36
38
ROBOROCK_S4_MAX ,
37
39
ROBOROCK_S5_MAX ,
@@ -282,6 +284,16 @@ class Status(RoborockBase):
282
284
charge_status : Optional [int ] = None
283
285
unsave_map_reason : Optional [int ] = None
284
286
unsave_map_flag : Optional [int ] = None
287
+ wash_status : Optional [int ] = None
288
+ distance_off : Optional [int ] = None
289
+ in_warmup : Optional [int ] = None
290
+ dry_status : Optional [int ] = None
291
+ rdt : Optional [int ] = None
292
+ clean_percent : Optional [int ] = None
293
+ rss : Optional [int ] = None
294
+ dss : Optional [int ] = None
295
+ common_status : Optional [int ] = None
296
+ corner_clean_mode : Optional [int ] = None
285
297
286
298
def __post_init__ (self ) -> None :
287
299
self .square_meter_clean_area = round (self .clean_area / 1000000 , 1 ) if self .clean_area is not None else None
@@ -345,6 +357,13 @@ class S8Status(Status):
345
357
mop_mode : Optional [RoborockMopModeS8ProUltra ] = None
346
358
347
359
360
+ @dataclass
361
+ class P10Status (Status ):
362
+ fan_power : Optional [RoborockFanSpeedP10 ] = None
363
+ water_box_mode : Optional [RoborockMopIntensityV2 ] = None
364
+ mop_mode : Optional [RoborockMopModeS8ProUltra ] = None
365
+
366
+
348
367
ModelStatus : dict [str , Type [Status ]] = {
349
368
ROBOROCK_S4_MAX : S4MaxStatus ,
350
369
ROBOROCK_S5_MAX : S5MaxStatus ,
@@ -357,6 +376,7 @@ class S8Status(Status):
357
376
ROBOROCK_S8 : S8Status ,
358
377
ROBOROCK_S8_PRO_ULTRA : S8ProUltraStatus ,
359
378
ROBOROCK_G10S_PRO : S7MaxVStatus ,
379
+ ROBOROCK_P10 : P10Status ,
360
380
}
361
381
362
382
@@ -378,6 +398,7 @@ class CleanSummary(RoborockBase):
378
398
clean_count : Optional [int ] = None
379
399
dust_collection_count : Optional [int ] = None
380
400
records : Optional [list [int ]] = None
401
+ last_clean_t : Optional [int ] = None
381
402
382
403
def __post_init__ (self ) -> None :
383
404
self .square_meter_clean_area = round (self .clean_area / 1000000 , 1 ) if self .clean_area is not None else None
0 commit comments