NEWS
Adapter - Bosch Smart Home Kameras
-
Hallo Jaschkopf,
danke für den präzisen Bericht — der Bug war reproduzierbar und der Fix ist gerade in
v0.7.12raus (Tag gepusht, CI publiziert in den nächsten paar Minuten auf npm).Root cause: jeder Privacy-Edge auf der Kamera (ON→OFF oder OFF→ON) rotiert Bosch-seitig die Digest-Credentials der RTSP-Stream-URL. Unser
_liveSessions-Cache hielt aber innerhalb des 60s-TTL-Fensters die Vor-Toggle-Credentials fest. Dercameras.<id>.stream_url-DP publishte damit weiter die alten Zugangsdaten — BlueIris/VLC bekommen 401, der Adapter selbst ist unauffällig. Restart leerte den Cache, deswegen war das der "Workaround".Fix:
_pollSingleCameraState()erkennt jetzt jede Privacy-Transition über das Cloud-Polling und macht zwei Dinge:- Löscht die gecachte LiveSession aus
_liveSessions - Setzt
cameras.<id>.stream_url+cameras.<id>.stream_url_subauf""
Damit holt der nächste
ensureLiveSession()-Call (Stream-Toggle, Snapshot, RCP-Write, Watchdog-Tick) frische Credentials perPUT /connectionund re-publisht die URLs. Externe Clients sehen sofort einen leeren stream_url-DP statt stale-401 zu spammen.Beide Edges sind abgedeckt, weil Bosch in beiden Richtungen rotiert.
Regression-Tests: 4 Pin-Tests in
test/unit/main_privacy_toggle_invalidates_session.spec.tsfür ON→OFF / OFF→ON / unverändert / kein Cached-Session. Full Suite jetzt 600 passing.Update läuft automatisch über die ioBroker-Repos sobald CI durch ist (~5 Min nach diesem Post). Bei Update auf 0.7.12 dann kurz testen ob BlueIris/VLC nach einem Privacy-Cycle stabil bleibt — falls nicht, einen Debug-Log nachschießen, dann schaue ich nochmal.
Wer's auf GitHub trackt: würde mich freuen wenn du den Bug-Report dort als Issue dokumentierst (
github.com/mosandlt/ioBroker.bosch-smart-home-camera/issues/new) — Forum-Posts gehen mir bei der nächsten Major-Release-Recherche schneller verloren als getrackte Issues.— Thomas
- Löscht die gecachte LiveSession aus
-
Hab es jetzt zwei Mal getestet, beim ersten mal kam der Stream von beiden Cams nicht wieder, hab dann auf Debug Level geswitched und nochmal probiert, jetzt kam eine von beiden Cams wieder live. Im Anhang das Log vom 2. Test. 21:54 privacy on, 21:55 privacy off. Log.txt
-
Hi Jaschkopf,
dein Log aus Post #42 hat die Wurzel des Problems sehr deutlich gezeigt. v0.7.13 ist gerade auf npm und sollte den Bug vollstaendig schliessen.
Was wirklich los war
v0.7.12 hat zwar die
_liveSessions-Cache geleert und diestream_url-DPs auf""gesetzt, aber der TLS-Proxy selbst hatte seine Digest-Credentials schon beim Proxy-Start in einer Closure gefangen. Auf dem Re-Use-Pfad (gleiche Remote-Adresse, Sticky-Port) wurde der Proxy weiterbenutzt ohne dass seine internen Creds aktualisiert wurden. In deinem Log steht das exakt drin:21:55:07.945 TLS proxy E8376BA3: reusing port 33201 (remote unchanged 192.168.178.135:443) 21:55:18.286 RTSP auth E8376BA3: auth dance done (status 401), entering INJECTING mode 21:55:41.767 RTSP auth E8376BA3: auth dance done (status 401), entering INJECTING mode 21:56:11.815 RTSP auth E8376BA3: auth dance done (status 401), entering INJECTING modeDas
reusing portoben war der Schluessel â danach hat der Proxy bei jedem Auth-Dance die alten Pre-Toggle-Creds eingesetzt und 401 kassiert. Die andere Cam (970E981A) hatte schlicht Glueck, dass ihr erster Client-Connect noch in der ersten Session-Phase landete, bevor der Re-Use-Pfad griff.Was v0.7.13 aendert
digestAuthlebt im Proxy jetzt in einem mutable Holder. Neue MethodeupdateDigestAuth(user, password)rotiert die Creds zur Laufzeit ohne Listener-Restart; Sticky-Port und bereits publiziertestream_urlbleiben unangetastet.upsertSession()ruft die Methode bei jedem Session-Refresh auf, auch auf dem Re-Use-Pfad.- Bei ON->OFF und aktivem
livestream_enabledtriggert der Adapter sofort eine frischeensureLiveSession(), damit die rotierten Creds beim Proxy ankommen bevor dein BlueIris reconnectet. - Zusaetzlich als Defense-in-depth: falls trotzdem 401 in der Auth-Dance zurueck kommt, leitet der Proxy das jetzt ehrlich an den Client weiter und schliesst die Verbindung, statt blind in
INJECTING-Mode mit kaputten Creds zu gehen.
Test bitte
Update auf v0.7.13, Privacy ein/aus ueber die Bosch-App und dann auf beiden Cams BlueIris/VLC reconnecten. Bei aktiviertem Debug-Log siehst du beim Toggle jetzt zwei neue Log-Lines pro Cam:
Privacy toggled externally for ... - dropped cached LiveSession ... TLS proxy ...: refreshed Digest creds (user=cbs-...) - next client connection will use rotated credsInteressant waere insbesondere ob die zweite Kamera jetzt auch ohne Verzoegerung wieder verfuegbar ist. Falls trotzdem noch was haengt, melde dich.
Fuer kuenftige Bug-Reports gerne direkt auch ueber GitHub Issues, dann ist die Diskussion an der Codebasis verankert: https://github.com/mosandlt/ioBroker.bosch-smart-home-camera/issues
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden