DoorBird

Aus FHEMWiki
Zur Navigation springen Zur Suche springen
DoorBird
Zweck / Funktion
Anbindung eines DoorBird Interkommunikations-Systems
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) Sonstiges
Modulname 73_DoorBird.pm
Ersteller Sailor
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Das DoorBird Modul ermöglicht die Anbindung einer DoorBird Tür-Interkommunikationseinheit an einen FHEM-Server zur Konfiguration und Kommunikation.

Vorbereitungen

DoorBird D2101V
Quelle: "Bird Home Automation GmbH"
© Bird Home Automation

Vorbereitungen der Hardware

Installation der Hardware

Die DoorBird Geräte müssen entsprechend der Installationsanleitung hardwareseitig installiert werden. Insbesondere bei Verwendung von Wireless LAN (WLAN) Sollte man auf eine stabile Verbindung bzw. ausreichend Feldstärke achten. Sollte die DoorBird Anlage mittels LAN-Kabel angeschlossen werden, muss man die Entfernungseinschränkungen insbesondere bei der Verwendung der Power over Ethernet(PoE)-Injektion beachten.

Update der Firmware

DoorBird D2101KV
Quelle: "Bird Home Automation GmbH"
© Bird Home Automation

Um eine funktionsfähige Kommunikation zwischen dem FHEM-Modul und dem DoorBird Gerät aufbauen zu können, muss ein entsprechender Firmwarestand installiert werden. Die Firmware hängt vom angeschlossenen Gerät ab. Aus diesem Grund muss ggf. vor der Definition in FHEM die Firmware auf den letzten Stand gebracht werden.

Die Kommunikation wird erst ab den unten aufgefährten Firmware-Versionen funktionieren:

Device Hardware Version Firmware version
DoorBird Video Door Station D10x 1.00+ 000099+
DoorBird Video Door Station D20x 1.00+ 000099+
DoorBird Video Door Station D21x 1.00+ 000108+
BirdGuard B10x 1.00+ 000099+

Es ist jederzeit möglich, den Firmware-Stand seines DoorBird-Gerätes unter diesem Link zu überprüfen: https://www.doorbird.com/de/checkonline

Einrichtung des DoorBird Anlage

Neben der individuellen Einrichtung der DoorBird-Anlage, müssen noch zusätzlich die Einstellungen für die SIP Telefonverbindungen vorgenommen werden. Je nachdem welches System man verwendet, kommen verschiedene Anleitungen in Frage. Die entsprechenden individuellen Anleitungen zur Einrichtung der SIP-Verbindungen sind hier zu finden: https://www.doorbird.com/de/sip

Die große Masse der User dürfte allerdings eine FritzBox ihr Eigen nennen. In der entsprechenden Anleitung ist insbesondere unter 2.5 „Eingehende Anrufe erlauben“ darauf zu achten, dass eine individuell für den DoorBird in der Fritz!Box vergebene SIP Telefonnummer angegeben wird.

Vorbereitungen in Linux

Damit das Modul unter FHEM und Linux funktioniert, müssen zusätzliche Perl-Bibliotheken installiert werden.

Damit die ständige Eingabe des „sudo“ Befehls zur Installation der einzelnen Module „muss mit Root-Rechten erfolgen“ umgangen werden kann, bitte folgenden Befehl eingeben und mit Password freigeben:

sudo bash

Zur Vermeidung bekannter Fehler aufgrund von Versionsunterschieden sollte man seine bereits installierten Pakete auf den neusten Stand bringen:

apt-get update
apt-get upgrade

Dann nacheinander die u.g. Module per (Copy/Paste) und Bestätigung per Enter installieren.

Code:

apt-get install sox
apt-get install libsox-fmt-all
apt-get install libsodium-dev
cpan MIME::Base64
cpan Alien::Base::ModuleBuild:
cpan Alien::Sodium
cpan Crypt::NaCl::Sodium

Zum Abschluss nach erfolgter Installation der Module noch mit Eingabe von

exit

wieder in den User-Mode wechseln.

Vorbereitung in FHEM

SIP und Text2Speech

Es werden für die Ausgabe von Sprachmeldungen am Doorbird System zwei zusätzliche FHEM Devices benötigt. Zur Installation bitte den Anweisungen im FHEM Wiki folgen:

  1. SIP-Client
  2. Text2Spech (Anleitung im Wiki für den SIP-Client enthalten)

Darüber hinaus muss ggf. noch die entsprechende Einrichtung der Telefonnummer für den FHEM SIP-Client im Heim-Router (z.B. FritzBox) erfolgen.

Aktivierung und Definition in FHEM

In der fhem.cfg das Modul definieren mit:

define <devicename> DoorBird <IPAdresse des DoorBird> <Username> <persönliches Passwort>

Hierbei werden die barewords Username und Passwort verschlüsselt abgelegt. Nach erfolgreicher Definition sollten diese mit Crypt: voran in der Definition stehen (Browser Refresh (F5) durchführen).

Einstellungen über Attribute

Es können neben den Standard Attributen wie "room" oder "verbose" noch folgende für das DoorBird-Modul individuelle Attribute in der fhem.cfg ergänzt werden.

attr <devicename> PollingTimeout  <time in sec>
attr <devicename> MaxHistory  <1 or 0>
attr <devicename> KeepAliveTimeout <time in sec>
attr <devicename> UdpPort   <6524 oder 35344>
attr <devicename> SipDevice   <FHEM device name>
attr <devicename> SipNumber   <Telefonnummer des DoorBird>


PollingTimeout
Zeitraum in dem das auf eine Antwort seitens des DoorBird Moduls warten soll. Sollte ein sehr langsames Heimnetz vorhanden sein, so muss der Wert entsprechend hochgesetzt werden.
Der Default-Wert ist 10s.
MaxHistory
Die maximale Anzahl angezeigter und heruntergeladener Bilder für die Event-Historie.
Der Default-Wert is 50 = maximale Anzahl.
KeepAliveTimeout
Zeitraum in Sekunden nach dem das Gaerät als "disconnected" definiert wird. Der DoorBird sendet in der Regel alle 7 Sekunden ein "Still-Alive" Datagramm aus, auf welches dieses Modul reagiert
Der Default-Wert ist 30s.
UdpPort
Port Nummer auf welcher das DoorBird-Modul nach den UDP Datagrammen der DoorBird-Anlage hören soll. Die Ports sind von der Firmware vorgegeben.
Der Default Port ist 6524
SipDevice
Name des FHEM SIP Device dessen Nummer in der DoorBird-Anlage hinterlegt wurde, welche die DoorBird-Anlage anrufen dürfen.
Der Default Wert ist das erste SIP device welches in FHEM zu finden ist.
SipNumber
Die Telefonnummer unter der die DoorBird / Anlage registriert wurde und erreicht werden kann.
Die Default Nummer ist **620
SessionIdSec
Zeit in Sekunden nach welcher die Session Id erneuert werden soll. Diese ist für die sichere Übertragung der Video und Audio Verbindungsdaten notwendig. Die DoorBird-Unit devalidiert die Session Id automatisch nach 10min. Für den Fall, dass die DoorBird Kamera an ein Überwachungssystem angebunden werden soll, muss diese Funktion ausser Betrieb genommen werden indem man den Wert auf 0 setzt 0.
Der Default Wert ist 540s = 9min.
AudioFileDir
Der relative (z.B. "audio") oder absolute (z.B. "/mnt/NAS/audio") Verzeichnispfad mit oder ohne nachfolgendem Pfadzeichen "/" in welchen die Audio-Dateien abgelegt sind.
Der Default Wert ist 0 = deaktiviert
ImageFileDir
Der relative (z.B. "images") oder absolute (z.B. "/mnt/NAS/images") Verzeichnispfad mit oder ohne nachfolgendem Pfadzeichen "/" in welchen die Bild-Dateien gespeichert werden sollen.
Der Default Wert ist 0 = deaktiviert
VideoFileDir
Der relative (z.B. "images") oder absolute (z.B. "/mnt/NAS/images") Verzeichnispfad mit oder ohne nachfolgendem Pfadzeichen "/" in welchen die Video-Dateien gespeichert werden sollen.
Der Default Wert ist 0 = deaktiviert
EventReset
Zeit in Sekunden nach welcher die Readings für die Events (z.B. "doorbell_button", "motions sensor", "keypad")wieder auf "idle" gesetzt werden sollen.
Der Default Wert ist 5s
WaitForHistory
Zeit in Sekunden die das Modul auf das Bereitstellen eines korrespondierenden History Bildes zu einem Event warten soll. Muss ggf. adjustiert werden, sobald deutliche Unterschiede in der Systemzeit zwischen FHEM-Server und DoorBird Station vorliegen.
Der Default Wert ist 7s
OpsModeList
Eine durch Leerzeichen getrennte Liste von Namen für Operationszustände (e.g. "Normal Party Feuer" auf diese der DoorBird automatisch bei Events reagiert.
Der Default Wert ist "" = deaktiviert

Event gesteuerte Aktionen

Das DoorBird Modul ist in der Lage, auf in Abhängigkeit von Operationsmoden individuelle Aktionen hinsichtlich der Relays und Audioausgaben am DoorBird durchzuführen. Im Augenblick reagiert das Modul dabei nur auf Events der Türklingel (Doorbell) und des Bewegungssensors (Motion). Sobald die Herstellerfirma ein entsprechendes Firmwareupdate herausgebracht hat, so hoffe ich auch die Events bei Zahlencode-Eingabe mit einbinden zu können. Hierbei kann man im sogenannten Normalmodus bei Betätigen der Türklingel einen automatischen Audio-Stream abspielen "Willkommen bei Familie fhem. Ich versuche jemanden kontaktieren. Bitte warten sie". Im Partymodus kann man beispielsweise nach der Ansage "Willkommen auf unserer Party. Die Tür wird geöffnet. Bitte tretet ein!" automatisch eines der installierten Relays auslösen.

Vorbereitung der Audiodateien

Zunächst muss man sich überlegen wieviele Moden man braucht. Im folgenden arbeiten wir mit 3 Moden: Normal, Party und Feuer. Dann legt man sich für jeden Fall eine Audiodatei an. Dies kann man selbst besprechen, oder man lässt dies auf einen der Internetseiten zur Sprachsynthetisierung erstellen. Mein Favorit ist https://ttsmp3.com/ wo man bei Bedarf auch deutsche Texte mit englischem oder französischem Akzent erstellen kann. Die ist besonder lustig, wenn man das französische Dienstmädchen sowie den englischen Butler aus dem DoorBird erklingen lassen will. Hierbei sollte man bedenken, das die ersten 2 Sekunden von den klingelden Personen an der Tür nicht erfasst werden, bevor diese verstehen, dass dort eine Nachricht für sie erscheint. Daher empfehle ich aus psychologischer Sicht mit etwas Belanglosem anzufangen wie "Willkommen bei Familie fhem.".

Für unser Beispiel sollen jetzt mal 3 Audiodateien erstellt werden:

  1. Normal-Bell.mp3 "Willkommen bei Familie fhem. Ich versuche Jemanden der Bewohner zu erreichen. Bitte warten sie!"
  2. Party-Bell.mp3 "Willkommen auf der Party von Hans fhem. Die Tür wird für sie geöffnet. Bitte treten sie ein!"
  3. Feuer-Bell.mp3 "Im Hause der Familie fhem ist ein Rauchmelder ausgelöst worden. Der nächste Feuerlöscher ist unter der Treppe. Die Tür wird für sie geöffnet. Bitte treten sie ein! "

Jetzt muss ein Verzeichnis eingerichtet werden, in denen man die gesamten Audio-Dateien ablegen will (z.B.: /opt/fhem/audio). Dieses Verzeichnis samt Inhalt muss man mit den entsprechenden Rechten versehen.

Einrichten des DoorBird Device in FHEM

Im FHEM-Device setzen wir zunächst die Attribute AudioFileDir und setzen einen relativen oder absoluten Pfad auf das Verzeichnis in denen die gesamten Audiodateien zu finden sind.

Anschliessend setzen wir das eigentliche Attribut OpsModeList indem wir eine durch Space getrennte Liste mit freien Namen der Operationsmodi eingeben.

In unserem Beispiel soll der Wert des Attributs "Normal Party Feuer" sein.

Sobald man das Attribut gesetzt hat, tauchen auch entsprechende Readings auf. In unserem Falle:

  1. OpsMode
  2. OpsModeFireDoorbellAudio
  3. OpsModeFireDoorbellRelay
  4. OpsModeFireMotionAudio
  5. OpsModeFireMotionRelay
  6. OpsModeNormalDoorbellAudio
  7. OpsModeNormalDoorbellRelay
  8. OpsModeNormalMotionAudio
  9. OpsModeNormalMotionRelay
  10. OpsModePartyDoorbellAudio
  11. OpsModePartyDoorbellRelay
  12. OpsModePartyMotionAudio
  13. OpsModePartyMotionRelay

Die Eigenschaften dürften selbsterklärend sein. Mit dem Set-Befehl kann man die entsprechenden Readings dank der Auswahlliste entsprechend komfortabel setzen.

Von jetzt an reagiert FHEM bzw. das DoorBird Modul mit den entsprechend eingegebenen Aktionen.

Ein Löschen des Attributs OpsModeList löscht auch alle entsprechenden Readings und deren Inhalt. Ein erneutes Setzen des Attributs OpsModeList insbesondere mit neuem Namen, überschreibt alle entsprechenden Readings und deren Inhalt wird gelöscht.

Anmerkung

Ich empfehle, alle Readings zumindest auf Off zu setzen, um sicherzustellen, dass keine falschen Werte durch "Zeilenverrutscher" gespeichert werden.

Event gesteuerte Videoaufnahmen

Seit der Version ?????? unterstützt das Modul auch Event gesteuerte Videoaufnahmen in definierbarer Länge. Zur Zeit werden nur die Events Türklingel und Bewegungssensor getriggert. Ich hoffe, mit zukünftigem Firmwareupdate seitens der DoorBird Geräte auch die Keypads abfangen zu können.

Vorbereitung

Zunächst muss ein Verzeichnis erstellt werden (z.B.: /opt/fhem/videos/). Nicht vergessen, entsprechend die Rechte auf dieses Verzeichnis zu vergeben!

Das Attribut "VideoFileDir" muss auf den o.g. Ablageort der VideoFiles verweisen. Die Attribute "VideoDurationDoorbell", "VideoDurationMotion" und später auch "VideoDurationKeypad" legen fest, wieviele Sekunden Videosequenz gespeichert werden soll. Der Wert "0" bzw. das Löschen des Attributs deaktiviert die Aufnahme für dieses Event.

Hinweis

Beachtet hierbei, dass eine Sekunde Filmsequenz etwa 100kB an Speicherplatz benötigt. Entsprechend wird ein Ablageort direkt im NAS empfohlen.

Bekannte Probleme

Es werden zum Zeitpunkt eines Events (Türklingel / Bewegungssensor) keine Bilder heruntergeladen

Beschreibung / Ursache:

Diese Fehlermeldung tritt meistens in Verbindung mit einem sehr langsamen Netzwerk oder mit unsynchronisierten Zeiten zwischen FHEM-Server und DoorBird-Unit auf. Hierbei sind die Zeitstempel für die DoorBird-Unit und FHEM-Server zu weit auseinander.

Lösung:

Um das Modul "geduldiger" zu machen, muß man nur das Attribut "WaitForHistory" entsprechend höher setzen. Besser wäre es jedoch sowohl auf dem FHEM-Server als auch auf der DoorBird-Unit den NTP-Server auf die gleiche Adresse zu setzen.

Achtung: Auch muss die richtige Zeitzone gewählt werden.

Keine Reaktion bei Events

Beschreibung / Ursache:

Das FHEM Modul reagiert nicht auf die Events wie Klingeln, Bewegungssensor oder die automatischen StillAlive-Meldung welche per UDP Datagramme in das Netzwerk gesendet werden.

Lösung:

Es ist sicherzustellen, das sich DoorBird und der FHEM-Server im gleichen Netzwerk befinden. Weiterhin muss sichergestellt werden, dass weder seitens der Hardware (Active Switch, Router, etc.) noch seitens des Servers (Docker Container etc.) die UDP Datagramme herausgefiltert werden.

Bibliothek "Crypt::NaCL::Sodium"-Installation fehlgeschlagen

Beschreibung / Ursache:

Bei der Installation der Bibliothek "Crypt::NaCL::Sodium" mittels des Befehls "cpan Crypt::NaCl::Sodium" erscheint am Ende die Fehlermeldung

make: *** [Makefile:1087: test_dynamic] Fehler 255
AJGB/Crypt-NaCl-Sodium-1.0.8.0.tar.gz
/usr/bin/make test -- NOT OK

Lösung:

Die Bibliothek mittels dem Befehl "cpanm cpan Crypt::NaCl::Sodium --force" installieren.

Es werden keine Sprachmeldungen mehr an den DoorBird überragen

Beschreibung / Ursache:

Die Sprachübertragung hat bereits tadelos an den DoorBird funktioniert und auf einmal nicht mehr.

Auch das SIP-Device unter FHEM schafft keinen Kontakt mehr per Anwahl an den DoorBird herzustellen.

Das SIP Gateway ist auf einer FritzBox realisiert.

Lösung:

Die Firma AVM hat mit einem bestimmten Update (Versionssprung unbekannt) die SIP Gateway-Einstellungen geändert.

Seitdem identifiziert sie anrufende Nutzer nicht mehr mit **623@192.168.178.1 sondern mit **623@fritz.box

Daher müssen alle erlaubten SIP Benutzter im Administrationsteil der DoorBird-App auf dieses neue Format umgestellt werden.

PS: Dass man die alten SIP-Nutzer in der APP nicht löschen kann, ist ein bekannter Bug.

Neu erstellte OpsModeList erzeugt keine entsprechenden Readings

Beschreibung / Ursache:

Nach einem Neustart des fhem Systems erscheint nach dem Anlegen der Operation Mode List mittels des Attributes "OpsModeList" keine entsprechend zu erwartenden neue Readings basiernd auf dieser Liste.

Lösung:

Dieser Bug ist bekannt und es gibt noch keine programiertechnische Lösung dieses Henne-Ei Problems. Aus diesem Grund muss das Attribut "OpsModeList" nach dem erstmaligen Setzen wieder komplett gelöscht und anschließend neu gesetzt werden.

Neues Problem

Beschreibung / Ursache:

Problembeschreibung

Lösung:

Lösungsbeschreibung

Zukünftige Entwicklungen

Eventgesteuerte Videoaufnahmen

Beschreibung: Bei Eintreten eines Events, wird eine Videoaufnahme für Xs gestartet und im Verzeichnis abgelegt siehe Forenbeitrag.

Implementiert seit Version 20383

Statusregler zur Triggerung von individuellen Notifys

Beschreibung:

Ein Regler welchen Status der DoorBird haben soll (Normal, Party, Feueralarm, etc.). Dieses Reading kann dann entweder mit einem Notify ausgelesen werden oder das Modul steuert direkt Aktionen (Party: Bei Betätigung der Klingel Ansage "Willkommen auf meiner Party, die Tür ist offen" und Türöffner betätigen. Feueralarm: Ansage "Der Rauchmelder im Kinderzimmer hat ausgelöst, der nächste Feuerlöscher hängt unter der Treppe" und Türöffner betätigen.

Implementiert seit Version 20321

Widget für FHEM TabletUI

Beschreibung:

Eigenes Widget zur Anzeige der Events als Popup. Hierzu braucht der Modul-Autor Sailor Hilfe (von User "setstate"?), da keine Erfahrung in diesem Bereich vorliegt.

DoorBird-Typ gesteuertes Frontend

Beschreibung:

Basierend auf der Ausstattung des DoorBird wird die Bild/Videoausgabe im GUI ein- oder ausgeblendet (siehe diesen Forenbeitrag).

Implementiert seit Version 20246

Links