v0.5.4 ist live — der Schwerpunkt liegt diesmal komplett auf der Login-UX nach euren Rückmeldungen aus diesem Thread. Plus
drei kleine Quality-Fixes, die mir beim Live-Test aufgefallen sind.
Login-UX-Overhaul
Bosch-Login-Button direkt in den Instanz-Einstellungen. Die OAuth-URL wird jetzt zusätzlich als Datenpunkt
bosch-smart-home-camera.0.info.login_url veröffentlicht und als klickbarer Link in der Admin-UI gerendert. Über den neuen
Button „Bosch-Login im Browser öffnen" öffnet sich der OAuth-Flow direkt in einem neuen Tab. Kein Heraussuchen einer
300-Zeichen-URL aus dem Log-Inspektor mehr.
Kein Terminate-Loop mehr beim Warten auf Login. Wenn eine alte redirect_url oder ein abgelaufenes PKCE-Paar den
Token-Tausch killen, bleibt der Adapter jetzt im awaiting_login-Modus am Leben statt sich jedes Mal selbst zu beenden. Das
„sieht kaputt aus"-Verhalten ist damit weg.
Neuer „Login zurücksetzen"-Button mit Bestätigungs-Dialog: löscht Tokens, PKCE-Paar, gepastete URL und login_url in
einem Klick und startet den Adapter neu für einen frischen OAuth-Cycle. Praktisch, wenn man sich verheddert hat oder das
Bosch-Konto wechseln will.
Bessere Diagnose-Datenpunkte
info.connection_status (Text): logged_out | awaiting_login | connected | auth_error — viel klarer für Blockly-
und VIS-Logik als der reine Boolean info.connection.
info.last_login_at (ISO-Zeitstempel): wann der letzte erfolgreiche Token-Mint war. Hilft einzuschätzen, wie nah das
Refresh-Token an den 30 Tagen offline_access-Lebensdauer dran ist.
Quality-Fixes
Privacy-Modus killt online nicht mehr. Eine Indoor-Kamera in dauerhaftem Privacy-Modus driftete bisher nach drei
Startup-Snapshot-Retries auf online=false, obwohl die Kamera ja erreichbar war — der Snapshot-Endpoint antwortet im
Privacy-Modus halt nicht. Das wird jetzt als User-Status erkannt, nicht als Connectivity-Fehler.
last_motion_at ist jetzt valides ISO 8601. Bosch liefert Zeitstempel im Java-ZonedDateTime-Format mit anhängendem
[Europe/Berlin]. JavaScript-new Date() kann das nicht parsen, Blockly-Vergleiche scheiterten. Der Adapter strippt das
Suffix jetzt. Wer mit dem alten String gearbeitet hat: numerische Vergleiche über new Date(...).getTime() funktionieren ab
v0.5.4 zuverlässig.
Snapshot-Keep-Alive-Doku ehrlich. v0.5.3 hatte „nach dem ersten Snap ~200 ms" versprochen — gemessen sind es 2–5 s
typisch, gelegentlich 10–15 s, weil der Snapshot-Endpoint der Kamera selbst dominiert. Die Session-Wiederverwendung spart
~0,5–1 s (den PUT /connection-Roundtrip). README ist auf den realistischen Wert korrigiert.
Installation
npm: iobroker.bosch-smart-home-camera@0.5.4
GitHub: https://github.com/mosandlt/ioBroker.bosch-smart-home-camera/releases/tag/v0.5.4
Aufnahme ins offizielle Repository
Pull-Request ist offen: https://github.com/ioBroker/ioBroker.repositories/pull/5983 — repochecker ist FINAL: OK. Sobald
der Review durch ist, taucht der Adapter regulär im Admin-„Adapter"-Tab auf und das rote Icon (mittlere Spalte) verschwindet.
Feedback bitte weiterhin hierher — gerade die Login-Pfade waren bisher nur theoretisch durchgetestet, da würde ich gerne
wissen, ob die neuen Buttons in echten Umgebungen anders zicken als in meiner Test-Sandbox.