NEWS
Adapter - Bosch Smart Home Kameras
-
Habe versucht den Stream in den Cameras Adapter einzubinden, aber bekomme folgende Fehlermeldung beim Verbindungstest: rtsp://127.0.0.1:43047/rtsp_tunnel: Server returned 401 Unauthorized (authorization failed)
Außerdem ändert sich der Port regelmäßig in der Stream URL. In der Cameras Config muss ich den Port aber fest vergeben. Wie löse ich das am besten?

Hi Jaschkopf,
Danke fürs detaillierte Testen — alle drei Punkte habe ich in v0.5.1 (jetzt Beta) angefasst:
Privacy-Sync App → ioBroker
Adapter pollt jetzt alle 30 s/v11/video_inputsund spiegeltprivacyModezurück nachcameras.<id>.privacy_enabled. Wenn du in der App reaktivierst, springt der DP innerhalb von 30 s auffalse.Motion-Trigger ohne App-Aufnahme
Das ist by design und ich habe es jetzt klarer dokumentiert.motion_triggersetzt nurcameras.<id>.last_motion_at+last_motion_event_type— gedacht als Brücke für ioBroker-Automationen (Licht, Szene, Push) die auf Bosch-Motion lauschen. Eine Aufnahme in der Bosch-App kann der Adapter nicht auslösen — das entscheidet ausschließlich die Cloud-Motion-Engine auf der Kamera, und es gibt keine API, um das von außen zu triggern. Wenn du Aufnahmen vom Hue-PIR willst, müsstest du in ioBroker selbst aufzeichnen (z. B. FFmpeg-Snapshot oder die geplante Mini-NVR in v0.7.0).BlueIris auf separatem Host → 401 + wechselnder Port
Drei Ursachen, alle gefixt:- 401 Unauthorized: Der RTSP-Endpunkt verlangt Digest-Auth. Die alte URL
rtsp://127.0.0.1:PORT/rtsp_tunnelhatte keine Credentials. Neu:cameras.<id>.stream_urlenthält jetzt User+Password im URL-Formatrtsp://<user>:<pass>@host:port/rtsp_tunnel?inst=1&enableaudio=1&fmtp=1&maxSessionDuration=3600. BlueIris akzeptiert das direkt. - Wechselnder Port: Der Watchdog hat bei jeder Session-Erneuerung (~1 h) den TLS-Proxy gestoppt und neu gestartet → neuer Port. Neu: Port ist sticky pro Kamera, persistiert in
cameras.<id>._proxy_port, überlebt Renewals und Adapter-Restarts. - Zugriff von anderem Host: Standardmäßig bindet der Proxy nur auf
127.0.0.1— von BlueIris auf einem anderen Rechner unerreichbar. Neuer Admin-Tab „RTSP / Stream": Checkbox „Expose RTSP proxy to LAN" anhaken + LAN-IP des ioBroker-Hosts eintragen (z. B.192.168.1.50). Dann steht instream_urldirekt die externe URL, die du in BlueIris kopierst.
Setup für deinen Fall:
- Auf v0.5.1 aktualisieren
- Admin → Tab „RTSP / Stream" → „Expose RTSP proxy to LAN" anhaken
- „External hostname / LAN IP" = LAN-IP deines ioBroker-Hosts
- Speichern → Adapter restartet
- In ioBroker den State
cameras.<deine-cam-id>.stream_urlkopieren (enthält dann user:pass und ext-IP) - In BlueIris als RTSP-Quelle einfügen — keine separaten Credentials-Felder nötig
Außerdem gibt's in v0.5.1 noch zwei neue Features:
- Sirene (Gen2):
cameras.<id>.siren_active—trueschreibt den 75-dB-Panic-Alarm scharf,falsesilenct ihn (gleicher Endpunkt wie die offizielle App). - RGB-Wallwasher (Außenkamera II):
cameras.<id>.wallwasher_color(HEX#RRGGBB, leer = warmweiß) +cameras.<id>.wallwasher_brightness(0..100). Steuert top+bottom LEDs gemeinsam; das Frontlicht bleibt unberührt.
Release: https://github.com/mosandlt/ioBroker.bosch-smart-home-camera/releases/tag/v0.5.1
Falls BlueIris noch Probleme macht: gib mir bitte den genauen Verbindungsfehler aus dem BlueIris-Log, dann schauen wir weiter.
Viele Grüße
- 401 Unauthorized: Der RTSP-Endpunkt verlangt Digest-Auth. Die alte URL
-
UPDATE: Wenn ich die Stream URL mit VLC-Player öffne bekomme ich den Stream rein. Dann muss scheinbar was mit den BlueIris settings noch nicht passen
Hi @Jaschkopf,
genau das ist ein bekanntes BlueIris-Verhalten: VLC akzeptiert
rtsp://user:pass@host/...direkt, BlueIris zieht die Credentials zwar in seine Felder, sendet sie aber dann nicht zuverlässig im RTSP-Digest-Challenge mit. Ergebnis:Error 8000007a (CheckPort/User/Password)→ "NoSignal". Auf <ipcamtalk.com> gibt's mehrere Threads dazu, und der Fix ist immer derselbe.Lösung für BlueIris:
- In das Adressfeld nur den URL ohne
user:pass@eintragen, z. B.:rtsp://192.168.x.x:54321/rtsp_tunnel?inst=1&enableaudio=1&fmtp=1&maxSessionDuration=3600 - Username und Passwort in die separaten BlueIris-Felder "Username" und "Password" eintragen (genau die Digest-Credentials aus der ioBroker stream_url, die hinter
rtsp://und vor dem@stehen). - RTSP Authentication = Digest setzen (nicht "Auto", nicht "Basic").
Damit sollte's laufen — die Logik dahinter ist, dass BlueIris die In-URL-Credentials parst, aber im DESCRIBE/SETUP-Handshake nur die Felder seines eigenen Config-Dialogs verwendet.
Bonus: gerade neu in v0.5.2 (beta) released — der neue Livestream-Schalter
cameras.<id>.livestream_enabled(Default AUS). Bisher hat der Adapter pro Kamera beim Start eine 24/7 LOCAL-Session + TLS-Proxy + RTSP-Watchdog aufgemacht — auch wenn niemand zuschaut, kostet das täglich Quota. Ab v0.5.2 ist Streaming explizit Opt-in:trueschreiben →PUT /v11/.../connection, Proxy startet,stream_urlwird gesetzt, Watchdog läuft.falseschreiben → Watchdog stoppt, Proxy beendet,DELETE /connection,stream_urlleer.
Snapshots laufen unverändert (kurzlebige Session, nach dem JPEG sofort wieder zu).
Update via
iobroker upgrade bosch-smart-home-camera— 0.5.2 ist auf npm. Release Notes: https://github.com/mosandlt/ioBroker.bosch-smart-home-camera/releases/tag/v0.5.2Viele Grüße
Thomas - In das Adressfeld nur den URL ohne
-
Kann man vielleicht den Stream mit niedriger Bandbreite simultan ausgeben? Also pro Kamera zwei Stream URLs, quasi einen Mainstream mit hoher Bitrate und einen Substream mit niedriger Bitrate (und niedrigerer Auflösung???) BlueIris unterstützt diese Prinzip um die CPU Last zu reduzieren. Der schlechte Substream wird analysiert bis was passiert (motion) und schaltet dann auf den Mainstream um und zeichnet diesen auf.
-
Machen die Sonderzeichen im User/Pass vielleicht probleme wenn BlueIris die URL wieder zusammensetzt?
Hi @Jaschkopf,
danke fürs Dranbleiben — Posts 17 + 18 (Authentifizierung-Setting nicht gefunden, Sonderzeichen-Verdacht) haben mich nochmal dazu gebracht, das Problem an der Wurzel zu fixen statt eines Workarounds.
v0.5.3 (Beta) ist gerade raus und behebt deinen Fall direkt: https://github.com/mosandlt/ioBroker.bosch-smart-home-camera/releases/tag/v0.5.3
Was ist neu
1. TLS-Proxy macht jetzt die Digest-Auth selbst. Die
cameras.<id>.stream_urlist ab v0.5.3 eine saubere URL ohne Credentials:rtsp://192.168.x.x:54321/rtsp_tunnel?inst=1&enableaudio=1&fmtp=1&maxSessionDuration=3600Keine User/Pass mehr in der URL. Der Adapter-Proxy fängt die
401-Challenge der Kamera selbst ab, rechnet den Digest-Hash, injiziert denAuthorization-Header und schluckt das401, bevor dein Client es überhaupt sieht. BlueIris bekommt direkt200 OKund muss gar nichts mehr authentifizieren. Sonderzeichen-Problem und das fehlende "RTSP Auth = Digest"-Setting sind damit aus der Welt.2. Sub-Stream-URL für deinen BlueIris-CPU-Wunsch aus Post 16. Neuer Datenpunkt
cameras.<id>.stream_url_sub— gleiche Bosch-Session, gleicher Proxy, gleiche Kostenstelle, nur mitinst=2(niedrigere Bitrate). Mainstream für Aufnahme, Substream für die Anzeige:rtsp://192.168.x.x:54321/rtsp_tunnel?inst=2&enableaudio=1&fmtp=1&maxSessionDuration=3600Experimentell — hängt davon ab, ob die Gen2-Eyes-Firmware
inst=2wirklich serviert. Bitte testen und Feedback geben, dann weiß ich, ob ich's als stable markieren kann.3. Bonus: Auto-Snapshot bei Bewegung. Bei jedem FCM-Motion-/Person-/Audio-Event holt der Adapter automatisch ein frisches JPEG und legt es als Base64-String in
cameras.<id>.last_event_imageab. Damit kannst du in Blockly bei Motion direktnotify.telegram/signal/ etc. triggern und das Bild mitsenden — ohne extra Snapshot-Trigger-Script. Default an, Opt-out im neuen Admin-Tab "Events / Notifications".4. Snapshot-Session-Keep-Alive (60s). Falls deine Card oder Automation öfter snapshot_trigger setzt — der Adapter hält die Bosch-Session jetzt warm und reused sie statt jedes Mal neu zu öffnen. Erster Snap ~1-2s, alle weiteren in der 60s-Window ~200ms.
5.
cameras.<id>.motion_active— Boolean-DP, true bei Motion, auto-false nach 90s. Sauberer Trigger für Blockly.Update
iobroker upgrade bosch-smart-home-cameraDann BlueIris-Kamera entfernen und neu anlegen mit der frischen
stream_url(ohne User/Pass im Adressfeld, keine Credentials in irgendein BlueIris-Feld eintragen, RTSP-Auth auf "None" oder Default lassen). Sollte einfach funktionieren.Falls's nicht klappt: bitte den Adapter-Log mit
debug-Level posten (info→debugin der Instance-Config), die ZeileRTSP auth EF791764: ...zeigt, in welchem State der Proxy hängt.Viele Grüße
Thomas -
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_urlverö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_urloder ein abgelaufenes PKCE-Paar den
Token-Tausch killen, bleibt der Adapter jetzt imawaiting_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 Booleaninfo.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 Tagenoffline_access-Lebensdauer dran ist.
Quality-Fixes
- Privacy-Modus killt
onlinenicht mehr. Eine Indoor-Kamera in dauerhaftem Privacy-Modus driftete bisher nach drei
Startup-Snapshot-Retries aufonline=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_atist 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 übernew 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 (denPUT /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.4Aufnahme ins offizielle Repository
Pull-Request ist offen: https://github.com/ioBroker/ioBroker.repositories/pull/5983 —
repocheckeristFINAL: 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. - Bosch-Login-Button direkt in den Instanz-Einstellungen. Die OAuth-URL wird jetzt zusätzlich als Datenpunkt
-
Version 0.5.4 ist installiert und läuft soweit super. Verbindung von BlueIris zu den Kameras ist jetzt problemlos möglich. Main- und Substream funktionieren beide. Steuern der Beleuchtung funktioniert auch problemlos, lediglich der Status der DP's ändert sich nicht wenn ich das Licht über die App schalte. Oder ich war zu ungeduldig. Was mir noch als Bug aufgefallen ist, der DP motion_active wird nicht true wenn ich die Kamera auslöse. Der timestamp last_motion_at kommt aber. Darüber werte ich gerade im Skript eine Bewegung aus. Ansonsten würde ich jetzt ein paar Tage beobachten ob der Stream stabil in BlueIris läuft. Falls Probleme auftreten melde ich mich sofort. Vielen Dank für den super Support und den wirklich sehr guten Adapter!
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
