4
4
5
5
6
6
class RoborockEnum (str , Enum ):
7
-
8
7
def __str__ (self ):
9
8
return str (self .value )
10
9
@@ -29,113 +28,138 @@ def items(cls):
29
28
return cls .as_dict ().items ()
30
29
31
30
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