Hausautomatisierung mit OpenHAB

Warum Hausautomatisieren?

Angefangen hat das ganze damit dass in der FritzBox Oberfläche auf einmal der Reiter “Smart Home” aufgetaucht ist. Darin kann man Thermostate und Steckdosen von AVM über die Fritzbox anbinden und Steuern. Fand ich klasse, hab ich aber lang nicht ausprobiert. Ich bin allerdings letztens umgezogen und das war ein guter Zeitpunkt in das ganze Thema einmal einzusteigen. Also bin ich los und habe mir ein paar Thermostate und eine Steckdose gekauft.

Smart Home in der FritzBox

Der eigentliche Auslöser war die Tatsache dass ich mangels Routine in der neuen Wohnung permanent Angst hatte die Kaffeemaschine nicht ausgemacht zu haben. Das ist eine Siebträgermaschine aus den 80ern (glaube ich) mit – für heutige Verhältnisse – rudimentärer Elektronik. Die Maschine schaltet sich nicht wie heutige Maschinen einfach nach ein paar Minuten Nichtverwendung aus. Also habe ich sie an eine schaltbare Steckdose gehängt, die ich dann auch auf dem Weg zur Arbeit checken und ggf. ausschalten kann.

Da ich dann schon dabei war habe ich gleich die Thermostate mit genommen. In der Zeit in der ich im Büro sitze brauche ich ja schließlich keine Wohlfühltemperatur in der ganzen Wohnung. Das kann man über die FritzBox zeitlich triggern und das spart einen Haufen Energie.

Ganz optimal fand ich die Lösung trotzdem nicht. Eigentlich wäre es ja ideal wenn die Wohnung mitbekommt ob ich zuhause bin, oder eben nicht. Technisch sollte das kein Problem sein. Also muss eine Lösung her die so eine Erkennung darstellen kann. Nach verhältnismäßig kurzer Suche standen dann zwei Lösungen im Raum. HomeAssistant und OpenHAB.

Wie geht das?

Umgesetzt habe ich das ganze mit OpenHAB. Ausgeschrieben heißt das Open Home Automation Bus. OpenHAB ist in Version 2 verfügbar, die einiges einfacher macht als Version 1. Vor allem lässt sich praktisch alles über das Web-Interface steuern. Version 1 hat sich über Dateien konfigurieren lassen. Aber steigen wir erstmal ein.

OpenHAB Oberflächen Auswahl

Ich habe HomeAssistant und OpenHAB als Optionen gefunden, die in etwa das darstellen können was ich mir so vorstelle. HomeAssistant hatte für meinen Geschmack das schöndere User Interface, OpenHAB scheint die größere Community zu haben. Opensource sind beide.

Die Entscheidung ist dann verhältnismäßig schnell gefallen. Zum einen ließ sich auf der HomeAssistant Website nicht durchsuchen welche Geräte damit angesprochen werden können. Erst mal kein Problem, ich bin eh eher der Hands On Typ. Also installieren wir das ganze mal auf einem Raspberry. Leider hat dann zum anderen das Image fürs Raspberry nicht gebootet, was den Hands On Test auch hat ausfallen lassen. Darauf hin habe ich OpenHAB installiert.

Installation

Installiert ist das ganze recht schnell, zumindest auf dem Raspberry Pi. Bei mir kommt derzeit ein RPi3 zum Einsatz, einfach weil die Weboberfläche auf einem RPi1 (davon hätte ich noch ein paar herumliegen) etwas träge ist und das beim Erforschen weniger Spaß macht. Fürs RPi gibt es SD-Kartenimages auf der OpenHAB Website zum Download. Diese werden wie gewohnt auf die Karte gebrannt und das Pi bootet. Der erste Boot dauert etwas, da dabei noch einige Skripte laufen die das Setup abschließen. Irgendwan meldet sich dann aber doch die Weboberfläche auf Port 8080. Um genau zu sein ist das nur der Einstiegspunkt zu verschiedenen Oberflächen, die jeweils mit dem Hintergrundsystem arbeiten.

PaperUI

Am vielseitigsten ist dabei die PaperUI. Darüber kann openHAB im Grunde vollständig konfiguriert und gesteuert werden.

Addons

Als erstes lohnt es sich auf den Reiter AddOns zu schauen. Hier können Bindings, also Verbindungen zu verschiedenen Geräte-Arten installiert werden. Für die AVM Geräte benötigt man z.B. das AVM Fritz Binding. Dort stellt man die Verbindung zur FritzBox her, welche wiederum die an ihr angemeldeten Geräte bereit stellt. Bei vielen Geräten ist es etwas einfacher, da man nicht den Umweg über die FritzBox gehen muss.

Außerdem können hier auch verschiedene Oberflächen oder Services wie ein interner MQTT Server etc. nachinstalliert werden.

AddOns in der PaperUI

Configuration

Als nächstes müssen die Bindings eingerichtet werden. Das geschieht über den Reiter Configuration.

Über das kleine blaue Plus Symbol kann ein Binding hinzugefügt werden. Danach wählt man aus den installierten Bindings eine Geräte-Art und konfiguriert es im darauffolgenden Schritt. Die Konfiguration Unterscheidet sich von Binding zu Binding, ist aber meist relativ intuitiv.

Things in der PaperUI

Auf den Bindings basierend können nun Things erstellt werden. Ein Thing stellt dabei ein (meist) physisches Gerät da zu dem eine Verbindung hergestellt werden soll. In meinem Fall stellt Das AVM Fritz Binding die Verbindung zu vier Things her: der FritzBox selbst, drei Thermostaten und einer Steckdose. Die Things wiederum haben Channels, also Verstellmöglichkeiten / Status. Im Fall Der Steckdose z.B. An/Aus, Verbrauchte Energie, Spannung, Temperatur, etc.

Die Channels eines Things werden dann mit Items hinterlegt. Items sind die Schalter / Regler / Anzeigen über welche die Channels verstellt oder dargestellt werden können.

Soll das Erstellen der Channels und Items automatisch geschehen muss unter “Configuration > System” die Option Simple Mode aktiviert sein. Das sollte für 90% der Anwendungen komfortabler und auch ausreichend sein. Ist die Option aktiviert, wird auch der Reiter Items im Menü ausgeblendet.

Simple Mode wird in der PaperUI aktiviert

Inbox

Noch einfacher macht es einem die Inbox. Hier sollten alle erkannten Things angezeigt werden, die über die (konfigurierten) Bindings von OpenHAB erkannt werden. Über den Haken können die Things einfach hinzugefügt werden und mit dem gerade erwähnten Simple Mode wird alles automatisch konfiguriert. Das funktioniert irritierend gut, leider aber nicht mit jedem Gerät. Trotzdem spart dieser Weg sehr viel Zeit und nerven, vor Allem bei Geräten mit sehr viel Funktionalität.

Inbox in der PaperUI

Control

Zu guter Letzt bleibt nur noch die Steuerung der Geräte übrig. Auch das ist über die PaperUI möglich. Der Reiter Control bietet hier alle Items an, Gruppiert nach Things. Ist bei den Things unter Location etwas eingetragen werden daraus ebenfalls Gruppen gebildet, die je einen eigenen Reiter bekommen. Ist nichts eingetragen tauchen die Items unter dem Reiter “OTHER” auf.

Der PaperUI Conrol Reiter

Um nicht immer eine Website öffnen zu müssen kann auch die OpenHAB App verwendet werden. Die App übernimmt leider nicht die Gruppierungen der PaperUI sondern listet zuerst alle Geräte – also Things – auf und nach einem Klick darauf die Einstellmöglichkeiten.

Rules

Nachdem nun (hoffentlich) alles zumindest händisch kontrolliert werden kann, muss es im Grunde nur noch mit Regeln hinterlegt werden. Die Rule Engine ist nicht von Haus aus instelliert, kann aber schnell über die AddOns unter “Misc” nachgeladen werden.

Hier können nun Regeln aufgestellt werden, die getriggert werden wenn sich z.B. Thing- oder Item-Stati ändern oder man knüpft sie etwa an feste Uhrzeiten. Ich habe zum Beispiel festgelegt, dass ich zuhause bin sobald sich mein Handy im WLAN anmeldet. Danach fahren die Heizkörper auf Wohlfühltemperatur. Verlasse ich das Haus (Handy ist nicht mehr im WLAN) fahren sie auf Eco-Temperatur herunter. Das ganze hat dann noch Bedingungen wie Wochentag, Uhrzeit etc. die verschiedene Temperaturen auslösen bzw. die Ausführung erlauben oder verhindern. In der Nacht während ich schlafe brauche ich zum Beispiel kein kuschelig beheiztes Wohnzimmer. Die Steckdose an der meine Kaffeemaschine hängt, wird bedingungslos abgeschalten so bald ich aus dem Haus bin. So brauche ich mich nicht sorgen ob ich daran gedacht habe, macht ja jetzt meine Wohnung für mich.

Die Rules Engine in PaperUI

FlowsBuilder

Ein weiteres Addon, das leider nicht über die PaperUI installiert werden kann ist FlowsBuilder. Das Addon kann als JAR-Datei heruntergeladen werden und auf dem Netzlaufwerk welches OpenHAB bereit stellt im AddOns Ordner abgelegt werden. Fertig ist die Installation.

FlowsBuilder JAR Datei im openHAB AddOns Ordner

In Flows Builder können die Regeln die auch über die PaperUI aufgestellt werden können mittels kleiner Blöcke grafisch und per Drag & Drop aufgebaut werden. Ganz ausgereift ist es noch nicht, allerdeings gut zu verwenden und sehr viel schneller und übersichtlicher beim Erstellen als in der PaperUI. Die orangenen Blöcke sind Ereignisse (Handy meldet sich in WLAN an), die grünen Bedingungen (Es ist Wochenende) und die Blauen Kommandos (Stell die Heizung im Wohnzimmer auf 22°C). Per Druck auf Publish werden dann die einzelnen Regeln in der Rule Engine – die wir in der PaperUI installiert haben – erstellt und gespeichert. Es empfiehlt sich der Übersicht halber alle Regeln dann im FlowsBuilder zu erstellen und auch zu benennen, da man sonst schnell Gefahr läuft den Überblick zu verlieren (ich spreche da aus Erfahrung 😉 ).

Die Oberfläche von Flows Builder

Was brauche ich dafür!?

Hier könnt ihr OpenHAB herunterladen:

https://www.openhab.org/download/

OpenHABian ist das auf Raspbian aufgesetzte Speicherkarten-Image, das ihr direkt mit eurem Raspberry verwenden könnt.

FlowsBuilder gibt es hier zum downloaden:

https://github.com/ghys/flowsbuilder/releases

Installiert wird es wie oben beschrieben durch ablegen im AddOns Ordner von OpenHab.