Zum Inhalt springen
Alles Automatisch
Guide

DoorBird-Klingel löst in Home Assistant nichts aus

Die DoorBird ist in Home Assistant eingebunden, Kamerabilder kommen, aber beim Klingeln passiert nichts. Woran das liegt und wie du das Klingel-Event zuverlässig ans Laufen bringst.

Fortgeschritten5 Min. LesezeitAktualisiert am

Das Problem

Die DoorBird ist über die offizielle Integration eingebunden, die Kamerabilder laden, alles wirkt fertig. Nur eins fehlt: Wenn jemand klingelt, passiert in Home Assistant nichts. Kein Popup, kein Gong, keine Automation. Die DoorBird-App schickt dir weiter brav eine Push aufs Handy, aber HA bleibt still.

Das ist eine der häufigsten DoorBird-Sackgassen. Fast alle raten an der falschen Stelle. Es liegt nämlich meistens nicht an Home Assistant.

Warum die Klingel oft still bleibt

Damit ein Klingeldruck in HA ankommt, muss die DoorBird beim Drücken eine URL auf deinem Home Assistant aufrufen. Die Integration legt dafür auf dem Gerät zwei Dinge an:

  1. Einen HTTP-Favoriten, also die Callback-URL zu HA.
  2. Einen Zeitplan-Eintrag (Schedule), der den Eingang „doorbell" mit diesem Favoriten verknüpft.

Erst wenn beides existiert, ruft die DoorBird beim Klingeln HA auf. Und genau hier steckt der Haken:

Wichtig: Die Home-Assistant-Integration erstellt selbst KEINEN Klingel-Zeitplan. Sie hängt ihren Aufruf nur an einen bereits vorhandenen „doorbell"-Eintrag an. Gibt es keinen, bleibt der Favorit unverknüpft. Ganz ohne eine einzige Fehlermeldung im Log.

Das erklärt das Verhalten perfekt: Der Favorit ist da, die URL stimmt, der Webhook funktioniert, aber der Klingeldruck ruft ihn nie auf. Die App-Push, die trotzdem kommt, läuft über die DoorBird-Cloud und braucht den lokalen Zeitplan gar nicht. Deshalb „App ja, HA nein".

Schritt 1: Prüfen, ob Home Assistant überhaupt reagiert

Bevor du an der DoorBird schraubst, teste die HA-Seite. Öffne die Favoriten-URL direkt im Browser (im selben Netz wie HA). Sie sieht so aus:

text
http://<HA-IP>:8123/api/doorbird/<geraetename>_doorbell?token=<token>

Den genauen Wert findest du in der DoorBird-App unter Administration, Favoriten, HTTP(S) Aufrufe (Eintrag „Home Assistant"). Rufst du die URL auf und bekommst 200 OK, dann funktioniert alles ab Home Assistant. Der Bus-Event doorbird_<geraetename>_doorbell feuert, deine Automation läuft.

Heißt: Wenn dieser Test klappt, ist HA fertig eingerichtet. Das Problem sitzt dann allein in der DoorBird (der fehlende Zeitplan-Eintrag).

Schritt 2: Der einfache Weg über die DoorBird-App

Auf vielen Geräten kannst du den Zeitplan direkt in der App setzen:

  1. DoorBird-App, unten Einstellungen, dann Administration. Mit deinen DoorBird-Administrations-Zugangsdaten einloggen.
  2. Experteneinstellungen, dann Zeitplan für die Türklingel.
  3. Oben links auf das Glocken-Symbol tippen, dann HTTP(S) Aufrufe wählen.
  4. Deinen Home-Assistant-Aufruf auswählen und das Wochenraster komplett grün schalten (immer aktiv).
  5. Speichern, ein paar Minuten warten, klingeln.

Hinweis: Der Menüpunkt heißt „Zeitplan für die Türklingel" und liegt in den Experteneinstellungen. Nicht verwechseln mit „Zeitbasierte Aktionen" (das sind reine Uhrzeiten) oder „Zeitplan für Folgeaktionen" (das gehört zum Relais, also dem Türöffner).

Schritt 3: Wenn der App-Menüpunkt fehlt, per API

Bei manchen Modellen oder App-Versionen fehlt „Zeitplan für die Türklingel" komplett. Dann setzt du den Eintrag direkt über die DoorBird-LAN-API. Das geht am saubersten von einem Gerät im Heimnetz aus, zum Beispiel über die App (früher Add-on) „Terminal & SSH", weil sie auf dem HA-Host läuft und die DoorBird erreicht.

Ein Detail vorweg: Die DoorBird-HTTP-API nutzt einen eigenen DoorBird-Benutzer, nicht dein App-Konto-Passwort. Die Zugangsdaten, die die Integration verwendet, liegen im Klartext in der HA-Konfiguration. So liest du sie aus, ohne sie am Bildschirm zu zeigen:

bash
F=/config/.storage/core.config_entries
H=$(jq -r '.data.entries[]|select(.domain=="doorbird")|.data.host' "$F")
U=$(jq -r '.data.entries[]|select(.domain=="doorbird")|.data.username' "$F")
P=$(jq -r '.data.entries[]|select(.domain=="doorbird")|.data.password' "$F")

Jetzt die HTTP-Favoriten anzeigen, um die ID deines Klingel-Aufrufs zu finden:

bash
curl -s -u "$U:$P" "http://$H/bha-api/favorites.cgi"

In der Ausgabe steht unter "http" ein Eintrag mit dem Titel „Home Assistant (...doorbell)". Der Schlüssel davor (oft "0" oder "1") ist die Favoriten-ID. Die brauchst du gleich als param.

Dann den Zeitplan-Eintrag setzen. Wichtig ist hier alles, was viele falsch machen, siehe die Fallen weiter unten:

bash
curl -s -u "$U:$P" -H "Content-Type: application/json" -d '{"input":"doorbell","param":"1","output":[{"enabled":"1","event":"notify","param":"","schedule":{"weekdays":[{"from":"0","to":"604799"}]}},{"enabled":"1","event":"http","param":"0","schedule":{"weekdays":[{"from":"0","to":"604799"}]}}]}' "http://$H/bha-api/schedule.cgi"

Setz "param":"0" beim http-Output auf deine tatsächliche Favoriten-ID aus dem Schritt davor. Kommt HTTP 200 zurück, ist der Eintrag gesetzt. Danach einmal klingeln und prüfen, ob deine Klingel-Automation auslöst.

Die drei Fallen, die richtig Zeit kosten

Falle 1: notify weglassen. Der Schedule-POST ersetzt die komplette Aktionsliste der Klingel. Schreibst du nur den http-Aufruf rein, ist die DoorBird-App-Push plötzlich weg. Deshalb immer notify (Push und Verlauf) UND http (Home Assistant) zusammen setzen, so wie oben.

Falle 2: to zu hoch. Für „ganze Woche, immer aktiv" ist der Maximalwert 604799 (7 Tage minus 1 Sekunde). Nimmst du 604800, antwortet die DoorBird mit 400 Bad Request. Startwerte müssen Vielfache von 1800 sein, 0 passt also.

Falle 3: fehlendes Recht. Der DoorBird-Benutzer braucht die Berechtigung API-Operator, sonst kommt beim Schreiben ein 401. Kamerabilder gehen auch ohne dieses Recht, deshalb wirkt die Integration trotzdem „eingerichtet". Das Recht setzt du in der DoorBird-App bei dem Benutzer, den Home Assistant nutzt (zusammen mit Watch always, History und Motion).

internal_url richtig setzen

Die Callback-URL, die auf der DoorBird landet, baut Home Assistant aus seiner internen URL. Steht die auf homeassistant.local, kann die DoorBird sie oft nicht auflösen. Setz sie deshalb auf die feste IP:

Einstellungen, System, Netzwerk, „Lokales Netzwerk", http://<HA-IP>:8123. Die IP siehst du dort im Netzwerkadapter oder in deinem Router.

Modell-Unterschiede

Die D11x- und D21x-Reihe unterstützt den Zeitplan sauber. Ältere oder abgespeckte Modelle (D301) kennen die Schedule-API nicht. Wenn schedule.cgi bei dir gar nichts liefert, ist das der Grund. Dann führt kein Weg über die API, es bleibt der App-Weg oder eine andere Auslösung.

Checkliste

  • Webhook-URL direkt aufgerufen, kommt 200? Dann ist Home Assistant fertig.
  • Existiert ein „doorbell"-Eintrag im DoorBird-Zeitplan? Wenn schedule.cgi [] liefert, ist das dein Problem.
  • Hat der DoorBird-Benutzer API-Operator?
  • internal_url auf die feste HA-IP gesetzt?
  • Schedule-POST mit notify UND http, to auf 604799?
  • Nach dem Setzen einmal klingeln, last_triggered deiner Automation läuft.

Wenn alle Häkchen sitzen, klingelt es ab jetzt auch in Home Assistant. Was du damit auslöst, also Popup am Wandpanel, Gong, Push aufs Handy, ist dann ganz normale Automations-Arbeit.

Zum Thema

Passende Videos