Bosch Smart Home Kameras in Home Assistant — Eigene Integration mit Cloud API
Die Bosch Smart Home Kameras sind solide Hardware — Indoor 360, Eyes Aussenkamera, Eyes Innenkamera II, Eyes Aussenkamera II. Nur an der Software-Seite fuer Home Assistant hat es bisher gehapert. Die offizielle SHC-Integration sieht die Kameras quasi nicht, die Cloud-App bleibt eine Insel. Dieses Projekt schliesst die Luecke: eine vollstaendige, offene Integration, die direkt mit der Bosch-Cloud spricht, alle Features der App nach Home Assistant bringt und dazu Dinge kann, die sonst nirgendwo gehen.
Das Projekt besteht aus zwei Teilen: einer Home Assistant Custom Integration mit eigenem Lovelace Dashboard Card und einem Python CLI Tool fuer alle, die lieber auf der Kommandozeile arbeiten. Beide sind MIT-lizenzierter Open Source auf GitHub und via HACS installierbar. Der Rest dieses Artikels erklaert, was die Integration kann, wie sie aufgebaut ist und wie du sie installierst.
Ueberblick: Was die Integration leistet
Die Integration nutzt die gleiche Cloud-API, mit der auch die offizielle Bosch Smart Camera App auf iOS und Android arbeitet — keine Hardware-Modifikation, kein Reverse-Proxy, keine gebastelte Bruecke ueber den SHC-Controller. Eingerichtet wird sie einmalig per OAuth2-Login mit dem Bosch SingleKey ID Konto. Ab dem Moment stehen alle Kameras als Home-Assistant-Entitaeten zur Verfuegung, bedienbar ueber Lovelace, ueber Automationen und ueber den HA REST API.
Unterstuetzt werden:
- Bosch Smart Home Indoor 360 (Gen1, FW 7.91.x) — 360 Grad Drehkamera fuer Innenraum
- Bosch Smart Home Eyes Aussenkamera (Gen1, FW 7.91.x) — Outdoor-Kamera mit Frontlicht und Wallwasher
- Bosch Smart Home Eyes Innenkamera II (Gen2, FW 9.40.x) — Outdoor-taugliche Innenkamera der zweiten Generation
- Bosch Smart Home Eyes Aussenkamera II (Gen2, FW 9.40.x) — Aktuelles Modell mit DualRadar-Bewegungserkennung und RGB-Beleuchtung
Gen1 und Gen2 haben teils unterschiedliche APIs. Die Integration erkennt das Modell automatisch am hardwareVersion-Feld der Cloud-Antwort und nutzt den jeweils richtigen Endpunkt. Du musst beim Einrichten nichts auswaehlen — es funktioniert einfach.
Installation in zwei Minuten
Option A: HACS (empfohlen)
- In HACS auf Benutzerdefinierte Repositories klicken und
https://github.com/mosandlt/Bosch-Smart-Home-Camera-Tool-HomeAssistantals Typ Integration hinzufuegen. - Das Repo in HACS installieren, Home Assistant neu starten.
- Unter Einstellungen → Geraete & Dienste → Integration hinzufuegen nach Bosch Smart Home Camera suchen.
- Der Einrichtungsdialog oeffnet die Bosch SingleKey ID Anmeldeseite im Browser. Nach dem Login leitet Bosch Keycloak automatisch zurueck zu Home Assistant — per PKCE (S256) abgesicherter OAuth2-Flow.
- Fertig. Alle Kameras deines Kontos erscheinen als Entitaeten.
Option B: Manuell
Das custom_components/bosch_shc_camera/ Verzeichnis aus dem GitHub-Repo nach /config/custom_components/ kopieren. Danach Home Assistant neu starten und die Integration wie oben in Schritt 3 hinzufuegen.
Lovelace Card aktivieren
Das Card-JavaScript wird vom Integration-Paket als Ressource mitgeliefert. Die Lovelace-Ressource auf /local/bosch-camera-card.js registrieren (Typ: module), dann in einem Dashboard einfuegen:
type: custom:bosch-camera-card
camera_entity: camera.bosch_terrasse
title: Terrasse
Die Home Assistant Integration im Detail
Jede Kamera bringt rund 60 Entitaeten mit sich — Schalter, Sensoren, Buttons, Slider, Selects, Lights. Die wichtigsten:
Kamera und Live-Streaming
- Live Video direkt im Dashboard — H.264 1080p 30fps inklusive AAC-Audio. Als Standard wird eine LOCAL-Verbindung zur Kamera im eigenen Netz aufgebaut (~2 Sekunden Latenz via WebRTC ueber go2rtc, optional Fallback auf HLS). Bei Problemen schaltet die Integration automatisch auf die REMOTE-Verbindung ueber die Bosch Cloud.
- Snapshots (Standbilder) — In einstellbaren Intervallen (Default 30 Minuten) oder direkt per Knopfdruck aus der Lovelace Card. Kamera 360 nutzt dabei automatisch die LOCAL Digest-Authentifizierung, die anderen Modelle die Cloud-Proxy-Route.
- RCP-Thumbnail-Fallback — Fuer mobile Ansichten und Benachrichtigungen liefert die Integration auf Wunsch ein kleines 320×180 Thumbnail aus dem RCP-Protokoll der Kamera. Ein paar Kilobyte statt 150 KB — spart Akku und Datenvolumen.
- Video-Qualitaet — Auto, Hoch (30 Mbps), Mittel oder Niedrig (1,9 Mbps) als separater Select fuer jede Kamera.
Schalter und Steuerung
- Privacy Mode — Kamera-Shutter oeffnen/schliessen. Cloud-API-Call, reagiert in ~150ms. Auf Gen2 mit zusaetzlichem lokalen RCP-Fallback falls die Cloud gerade nicht antwortet.
- Kameralicht — Bei Aussenkamera Gen1 Frontlicht und Wallwasher einzeln oder kombiniert schalten.
- Gen2 Beleuchtung — Drei separate Lichtgruppen (Frontlicht kaltweiss/warmweiss, oberes LED-Licht RGB, unteres LED-Licht RGB) als native Home Assistant Light Entity mit Farbrad und Helligkeits-Slider. Bewegungslicht und Dauerlicht als separate Schalter. Farbe und Helligkeit lassen sich vorkonfigurieren, ohne das Licht tatsaechlich einzuschalten — Werte werden beim naechsten Einschalten angewendet.
- Benachrichtigungen — Master-Switch plus einzelne Typen: Bewegung, Person, Audio, Stoerung, Kamera-Alarm.
- Zeitstempel-Overlay — Datum und Uhrzeit im Videobild ein- und ausblenden.
- Bewegungserkennung — An/Aus plus Empfindlichkeit (6 Stufen).
- Auto-Follow — Automatisches Tracking bei der 360-Kamera.
- Gegensprechanlage — Zwei-Wege-Audio mit Lautstaerkeregler.
- Pan-Position — ±120 Grad Slider fuer die 360-Kamera. Waehrend Privacy-Mode ON ist der Slider deaktiviert (Motor ist im Shutter-Zustand gesperrt).
- Ton aufnehmen — Audio in Cloud-Recordings aktivieren/deaktivieren.
- Privacy-Ton — Akustisches Signal bei Privacy-Wechsel.
Gen2-spezifische Features
- Einbruchserkennung (Intrusion Detection) — DualRadar-basiert, 1-5 Stufen Empfindlichkeit, konfigurierbare Distanz in Metern.
- Alarm-Status-Sensor — Zeigt den aktuellen Zustand der internen Alarmanlage (armed, disarmed, alarm_active).
- Bewegungs-Zonen als Polygone — Gen2 liefert bis zu acht Eckpunkte pro Zone mit PERSON-Trigger und individueller Farbe. Das Lovelace Card rendert sie als SVG-Overlay auf dem Kamerabild.
- Privacy-Masken als Polygone — Schwarze Bereiche, in denen die Kamera nicht aufzeichnet. Werden ebenfalls als SVG-Overlay angezeigt.
- Sirene und Pre-Alarm-LED — 75 dB interne Sirene mit konfigurierbaren Delays (optional, standardmaessig aus).
- Status-LED — Rote Betriebs-LED an der Kamera ein- und ausschalten.
- Montagehoehe — Fuer die Personenerkennung in Metern einstellbar.
Sensoren und Diagnose
- Kamera-Status (ONLINE/OFFLINE) mit
/commissionedHealth-Check - WiFi-Signal in Prozent, Firmware-Version, Umgebungslicht
- Firmware-Update-Entity — native HA Update-Card mit Install-Button
- Zeitplan-Regeln — Anzahl und Details der aktiven Cloud-Automationsregeln
- Event-Zaehler — Gesamt, Bewegung und Audio jeweils pro Tag
- Binary Sensors — Bewegung, Audio-Alarm, Personenerkennung
- Motion-Zonen-Sensor und Privacy-Masken-Sensor (Polygon-Daten bei Gen2)
- Cloud-Proxy-URL und LAN/Cloud-Badge (zeigt an, ueber welche Route der Stream laeuft)
Der Lovelace Card
Die Dashboard-Karte ist mit der Integration ausgerollt und sammelt alle Steuerelemente auf engem Raum. Aufgebaut in drei Zonen:
- Kopf — Titel, Firmware-Version, Stream-Badge (LAN/Cloud/offline), Uptime-Zaehler, Anzahl Events heute.
- Videobild — Live Video oder Snapshot-Modus, mit Pan-Steuerung und SVG-Overlays fuer Zonen und Privacy-Masken (abschaltbar).
- Steuerleiste — Hauptsteuerung (Ton, Licht, Privat, Benachrichtigungen) immer sichtbar plus drei aufklappbare Akkordeon-Menues fuer Benachrichtigungstypen, erweiterte Einstellungen und Diagnose.
Der Snapshot-Button triggert eine aktuelle Bild-Aktualisierung mit 6-Sekunden-Timeout und Baseline-Vergleich: die Karte liest die Byte-Groesse des aktuellen Bilds vor dem Service-Call, dann loest sie die Aktualisierung aus und pollt, bis sich die Groesse aendert. Das verhindert, dass der Spinner ewig laeuft, nur weil das Bild schon von einer anderen Karte im Dashboard aktualisiert wurde.
Bei Offline-Kameras blendet die Karte alle Bedienelemente aus und zeigt stattdessen ein dezentes offline-Overlay — so erkennt man den Fehler auf einen Blick, ohne dass die Schalter verwirrend halb-aktiv wirken.
Benachrichtigungen mit 3-Stufen-Alert
Klassische HA-Setups brauchen eigene Automationen fuer Kamera-Events. Diese Integration liefert sie direkt mit. Pro Ereignis (Bewegung, Person, Audio, Stoerung) werden bis zu drei Benachrichtigungen in eigenen Zeitfenstern verschickt:
- Sofort-Text — „Terrasse: Bewegung (10:31:56)”, in Echtzeit ueber den ausgewaehlten Notify-Service.
- Snapshot — JPEG-Bild des Ereignisses, typischerweise 4-8 Sekunden spaeter.
- Video-Clip — MP4 mit dem vollen Event-Clip, meist nach 30-90 Sekunden verfuegbar.
Jede Stufe kann einen eigenen Notify-Service bekommen (Telegram, Signal, iOS Push, E-Mail, was immer HA unterstuetzt). Stufen mit leerem Service werden sauber uebersprungen — wer kein Video moechte, laesst das Feld frei, und die Integration sendet nur Text und Bild.
Die Event-Erkennung laeuft dabei nicht ueber Polling, sondern ueber Firebase Cloud Messaging (FCM) — also den gleichen Push-Kanal, ueber den auch die offizielle Bosch-App arbeitet. Die Integration hat einen eigenen FCM-Push-Listener. Ergebnis: Ereignisse landen in ~2-3 Sekunden in HA, nicht erst alle paar Minuten bei der naechsten Abfrage. Bei FCM-Ausfall greift automatisch das Polling-Backup.
NAS-Upload und Aufbewahrung
Ereignis-Snapshots und Video-Clips lassen sich direkt auf ein SMB-Netzlaufwerk hochladen — FRITZ!Box NAS, Synology, QNAP, Windows-Freigabe, egal. Konfigurierbar sind Server, Share, Benutzer, Passwort, Ordnerstruktur und Dateinamen-Pattern. Eine automatische Aufbewahrungs-Politik loescht alte Dateien nach X Tagen (Default 180 Tage). Bei wenig freiem Speicher gibt es eine Warnung per HA-Persistent-Notification oder Notify-Service.
Seit v10.2.1 laeuft die taegliche Aufraeum-Routine als Hintergrund-Task — wenn der NAS gerade unerreichbar ist, blockiert das nicht mehr den Coordinator-Tick von Home Assistant.
Externer Recorder: Frigate, BlueIris und go2rtc
Wer die Kameras parallel in einem NVR-System aufzeichnen moechte — Frigate, BlueIris, go2rtc oder ein beliebiger RTSP-Recorder — kann dafuer dauerhafte, passwortfreie RTSP-Endpunkte aktivieren. Die Integration betreibt dazu pro Kamera einen schlanken RTSP-Proxy, der Bosch-Digest-Credentials automatisch injiziert. Der Recorder bekommt einen stabilen URL, der weder rotiert noch ablaeuft.
Aktivierung: Einstellungen → Integrationen → Bosch Smart Home Camera → Konfigurieren → Externer Recorder. Dort den Haken bei „Frigate-Endpunkte aktivieren“ setzen. Anschliessend pro Kamera den Schalter Frigate-Stream High einschalten (im HA-Geraete-Panel unter „Konfiguration“ sichtbar machen). Der Sensor Frigate RTSP URL (High) zeigt danach die fertige URL.
Optional laesst sich ein fixer Port setzen, damit die URL auch nach HA-Neustarts stabil bleibt (Standard: dynamischer Port). Ebenso konfigurierbar: Bind-Host (Standard 127.0.0.1, fuer LAN-Zugriff auf die Host-IP aendern), eine IP-Allowlist sowie die maximale Zahl gleichzeitiger Recorder-Verbindungen pro Kamera (Standard 8).
Die Endpunkte sind rein LOCAL — kein Cloud-Traffic, kein separates Addon, kein Zertifikat. Der Proxy laeuft direkt im HA-Event-Loop.
Streaming: LOCAL bevorzugt, REMOTE als Backup
Das Live-Streaming laeuft per RTSPS (RTSP ueber TLS) direkt zur Kamera, wenn Home Assistant und Kamera im selben Netz sind. Das ist nicht nur schneller (niedrigere Latenz, keine Cloud-Proxy-Hop), sondern auch sparsam mit dem Bosch-Cloud-Traffic. Besonderheit der Bosch-Kameras: sie akzeptieren nur HTTPS auf Port 443, mit Bosch Private CA Self-Signed-Zertifikat und HTTP Digest-Authentifizierung. FFmpeg — das Video-Backend von HA — kommt damit aus der Box nicht klar.
Deshalb startet die Integration fuer jede LOCAL-Verbindung einen internen TLS-Proxy: eine Thread-basierte TCP-zu-TLS-Bruecke auf localhost, die den Self-Signed-Cert akzeptiert und das RTSP Transport-Feld von UDP auf TCP interleaved umschreibt. Aus FFmpegs Perspektive spricht er mit einem klartext-RTSP-Server auf dem lokalen Loopback-Interface. In der Praxis funktioniert das stabil, seit Version 7 haben sich hier viele Feinheiten eingespielt (RTP-Keepalive im interleaved Transport, Session-Renewal, Reconnect mit exponentiellem Backoff).
Falls die LOCAL-Verbindung scheitert (Kamera im Gastnetz, keine direkte Route, Firewall), schaltet die Integration automatisch auf REMOTE — Bosch-Cloud-Proxy als Zwischenstation. Langsamer (zusaetzliche ~500-1000ms Latenz) aber funktioniert von ueberall.
Unter der Haube: Die Bosch Cloud API
Bosch veroeffentlicht keine offizielle API-Dokumentation fuer die Consumer-Kameras. Das Fundament dieser Integration ist deshalb Reverse Engineering der iOS- und Android-App. Per mitmproxy wurden ueber 130 API-Endpunkte dokumentiert, von der OAuth-Authentifizierung ueber Privacy-Steuerung bis zur Gen2-Lichtsteuerung mit drei getrennten LED-Gruppen. Einige Highlights, die so in der offiziellen App gar nicht sichtbar sind:
- Direkte Privacy-Steuerung per Cloud API (
PUT /privacy, ~150ms) — signifikant schneller als der Umweg ueber den SHC Smart Home Controller (~1100ms) - Bewegungsempfindlichkeit in 7 Stufen (OFF bis SUPER_HIGH) — in der App gibt es nur drei
- Per-Typ Benachrichtigungen — einzelne Aktivierung von Bewegung, Person, Audio, Stoerung, Kamera-Alarm (App macht das meistens nur im Bundle)
- Cloud-Zeitplan-Regeln — CRUD-Operationen fuer zeitbasierte Automationen auf Server-Seite
- Kamera-Sharing — Freunde einladen mit zeitbegrenztem Zugang
- RCP-Protokoll — 893 Befehle auf Auth-Level 3 verfuegbar (Live-Thumbnails, IVA-Regeln, Systemuhr, Netzwerk)
- OAuth2 mit PKCE (S256) via Bosch Keycloak (SingleKey ID), automatische Token-Erneuerung vor Ablauf
Die Authentifizierung laeuft dabei ueber einen dedizierten OSS-OAuth-Client, den Bosch im April 2026 fuer Open-Source-Projekte bereitgestellt hat. Die Integration spricht also nicht mehr mit den App-eigenen Credentials, sondern mit einem eigenen, fuer diesen Zweck vorgesehenen Client.
Ausfallsicherheit: Wenn die Cloud mal haengt
Bosch-Cloud-Komponenten sind nicht immer 100% verfuegbar. Die Integration geht davon aus und hat zwei separate Fallback-Pfade:
- Auth-Server Ausfall — Wenn
smarthome.authz.bosch.commit HTTP 5xx antwortet (wie zuletzt am 15.04.2026 um 05:47 CEST), erkennt die Integration das als Auth-Server-Outage und interpretiert es nicht faelschlich als Reauth-Fall. Exponential Backoff (60s → 120s → 240s → 480s, Cap bei 10 Minuten) verhindert, dass wir einen angeschlagenen Auth-Server zusaetzlich bombardieren. Nach drei Ausfall-Zyklen gibt es eine einmalige Persistent-Notification in HA — kein kaputter Reauth-Button, kein Nachtpanik-Ticket. - Cloud-Proxy nicht erreichbar — Kritische Kommandos fallen auf direkt-lokale Wege zurueck. Snapshot-Abruf via HTTPS+Digest direkt zur Kamera-IP. Privacy-Mode schalten per unauthentifiziertem RCP (
http://cam-ip/rcp.xml) auf Gen2-Modellen. Ephemere LOCAL-Digest-Credentials werden zwischengespeichert und bleiben nutzbar, bis die Kamera rebootet.
Wird ein Privacy-Befehl durch alle Fallback-Pfade durchgereicht, ohne dass eine davon durchkommt, zeigt HA eine Persistent-Notification „Privacy-Befehl nicht zugestellt”. Keine stillen Misserfolge.
Sicherheit: Pentest und Hardening
Das Projekt hat eine Pentest-Runde durchlaufen (12 Angriffsvektoren, keiner erfolgreich). Die daraus gewonnenen Erkenntnisse wurden in Version 10.0.0 als Security Hardening Release eingebaut:
- URL-Allowlist fuer alle ausgehenden HTTP-Calls — kein SSRF ueber manipulierte Cloud-Antworten
- Path-Sanitization fuer SMB-Uploads — kein Pfad-Traversal ueber Event-IDs
- Input-Validation auf saemtlichen Service-Call-Parametern
- Redaction von Credentials in Logs — LOCAL-Digest-Passwoerter werden auf
abc***(24 chars)gekuerzt, bevor sie in den Log gelangen - Refresh-Token-Rotation: nach Keycloak-
invalid_grantwird kein Exception-Body mehr geloggt, weil Keycloak-Antworten Token-Material echoen koennen
Vier Befunde des Pentests sind out of scope und von der Kamera-Firmware selbst abhaengig (RCP-READ ohne Auth auf Gen2, TLS 1.0/1.1-Faehigkeit des Kamera-Servers, lokale RCP-Endpoints, ephemere userTokens). Die sind bekannt und an Bosch gemeldet.
Stabilitaet und Thread-Safety
Die Integration laeuft in Home Assistants asyncio-Event-Loop, nutzt aber an einigen Stellen zusaetzlich Threads — insbesondere fuer den Firebase-Push-Listener und den TLS-Proxy. Geteilte Felder sind durch Locks abgesichert (_fcm_lock fuer FCM-Zustand, per-Kamera _snapshot_fetch_locks fuer gleichzeitige Snapshot-Anfragen, zentrale Verwaltung von LOCAL-Session-Renewal-Tasks). Ein nicht erreichbares NAS blockiert den Coordinator-Tick nicht mehr laenger — saemtliche Executor-Jobs haben jetzt Socket- und asyncio-Timeouts.
Diese Dinge sind im Normalbetrieb unsichtbar, aber sie sorgen dafuer, dass das System auch nach Wochen Laufzeit und mehreren Cloud-Ausfaellen dazwischen noch genauso reagiert wie am ersten Tag.
HA Services fuer eigene Automationen
Sechzehn Services stehen fuer eigene Automationen und Skripte zur Verfuegung. Die wichtigsten:
# Snapshot sofort aktualisieren
service: bosch_shc_camera.trigger_snapshot
# Cloud-Zeitplanregel erstellen
service: bosch_shc_camera.create_rule
data:
camera_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
name: "Nachts: Privacy AN"
start_time: "22:00:00"
end_time: "06:00:00"
weekdays: [0,1,2,3,4,5,6]
is_active: true
# Event-Clip fuer ein bestimmtes Ereignis herunterladen
service: bosch_shc_camera.download_clip
data:
event_id: "12345678-..."
Zur Verfuegung stehen ausserdem Services fuer das Pairen mit dem SHC, das Setzen von Bewegungs-Zonen und Privacy-Masken, das Senden von Lichtsteuer-Befehlen und — auf Wunsch — direkte RCP-Befehle an die Kamera.
Das Python CLI Tool
Fuer Leute, die lieber auf der Kommandozeile arbeiten, gibt es das separate Python CLI Tool. Es nutzt die gleiche Cloud-API und eignet sich fuer schnelle Checks, Debugging und Scripted Setups. Einmal pip install requests ausfuehren, OAuth-Login via localhost:8321/callback, dann laeuft es. Ein paar typische Kommandos:
# Uebersicht aller Kameras
python3 bosch_camera.py list
# Privacy-Mode schalten
python3 bosch_camera.py privacy on
python3 bosch_camera.py privacy off
# Licht steuern
python3 bosch_camera.py light on
python3 bosch_camera.py light off
# Pan auf 45 Grad fahren (360-Kamera)
python3 bosch_camera.py pan 45
# Events live beobachten (FCM Push)
python3 bosch_camera.py watch --push
# Komplette Status-Info mit 15+ API-Endpunkten
python3 bosch_camera.py info --full
Ausserdem beherrscht das CLI rules add/edit/delete fuer Cloud-Zeitplaene, friends invite/share/remove fuer Kamera-Sharing, intercom, siren, privacy-sound, autofollow und direkte RCP-Befehle wie rcp snapshot, rcp clock, rcp alarms.
Architektur in einem Satz
Home Assistant → Integration-Coordinator (Python, asyncio) → Bosch Cloud API (via OAuth2/PKCE + FCM push) → Bosch Kamera (direkt per TLS 1.2+HTTPS+Digest fuer LOCAL Snapshots und RTSP-Stream via integriertem TLS-Proxy).
Was die Integration nicht kann (und warum)
Der Vollstaendigkeit halber die klaren Grenzen, damit es keine falschen Erwartungen gibt:
- Kein Motion-Zone-Editor bei Gen1 — Die Kamera-Firmware ueberschreibt Cloud-Settings per internem IVA-Rules-Engine (RCP 0x09f3) nach ~1 Sekunde. Das ist ein Firmware-Verhalten, das sich ueber die API nicht vermeiden laesst. Auf Gen2-Kameras mit Polygon-Zonen funktioniert der Editor hingegen zuverlaessig.
- Kein Clip-Download aus dem Cloud-Speicher — Diese Funktion wurde bewusst entfernt.
- Keine Live-Audio-Wiedergabe im Dashboard — Die Kameras streamen AAC, HA zeigt das korrekt in einem HTML5-Audio-Element an. Dauerhafter Audio-Monitor in der Sidebar steht noch auf der Wunschliste.
- Keine Offline-Integration ohne Bosch-Cloud-Konto — Die Kameras sprechen heute noch kein offenes RTSP auf Port 554 und kein ONVIF. Bosch arbeitet an einem permanenten lokalen Benutzer (geplant fuer 2026), dann wird Offline-Streaming ohne Cloud-Abhaengigkeit moeglich.
FAQ
Ist mein Bosch-Konto sicher bei dieser Integration?
Ja. Die Integration nutzt den offiziellen, von Bosch im April 2026 fuer Open-Source-Projekte bereitgestellten OAuth-Client mit PKCE (S256). Der Login laeuft ueber Bosch SingleKey ID — die Integration sieht dein Passwort nicht, sondern bekommt nur kurzlebige Access-Tokens und einen Refresh-Token. Alle OAuth-Tokens werden in Home Assistants verschluesseltem Secrets-Storage abgelegt.
Brauche ich einen Bosch Smart Home Controller (SHC)?
Nein. Die Integration spricht direkt mit der Bosch Cloud. Falls du einen SHC hast, kann die Integration ihn als Sekundaer-Pfad fuer Privacy-Befehle nutzen (Fallback, wenn die Cloud gerade nicht antwortet), aber er ist nicht Voraussetzung.
Funktioniert das mit beiden Kamera-Generationen?
Ja. Gen1 (Indoor 360, Eyes Aussenkamera, FW 7.91.x) und Gen2 (Eyes Innenkamera II, Eyes Aussenkamera II, FW 9.40.x) werden beide vollstaendig unterstuetzt. Gen2 hat mehr Endpunkte (Polygon-Zonen, RGB-Beleuchtung, Einbruchserkennung, Sirene), die die Integration automatisch erkennt und nutzt.
Warum dauert der erste Snapshot manchmal 5-10 Sekunden?
Der erste Snapshot-Abruf macht einen kompletten PUT /connection-Roundtrip zur Bosch-Cloud plus einen RCP-Handshake mit der Kamera. Das dauert einmalig. Nachfolgende Snapshots hit den internen Proxy-URL-Cache und liefern in 500ms-1s.
Kann ich einen Snapshot in einer Automatisierung nutzen?
Ja, ganz klassisch. service: bosch_shc_camera.trigger_snapshot erzwingt ein frisches Bild, dann camera.snapshot fuer den lokalen Save. Oder du verlaesst dich auf den automatischen Refresh-Zyklus (Default 30 Minuten, konfigurierbar).
Wie komme ich an den Event-Clip-MP4?
Automatisch als dritte Stufe im Alert-System — in deinen alert_notify_video-Service. Alternativ manuell per bosch_shc_camera.download_clip, wobei du eine Event-ID mitgeben musst.
Was passiert, wenn Home Assistant neu startet?
Integration startet neu, OAuth-Tokens werden automatisch erneuert, FCM reregistriert sich, der TLS-Proxy startet pro Kamera beim ersten Streaming-Aufruf. Nichts Manuelles.
Wie sehe ich ob FCM-Push aktiv ist oder auf Polling zurueckgefallen wird?
In den Integration-Details steht ein Attribut fcm_healthy. In den Logs siehst du alle 60 Sekunden einen Statushinweis. Im Dashboard gibt es einen Diagnose-Sensor, der dir die letzte FCM-Push-Zeit und den Modus (ios, android, auto) anzeigt.
Kann ich das parallel zur offiziellen Bosch Smart Camera App verwenden?
Ja. Beide sprechen die gleiche Cloud-API — sie kommen sich nicht in die Quere. Auf deinem Handy koennen also weiterhin Push-Benachrichtigungen landen, und in HA gleichzeitig die FCM-Pushes.
Ausblick
Auf der Roadmap fuer 2026 stehen mehrere Punkte, die das Projekt deutlich weiterbringen werden. Der groesste ist der permanente lokale Kamera-Benutzer, an dem Bosch arbeitet und der voraussichtlich im Sommer verfuegbar wird. Damit wird echtes Offline-Streaming moeglich — Kameras, die auch dann funktionieren, wenn die Bosch-Cloud mal komplett weg ist. Gleichzeitig kommt mutmasslich ONVIF-Unterstuetzung und ein normaler RTSP-Port, was die Integration in andere NVR-Systeme deutlich einfacher macht.
Auf Integrations-Seite ist der naechste grosse Schritt der Cloud-Rules-Editor direkt im Dashboard — heute geht das nur via Service-Call, kommt aber demnaechst als UI-Komponente. Ebenso der Motion-Zone-Editor fuer Gen2 und erweiterte Camera-Sharing-Funktionen ueber die Friends-API.
Installation, Updates, Links
- Home Assistant Integration — Installation via HACS oder manuell
- Python CLI Tool —
pip install requestsund loslegen - Releases und Changelog
- Issues und Feature-Requests
- Buy Me a Coffee
Fragen oder Probleme? Auf GitHub per Issue, oder im Home Assistant Community Forum. Auch per Kontaktformular erreichbar.
Aktueller Stand
Dieser Abschnitt wird mit jedem Release aktualisiert — alles andere oben bleibt wie es ist.
HA Integration v10.2.1 — 17. April 2026
- Snapshot-Fix fuer Gen1 Indoor: Die CAMERA_360 liefert auf REMOTE
snap.jpgHTTP 401, weshalb beim Oeffnen des Dashboards frueher das Bild von gestern angezeigt wurde, bis der 30-Minuten-Hintergrund-Refresh sich darum kuemmerte. Neu:async_camera_imageprobiert sofort die LOCAL-Digest-Route, genau wie der Hintergrund-Refresh. Aktuelles Bild schon auf dem ersten Ladevorgang. - Per-Kamera Snapshot-Lock: Gleichzeitige
async_fetch_live_snapshot()-Aufrufe fuer dieselbe Kamera werden jetzt serialisiert — kein doppeltesPUT /connectionmehr, wenn Erstladen und Hintergrund-Refresh sich ueberschneiden. - NAS-Aufraeumen blockiert nicht mehr: Die taegliche SMB-Retention-Cleanup-Routine laeuft jetzt als Hintergrund-Task. Coordinator-Tick faellt von ~30 s auf ~1,8 s an Aufraeum-Tagen. Die wiederkehrende Warnmeldung SMB cleanup timed out after 30s ist Geschichte.
- Log-Level aufgeraeumt: Stream-Fehler loggen nur noch bei Threshold-Uebergang, nicht mehr bei jedem Retry. Keycloak-
invalid_grant-Fehler loggen den Exception-Body nicht mehr (Token-Leak-Risiko). Pan-bei-Privacy-ON von warning auf debug herabgesetzt. FCM-Push-Netzwerkfehler in warning (Timeouts/ClientError) und debug (sonstiges) aufgeteilt. - Card v2.8.8: Snapshot-Button laedt nicht mehr endlos, wenn das Bild schon vor dem Klick aktualisiert wurde. Baseline der Byte-Groesse wird jetzt vor dem Service-Call gezogen statt danach. Polling-Timeout von 15 s auf 6 s verkuerzt.
Vollstaendiger Changelog samt frueheren Versionen im GitHub-Releases-Tab.
Download: v14.2.1 HA Integration · v10.10.4 Python CLI


