OTA State Machine
Zustände
idle(implizit/Fallback)busy(bei konkurrierenden Update-Tasks: 429)started(POST/api/update/*akzeptiert)success(Phase mit Fallback-Meldung "Update abgeschlossen")disabled(spezifisch/api/update/web)
Übergänge
idle -> starteddurchPOST /api/update/now|firmware|ota/install.* -> busywenn paralleler OTA-Lauf erkannt wird (429).* -> disabledbeiPOST /api/update/web(403).started -> success|...durch interne OTA-Orchestrierung.
Trigger
- HTTP Requests auf
/api/check,/api/check_cached,/api/update/*,/api/update/status.
Fehlerpfade
429 {"status":"busy"}bei blockierten Starts.403 {"status":"disabled","reason":"web_update_requires_firmware_ota"}bei Web-Update.
Edgecases
- Persistierter Zustand kann
phase/messageliefern, wenn Runtimeidlemeldet.