Doorbird Teil 4: Basteleien mit der schlauen Klingel

Im dritten Teil der kleinen Artikelserie über die schlaue Türklingeln von Doorbird habe ich ja ausführlich über die Funktionalitäten geschrieben. Einige davon – die ich im Artikel als „Kür“ bezeichnet habe – können sogar Einiges mehr als das, was die Standard-App von Doorbird hergibt, Stichwort: Integration. In diesem Teil möchte ich anhand von zwei Beispielen zeigen, was mit der smarten Klingel aus Berlin noch alles möglich ist.

Und ganz ehrlich: genau diese Art von Basteleien sind es, die mir den meisten Spaß bereiten. Die erste Integration zielt darauf ab, die Doorbird-App überflüssig zu machen. Zumindest was die Push-Nachrichten angeht. Und mit OpenHAB ist das tatsächlich gar nicht so schwer. Die zweite Integration wiederum ist eine klassische Zeiterfassung, die mit dem RFID-Leser der Doorbird realisiert wird und ausnahmsweise mal nicht mit OpenHAB sondern mit IFTT. Zunächst sollte man aber verstehen, was die API von Doorbird alles mit sich bringt.

Prinzipiell kann die Doorbird API auf alles reagieren, was als Ereignis, oder Event, stattfindet. Es gibt daher im offiziellen API-Dokument die Möglichkeit auf ein Klingeln, auf eine Bewegung oder eben auf den RFID-Chip zu reagieren. Zusätzlich bietet die API Zugriff auf sämtliche Kamera- und Audiofunktionen, man kann per API-Aufruf also Bilder betrachten, Videos aufnehmen oder Rücksprache mit dem Klingelnden halten. Weitere Funktionen könnt Ihr am Besten der Dokumentation direkt entnehmen.

Für die beiden Integrationen, die ich beschreiben will, habe ich vor allem die http-Aufrufe sowie die Scheduling-Funktion verwendet. Hinter dem etwas verwirrenden Ausdruck „Scheduling“ versteckt sich im Prinzip die Wenn-Dann-Regeln der API: Wenn ein bestimmtes Ereignis stattfindet (z.B. Ein Klingeln), dann reagiere folgendermaßen (z.B. Mit einem HTTP-Aufruf).

Damit löse ich dann die beiden Integrationen aus. Der Aufruf aus der DoorBird-App für die der Integration der Klingel sieht dann so aus (der HTTP-Aufruf setzt lediglich einen Schalter auf „ON“):

http://XX.XX.XX.XX:8080/classicui/CMD?DoorBird_DoorBell=ON"

Für die RFDI-Zeiterfassung ist der Aufruf ganz ähnlich:

http://XX.XX.XX.XX:8080/classicui/CMD?Zeiterfassung=ON

Kleiner, aber notwendiger Trick: um die HTTP-Aufrufe über OpenHAB in einer Zeile abzusetzen (was wiederum den Eintrag in der Doorbird-App ermöglicht), habe ich die Classic UI von OpenHAB sowie das HTTP-Binding eingesetzt, daher die Formatierung der beiden Einträge.

Die beiden Integrationen unterscheiden sich natürlich erheblich in den Reaktionen. Um also die Push-Nachrichten der Doorbird-App zu ersetzen durch eine ähnliche Push-Nachricht in OpenHAB, liegt der größere Teil der Konfigurationsarbeit in OpenHAB. Dieser besteht im Wesentlichen aus zwei Teilen: Ein (Dummy-) Item, dass auf den HTTP-Aufruf der Doorbird reagiert und einer Regel, die daraufhin eine Push-Nachricht sendet. Das Item sieht folgendermaßen aus:

Switch DoorBird_DoorBell "DoorBird Door Bell Triggered"

Vermutlich sollte die REST-API der Doorbird auch den offiziellen REST-Aufruf von OpenHAB verstehen – die von mir eingesetzte inoffizielle Variante war aber deutlich leichter zu implementieren. Wenn es jemand geschafft hat, den HTTP-Aufruf so zu gestalten, dass er von der OpenHAB-REST-API verstanden wird, möge er (oder sie) sich bei mir melden.

Mit diesem HTTP-Aufruf schalte ich also das virtuelle Item ein und daraufhin wird eine Push-Nachricht abgesetzt. Die zugehörige Regel ist entsprechend einfach:

rule "Klingel push"

when

    Item DoorBird_DoorBell changed to ON 

then

sendNotification ("name@email.com","Es klingelt")

end

Zu guter Letzt brauche ich jetzt noch eine Regel, die das Item (bzw. Schalter) wieder auf „Aus“ zurücksetzt. Auch diese Regel ist schnell geschrieben (und sieht für beide Integrationen fast gleich aus):

rule "Klingel reset"

when

    Item DoorBird_DoorBell changed to ON 

then

if(DoorBird_DoorBell.state==ON) {

 timer = createTimer(now.plusSeconds(2)) [

 sendCommand(DoorBird_DoorBell, OFF)

 ]

} else {

if(timer!==null) {

 timer.cancel

 timer = null

 }

}

end


Mit dieser kleinen Integration bin ich nun unabhängig von der Doorbird-App. Mit dem kleinen Schönheitsfehler, dass die Push-Nachricht von OpenHAB nicht „anklickbar“ ist, ich kann also nicht sofort sehen, wer an der Tür steht. Hier bin ich für Anregungen dankbar, vermutlich wird es auf eine Migration meiner Push-Nachrichten auf Pushbullet o.ä. hinauslaufen.

So viel zu meinen kleinen Basteleien – ich überlege noch, weitere Szenarien einzubauen, mir fehlt aktuell leider ein wenig Phantasie. Deswegen gilt auch hier: wer Vorschläge hat…

Patrick Boch

Patrick beschäftigt sich beruflich schon länger mit Sicherheit - allerdings für eine andere Zielgruppe. Privat sorgt er lieber für ein smartes - und sicheres - Zuhause.

Das könnte Dich auch interessieren …

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen