@@ -294,25 +294,24 @@ class YXFault(RoborockModeEnum):
294294
295295 ``dpFault`` is *overloaded*: several values are lifecycle/status rather than
296296 errors (e.g. 400 = scheduled clean starting, 501 = returning to dock,
297- 502 = recharge). A non-zero fault is only a *blocking* error when the app
298- routes the code into its ``D_ErrorCode`` bucket; alert/offline codes are softer.
297+ 502 = recharge). A non-zero fault is not necessarily a blocking error.
299298
300299 These labels follow the ss07 app text, which differs from the Q7 ``B01Fault``
301- for several shared numbers (500, 501, 503, 569, 570) -- so this is a
302- Q10-specific map, not a reuse of ``B01Fault``. Codes marked "seen live " were
303- observed as raw ``dpFault`` values on a physical ss07; the rest are
304- app-sourced only (n=1, not hardware-confirmed ).
300+ for several shared numbers (500, 501, 503, 570) -- so this is a Q10-specific
301+ map, not a reuse of ``B01Fault``. Codes marked "hw-confirmed " were observed
302+ firing live on a physical ss07 in a context matching the label ; the rest are
303+ app-sourced only (single device, single app version ).
305304 """
306305
307306 UNKNOWN = "unknown" , - 1
308307 NONE = "none" , 0
309308 LIDAR_BLOCKED = "lidar_blocked" , 1
310309 BUMPER_STUCK = "bumper_stuck" , 2
311- ROBOT_SUSPENDED = "robot_suspended" , 3
312- CLIFF_SENSOR_ERROR = "cliff_sensor_error" , 4
310+ ROBOT_SUSPENDED = "robot_suspended" , 3 # hw-confirmed (wheels lifted off the floor mid-task)
311+ CLIFF_SENSOR_ERROR = "cliff_sensor_error" , 4 # hw-confirmed (one side lifted mid-task)
313312 MAIN_BRUSH_STUCK = "main_brush_stuck" , 5
314313 MAIN_WHEELS_STUCK = "main_wheels_stuck" , 7
315- ROBOT_TRAPPED = "robot_trapped" , 8 # seen live
314+ ROBOT_TRAPPED = "robot_trapped" , 8 # hw-confirmed
316315 CHECK_DUSTBIN_FILTER = "check_dustbin_filter" , 9
317316 LOW_BATTERY = "low_battery" , 12
318317 TEMPERATURE_THRESHOLD = "temperature_threshold" , 14
@@ -328,17 +327,16 @@ class YXFault(RoborockModeEnum):
328327 FILTER_SERVICE_LIFE = "filter_service_life" , 301
329328 MAIN_BRUSH_SERVICE_LIFE = "main_brush_service_life" , 302
330329 SIDE_BRUSH_SERVICE_LIFE = "side_brush_service_life" , 303
331- SENSOR_NEEDS_CLEANING = "sensor_needs_cleaning" , 304
332- DUST_BAG_FULL = "dust_bag_full" , 310
333- STARTING_SCHEDULED_CLEAN = "starting_scheduled_clean" , 400 # seen live ; lifecycle, not an error
330+ SENSOR_NEEDS_CLEANING = "sensor_needs_cleaning" , 304 # hw-confirmed (fired during auto-empty)
331+ DUST_BAG_FULL = "dust_bag_full" , 310 # inferred from auto-empty context; not hw-confirmed
332+ STARTING_SCHEDULED_CLEAN = "starting_scheduled_clean" , 400 # hw-confirmed x3 ; lifecycle, not an error
334333 CLEANING_IN_PROGRESS = "cleaning_in_progress" , 407
335- EMPTY_DUSTBIN = "empty_dustbin" , 500 # ss07 != Q7 B01Fault (lidar_blocked)
336- CLEANING_COMPLETED_RETURNING = "cleaning_completed_returning" , 501 # ss07 != Q7 (robot_suspended)
337- LOW_BATTERY_RESUME = "low_battery_resume" , 502
338- DOCKING_ERROR = "docking_error" , 503 # seen live; ss07 != Q7 (dustbin_not_installed)
339- POSITIONING_FAILED = "positioning_failed" , 556 # seen live; relocalization
340- TOO_FREQUENT_EMPTYING = "too_frequent_emptying" , 569 # ss07 != Q7 (main_wheels_entangled)
341- CANNOT_REACH_TARGET = "cannot_reach_target" , 570 # seen live; ss07 != Q7 (main_brush_entangled)
334+ EMPTY_DUSTBIN = "empty_dustbin" , 500 # ss07 != Q7 B01Fault (lidar_blocked); app-sourced
335+ CLEANING_COMPLETED_RETURNING = "cleaning_completed_returning" , 501 # hw-confirmed; ss07 != Q7 (robot_suspended)
336+ LOW_BATTERY_RESUME = "low_battery_resume" , 502 # hw-confirmed; lifecycle
337+ DOCKING_ERROR = "docking_error" , 503 # hw-confirmed; ss07 != Q7 (dustbin_not_installed)
338+ POSITIONING_FAILED = "positioning_failed" , 556 # hw-confirmed; relocalization
339+ CANNOT_REACH_TARGET = "cannot_reach_target" , 570 # hw-confirmed; ss07 != Q7 (main_brush_entangled)
342340 OFFLINE_WARNING_ASLEEP = "offline_warning_asleep" , 588
343341 OFFLINE_WARNING_LOW_BATTERY = "offline_warning_low_battery" , 589
344342 DND_AUTO_TOPUP_DISABLED = "dnd_auto_topup_disabled" , 591
0 commit comments