NEWS
Adapter - Bosch Smart Home Kameras
-
Moin. Version 0.7.4 ist installiert und läuft anstandslos. Wirklich Wahnsinn wieviel Arbeit du da rein steckst den Adapter kontinuierlich weiter zu optimieren. Im Anhang mein Blockly was ich mir gebaut habe für die Lichtsteuerung zusammen mit meinem Hue Flutlicht und zwei Hue Bewegungsmeldern. Relativ simpel, über die Helligkeit von meiner Wetterstation werden die Wallwasher und das Flutlicht gedimmt ein- bzw. ausgeschaltet. Bei Bewegung einer der Hue PIR oder einer Kamera wird das Frontlight und das Flutlicht auf hell aktiviert.
Die Integration in BlueIris sollte jeder hinbekommen. Einfach den RTSP Stream Link als neue Kamera anlegen und Einstellungen nach eigenen wünschen anpassen. Ich habe z.B. eine 24/7 Aufzeichnung (Sub-Stream) aller Kameras aktiviert die für 7 Tage aufbewahrt werden. Wenn in BlueIris eine motiondetection anspricht werden mehrere Bilder über eine Schnittstelle an CodeProject gesendet. YOLO analysiert dann die Bilder ob dort z.B. Personen, Hunde, Katzen etc. zu sehen sind. Erst wenn (in meinem Fall nur Personen) gefunden wurden, wird ein Event ausgelöst und es wird (schon mit einigen Sekunden Vorlauf) der Mainstream aufgezeichnet. Zu BlueIris gibt es aber haufenweise Anleitungen im Netz. CodeProject kann auch Gesichtserkennung oder Kennzeichenerkennung von Fahrzeugen ;)
Hier mein Blockly: Sicherheit.Kameras_Einfahrt.xml
-
Moin. Version 0.7.4 ist installiert und läuft anstandslos. Wirklich Wahnsinn wieviel Arbeit du da rein steckst den Adapter kontinuierlich weiter zu optimieren. Im Anhang mein Blockly was ich mir gebaut habe für die Lichtsteuerung zusammen mit meinem Hue Flutlicht und zwei Hue Bewegungsmeldern. Relativ simpel, über die Helligkeit von meiner Wetterstation werden die Wallwasher und das Flutlicht gedimmt ein- bzw. ausgeschaltet. Bei Bewegung einer der Hue PIR oder einer Kamera wird das Frontlight und das Flutlicht auf hell aktiviert.
Die Integration in BlueIris sollte jeder hinbekommen. Einfach den RTSP Stream Link als neue Kamera anlegen und Einstellungen nach eigenen wünschen anpassen. Ich habe z.B. eine 24/7 Aufzeichnung (Sub-Stream) aller Kameras aktiviert die für 7 Tage aufbewahrt werden. Wenn in BlueIris eine motiondetection anspricht werden mehrere Bilder über eine Schnittstelle an CodeProject gesendet. YOLO analysiert dann die Bilder ob dort z.B. Personen, Hunde, Katzen etc. zu sehen sind. Erst wenn (in meinem Fall nur Personen) gefunden wurden, wird ein Event ausgelöst und es wird (schon mit einigen Sekunden Vorlauf) der Mainstream aufgezeichnet. Zu BlueIris gibt es aber haufenweise Anleitungen im Netz. CodeProject kann auch Gesichtserkennung oder Kennzeichenerkennung von Fahrzeugen ;)
Hier mein Blockly: Sicherheit.Kameras_Einfahrt.xml
@Jaschkopf, danke für das Update und das Blockly! Dein Skript ist seit gerade eben Teil des Repos:
examples/driveway-light-automation.xml. UUIDs, HomeMatic-Serial und die Hue-Pfade habe ich durch Placeholder ersetzt (<CAM_UUID_1>,<ILLUMINATION_SENSOR>,<HUE_FLOODLIGHT>usw.), die Logik selbst ist wortwörtlich übernommen. Im Header steht ein Link zurück zu Post #29, damit andere die Diskussion finden können.Den BlueIris + CodeProject-AI/YOLO-Workflow habe ich im Haupt-README unter "External recorders" mit aufgenommen. Der genaue Tuning-Spielraum (24/7 Sub-Stream + Mainstream nur bei Person/Tier-Klassifikation) bleibt beim Nutzer, aber das Pattern ist genau das, was viele suchen, wenn sie "RTSP + KI-Person-Detection statt False-Positives" hören.
Anlass war für mich, dass der
examples/-Ordner überhaupt mal richtig wachsen sollte. Sind jetzt 20 Skripte: 8 Blockly + 12 JavaScript. Themen sind Master-Switches, Motion-Aggregation, Telegram-Bot mit/snap-Command, Nachtmodus per Schedule, Vacation-Deterrent, ein Live-Slideshow-Datenpunkt für VIS, FCM-Fallback-Monitor und ein paar weitere. Index liegt unterexamples/README.md.Kurze Einordnung zum Adapter selbst, weil bei "neuer ioBroker-Adapter" oft die Frage kommt: meine Hauptplattform ist Home Assistant. Die HA-Integration läuft hier produktiv mit allen vier Bosch-Kameras (Gen1 + Gen2). Den ioBroker-Adapter habe ich überwiegend über Claude Code portieren lassen (Sonnet/Opus), getestet wird in einer Sandbox neben der eigentlichen Instanz, parallel läuft er auch in meinem eigenen Setup. Im README steht dazu ein AI-Assisted-Badge — ich verstecke das nicht. Mein Standpunkt: wenn der Code funktioniert, die Tests grün sind und alles öffentlich reviewbar ist, warum sollte man die Technik nicht nutzen. Anders bekomme ich vier parallele Implementations (HA-Integration, Python-CLI, ioBroker-Adapter und der MCP-Server für Claude Desktop / Claude Code) zeitlich nicht gestemmt.
Falls dir beim Weiternutzen etwas auffällt oder ein Pattern fehlt, freue ich mich über weitere Beispiele — hier im Thread oder per PR.
-
Hallo Thomas, habe gerade wieder einen Ausfall beider Kamerastreams. Aufgefallen ist es, weil ich über BlueIris die Streams als iFrame auf dem Startbildschirm meiner VIS habe. und da nurnoch ein Standbild war. Cam1 ist um 7:33:54 und Cam 2 kurz danach 7:36:42 ausgefallen. Bild wurde in BlueIris einfach schwarz. Jetzt kam gerade der Stream wieder, Cam1 um 8:03:14 und Cam2 um 8:03:28.
Hier das Log vom Adapter aus den beiden Zeiträumen. Habe leider nicht auf Debug, hoffe du kannst damit trotzdem was anfangen:
Log:
Hat die Cloud-Wartung den Ausfall verursacht? Dachte eigentlich der Stream läuft lokal und nicht über die Cloud?
-
Guten Morgen. Ja, heute gab es ja eine Wartung. Eigentlich solltest du auch einen Connector oder Endpoint haben, in dem die Informationen drin stehen, wann Wartung ist, sollte in dem letzten Update eigentlich auch in io Broker mit reingekommen sein. Aber danke für die Logs. Ich werde sie mal analysieren und schauen was man noch eventuell verbessern könnte.
Ich arbeite gerade daran, dass wenn die Cloud offline ist, dass man wenigstens über den lokalen Weg den privacy Mode ein und ausschalten kann und auch die Lichter ein und ausschalten kann. Das ist das einzigste, was aktuell lokal funktioniert.
-
Hi Jaschkopf,
danke fürs Posten der Logs — das Zeitfenster 07:33–08:03 deckt sich exakt mit dem, was ich heute Morgen lokal gesehen habe. Bosch hatte ein Cloud-Maintenance-Window genau in dem Slot, die Status-RSS bestätigt es nachträglich. Du bist nicht alleine: meine vier Kameras lagen im selben Fenster auf der Schnauze.
Zu deiner Frage warum LOCAL-RTSP an der Cloud hängt: der eigentliche Stream läuft natürlich rein LAN (RTSPS, port 443 direkt zur Kamera). Was während des Watchdogs an die Cloud geht, ist das Renewal der Digest-Credentials — also der
cbs-XXXXXXXXuser/password den die Kamera per Digest erwartet. Diese Credentials rotieren bei jedemPUT /v11/video_inputs/{id}/connectionund es gibt aktuell keinen Offline-Pfad sie zu refreshen. Solange die bestehende Session lebt (~60 Minuten), läuft der Stream weiter; sobald der Watchdog die Session erneuern will und Bosch 503 zurückgibt, killt er den Stream — und genau das ist der Fehler den deine Logs zeigen.Die Fehlermeldung "Camera offline or unreachable" ist dabei irreführend: die Kamera war die ganze Zeit am Netz, nur die Cloud nicht. Das ist mit
v0.7.10(heute Abend rausgegangen) sauber unterschieden.Drei konkrete Verbesserungen in
v0.7.10:-
Ehrliche Fehlermeldungen — HTTP 503 zur Cloud-Session-API loggt jetzt als INFO
Bosch cloud temporarily unavailable, current session continues until expiry, nicht mehr als ERRORCamera offline or unreachable. Nur wenn der TCP-Connect zur Kamera-LAN-IP wirklich fehlschlägt, gibt es noch einen ERROR. -
Graceful Renewal-Backoff — der Watchdog stoppt den Stream nicht mehr beim ersten gescheiterten Renewal. Stattdessen exponentielles Backoff (5s, 15s, 45s, 120s, dann alle 300s) und der Stream läuft weiter solange die bestehende Session noch gültig ist (~60min). Erst wenn die Session natural-expired ist UND das Renewal immer noch fehlschlägt, ODER wenn der LAN-TCP-Connect 3-mal in Folge scheitert, wird der Stream beendet.
-
Maintenance-Detection — der Adapter pollt jetzt die Bosch-Status-RSS alle 5 Min und schreibt das Ergebnis in einen neuen DP
cameras.<id>.maintenance_statemit Statesnone/active/scheduled. Wenn ein aktives Maintenance-Fenster läuft, werden cloud-5xx-Fehler automatisch auf INFO downgegradet und mit[bosch-maintenance]geprefixt. Logs sehen während angekündigter Outages dann deutlich ruhiger aus.
Konkret für dein Szenario: bei einem 30-Min-Maintenance-Fenster wie heute Morgen hätte
v0.7.10deine Streams am Leben gelassen. Der Watchdog hätte alle 5s, 15s, 45s … retried, die existierende Session wäre genutzt worden, und sobald Bosch wieder erreichbar gewesen wäre, hätte der nächste Retry das Renewal geschafft.Bei Cloud-Outages über 60 Minuten läuft die Session natürlich aus und es gibt aktuell keinen Offline-Refresh-Pfad. Dann stoppt der Stream weiterhin — das ist eine Bosch-API-Architekturgrenze, kein Adapter-Bug.
Außerdem ist heute Abend
v0.7.9(und jetztv0.7.10) über npm rausgegangen. Drei Sachen die für deinen BlueIris-Workflow direkt relevant sind:- MQTT-Event-Bridge (opt-in, default aus) — neuer Admin-Tab unter den Settings. Wenn aktiviert, published der Adapter motion / audio / person / intrusion auf
<prefix>/<cam_id>/<event_type>mit{camera, event_type, timestamp, extra}JSON-payload. Plug-and-play für Node-RED, openHAB oder direkt in eine BlueIris-Trigger-URL. - Emergency LiveSession Fix — die Privacy- und Light-Writes über LAN funktionieren jetzt auch nach Adapter-Cold-Start ohne aktiven Stream. Vorher haben sie still mit 401 gefailt weil der Digest-Credential-Cache leer war.
- PTZ-Presets falls du eine 360° Indoor hast — neue DPs
cameras.<id>.pan_presetmit Stateshome | left | right | back_left | back_right.
Upgrade-Pfad:
iobroker upgrade bosch-smart-home-camera(oder über Admin → Adapter → Bosch Smart Home Camera → Update).Das Blockly-Beispiel mit Wetterstation+Bewegungsmelder das du in Post 29 gepostet hattest ist übrigens jetzt im Repo unter
examples/driveway-light-automation.xmlund in der README verlinkt. Danke nochmal dafür.Falls du nach dem Update noch unklare Logs siehst, immer her damit — ich teste die Adapter-Stack auf einer eigenen ioBroker-Sandbox-Instanz parallel und kann mit deinen Logs gezielt nachstellen.
Viele Grüße
Thomas -
-
Hallo zusammen,
das ist ja Wahnsinn was hier die letzten Tage passiert.
Ich bin total fasziniert das nun nach gut 6 Jahren mit meinen bescheidenen Bosch Smart Eyes doch noch ein sinnvoller Nutzen daraus entstehen könnte.
Also habe ich mal ganz motiviert den Adapter installiert und wollte loslegen.
Weit bin ich allerdings nicht gekommen.Beim Versuch zum Bosch-Login bekomme ich von der Bosch-Webseite die Meldung
404 We are sorry, but the page you are looking for is not available.Funktioniert das einfach gerade mal nicht oder mache ich was grundlegend falsch?
-
Das ist schon alles richtig so. Du loggst dich mit deinem Bosch Konto ein bzw mit der SinglekeyID und auf der Seite wo der 404 Fehler kommt musst du URL aus dem Browser-Tab kopieren und in den Einstellungen vom Bosch Adapter einfügen. Da ist extra eine Zeile dafür. Dann sollte der Adapter neu starten und grün werden.
-
danke fürs Nachhaken — die Beschreibung des Login-Schritts war wirklich nicht eindeutig, und der "404 We are sorry" Anblick verunsichert ohne Hinweis natürlich. Genau wie Jaschkopf richtig geschrieben hat: die 404-Seite ist gewollt. Bosch leitet nach dem SingleKey-Login auf
https://www.bosch.com/boschcam?code=…&state=…weiter — diese Seite existiert öffentlich nicht, deshalb 404. Was zählt ist nur die URL in der Adressleiste; die enthält den Auth-Code, den der Adapter zum Token-Tausch braucht.Ein wichtiger Hintergrund den ich in den letzten Tagen mehrfach beobachtet habe: der Auth-Code in dieser Redirect-URL läuft sehr schnell ab — Größenordnung 60 Sekunden (Keycloak-Default für
authorization_code). Wer also nach dem 404 erst seinen ioBroker sucht, das Admin-Fenster öffnet, zur Bosch-Adapter-Instanz navigiert und dann pastet, ist häufig zu spät — das Einfügen schlägt mitcode expiredfehl und es startet wieder von vorn. Genau das war vermutlich der Grund warum es bei dir beim ersten Mal nicht funktioniert und beim zweiten Mal grün wurde.Workflow den ich empfehle:
- ioBroker-Admin → Instanzen → bosch-smart-home-camera → Schraubenschlüssel vorher öffnen, Tab offen lassen
- Erst dann auf "Open Bosch Login in browser" im Dialog klicken
- SingleKey-Login durchziehen
- Sobald Bosch auf die 404-Seite weiterleitet: URL kopieren und SOFORT (innerhalb Sekunden) im Admin-Tab in "Pasted callback URL" einfügen + Save
- Falls doch
code expired: einfach nochmal auf "Open Bosch Login" klicken, neue URL wird generiert
Mit der nächsten Adapter-Version bekommt der Admin-Dialog eine deutliche Warnung dazu sowie überarbeitete deutsche Beschreibungen aller Schritte. Auch die README wird klarer.
Falls weiter Probleme: am besten ein GitHub-Issue im Adapter-Repo (
mosandlt/ioBroker.bosch-smart-home-camera) — dann kann ich die Logs direkt sehen.Viele Grüße
-
@thomas-mosandl wäre es nicht möglich das ganze login Prozedere automatisch vom Adapter erledigen zu lassen und dort einfach die credentials zu hinterlegen? Kenne das von anderen Adaptern auch so das man eine URL mit Token zurück geben muss aber das simple hinterlegen von email+pw im Adapter ist deutlich bequemer
-
@jaschkopf Ja, da bin ich dran, da muss noch ein Endpoint geändert werden. Ich bin da schon dran. Das dauert leider, da es nicht in meiner Hand ist. Deshalb dieser "manuelle" Weg erstmal.
-
Hallo Thomas, glaube ich hab heute einen neuen Bug gefunden. Kameras liefen ganz normal, habe dann über die App den privacy mode aktiviert, weil ich im Garten gearbeitet habe und nonstop Bewegungen getriggert hab. Habe den privacy mode dann später auch über die App wieder deaktiviert, aber BlueIris und auch VLC kann über die Stream und Substream-URL keine Verbindung aufbauen, bzw. meldet "Check Port/User/Password" bzw in VLC wird nach User und PW gefragt. Habe den Adapter dann gerade neu gestartet, danach waren die Streams wieder online. Log packe ich dir in den Anhang. Bringt es für die Zukunft einen Vorteil für dich wenn ich den Adapter auf Debug-Level stelle? Bosch Error Log 2026_05_23.txt
-
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
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