© Liashko/Shutterstock.com
Teil 7: Hands-on-Integration mit openHAB

Spaß und Sicherheit mit Automatisierung


Zum Abschluss der Serie wollen wir in die Praxis einsteigen: Unter Verwendung von openHAB zeigen wir, wie sich eine individuelle Smart-Home-Lösung aufbauen lässt, die einfach erweiterbar ist und den Schutz der persönlichen Daten gewährleistet.

Bevor wir anhand eines praktischen Beispiels unser eigenes Smart-Home-System aufbauen, wollen wir uns zuerst einen Überblick über die einzelnen Komponenten des gesamten Systems verschaffen.

Im Zentrum des Geschehens steht die openHAB Runtime. Sie läuft auf dem lokalen Server, der über die nötigen USB-, IP- und seriellen Schnittstellen verfügt und darüber die Verbindung zu den Geräten und Services herstellt. Er bietet auch die passenden Schnittstellen für User Interfaces (REST) an und betreibt eine sehr flexible Regel-Engine. Die Konfiguration erfolgt über Dateien, die mit gewöhnlichen Texteditoren oder dem openHAB Designer, einer Entwicklungsumgebung für openHAB, geändert werden können. Für den Fernzugriff kann der lokale openHAB-Server mit dem my.openHAB-Cloud-Dienst verbunden werden. Dieser hilft dabei, über das Internet auf die lokale Instanz zuzugreifen, ohne dabei Änderungen am Router vornehmen zu müssen. Hierüber können auch weitere Webdienste wie IFTTT in das System integriert werden. Abbildung 1 zeigt die beschriebene Übersicht (gestrichelte Linien symbolisieren Funkverbindungen).

eichstaedt_engelen_openhab_1.tif_fmt1.jpgAbb. 1: Komponenten des openHAB-Systems

Ein sauberes Beispiel

Zum besseren Verständnis, was sich alles mit einer offenen Smart-Home-Lösung realisieren lässt, stellen wir uns folgendes Szenario vor: In vielen Haushalten stehen Waschmaschine oder Trockner im Keller. Um zu wissen, wann die Maschine fertig ist, merkt man sich entweder die errechnete Endzeit, oder man läuft häufiger herunter und sieht nach. Üblicherweise wird die errechnete Endzeit des Trockners als Maximalzeit ausgelegt, da aus Energiespargründen nur so lange getrocknet wird, bis der Feuchtesensor den Vorgang abbricht. Besser wäre es doch, wenn die Maschinen aktiv mitteilen würden, wann sie ihre Arbeit beendet haben.

Um das zu erreichen, kann man entweder in ein neues vernetztes Modell mit entsprechendem (lokalen) API investieren, oder man nutzt extern messbare Eigenschaften der Maschine für diese Zwecke. Tatsächlich kann man durch Beobachtung des jeweiligen Stromverbrauchs (und dem Wissen um das aktivierte Programm) eine sehr genaue Vorstellung davon bekommen, wie weit das jeweilige Programm schon abgearbeitet ist.

In unserem Beispiel wollen wir mithilfe eines Zwischensteckers mit Strommessfunktion den Stromverbrauch der Maschine in regelmäßigen Abständen prüfen. Der Fertigstatus soll anschließend mit einer Philips-Hue-Farblampe optisch signalisiert werden (Abb. 2).

eichstaedt_engelen_openhab_2.tif_fmt1.jpgAbb. 2: Philips-Hue-Lampe signalisiert fertige Waschmaschine

Gesagt, getan

Bevor wir das Beispiel umsetzen können, müssen wir uns allerdings um eine Laufzeitumgebung für openHAB kümmern. Denkbar sind dafür aufgrund der Plattformportabilität viele Embedded-Systeme, das heimische NAS oder das ausrangierte Notebook bzw. der Server. Auch beim Betriebssystem gibt es viele Wahlmöglichkeiten. Als konkretes Beispiel soll hier der Raspberry Pi 2 mit einem Debian Linux (Raspbian) und dem Oracle JDK für Embedded-Devices [1] genannt werden. Mit ihm steht ein erstaunlich leistungsstarker, platz-, kosten- und stromsparender Miniserver zur Verfügung.

Ist die Basisinstallation (Betriebssystem, JVM) des Servers erledigt, können die Binaries von der Projektwebseite [2] geladen werden. Installiert wird die openHAB Runtime durch einfaches Entpacken in einen Ordner wie C:\openhab oder /opt/openhab. Das Add-ons-Archiv sollte in ein separates Verzeichnis wie add­ons_download entpackt werden. Aus der Liste aller verfügbaren Add-ons kopieren wir dann das für unser Beispiel nötige Fritz AHA Binding (org.openhab.bind­ing.fritzaha-1.7.0.jar) und das Philips Hue Binding (org.openhab.binding.hue-1.7.0.jar) in das Add-ons-Verzeichnis unterhalb von openhab.

Als Nächstes laden und installieren wir den openHAB Designer (Abb. 3). Der Designer ist ein eigenständiges IDE-ähnliches Tool zur Bearbeitung der openHAB-Konfigurationsdateien. Zur Unterstützung des Nutzers bietet er Syntaxprüfungen und -highlighting an und liefert inhaltliche Vorschläge zur Erstellung der verschiedenen Konfigurationsdateien (Content Proposal). Zur Installation entpacken wir das Archiv auf unserem Desktoprechner in ein Verzeichnis C:\openhab-designer bzw. /opt/openhab-designer. Gestartet wird der Designer durch Ausführen der Datei openHAB-Designer.exe (bzw. openHAB-Designer auf Linux- und Mac-Systemen). Nachdem er gestartet ist, muss der configurations-Ordner der openHAB-Installation ausgewählt werden – dann kann die Arbeit beginnen. Sollte der Designer auf einem anderen Rechner als die Runtime ausgeführt werden, muss der configurations-Ordner auf dem openHAB-Server über einen zusätzlichen Dienst wie Samba freigegeben werden.

eichstaedt_engelen_openhab_3.tif_fmt1.jpgAbb. 3: Der openHAB Designer mit der Beispiel-Sitemap

Im nächsten Schritt nehmen wir die Basiskonfiguration des Systems in der Datei configurations/openhab.cfg vor. Dazu erzeugen wir eine leere openhab.cfg-Datei und übertragen alle nötigen Parameter aus der Datei configurations/openhab_default.cfg, die alle Parameter nebst ihrer Dokumentation enthält. In unserem Set-up sind im Wesentlichen die IP-Adresse der Hue Bridge, also das IP-Gateway von Philips und die Konfiguration des Fritz-AHA-Hosts vorzunehmen.

Für die Hue Bridge konfigurieren wir die IP-Adresse im Parameter hue:ip sowie ein individuelles Geheimnis, das hue:secret. Das Geheimnis darf ein beliebiger String (> 10 Zeichen) sein, durch den sich openHAB gegenüber dem Hue-System identifiziert und darüber autorisiert wird.

Beim Fritz-AHA-Binding ist zunächst lediglich ein Name für den AHA-Host mit Parameter fritzaha:fritzbox.host zu vergeben. Die anderen möglichen Einstellungen wie fritzaha:fritzbox.username und fritzaha:fritzbox.password lassen wir zunächst unverändert.

Um die Installation abzusichern, ist es empfehlenswert, den Parameter security:option auf ON zu setzen – damit sind alle HTTP(S)-Zugriffe automatisch per Basic Auth geschützt. Benutzer und ihre Passwörter lassen sich in der Datei users.cfg in der einfachen Form...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang