Bosch Smart Home Kameras vollständig in Home Assistant — Custom Integration mit Live-Stream, Bewegungssensoren & Cloud-API (kein SHC nötig)

vielen vielen dank!

leider hat das nicht funktioniert

bzw um genau zu sein erst mal schon, nach dem Update habe ich unter medien alle bereits aus der Bosch cloud geladenen Clips gesehen und konnte sie auch abspielen.
Aber es waren genau die, die die Version 10.7.1 geladen hat (mit den falschen Namen, waren aber alle abspielbar)
Neue wurden nicht geladen.
Habe inzwischen die Integration komplett gelöscht und neu installiert (11.0.10) mehrere Male vor die Kamera gelaufen, in der Bosch app sehe ich die Clips in HA nicht, sind auch nicht unter /config/bosch_events/ (ordner ist leer)
In der neuen version ist auch keine Option mehr zum “Events automatisch runterladen”. Ich bin nicht sicher ob sie vor dem Update in der 10.7.1 aktiviert oder deaktiviert zuletzt war. Hatte aber gehofft, dass eine Deinstallation und anschliessende Installation die “Altlasten” beseitigt

Wenn du willst, werde ich gerne dich mit allen Infos beliefern die Du anfragst um dich bei der Problemsuche zu unterstützen. Ansonsten gebe ich das erst mal auf, weil ich dich nicht permanent damit belästigen will, wenn es nur bei mir nicht klappt

Danke noch mal!

Vielen Dank für die ausführliche Rückmeldung – das war extrem hilfreich und hat einen zweiten Bug aufgedeckt!

Was bei dir passiert ist:

Nach der Neuinstallation wird kein Benachrichtigungsdienst konfiguriert (das ist Standard – die Integration kommt ohne Benachrichtigungen aus).
Dabei hat die Integration eine zu frühe return-Anweisung ausgeführt, bevor überhaupt die lokale Speicherung gestartet wurde. Das heißt: Events
kommen an, werden erkannt – aber nichts wird gespeichert. Das Verzeichnis /config/bosch_events bleibt leer.

Fix ist in v11.0.11:

:right_arrow: Bitte auf v11.0.11 über HACS aktualisieren + HA neu starten.

Danach sollte bei jeder neuen Bewegung automatisch eine JPG- und MP4-Datei unter /config/bosch_events/<Kameraname>/ erscheinen – ohne dass ein
Benachrichtigungsdienst konfiguriert sein muss.

Zum Testen: Einfach einmal vor die Kamera laufen. In den HA-Logs sollte dann Local save: mit dem Dateinamen erscheinen. Wenn du SSH hast:
ls /config/bosch_events/ nach ca. 30 Sekunden.

Danke nochmal für die Geduld – ohne deinen Bericht hätte dieser Bug lange unentdeckt bleiben können!

Kurze Korrektur: v11.0.11 hatte noch einen Fehler — Events wurden bei allen Neuinstallationen automatisch heruntergeladen, auch ohne explizite
Aktivierung.

Bitte auf v11.0.12 aktualisieren (heute noch released).

Was sich ändert: In den Optionen gibt es jetzt einen neuen Schalter “Events lokal speichern” (standardmäßig AUS). Nur wenn dieser aktiviert
ist, werden JPEG + MP4 in den konfigurierten Ordner gespeichert.

Für Andreas74: Nach dem Update auf v11.0.12 →
Einstellungen → Geräte → Bosch Camera → Konfigurieren → Events & Storage → “Events lokal speichern” aktivieren → Speichern → HA neu starten

Danke nochmal für die Geduld — der zweite Bug wäre ohne deinen Bericht nicht aufgefallen!

freut mich dass ich helfen konnte

ich war unterwegs, konnte also noch nicht testen

ich werde spätestens morgen hier berichten

………….

klappt alles wie von dir beschrieben

Vielen Dank!

:slight_smile:
v11.0.13 → hier siehst du beide local / nas ordner immer.

issue ist behoben in der neuesten Version

ich bin jetzt bei Version 11.0.15. Endlich werden die Medien auch bei meiner alten Außenkamera angezeigt. Vielen Dank für diese Integration :grinning_face:

1 „Gefällt mir“

Bei mir aktualisiert sich der Snapshot leider nicht mehr.
In meiner Automation sieht das so aus:

action: camera.snapshot
metadata: {}
data:
  filename: /media/bosch_snapshot/last_snapshot.jpg
target:
  device_id: c517298d6dbd7bc6098c352546ce8615
enabled: false
continue_on_error: true

Im Terminal sehe ich, dass last_snapshot.jpg im Verzeichnis/root/media/bosch_snapshot liegt, aber leider vom 03.05 ist.

(Ich verwende nicht “Bonus zum Alert-System” aus der Integration, da man damit keine Automationen machen kann)

Hallo

könnte damit zusammen hängen

ich habe auf dem Handy (Android app) immer wieder diese Fehlermeldung

“Die Aktion bosch:sch_camera/trigger_snapshot konnte nicht ausgeführt werden. unknown error”

wird dort einfach ausgegeben, über Browser nicht und auch in dem System Protokoll sehe ich diese nicht

bin aktuell auf 11.1.0

Dann muss ich mal ein android handy herrauskramen :slight_smile: melde mich. Unter iOS geht alles

Hi @geotie,

ich sehe zwei konkrete Probleme in deiner Automation — und einen einfacheren Weg für deinen Anwendungsfall.


Problem 1: enabled: false — der Snapshot-Schritt ist deaktiviert

In deiner Action steht enabled: false. Das deaktiviert genau diesen Schritt — die Automation läuft durch, aber der
camera.snapshot-Aufruf wird übersprungen. Die Datei vom 03.05. bleibt einfach liegen. Zeile entfernen oder auf true
setzen.


Problem 2: Pfad /media/ unter HA OS

Unter HA OS ist /media bereits intern freigegeben — du brauchst kein allowlist_external_dirs in der
configuration.yaml. Dein Pfad /media/bosch_snapshot/last_snapshot.jpg funktioniert direkt, sobald Problem 1 behoben ist.

(Unter HA Core/Container wäre das anders — dort müsste man den Pfad explizit freigeben.)


Zu „Alert-System erlaubt keine eigenen Automationen"

Das stimmt so nicht ganz. Die Integration feuert eigene HA-Events, die du als Trigger nutzen kannst:

trigger:
  - trigger: event
    event_type: bosch_shc_camera_motion
    # alternativ: bosch_shc_camera_person / bosch_shc_camera_audio_alarm

Der Payload enthält camera_name, timestamp und image_url — du hast also vollen Zugriff für eigene Automationen.


Einfacherer Weg: Android Companion App + eingebautes Alert-System

Wenn du die HA Android Companion App nutzt, brauchst du gar keine eigene Automation. Unter

Einstellungen → Integrationen → Bosch Smart Home Camera → Konfigurieren → Benachrichtigungen → Schritt 2

trägst du notify.mobile_app_<dein_gerät> ein. Ergebnis: FCM Push von Bosch (~2 Sek. nach Bewegung) → Snapshot-Bild inline in
der Android-Benachrichtigung.

Das Bild liegt unter /media/bosch_alerts/ und wird über den HA-Webserver ausgeliefert. Im LAN funktioniert das sofort, extern
brauchst du Nabu Casa oder einen eigenen Zugang von außen.

Android-Unterstützung in v11.2.3 + v11.2.4

Für alle, die die Integration im HA Android Companion App nutzen: zwei neue
Verbesserungen sind jetzt live.

Tap-to-play Overlay (v11.2.3)

Android-WebView blockiert video.play() systemseitig, solange in der HA App unter Einstellungen → Companion App → Allgemein
“Videos automatisch abspielen” deaktiviert ist. Bisher blieb der Stream einfach schwarz.

Ab v11.2.3 zeigt die Card stattdessen ein halbtransparentes Overlay mit Play-Button. Ein Tap startet den Stream — ohne die
App-Einstellungen anfassen zu müssen. Das Overlay enthält auch einen Hinweis, falls ihr “Autoplay videos” dauerhaft
aktivieren wollt.

Auto-Stream + stummgeschalteter Start (v11.2.4)

Auf Android startet der Stream jetzt automatisch 1,5 Sekunden nachdem das Dashboard geöffnet wird — ohne manuellen Tap auf
den Stream-Button. Audio beginnt dabei stumm, damit das Dashboard beim Öffnen nicht ungewollt Ton abspielt. Ein Tap auf den
Ton-Button aktiviert den Ton dauerhaft.

Wer den Autostart für eine bestimmte Karte deaktivieren möchte:

type: custom:bosch-camera-card
camera_entity: camera.bosch_terrasse
android_auto_stream: false

Update über HACS → Integrationen → Bosch Smart Home Camera → Aktualisieren, danach HA neu starten.


Vielen Dank für die ausführliche Antwort!

Problem 1: Sorry dumm von mir, enabled: false gehört natürlich raus (ich hatte nur zu Testzwecken deaktiviert)
Problem 2: Mein HA läuft als virtuelle Maschine auf Synology, also HA OS.
Der Snapshot aktualisiert leider immer noch nicht unter /media/bosch_snapshot/last_snapshot.jpg. Wie heißt denn der richtige Pfad?
Alert-System: funktioniert relativ gut mit notify.mobile_app_pixel_6. Toll, dass das so eingebaut ist, aber wie finde ich den Payload mit `image_url`?
Der Snapshot liegt auch nicht unter /media/bosch_alerts/. Den Ordner musste ich erst selbst über Terminal anlegen, aber er bleibt ohne Inhalt.
Und wie kann ich automatisieren, dass – wie in der App – Benachrichtigungen unterdrückt werden, z. B. für 3 Stunden?

Hallo geotie,

ich gehe alle vier Punkte durch:


1. /media/bosch_snapshot/last_snapshot.jpg

Diese Datei wird von der Integration nicht angelegt. Der Kamera-Snapshot ist nur als HA-API-Endpunkt verfügbar, nicht als statische Datei auf der Disk.

Wenn du eine Datei an einem festen Pfad brauchst, geht das über den HA-Dienst camera.snapshot in einer Automation:

trigger:
  - trigger: event        # HA < 2026.4: platform: event
    event_type: bosch_shc_camera_motion
action:
  - action: camera.snapshot
    target:
      entity_id: camera.bosch_<kameraname>
    data:
      filename: /media/bosch_snapshot/last_snapshot.jpg

Das Verzeichnis /media/bosch_snapshot/ muss einmalig vorab existieren.


2. image_url im Event-Payload

Das Event bosch_shc_camera_motion enthält das Feld image_url mit einer temporären Bosch-CDN-URL. Um es live zu sehen: Entwicklerwerkzeuge → Ereignisse → bosch_shc_camera_motion abonnieren → auslösen lassen.

Wichtiger Vorbehalt: image_url kann beim ersten Eintreffen leer sein (Bosch-Backend noch nicht bereit). Die eingebaute Alert-Pipeline der Integration hat dafür eine automatische Retry-Schleife — eine eigene Automation nicht.

Für eine eigene Automation trotzdem:

trigger:
  - trigger: event        # HA < 2026.4: platform: event
    event_type: bosch_shc_camera_motion
action:
  - action: notify.mobile_app_pixel_6
    data:
      message: "Bewegung: {{ trigger.event.data.camera_name }}"
      data:
        image: "{{ trigger.event.data.image_url }}"

Wenn image_url leer ist, kommt die Benachrichtigung ohne Bild an — kein Fehler.


3. /media/bosch_alerts/ bleibt leer — drei Ursachen

Ursache a) Falscher Pfad. Die Integration schreibt nicht nach /media/bosch_alerts/. Sie schreibt nach:

/config/www/bosch_alerts/

(im HA-OS-Dateisystem: /homeassistant/www/bosch_alerts/, per Browser erreichbar als /local/bosch_alerts/)

Der README hatte /media/bosch_alerts/ — Dokumentationsfehler, gerade behoben.

Ursache b) Kein Alert-Dienst konfiguriert. Die Integration legt das Verzeichnis automatisch beim ersten Alert an. Wenn du es manuell erstellen musstest, hat die interne Alert-Pipeline noch nie gefeuert. Prüfe: Einstellungen → Geräte & Dienste → Bosch SHC Camera → Konfigurieren → Benachrichtigungsdienst (Fallback) — dort muss z. B. notify.mobile_app_pixel_6 eingetragen sein.

Ursache c) „Alert-Snapshots speichern" ist standardmäßig OFF. Selbst bei korrekter Konfiguration werden Dateien nach dem Versenden sofort gelöscht. Zum Behalten: Optionen → Alert-Snapshots speichern → ON.


4. 3-Stunden-Stummschaltung

Hinweis vorab: diese Stummschaltung betrifft nur HA-Benachrichtigungen. Die Bosch-App hat ihr eigenes, unabhängiges Benachrichtigungssystem — wer ausschließlich über HA benachrichtigt werden möchte, kann die Bosch-App einfach deinstallieren.

Variante A — eingebaute Alert-Pipeline (Dienst in den Integrationsoptionen konfiguriert):

alias: Bosch – 3h Stummschaltung nach Bewegung
mode: single
max_exceeded: silent
trigger:
  - trigger: event        # HA < 2026.4: platform: event
    event_type: bosch_shc_camera_motion
    event_data:
      camera_id: <deine_kamera_id>
condition:
  - condition: state
    entity_id: switch.bosch_<kamera>_notifications
    state: "on"
action:
  - action: switch.turn_off
    target:
      entity_id: switch.bosch_<kamera>_notifications
  - delay: "03:00:00"
  - action: switch.turn_on
    target:
      entity_id: switch.bosch_<kamera>_notifications

Variante B — eigene Automation:

mode: single blockiert die Automation für 3 Stunden selbst — weitere Trigger werden ignoriert:

alias: Bosch – Bewegungs-Push mit 3h Cooldown
mode: single
max_exceeded: silent
trigger:
  - trigger: event        # HA < 2026.4: platform: event
    event_type: bosch_shc_camera_motion
action:
  - action: notify.mobile_app_pixel_6
    data:
      message: "Bewegung: {{ trigger.event.data.camera_name }}"
      data:
        image: "{{ trigger.event.data.image_url }}"
  - delay: "03:00:00"

Die camera_id und den Switch-Namen findest du unter Entwicklerwerkzeuge → Zustände (nach switch.bosch_ suchen) bzw. im Event-Stream (Punkt 2).

Update: v12.0.1 — Platinum Quality Scale :military_medal:

Kurzes Update für alle, die die Integration nutzen: gestern habe ich v12.0.1 veröffentlicht — gleichzeitig der Abschluss
eines längeren Qualitäts-Sprints.

Was neu ist (v12.0.x)

  • HA Quality Scale Platinum — alle 47 Engineering-Regeln erfüllt (vorher Gold)
  • Komplett asyncrequests-Dependency vollständig entfernt, alles läuft non-blocking
  • mypy --strict grün — 593 Typ-Fehler → 0
  • System Health eingebaut: Integration → System Health zeigt Token-Status, Proxy-Ports, aktive Streams
  • Logbook-Integration: Bewegungsereignisse erscheinen direkt im HA Logbook
  • Diagnostics & Repair Issues via HA-Builtin
  • 3.665 Tests / 99 % Coverage

Was die Integration insgesamt kann (für Neulinge)

  • Live-Stream für Eyes Outdoor/Indoor, 360° und Gen2 Eyes Indoor II / Outdoor II
  • FCM Push für sekundenschnelle Bewegungsereignisse (kein Polling)
  • Lovelace Custom Card mit Stream, Snapshot, Pan/Tilt, Privacy-Toggle
  • Mini-NVR: Pre-Roll-Ringpuffer + lokale 5-Minuten-Segmente, abrufbar im Media Browser
  • Bewegungszonen, Privacy-Bereiche und Motion-Sensitivity konfigurierbar
  • Bis zu 4 Kameras gleichzeitig — kein SHC erforderlich

Voraussetzungen

  • Home Assistant 2024.1+
  • Bosch-Account mit mindestens einer registrierten Kamera
  • HACS

Installation (3 Schritte)

  1. HACS → 3-Punkt-Menü → Custom Repositories → URL eintragen:
    https://github.com/mosandlt/Bosch-Smart-Home-Camera-Tool-HomeAssistant
    Typ: Integration → Hinzufügen
  2. Integration in HACS herunterladen → HA neu starten
  3. Settings → Devices & Services → + Add Integration → Bosch Smart Home Camera → Bosch-Account-Login

Dashboard-Beispiel

Das README enthält ein fertiges YAML-Beispiel für eine Bosch-Admin-View mit allen Kameras und Sensoren:
README → Admin & Health Dashboard
Example

Links

Bug-Reports und Feature-Requests gerne als GitHub
Issue
— ich schaue regelmäßig rein.

Heute ist eine größere Runde an der Bosch Smart Home Kamera Integration online. Wer den heutigen Vormittag mit kaputten Snapshots durchstehen musste: die folgenden Features fangen genau diesen Fall ab.

Cloud-Wartungs-Banner. Die Integration zieht jetzt den offiziellen Bosch-Community-RSS-Feed (Wartungsarbeiten + Statusmeldungen). Sobald Bosch eine Wartung ankündigt, erscheint im Dashboard ein Banner mit Titel, Zeitfenster (07:00–10:00 MESZ) und Link in die Community. Sensor sensor.bosch_<cam>_bosch_cloud_wartung mit den States active / scheduled / past / recent / unknown / idle für Automationen.

Lifecycle-Benachrichtigungen. Pro Wartungs-Window gibt es drei Notifications: angekündigt, gestartet, beendet. Dedupliziert per (RSS-Link, State) — eine geplante Wartung spammt nicht. Routet über alert_notify_system mit Fallback auf alert_notify_service.

Cloud-Up/Down-Alert. Wenn die Bosch-Cloud länger als 60 Sekunden 5xx liefert, geht eine Notification raus (“Bosch Cloud nicht erreichbar”). Beim ersten erfolgreichen Tick danach folgt die Recovery-Meldung. Während einer angekündigten Wartung bleibt die Integration stumm — Doppel-Benachrichtigungen vermieden.

LAN-Fallback für Privacy und Frontlicht. Genau hier wird es spannend: solange die Kamera im LAN erreichbar ist, gehen Privacy- und Lichtschalter weiter, auch wenn die Bosch-Cloud komplett tot ist. Der Switch-Aufruf fällt automatisch von Cloud auf RCP-Direkt-Schreib zur Kamera durch. Ein binary_sensor.bosch_<cam>_lan_reachable zeigt den TCP-Ping-Status. Der Persistent-Store merkt sich die LAN-IPs für den nächsten Outage über einen Neustart hinweg.

Status-Sensor mit Disconnect-Override. Wenn die Bosch-Cloud noch ONLINE meldet, das letzte Event aber ein TROUBLE_DISCONNECT war (auch Wochen zurück), zeigt der Status-Sensor offline statt der falschen Cloud-Antwort.

Pro-Kamera Online/Offline-Alerts. Statt nur den Sensor zu beobachten gibt es jetzt für jede Kamera eine eigene Benachrichtigung beim Wechsel — erste Beobachtung nach Restart bleibt stumm (Baseline), unknown-Flaps werden ignoriert.

Full notes:

Falls etwas nicht funktioniert: GitHub-Issue im Repo, oder hier antworten. Die LAN-Fallback-Pfade haben wir heute live während der Bosch-503-Outage durchgetestet.