44
55
66class RoborockEnum (str , Enum ):
7-
87 def __str__ (self ):
98 return str (self .value )
109
@@ -29,113 +28,138 @@ def items(cls):
2928 return cls .as_dict ().items ()
3029
3130
32- class RoborockCode :
33-
34- def __new__ (cls , name : str , data : dict ):
35- return RoborockEnum (name , {str (key ): value for key , value in data .items ()})
36-
37-
38- RoborockStateCode = RoborockCode ("RoborockStateCode" , {
39- 1 : "starting" ,
40- 2 : "charger_disconnected" ,
41- 3 : "idle" ,
42- 4 : "remote_control_active" ,
43- 5 : "cleaning" ,
44- 6 : "returning_home" ,
45- 7 : "manual_mode" ,
46- 8 : "charging" ,
47- 9 : "charging_problem" ,
48- 10 : "paused" ,
49- 11 : "spot_cleaning" ,
50- 12 : "error" ,
51- 13 : "shutting_down" ,
52- 14 : "updating" ,
53- 15 : "docking" ,
54- 16 : "going_to_target" ,
55- 17 : "zoned_cleaning" ,
56- 18 : "segment_cleaning" ,
57- 22 : "emptying_the_bin" , # on s7+, see #1189
58- 23 : "washing_the_mop" , # on a46, #1435
59- 26 : "going_to_wash_the_mop" , # on a46, #1435
60- 100 : "charging_complete" ,
61- 101 : "device_offline" ,
62- })
63-
64- RoborockErrorCode = RoborockCode ("RoborockErrorCode" , {
65- 0 : "none" ,
66- 1 : "lidar_blocked" ,
67- 2 : "bumper_stuck" ,
68- 3 : "wheels_suspended" ,
69- 4 : "cliff_sensor_error" ,
70- 5 : "main_brush_jammed" ,
71- 6 : "side_brush_jammed" ,
72- 7 : "wheels_jammed" ,
73- 8 : "robot_trapped" ,
74- 9 : "no_dustbin" ,
75- 12 : "low_battery" ,
76- 13 : "charging_error" ,
77- 14 : "battery_error" ,
78- 15 : "wall_sensor_dirty" ,
79- 16 : "robot_tilted" ,
80- 17 : "side_brush_error" ,
81- 18 : "fan_error" ,
82- 21 : "vertical_bumper_pressed" ,
83- 22 : "dock_locator_error" ,
84- 23 : "return_to_dock_fail" ,
85- 24 : "no-go_zone_detected" ,
86- 27 : "vibrarise_jammed" ,
87- 28 : "robot_on_carpet" ,
88- 29 : "filter_blocked" ,
89- 30 : "invisible_wall_detected" ,
90- 31 : "cannot_cross_carpet" ,
91- 32 : "internal_error"
92- })
93-
94- RoborockFanPowerCode = RoborockCode ("RoborockFanPowerCode" , {
95- 105 : "off" ,
96- 101 : "silent" ,
97- 102 : "balanced" ,
98- 103 : "turbo" ,
99- 104 : "max" ,
100- 108 : "max_plus" ,
101- 106 : "custom" ,
102- })
103-
104- RoborockMopModeCode = RoborockCode ("RoborockMopModeCode" , {
105- 300 : "standard" ,
106- 301 : "deep" ,
107- 303 : "deep_plus" ,
108- 302 : "custom" ,
109- })
110-
111- RoborockMopIntensityCode = RoborockCode ("RoborockMopIntensityCode" , {
112- 200 : "off" ,
113- 201 : "mild" ,
114- 202 : "moderate" ,
115- 203 : "intense" ,
116- 204 : "custom" ,
117- })
118-
119- RoborockDockErrorCode = RoborockCode ("RoborockDockErrorCode" , {
120- 0 : "ok" ,
121- 38 : 'water empty' ,
122- 39 : 'waste water tank full' ,
123- })
124-
125- RoborockDockTypeCode = RoborockCode ("RoborockDockTypeCode" , {
126- 0 : "no_dock" ,
127- 3 : "empty_wash_fill_dock" ,
128- })
129-
130- RoborockDockDustCollectionModeCode = RoborockCode ("RoborockDockDustCollectionModeCode" , {
131- 0 : "smart" ,
132- 1 : "light" ,
133- 2 : "balanced" ,
134- 4 : "max" ,
135- })
136-
137- RoborockDockWashTowelModeCode = RoborockCode ("RoborockDockWashTowelModeCode" , {
138- 0 : "light" ,
139- 1 : "balanced" ,
140- 2 : "deep" ,
141- })
31+ def create_code_enum (name : str , data : dict ) -> RoborockEnum :
32+ return RoborockEnum (name , {str (key ): value for key , value in data .items ()})
33+
34+
35+ RoborockStateCode = create_code_enum (
36+ "RoborockStateCode" ,
37+ {
38+ 1 : "starting" ,
39+ 2 : "charger_disconnected" ,
40+ 3 : "idle" ,
41+ 4 : "remote_control_active" ,
42+ 5 : "cleaning" ,
43+ 6 : "returning_home" ,
44+ 7 : "manual_mode" ,
45+ 8 : "charging" ,
46+ 9 : "charging_problem" ,
47+ 10 : "paused" ,
48+ 11 : "spot_cleaning" ,
49+ 12 : "error" ,
50+ 13 : "shutting_down" ,
51+ 14 : "updating" ,
52+ 15 : "docking" ,
53+ 16 : "going_to_target" ,
54+ 17 : "zoned_cleaning" ,
55+ 18 : "segment_cleaning" ,
56+ 22 : "emptying_the_bin" , # on s7+, see #1189
57+ 23 : "washing_the_mop" , # on a46, #1435
58+ 26 : "going_to_wash_the_mop" , # on a46, #1435
59+ 100 : "charging_complete" ,
60+ 101 : "device_offline" ,
61+ },
62+ )
63+
64+ RoborockErrorCode = create_code_enum (
65+ "RoborockErrorCode" ,
66+ {
67+ 0 : "none" ,
68+ 1 : "lidar_blocked" ,
69+ 2 : "bumper_stuck" ,
70+ 3 : "wheels_suspended" ,
71+ 4 : "cliff_sensor_error" ,
72+ 5 : "main_brush_jammed" ,
73+ 6 : "side_brush_jammed" ,
74+ 7 : "wheels_jammed" ,
75+ 8 : "robot_trapped" ,
76+ 9 : "no_dustbin" ,
77+ 12 : "low_battery" ,
78+ 13 : "charging_error" ,
79+ 14 : "battery_error" ,
80+ 15 : "wall_sensor_dirty" ,
81+ 16 : "robot_tilted" ,
82+ 17 : "side_brush_error" ,
83+ 18 : "fan_error" ,
84+ 21 : "vertical_bumper_pressed" ,
85+ 22 : "dock_locator_error" ,
86+ 23 : "return_to_dock_fail" ,
87+ 24 : "no-go_zone_detected" ,
88+ 27 : "vibrarise_jammed" ,
89+ 28 : "robot_on_carpet" ,
90+ 29 : "filter_blocked" ,
91+ 30 : "invisible_wall_detected" ,
92+ 31 : "cannot_cross_carpet" ,
93+ 32 : "internal_error" ,
94+ },
95+ )
96+
97+ RoborockFanPowerCode = create_code_enum (
98+ "RoborockFanPowerCode" ,
99+ {
100+ 105 : "off" ,
101+ 101 : "silent" ,
102+ 102 : "balanced" ,
103+ 103 : "turbo" ,
104+ 104 : "max" ,
105+ 108 : "max_plus" ,
106+ 106 : "custom" ,
107+ },
108+ )
109+
110+ RoborockMopModeCode = create_code_enum (
111+ "RoborockMopModeCode" ,
112+ {
113+ 300 : "standard" ,
114+ 301 : "deep" ,
115+ 303 : "deep_plus" ,
116+ 302 : "custom" ,
117+ },
118+ )
119+
120+ RoborockMopIntensityCode = create_code_enum (
121+ "RoborockMopIntensityCode" ,
122+ {
123+ 200 : "off" ,
124+ 201 : "mild" ,
125+ 202 : "moderate" ,
126+ 203 : "intense" ,
127+ 204 : "custom" ,
128+ },
129+ )
130+
131+ RoborockDockErrorCode = create_code_enum (
132+ "RoborockDockErrorCode" ,
133+ {
134+ 0 : "ok" ,
135+ 38 : "water empty" ,
136+ 39 : "waste water tank full" ,
137+ },
138+ )
139+
140+ RoborockDockTypeCode = create_code_enum (
141+ "RoborockDockTypeCode" ,
142+ {
143+ 0 : "no_dock" ,
144+ 3 : "empty_wash_fill_dock" ,
145+ },
146+ )
147+
148+ RoborockDockDustCollectionModeCode = create_code_enum (
149+ "RoborockDockDustCollectionModeCode" ,
150+ {
151+ 0 : "smart" ,
152+ 1 : "light" ,
153+ 2 : "balanced" ,
154+ 4 : "max" ,
155+ },
156+ )
157+
158+ RoborockDockWashTowelModeCode = create_code_enum (
159+ "RoborockDockWashTowelModeCode" ,
160+ {
161+ 0 : "light" ,
162+ 1 : "balanced" ,
163+ 2 : "deep" ,
164+ },
165+ )
0 commit comments