Alarmanlage mit OpenHAB 5

OpenHAB eignet sich sehr gut, um Hausautomatisierungsprojekte umzusetzen. Egal ob Temperaturen geregelt oder Lichter ein- und ausgeschaltet werden sollen, openHAB ist mit sehr vielen, marktüblichen Standards kompatibel. OpenHAB kann auch sehr gut als Alarmanlage genutzt werden. In dieser Dokumentation wird gezeigt, wie mit Hilfe eines Türkontaktes und eines Bewegungsmelders eine einfache Alarmierung per WhatsApp erfolgen kann - die natürlich beliebig erweitert werden kann.

Alle in diesem Beispiel genutzten Techniken habe ich unter openHAB 4 bereits im Detail dokumentiert: Erklärung der openHAB Begriffe, Einbindung von Sonoff Produkten, WhatsApp und openHAB Cloud.

Sonoff Türkontakte und Bewegungsmelder


Zur Überwachung von Türen, Fenstern und Bewegungen habe ich mich für Produkte von Sonoff entschieden. Grund: kostengünstig und klein. Damit die Funkkontakte mit openHAB kommunizieren können, wird eine Bridge benötigt: Sonoff Zigbee 3.0 USB Dongle Plus, Modell ZBDongle-E (20,80 Euro Stand März 2025). Hinzukommen ein drahtloser Türkontakt Sonoff SNZB-04 (ca. 9 Euro) und der PIR-Sensor Sonoff SNZB-03 (ca. 9 Euro).

Im Add-on Store wird zuerst das ZigBee Binding installiert (unter openHAB 4 hieß dieses noch OpenHAB ZigBee Binding). Unter Einstellungen - Things das Zigbee Binding und anschließend den Ember Coordinator auswählen. Folgende Einstellungen ändern: Thing ID (optional für einen aussagekräftigen Namen, z.B. sonoff), Location (z.B. Arbeitszimmer), Port (sehr wichtig, COM3, bei Bedarf im Geräte-Manager nachschauen), Flow Control = None und mit Create Thing bestätigen. Nach ein paar Sekunden sollte der Ember Coordinator mit dem Status ONLINE angezeigt werden. Die Zigbee Bridge ist damit einsatzbereit und die Sensoren können angelernt werden.

Unter Einstellungen - Things einen neuen Eintrag hinzufügen (Plus-Zeichen rechts unten) und das ZigBee Binding auswählen. Über den verfügbaren Coordinators auf Scan klicken und sofort am PIR Sensor den Mini-Taster für mindestens 5 Sekunden drücken. Das startet den Pairing Modus und nach wenigen Sekunden sollte der Scan den Sensor finden. Dieser wird unter Discovered Things angezeigt, z.B. Unknown ZigBee Device 00124B002931BC9F. Den Eintrag anklicken und mit Add as Thing (with custom ID) hinzufügen. Einen aussagekräftigen Namen eingeben (z.B. PIR1 für ID und Name). Den Türkontakt über denselben Weg anlernen (z.B. Contact1).

Sonoff Thing Ember Coordinator, Contact1 und PIR1

Alle drei Einträge müssen auf stehen. Sollte dies nicht der Fall sein, hilft ein Blick in die Logdateien, die im openHAB Unterverzeichnis userdata/logs liegen. In events.log wird die erfolgreiche Einbindung folgendermaßen regestriert:

Thing 'zigbee:device:sonoff:Contact1' changed from UNKNOWN to ONLINE
Thing 'zigbee:device:sonoff:PIR1' changed from UNKNOWN to ONLINE

Um die Sensoren auslesen zu können, muss noch Equipment erstellt werden.

Model - Create Equipment from Thing, Auswahl Thing - Contact1: Name = Frontdoor, Label = Frontdoor, Category = motion, Semantic Class = MotionDetector, Channels = Select All (wer nur den Kontaktstatus benötigt, aktiviert Contact Portal 1) und auf Add to Model klicken.
Model - Create Equipment from Thing, Auswahl Thing - PIR1: Name = BewegungKeller, Label = BewegungKeller, Category = frontdoor, Semantic Class = FrontDoor, Channels = Select All (bei Bedarf nur die erforderlichen Channels aktivieren) und auf Add to Model klicken.

Die aktivierten Channels können jetzt Über Model oder direkt über Items angezeigt werden.



WhatsApp Nachricht verschicken


Der Versand einer WhatsApp Nachricht benötigt eine API, zum Beispiel vom Anbieter CallMeBot.


Sollte ECMAScript noch nicht installiert sein, muss dieses nachinstalliert werden: Add-On Store, Automation (nicht Bindings!) und JavaScript Scripting installieren.

Für den Test wird eine neue Regel angelegt (Rules und Klick auf das Plus-Zeichen). Rule ID muss nicht geändert werden. Ich habe diese in CallMeBot geändert. Auch das Label nenne ich CallMeBot. Abspeichern mit Save (Ctrl-S) abspeichern. Mit Add Action eine neue Aktion hinzufügen, Inline-Script und ECMAScript auswählen.

Die folgenden drei Zeilen eingeben:

var HttpUtil = Java.type("org.openhab.core.io.net.http.HttpUtil")
var urlmessage = encodeURI("Bewegung im Arbeitszimmer erkannt")
HttpUtil.executeUrl("GET", "https://api.callmebot.com/whatsapp.php?source=openHAB&phone=+491xxxxxxxxx&apikey=nnnnnnn&text=" + urlmessage , 2000)

Die zweite Zeile ist wichtig, damit Leeerzeichen (und andere Sonderzeichen) entsprechend kodiert werden. In der dritten Zeile Telefonnummer und API Key anpassen. Script mit Save (Ctrl-S) speichern.

Nach Klicken auf sollte die WhatsApp Nachricht wenige Sekunden später eintreffen. Diese drei Zeilen Code können jetzt in allen erforderlichen Regeln eingebaut werden.

Hinweis:
CallMeBot wird als Gratis-API beworben. Nach ca. 90 WhatsApp Nachrichten wurde der Text ergänzt mit I need your support https://callmebot.com/491xxxxxxxxx. Nach weiteren 20 Nachrichten wird der Text zusätzlich ergänzt mit "You have 20 messages left" und der Zähler wird dekrementiert. Eine Zahlung von 4 Euro jährlich beseitigt den Zusatztext! Keine große Summe, aber es wäre fair, auf der Homepage darauf hinzuweisen (z.B. "die ersten 100 Nachrichten sind frei, anschließend kostet der Service 4 Euro im Jahr").



Ein- und Ausschalter für Alarmanlage


Eigentlich könnte man jetzt schon eine Regel definieren, die bei einem Statuswechsel von CLOSED zu OPEN eine WhatsApp Nachricht verschickt. Üblicherweise möchte man aber nur informiert werden, wenn man nicht zu Hause ist. Es wird also noch ein Ein- und Ausschalter benötigt.

Zu diesem Zweck wird ein neues Item benötigt, das ich naheliegend Alarmanlage nenne:

OpenHAB neues Item Alarmanlage

Wichtig ist die Einstellung Type = Switch. Das Item kennt dann die Zustände ON und OFF. Mit Create das Item erstellen.

Unter Pages wird das Item dann dem entsprechenden Layout hinzugefügt (ich nutze dafür die Overview Page):


Nach Aufruf der Startseite http://192.168.0.123:8080/overview kann die Alarmanlage ein- bzw. ausgeschaltet. Genauer gesagt: das Item Alarmanlage erhält den Wert ON oder OFF.

OpenHAB Page Overview Alarmanlage ein- bzw. ausschalten

In diesem Beispiel ist der Switch aktiv und besitzt den Wert ON. Diesen Switch kann ich jetzt in jede Regel einbauen, die den Status eines Sensors überprüft, der einen Alarm auslösen soll:

OpenHAB Bedingung in Regel

Im lokalen Netzwerk kann ich jetzt die Alarmanlage aktivieren oder deaktivieren. Habe ich das Haus schon verlassen ohne die Alarmanlage zu aktivieren, benötige ich OpenHAB Cloud.



openHAB Cloud


Zuerst muss der openHAB Cloud Connector installiert werden. Dieser ist im Add-on Store nicht unter Bindings sondern unter System Integrations zu finden. openHAB Cloud Connector auswählen und dann auf Install klicken.

Nach erfolgreicher Installation auf der OpenHAB Seite myopenhab.org einen Benutzer angelegen.

OpenHAB Registrierung

Geben Sie Ihre E-Mail Adresse ein und vergeben ein starkes Passwort. openHAB UUID und openHAB Secret werden bei der Installation des openHAB Cloud Connectors vergeben und sind in der Verzeichnisstruktur von OpenHAB zu finden:

openHAB UUIDuserdata/uuid
openHAB Secretuserdata/openhabcloud/secret

Hinweis:
Sollte es die beiden Textdateien uuid und secret nicht geben, dann wurde der openHAB Cloud Connector nicht installiert!

Nach erfolgreicher Registrierung erscheint der Hinweis, dass openHAB nicht online ist:

OpenHAB Registrierung erfolgreich

Das ist normal, da die E-Mail Adresse erst noch bestätigt werden muss.

OpenHAB Registrierung E-Mail Adresse bestätigt

Nach Bestätigung der E-Mail Adresse ändert sich der Status auf der myopenhab.org Seite auf Online. Dieser Schritt entfällt, wenn - wie in meinem Fall - der openHAB Cloud Connector bereits mit der openHAB Version 4.1.1 genutzt worden ist. Im vorhandenen Account muss ich lediglich UUID und Secret anpassen.

Einbindung am Smartphone


Sowohl für Android als auch für iOS steht die App openHAB V2 zur Verfügung.

OpenHAB App im Apple AppStore 
Die App mit V1 im Logo ist veraltet!

Bei der erstmaligen Nutzung der App wird um die Erlaubnis gebeten, Mitteilungen zu senden. Damit Push-Nachrichten möglich sind, sollte hier Erlauben angetippt werden. Einstellungen der App anpassen:


OpenHAB Alarmanlage in App aktivieren

Jetzt kann die Alarmanlage auch von unterwegs ein- und ausgeschaltet werden.



Regeln einrichten


Um jetzt eine WhatsApp Nachricht verschickt zu können, muss eine Regel eingerichtet werden:


OpenHAB Regel Alarm Haustüre geöffnet

Wird jetzt die Haustüre geöffnet, informiert WhatsApp mit dem Text Haustüre geöffnet


Anregungen

Und jetzt? openHAB bietet so viele Optionen, dass es schwerfällt, konkrete Empfehlungen zu geben. Natürlich können weitere Sensoren in die Überwachung integriert werden. Selbst wenn alle Fenster und Türen mit Sensoren ausgestattet sind, stellt sich die Frage, was passieren soll, wenn man zu Hause ist. Die Alarmanlage ist deaktviert, da man zu Hause ist. Im Falle eines Einbruchs würde die deaktivierte Alarmanlage nicht reagieren. Wäre es nicht eine gute Idee auch nachts informiert zu werden, auch wenn die Alarmanlage nicht aktiv ist? Ich nutze als Wecker einen amazon Spot 2024. openHAB unterstützt amazon und kann mit einer Sprachausgabe zu bestimmtem Events informieren.

amazon Echo einbinden


Voraussetzung: JavaScript Scripting muss installiert sein (Add-on Store - Automation)

Die Integration der Amazon Echo Geräte ist einfach - vorausgesetzt im Amazon Konto ist die 2-Faktor-Authentifizierung aktiv, ansonsten scheitert die Einbindung. Vor der Konfiguration in openHAB die Sicherheitseinstellung in Amazon prüfen.

Im Add-on Store das Amazon Echo Control Binding installieren. Zuerst wird das Thing AmazonKonto hinzugefügt:


Im nächsten Schritt muss openHAB die Berechtigung für den Zugriff auf Amazon erhalten. Dazu muss die Seite http://192.168.0.xxx:8080/amazonechocontrol/ im Browser aufgerufen werden. xxx entspricht der für openHAB vergebenen IP Adresse (manche Router nutzen auch die IP Range 192.168.178.xxx).

Auf Amazon Konto klicken und Anmeldedaten eingeben. Nach Eingabe der Amazon Zugangsdaten und Klick auf SIGN IN wird ein Einmalpasswort (OTP = One-Time Password) an die bei Amazon hinterlegte Mobilnummer geschickt. Diese eingeben und bestätigen. Wichtig: ohne 2FA scheitert die Authentifizierung.

Ist der Prozess erfolgreich ("Login succeeded") werden die gefundenen Devices in der INBOX angezeigt und können als Thing hinzugefügt werden. Beispiel:

OpenHAB gefundene amazon Echo Devices


Damit der amazon Echo spricht, muss eine Regel eingerichtet werden.