|
4 | 4 | import math |
5 | 5 | import time |
6 | 6 | from dataclasses import dataclass, field |
| 7 | +from enum import StrEnum |
7 | 8 |
|
8 | 9 | from roborock import RoborockEnum |
9 | 10 | from roborock.util import get_next_int |
@@ -130,6 +131,98 @@ class RoborockZeoProtocol(RoborockEnum): |
130 | 131 | RPC_RESp = 10102 |
131 | 132 |
|
132 | 133 |
|
| 134 | +class RoborockB01Protocol(RoborockEnum): |
| 135 | + RPC_REQUEST = 101 |
| 136 | + RPC_RESPONSE = 102 |
| 137 | + ERROR_CODE = 120 |
| 138 | + STATE = 121 |
| 139 | + BATTERY = 122 |
| 140 | + FAN_POWER = 123 |
| 141 | + WATER_BOX_MODE = 124 |
| 142 | + MAIN_BRUSH_LIFE = 125 |
| 143 | + SIDE_BRUSH_LIFE = 126 |
| 144 | + FILTER_LIFE = 127 |
| 145 | + OFFLINE_STATUS = 135 |
| 146 | + CLEAN_TIMES = 136 |
| 147 | + CLEANING_PREFERENCE = 137 |
| 148 | + CLEAN_TASK_TYPE = 138 |
| 149 | + BACK_TYPE = 139 |
| 150 | + DOCK_TASK_TYPE = 140 |
| 151 | + CLEANING_PROGRESS = 141 |
| 152 | + FC_STATE = 142 |
| 153 | + START_CLEAN_TASK = 201 |
| 154 | + START_BACK_DOCK_TASK = 202 |
| 155 | + START_DOCK_TASK = 203 |
| 156 | + PAUSE = 204 |
| 157 | + RESUME = 205 |
| 158 | + STOP = 206 |
| 159 | + CEIP = 207 |
| 160 | + |
| 161 | + |
| 162 | +class RoborockB01Props(StrEnum): |
| 163 | + """Properties requested by the Roborock B01 model.""" |
| 164 | + |
| 165 | + STATUS = "status" |
| 166 | + FAULT = "fault" |
| 167 | + WIND = "wind" |
| 168 | + WATER = "water" |
| 169 | + MODE = "mode" |
| 170 | + QUANTITY = "quantity" |
| 171 | + ALARM = "alarm" |
| 172 | + VOLUME = "volume" |
| 173 | + HYPA = "hypa" |
| 174 | + MAIN_BRUSH = "main_brush" |
| 175 | + SIDE_BRUSH = "side_brush" |
| 176 | + MOP_LIFE = "mop_life" |
| 177 | + MAIN_SENSOR = "main_sensor" |
| 178 | + NET_STATUS = "net_status" |
| 179 | + REPEAT_STATE = "repeat_state" |
| 180 | + TANK_STATE = "tank_state" |
| 181 | + SWEEP_TYPE = "sweep_type" |
| 182 | + CLEAN_PATH_PREFERENCE = "clean_path_preference" |
| 183 | + CLOTH_STATE = "cloth_state" |
| 184 | + TIME_ZONE = "time_zone" |
| 185 | + TIME_ZONE_INFO = "time_zone_info" |
| 186 | + LANGUAGE = "language" |
| 187 | + CLEANING_TIME = "cleaning_time" |
| 188 | + REAL_CLEAN_TIME = "real_clean_time" |
| 189 | + CLEANING_AREA = "cleaning_area" |
| 190 | + CUSTOM_TYPE = "custom_type" |
| 191 | + SOUND = "sound" |
| 192 | + WORK_MODE = "work_mode" |
| 193 | + STATION_ACT = "station_act" |
| 194 | + CHARGE_STATE = "charge_state" |
| 195 | + CURRENT_MAP_ID = "current_map_id" |
| 196 | + MAP_NUM = "map_num" |
| 197 | + DUST_ACTION = "dust_action" |
| 198 | + QUIET_IS_OPEN = "quiet_is_open" |
| 199 | + QUIET_BEGIN_TIME = "quiet_begin_time" |
| 200 | + QUIET_END_TIME = "quiet_end_time" |
| 201 | + CLEAN_FINISH = "clean_finish" |
| 202 | + VOICE_TYPE = "voice_type" |
| 203 | + VOICE_TYPE_VERSION = "voice_type_version" |
| 204 | + ORDER_TOTAL = "order_total" |
| 205 | + BUILD_MAP = "build_map" |
| 206 | + PRIVACY = "privacy" |
| 207 | + DUST_AUTO_STATE = "dust_auto_state" |
| 208 | + DUST_FREQUENCY = "dust_frequency" |
| 209 | + CHILD_LOCK = "child_lock" |
| 210 | + MULTI_FLOOR = "multi_floor" |
| 211 | + MAP_SAVE = "map_save" |
| 212 | + LIGHT_MODE = "light_mode" |
| 213 | + GREEN_LASER = "green_laser" |
| 214 | + DUST_BAG_USED = "dust_bag_used" |
| 215 | + ORDER_SAVE_MODE = "order_save_mode" |
| 216 | + MANUFACTURER = "manufacturer" |
| 217 | + BACK_TO_WASH = "back_to_wash" |
| 218 | + CHARGE_STATION_TYPE = "charge_station_type" |
| 219 | + PV_CUT_CHARGE = "pv_cut_charge" |
| 220 | + PV_CHARGING = "pv_charging" |
| 221 | + SERIAL_NUMBER = "serial_number" |
| 222 | + RECOMMEND = "recommend" |
| 223 | + ADD_SWEEP_STATUS = "add_sweep_status" |
| 224 | + |
| 225 | + |
133 | 226 | ROBOROCK_DATA_STATUS_PROTOCOL = [ |
134 | 227 | RoborockDataProtocol.ERROR_CODE, |
135 | 228 | RoborockDataProtocol.STATE, |
|
0 commit comments