Root Cause (from Reaver analysis)
Three naming layers were confused:
- MQTT topic (wire format) — correct
- Dart function name — internal only
- UI/i18n key — localization string
Corrections Needed
| Wrong Name |
Correct Name |
Root Cause |
read_all_clean_area |
read_clean_area |
Pattern guess |
readCleanArea |
read_clean_area |
camelCase confusion |
obstacle_toggle |
ignore_obstacles |
Two distinct commands confused |
setIgnoreObstacle |
ignore_obstacles |
Dart error-log string |
shutdownYarbo |
shutdown |
Dart method name |
restart_yarbo_system |
restart_container |
UI localization key |
Also
ignore_obstacles payload is {"state": int} not {"enabled": bool}
set_person_detect requires {"disable": bool, "key": ???} — empty {} returns state:-1
Audit all command strings in codebase against MQTT_PROTOCOL.md.
Root Cause (from Reaver analysis)
Three naming layers were confused:
Corrections Needed
read_all_clean_arearead_clean_areareadCleanArearead_clean_areaobstacle_toggleignore_obstaclessetIgnoreObstacleignore_obstaclesshutdownYarboshutdownrestart_yarbo_systemrestart_containerAlso
ignore_obstaclespayload is{"state": int}not{"enabled": bool}set_person_detectrequires{"disable": bool, "key": ???}— empty{}returns state:-1Audit all command strings in codebase against MQTT_PROTOCOL.md.