Hausautomatisierung mit der Plattform OpenHAB

Aus LinuxUser 09/2024

Hausautomatisierung mit der Plattform OpenHAB

© Aleksandr Khakimullin / 123RF.com

Stets zu Diensten

Die quelloffene Gebäudeautomatisierungsplattform OpenHAB ermöglicht Ihnen, alle Ihre smarten Geräte hersteller- und protokollübergreifend zu vernetzen und über eine einzige App einheitlich zu steuern.

OpenHAB [1], ausgeschrieben Open Home Automation Bus, ist eine hersteller- und technologieunabhängige Open-Source-Gebäudeautomatisierungssoftware, die als Gehirn eines Smart Home fungieren kann. Sie funktioniert nach der Devise “Integrate Everything” und unterstützt aktuell über 400 Protokolle und Systeme, darunter EnOcean, KNX, LCN, Loxone, Modbus, MQTT, Philips Hue, Z-Wave und Zigbee. Insgesamt lassen sich zurzeit über 3000 verschiedene Geräte in OpenHAB integrieren, visualisieren und automatisieren. Eine Auflistung der unterstützten Technologien und Systeme findet sich auf der Webseite des Projekts [2].

Gleichzeitig ist es ein Ziel von OpenHAB, dass die Ablaufsteuerung leicht von der Hand geht. Die Regel-Engine der Plattform macht eine umfassende Automation möglich. Die Wege dorthin gestalten sich vielfältig, von UI-basierten Regeln über Blockly bis hin zur Nutzung vollwertiger Programmiersprachen. Hier sollte jeder Nutzer unabhängig von seinem Erfahrungslevel fündig werden.

OpenHAB ist plattformunabhängig, auch bei der Auswahl der Serverhardware: Es läuft unter Linux, MacOS, Windows und auf dem Raspberry Pi ebenso wie auf NAS-Appliances von Synology und als Docker-Container. Der Zugriff auf die Applikationen kann über eine Weboberfläche erfolgen, klappt aber genauso aus iOS- und Android-Apps, über Google Assistant, Amazon Alexa oder Apple HomeKit.

OpenHAB braucht keine Cloud, verträgt sich aber auch mit dieser Technologie. Weil OpenHAB lokal beim Anwender zu Hause auf dessen Hardware läuft, behält er die volle Kontrolle über seine Daten und seine Privatsphäre. Die Software sammelt keine Analysedaten. Über die OpenHAB-Cloud gelingt optional ein sicherer und kostenloser Fernzugriff auf die Plattform.

Alleinstellungsmerkmale

OpenHAB punktet mit einer Reihe von Alleinstellungsmerkmalen gegenüber anderen Smart-Home-Plattformen. Dazu zählt die Unterstützung durch eine Non-Profit-Organisation, die OpenHAB Foundation [3], die sich aus Spenden und Mitgliedsbeiträgen finanziert. Sie betreibt das Forum [4], die Webseite [1], die Build-Server [5], die Demo-Installation [6] sowie Myopenhab.org, eine vollkommen kostenlose Instanz der OpenHAB-Cloud. Außerdem organisiert die Foundation die Teilnahme an Messen und Community-Treffen. Als Non-Profit-Organisation zielt sie dabei niemals auf Profit ab, sondern hat einzig und allein die Aufgabe, das Projekt und die OpenHAB-Community bestmöglich zu unterstützen.

Ein weiteres Alleinstellungsmerkmal besteht im Verzicht auf die Nutzung von Tools, die das Nutzerverhalten analysieren. Der Schutz der Nutzerdaten genießt bei OpenHAB einen hohen Stellenwert. Deshalb bietet OpenHAB weder eine Opt-in- noch eine Opt-out-Option für Analysewerkzeuge – solche Tools werden gar nicht erst integriert.

Einmalig ist darüber hinaus die kostenlose OpenHAB-Cloud, die Fernzugriff und einen Sprachassistenten frei Haus bietet. Die OpenHAB Foundation stellt allen OpenHAB-Nutzern eine kostenlose OpenHAB-Cloud-Instanz [7] bereit, die Fernzugang, Push-Benachrichtigungen sowie IFTTT-, Amazon-Alexa- und Google-Assistant-Integrationen bereitstellt.

Unzählige Möglichkeiten, etwas zu automatisieren, machen OpenHAB ebenfalls einzigartig. Einfache Regeln lassen sich grafisch nach dem Prinzip “Wenn, dann, aber nur falls” mit Auslösern, Aktionen und Bedingungen erstellen. Bieten die vorhandenen Aktionen und Bedingungen nicht genug Funktionen, kann man mit dem von Google entwickelten grafischen Editor Blockly auch sehr komplexe Abfolgen realisieren. Der Editor erzeugt Skripte durch das Zusammenfügen von Blöcken (Abbildung 1). Mit Blockly sollten selbst Kinder in der Lage sein, einfache Automatisierungen zu erstellen, zumal in vielen Schulen das auf Blockly basierende Scratch für erste Programmierübungen zum Einsatz kommt.

Abbildung 1: Automatisierungen lassen sich in OpenHAB auch über den Editor Blockly einrichten, mit dem schon Schüler das Programmieren üben.

Abbildung 1: Automatisierungen lassen sich in OpenHAB auch über den Editor Blockly einrichten, mit dem schon Schüler das Programmieren üben.

Selbst erfahrene Programmierer gehen nicht leer aus: Als Skriptsprachen stehen Javascript, Python, Ruby, OpenHAB DSL mit einer Java-ähnlichen Syntax, vollumfängliches Java und Groovy zur Verfügung. Für Javascript und Ruby gibt es sogar offizielle Hilfsbibliotheken, die den Umgang mit den Java-Schnittstellen von OpenHAB vereinfachen. Sie kapseln die Java-Datentypen, sodass eine reine Javascript- beziehungsweise Ruby-Skript-Umgebung zur Verfügung steht. Weniger erfahrene Programmierer nutzen Blockly, sehen sich dann den generierten Javascript-Code an und machen sich so mit der Javascript-Umgebung in OpenHAB vertraut.

Doch bevor man eine neue Regel schreibt, lohnt sich ein Abstecher auf den Community-Marktplatz: Es kann gut sein, dass eine Regel mit der benötigten Funktionalität bereits existiert und als Vorlage veröffentlicht wurde.

Visualisierungsmöglichkeiten

Die OpenHAB Main UI bietet automatisch generierte Übersichtsseiten, basierend auf dem semantischen Modell (mehr dazu später), Charts (mit Apache ECharts), Floor Plans (Abbildung 2), und responsive Seiten mit Widgets. Zusätzlich besteht die Möglichkeit, fixe Seiten etwa für Wand-Tablets zu erstellen, wofür man alternativ auch HABPanel verwenden kann. Für Smartphones sowie ältere, leistungsschwächere Geräte lassen sich Sitemaps deklarativ erzeugen und in den Android- und iOS-Apps (Abbildung 3) sowie der Basic-UI anzeigen.

Abbildung 2: Ein Floor Plan in der Main UI von OpenHAB.

Abbildung 2: Ein Floor Plan in der Main UI von OpenHAB.


Abbildung 3: Die grafische Oberfläche von OpenHAB auf einem iOS-Gerät.

Abbildung 3: Die grafische Oberfläche von OpenHAB auf einem iOS-Gerät.

OpenHAB lässt sich vollständig über die Benutzeroberfläche Main UI sowie die seit OpenHAB 1 bestehenden Textdateien konfigurieren, wobei man beide Konfigurationsstile gleichzeitig nutzen kann. Generell empfiehlt es sich, die Benutzeroberfläche zu verwenden, da eine textuelle Konfiguration mehr Einarbeitung erfordert und keine Unterstützung bietet. Sie ist jedoch dann von großem Nutzen, wenn man bestimmte Teile der Konfiguration teilen oder wiederverwenden möchte: Dazu braucht man nur die entsprechende Textdatei zu kopieren.

OpenHAB-Geschichte

OpenHAB wurde 2010 von Kai Kreuzer initiiert und fokussierte sich anfangs ausschließlich auf technisch versierte Nutzer, da es keine Oberfläche für die Konfiguration gab. 2014 wurde der Kern von OpenHAB 1 ein offizielles Projekt der Eclipse Foundation (Eclipse SmartHome Framework), der sowohl in OpenHAB selbst als auch in kommerziellen Produkten wie dem Smart-Home-System Qivicon der Telekom zum Einsatz kam. Nachdem die kommerziellen Nutzer jedoch die Weiterentwicklung immer mehr der OpenHAB-Community überließen, entschied man sich 2019, Eclipse SmartHome zu archivieren und in das OpenHAB-Projekt zu reintegrieren, was die Weiterentwicklung vereinfachte.

Nachdem mit OpenHAB 2 bereits 2017 eine (eher rudimentäre) Admin-Oberfläche eingeführt wurde, verbesserte 2020 OpenHAB 3 die Nutzerfreundlichkeit stark. Die neue Main UI vereint eine umfassende, anpassbare Visualisierung mit einer Admin-Oberfläche, mit der sich seit OpenHAB 4 (2023 erschienen) alles grafisch konfigurieren lässt, was bisher nur mit Konfigurationsdateien möglich war.

Technischer Hintergrund

OpenHAB ist in Java geschrieben und verwendet als Laufzeitumgebung Apache Karaf, das auf dem OSGi-Framework basiert und damit wesentlich zur Modularität und Erweiterbarkeit der Plattform beiträgt. Die umfangreiche Main UI nutzt Vue und Framework7, die simplere Basic UI verwendet kein UI-Framework. Die Codebasis wird aktuell von 36 Maintainern gepflegt und von über 100 weiteren Kontributoren in den verschiedenen Repositories auf Github [8] weiterentwickelt. Mithilfe ist dabei nicht nur bei der eigentlichen Softwareentwicklung jederzeit willkommen. Man kann sich auch auf andere Art und Weise einbringen, etwa, indem man Dokumentation schreibt und verbessert oder an der Community teilhat.

Bevor wir nun endlich dazu kommen, eine OpenHAB-Installation aufzusetzen und einzurichten, müssen wir uns noch mit einigen grundlegenden Konzepten von OpenHAB vertraut machen. Generell empfiehlt sich, vor dem Start zuerst die Einführung und die Getting-Started-Sektion der Dokumentation [9] zu lesen. Sie können dem hier vorliegenden Tutorial jedoch auch ohne vorhergehende Lektüre folgen.

Grundlegende Konzepte

Wie bereits erwähnt, ist OpenHAB modular aufgebaut, die Module werden Addons genannt. Davon gibt es sieben verschiedene Typen: Bindings, Systemintegrationen, Automation, Persistenz, Transformationen, Sprache und Benutzeroberflächen. Zu Beginn interessieren uns vor allem Bindings.

Bindings fungieren als Schnittstellen zu Systemen und Geräten wie Philips Hue und zu Diensten wie OpenWeatherMap. Die eigentlichen Systeme und Dienste werden dabei als sogenanntes Thing in OpenHAB repräsentiert. Zum Beispiel sind die Hue Bridge und alle Hue-Lampen sowie ein OpenWeatherMap-Account sowie die OpenWeatherMap-OneCall-API ein Thing. Ein Thing kann auch die besondere Rolle haben, die Kommunikation zwischen OpenHAB und anderen Things des Systems zu übernehmen – dann nennt es sich Bridge. So kommuniziert OpenHAB beispielsweise mit den Hue-Lampen, die normale Things sind, über die Philips-Hue-Bridge.

Things wiederum bieten Channels an, also Kanäle. Ein Channel steht dabei für eine konkrete Funktion eines Things, etwa die Steuerung der Helligkeit einer Philips-Hue-Lampe oder die aktuelle Temperatur innerhalb OpenWeatherMap. Channels dienen dabei als logische Verknüpfung zwischen Things und dem wichtigsten Konzept: Items. Items repräsentieren eine Funktion, wie zum Beispiel einen Schalter, einen Rollladen, einen Kontakt oder einen Messwert auf höchster Abstraktionsebene. Sie sind vollkommen unabhängig von der verknüpften Hard- oder Software.

Die Benutzeroberfläche und alle Automatisierungen arbeiten ausschließlich mit Items. Dadurch lässt sich eine Philips-Hue-Lampe problemlos durch eine Shelly-Lampe ersetzen, ohne dass man dazu die Benutzeroberfläche oder Regeln anpassen müsste. Ein Item hat einen Zustand, den sogenannten Item State. Bei den Items unterscheidet man verschiedene Typen, wie Contact, Dimmer, Number, Rollershutter, Switch und Group. Eine vollständige Übersicht bietet die entsprechende Dokumentation [10]. Items ordnen sich in ein semantisches Modell ein, das aus Orten (wie Wohnzimmer), Geräten (wie Heizungssteuerung) und Eigenschaften (wie Temperatur) besteht. Das erlaubt das automatische Generieren einer Benutzeroberfläche.

Rules realisieren die Automatisierung, die aus einem vernetzten Gebäude überhaupt erst ein schlaues Gebäude macht, also ein Smart Home. Die Regeln können Sie sich als Routinen oder Verhaltensmuster für das Smart Home vorstellen: “Schalte alle Lichter aus und drehe die Heizung runter, wenn ich das Haus verlasse. Schalte das Radio ein, wenn ich nach Hause komme, aber nur, falls die Kinder noch nicht schlafen.”

Dabei lassen sich Rules in drei Bestandteile zerlegen: Zum einen die Auslöser wie “wenn ich nach Hause komme”, zum anderen optionale Bedingungen wie “falls die Kinder noch nicht schlafen” und drittens schließlich Aktionen wie “schalte das Radio ein”. Ein Auslöser kann dabei jedes beliebige Ereignis im Smart Home sein, beispielsweise Zustandsänderungen von oder Kommandos an Items oder Zeitauslöser. Als Bedingungen fungieren Item-Zustände oder Zeitbedingungen wie Wochentag, Wochenende oder “nach 20 Uhr”. Aktionen steuern Items; sie senden Push-Benachrichtigungen oder eine Sprachdurchsage via Chromecast.

Scripts sind besondere Regeln ohne Auslöser oder Bedingungen. Sie dienen dazu, Code auszuführen und Aktionen wiederverwendbar zu machen. Scenes sollte jeder Smart-Home-Nutzer bereits kennen: Zu einer Reihe von Geräten definiert man einen Zustand, den diese annehmen sollen. Zum Beispiel kann eine Szene “Fernsehen” vorsehen, dass das TV-Gerät angeschaltet und das Licht gedimmt wird.

Pages dienen dazu, Informationen anzuzeigen und Interaktionen mit dem Smart Home über eine grafische Benutzeroberfläche zu ermöglichen. Zum Beispiel kann man eine Temperaturkurve der letzten 24 Stunden oder den Status aller Schalter für Lichter anzeigen lassen. Pages setzen sich in der Regel aus Widgets zusammen und werden von der Main UI im Browser oder von den Android- und iOS-Apps gerendert.

Sitemaps bieten ebenso wie Pages Möglichkeiten zur Visualisierung und Steuerung, sind jedoch im Funktionsumfang eingeschränkt und sehr flink. Man muss sie nicht in einer Oberfläche entwerfen, sondern kann sie auch in einer deklarativen Syntax beschreiben. Die Anzeige übernehmen die Basic UI sowie die Android- und iOS-Apps.

Things, Bridges, Channels, Items, Rules, Scripts, Scenes, Pages und Sitemaps haben allesamt eine ID oder einen Namen sowie ein Label. Die ID beziehungsweise der Name müssen einzigartig sein und dürfen nur bestimmte Zeichen enthalten. Sie lassen sich nachträglich nicht mehr ändern. OpenHAB nutzt diese eindeutigen Identifizierer intern. Labels dienen als Bezeichner in der Oberfläche und lassen sich beliebig anpassen.

Installation

Unter Linux installieren Sie OpenHAB als DEB- oder RPM-Paket oder rollen es als Docker-Container aus. Besonders einfach gelingt die Installation auf einem Raspberry Pi, wo Sie per Raspberry Pi Imager oder auch manuell OpenHABian aufspielen. Es basiert auf Raspberry Pi OS und umfasst OpenHAB, nützliche Erweiterungen wie Frontail, einen webbasierten Log-Viewer, sowie FireMotD, einen Login-Information-Screen.

Außerdem bietet OpenHABian ein Konfigurationswerkzeug, das zahlreiche nützliche Einstellungen (etwa SD-Card-Mirroring) konfigurieren und Anwendungen installieren kann, darunter den MQTT-Broker Mosquitto, InfluxDB, Grafana oder Wireguard VPN. Als Basis setzt OpenHABian einen Raspberry Pi 4 oder 5 mit mindestens 2 GByte RAM voraus.

Daneben läuft OpenHAB auf vielen weiteren Java-17-kompatiblen Systemen wie Windows, MacOS und diversen BSD-Derivaten. Dort fällt jedoch eine zeitaufwendige und komplizierte manuelle Installation an. Weitere Infos zur Installation finden Sie auf der Downloadseite des Projekts [11].

Ersteinrichtung

Nachdem Sie OpenHAB installiert haben, starten Sie die Ersteinrichtung, indem Sie die Weboberfläche Main UI im Browser öffnen. Sie erreichen sie über Port 8080 (HTTP) und Port 8443 (HTTPS) des OpenHAB-Hosts. Als Erstes fordert OpenHAB Sie auf, den Admin-Benutzer anzulegen. Anschließend startet der Setup-Assistent, der grundlegende Einstellungen wie Sprache, Zeitzone und Standort festlegt und Addons installiert (Abbildung 4).

Abbildung 4: Der Setup-Assistent nimmt grundlegende Systemeinstellungen vor.

Abbildung 4: Der Setup-Assistent nimmt grundlegende Systemeinstellungen vor.

Der Wizard empfiehlt die Installation einiger Persistenz-Addons. Dieser Empfehlung sollten Sie folgen, denn so können Sie ohne weitere Konfiguration unter anderem Item States beim Neustart wiederherstellen lassen und Graphen von historischen Item States anzeigen. Der nächste und letzte Schritt schlägt schließlich basierend auf allgemeinen Empfehlungen und den Geräten in Ihrem Netzwerk weitere Addons vor: Javascript-Scripting für Blockly, das Astro-Binding zum Berechnen von Positions- und Zeitwerten von Sonne und Mond, die Basic UI zur Darstellung von Sitemaps im Browser sowie in meinem Netzwerk zum Beispiel basierend auf den Geräten das AVM-Fritzbox-Binding und das Yamaha-MusicCast-Binding.

Da nicht jedes Binding die automatische Erkennung unterstützt, müssen Sie überlegen, ob Sie weitere Geräte betreiben, die Sie einbinden möchten. Um eine Wettervorhersage zu integrieren, wählen Sie über Wähle zu installierende Addons das OpenWeatherMap-Binding aus. Mit einem Klick auf Installiere … Addons starten Sie die Einrichtung der Addons, die einige Zeit in Anspruch nehmen kann. Danach haben Sie die Ersteinrichtung abgeschlossen.

Jetzt ist es an der Zeit, die ersten Things hinzuzufügen, Items zu erstellen und diese in der UI anzuzeigen. Dazu nutzen Sie den Quick-Start-Assistenten der Developer Sidebar, die sich am rechten Bildschirmrand automatisch geöffnet hat (Abbildung 5). Sie bietet neben dem Quick-Start-Assistenten noch weitere nützliche (Tools) und hilfreiche (Help) Funktionen, wie etwa eine FAQ und Hilfetexte zur Benutzeroberfläche. Diese Main-UI-Dokumentation ist auch online verfügbar [12].

Abbildung 5: Die Developer Sidebar, mit deren Hilfe die ersten Items eingerichtet werden können.

Abbildung 5: Die Developer Sidebar, mit deren Hilfe die ersten Items eingerichtet werden können.

Als angemeldeter Admin-Benutzer können Sie die Developer Sidebar jederzeit mit [Umschalt]+[Alt]+[D] oder über das Fragezeichen-Icon in der rechten oberen Ecke des Bildschirms öffnen. Das setzt allerdings voraus, dass der Bildschirm groß genug ist.

Things hinzufügen

Schritt 1 des Quick-Start-Assistenten haben Sie bereits im Setup-Wizard abgeschlossen, weiter geht es direkt mit Schritt 2. Ein Klick auf die gleichnamige Schaltfläche öffnet die Thing Inbox, wo sich in unserem Beispiel die Fritzbox sowie die Sonne-und-Mond-Things des Astro-Bindings finden (Abbildung 6)

Abbildung 6: Die <span class="ui-element">Thing Inbox</span> mit ersten Eintr&auml;gen.

Abbildung 6: Die Thing Inbox mit ersten Einträgen.

Um jetzt das Thing Lokale Sonnendaten des Astro-Bindings hinzuzufügen, klicken Sie es an und wählen Add as Thing aus. Dasselbe tun Sie für Lokale Monddaten. Um auch noch die Wettervorhersage von OpenWeatherMap einzubinden, klicken Sie auf den Plus-Button und wählen OpenWeatherMap Binding sowie OpenWeatherMap Konto aus. Die Thing-ID des OWM-Kontos könnten Sie im Prinzip bei der Voreinstellung belassen. Es empfiehlt sich jedoch, immer ausdrucksstarke Thing-IDs zu vergeben, zum Beispiel account.

Sie richten nun einen OpenWeatherMap-Account auf Openweathermap.org ein und hinterlegen dort im Reiter billing plans Ihres Kontos die notwendigen Zahlungsdaten für die OneCall-3.0-API. Pro Tag bleiben 1000 API-Calls kostenlos, entsprechend stellen Sie das tägliche Limit auf 1000 ein, damit Sie niemals etwas bezahlen müssen. Anschließend erhalten Sie im Reiter API keys einen API-Key, den Sie in der Konfiguration des OWM-Konto-Things hinterlegen und dann speichern.

Nach diesem Schritt sehen Sie eine Liste der Things. Mit einem Klick auf den roten Inbox-Button öffnen Sie nochmals die Inbox, um dort das Thing OneCall API — Lokales Wetter und Wettervorhersage hinzuzufügen. In unserer Beispielumgebung kommen mit dem blauen Plus-Button noch die Virtuelle Brücke für das Yamaha-MusicCast-Thing und anschließend ein Yamaha-MusicCast-Verstärker als Yamaha-MusicCast-Modell-Thing hinzu. Dabei darf dann die Bridge für das Yamaha MusicCast Modell nicht fehlen. Die resultierende Things-Liste sieht dann aus wie in Abbildung 7.

Abbildung 7: Die Things-Liste nach Hinzuf&uuml;gen der ersten Things.

Abbildung 7: Die Things-Liste nach Hinzufügen der ersten Things.

Model und Items

Um mit dem semantischen Modell zu beginnen, wechseln Sie auf die Modell-Seite, indem Sie entweder die Einstellungen öffnen oder die linke Seitenleiste nutzen. Wenn Sie sich nicht die Mühe machen wollen, das Modell von Hand zu bauen, nutzen Sie eines der Templates (Abbildung 8). Dort ändern Sie anschließend die Labels der Modell-Items in deutsche Raumnamen, indem Sie in der Baumansicht den betreffenden Eintrag markieren und in der rechten Bildschirmhälfte auf Edit klicken.

Abbildung 8: Templates erleichtern das Erstellen eines semantischen Modells.

Abbildung 8: Templates erleichtern das Erstellen eines semantischen Modells.

Jetzt fehlen nur noch Items. Die könnten Sie über die Items-Seite in den Einstellungen erstellen und die Items dann manuell mit den Channels der Things verlinken. Es gibt jedoch eine schnellere und einfachere Möglichkeit: Sie fügen die Items direkt vom Thing aus hinzu.

Dazu wechseln Sie zurück zur Things-Liste, klicken auf ein Thing, öffnen den Channel-Reiter und scrollen nach unten. Dort klicken Sie auf Add Equipment to Model, um für die Channels des Things Items zu erstellen und sie automatisch ins semantische Modell einordnen zu lassen. Anschließend wählen Sie die Parent Group aus: Sie repräsentiert den Standort, also in der Regel den Raum, in dem sich das Thing befindet.

Als Nächstes entscheiden Sie sich für die Channels, für die Sie Items erstellen wollen. Beim Thing Lokale Sonnendaten wählen Sie beispielsweise Sonnenaufgang Startzeit, Sonnenuntergang Endzeit, Sternzeichen, Jahreszeit und totale Sonnenfinsternis aus, wobei Sie Name und Label des Items beliebig anpassen dürfen. Beim Yamaha-MusicCast-Thing markieren Sie die Gruppe Living Room als Parent Group und weiter Hauptzone Betrieb, Lautstärke und Eingang. Mit der Wettervorhersage befassen Sie sich später.

Wenn Sie jetzt die Items-Liste in den Einstellungen öffnen, sollten Sie bereits einige Items sehen. Sie klicken nun ein Item an, etwa Yamaha RX-A750, und starten mit Edit die Bearbeitung. Dieses Gruppen-Item ist im Moment der sehr allgemeinen semantischen Klasse Equipment zugeordnet, sie klassifizieren es stattdessen als Speaker. Dasselbe erledigen Sie analog für Lokale Sonnendaten, wo Sie WeatherService als semantische Klasse wählen.

Die Benutzeroberfläche

Um den Umfang dieses Tutorials nicht zu sprengen, werden Sie nur die automatisch generierte Benutzeroberfläche verwenden. Das Getting-Started-Tutorial der Dokumentation befasst sich ausführlich mit dem Bau von individuellen Oberflächen [13].

Um die automatisch generierte Startseite anzusehen, klicken Sie in der linken Seitenleiste auf das OpenHAB-Logo. Über die Reiterleiste am unteren Bildschirmrand gelangen Sie nun in die Tabs Standorte (Abbildung 9) und Geräte (Abbildung 10). Ein Klick auf eine Karte öffnet sie (Abbildung 11). Mit einem Klick auf das Stift-Icon bearbeiten Sie die Startseite und können die Karten neu sortieren sowie Hintergrundbilder festlegen.

Abbildung 9: &Uuml;bersicht &uuml;ber die Standorte der OpenHAB-Installation.

Abbildung 9: Übersicht über die Standorte der OpenHAB-Installation.


Abbildung 10: &Uuml;bersicht &uuml;ber die verwendeten Ger&auml;te in einer OpenHAB-Installation.

Abbildung 10: Übersicht über die verwendeten Geräte in einer OpenHAB-Installation.


Abbildung 11: Ge&ouml;ffnete Karte der Wetterberichtsanwendung.

Abbildung 11: Geöffnete Karte der Wetterberichtsanwendung.

Was fehlt jetzt noch? Richtig, die Wettervorhersage! Dafür verwenden Sie ein Widget, das @RGroll Rainer entwickelt hat, ein Mitglied der OpenHAB-Community. Das Widget benötigt etliche Items. Statt sie händisch zu erstellen, nutzen Sie hier die Vorteile der textbasierten Konfiguration aus. Sie kopieren einfach die Datei openweathermap.items (siehe Downloadbereich zu diesem Artikel) in den Ordner $OPENHAB_CONF/items/, den Sie unter Linux in der Regel unter /etc/openhab/items/ finden.

Anschließend öffnen Sie die Entwickler Tools in der linken Seitenleiste und klicken dort auf Widgets. Mit einem Klick auf das Plussymbol erstellen Sie ein neues Widget, wobei Sie den Inhalt der Datei weatherCard.yaml (siehe Downloadbereich zu diesem Artikel) in den Codeeditor kopieren und dann abspeichern.

In den Pages-Einstellungen können Sie nun die Overview-Seite bearbeiten: Sie fügen einen neuen Layout-Block, dann eine Row und schließlich eine Column hinzu. Nach einem Klick auf das Plussymbol öffnet sich ein Dialog, aus dem Sie das persönliche Widget weatherCard auswählen. Sie konfigurieren es mit einem Klick auf das Icon direkt über der rechten oberen Ecke des Widgets und setzen den Item-Präfix auf OneCallAPIweatherandforecast_. Außerdem können Sie Location-Titel, das 24-Stunden-Zeitformat und einige Übersetzungen festlegen. Abschließend speichern Sie die Einstellungen und gelangen daraufhin zurück zur Startseite (Abbildung 12).

Abbildung 12: So sieht ein t&auml;glicher Wetterbericht in dem neuen Widget aus.

Abbildung 12: So sieht ein täglicher Wetterbericht in dem neuen Widget aus.

Regeln erstellen

Nachdem Sie die Things hinzugefügt und das semantische Modell sowie die Items erstellt haben, wird es Zeit für ein bisschen Automatisierung. Dazu öffnen Sie die Rules-Seite in den Einstellungen und klicken auf das blaue Plussymbol, um eine neue Regel zu erstellen. Der Regel müssen Sie eine ID sowie einen Namen geben und können eine Beschreibung und Tags zur Sortierung hinterlegen, bevor Sie einen Auslöser (Trigger) und eine Aktion hinzufügen.

Dazu klicken Sie auf Add trigger. Wählen Sie Thing Event und als Thing Lokale Sonnendaten aus. Die Auswahl belassen Sie bei a trigger channel fired und legen als Channel rise#event fest. Nach einem anschließenden Klick auf Add action wählen Sie im semantischen Modell Item Action sowie das Switch-Item des Verstärkers aus. Das Kommando lautet ON. Am Ende sollte die Regel so aussehen wie in Abbildung 13.

Abbildung 13: Eine fertig eingerichtete Regel, die bei Sonnenaufgang das Radio einschaltet.

Abbildung 13: Eine fertig eingerichtete Regel, die bei Sonnenaufgang das Radio einschaltet.

Diese Regel schaltet den Verstärker bei Sonnenaufgang ein. Eine ähnliche Rule könnte beispielsweise bei Sonnenuntergang alle Rollläden automatisch schließen. Haben Sie einen Bewegungsmelder zur Verfügung, der als Switch oder Contact Item repräsentiert sein könnte, können Sie auf Statusänderungen dieses Items lauschen und ein Licht anschalten (also ein Switch Item auf ON kommandieren), sobald eine Bewegung erkannt wird. Eine Übersicht aller verfügbaren Auslöser (Trigger) und Aktionen sowie Regeln im Allgemeinen bietet die entsprechende Dokumentation [14].

Fernzugang einrichten

Herzlichen Glückwunsch! Sie haben gerade den ersten Schritt in die Welt der Hausautomatisierung gemacht. Nun wäre es noch wünschenswert, wenn Sie auch außerhalb des eigenen Netzwerkes auf OpenHAB zugreifen und Push-Benachrichtigungen durch Regeln versenden könnten.

Dazu öffnen Sie über die linke Seitenleiste den Addon Store und greifen dort auf die System Integrations zu, um den OpenHAB Cloud Connector zu installieren. Anschließend legen Sie ein kostenloses Konto bei Myopenhab.org an, wobei Sie nach einer UUID und einem Secret gefragt werden. Beide finden Sie im Ordner $OpenHAB_USERDATA/, der unter Linux in /var/lib/OpenHAB/ liegt. Die UUID entnehmen Sie der Datei uuid, das Secret finden Sie in der Datei secret im Unterordner OpenHABcloud/.

Nach dem Erstellen des MyOpenHAB-Kontos müssen Sie nur noch die Android- oder iOS-App herunterladen und einrichten, und schon können Sie aus der Ferne auf OpenHAB zugreifen.

Fazit

Ich hoffe, dieser Artikel konnte Ihnen ein besseres Verständnis davon vermitteln, was OpenHAB ist und welche umfassenden Möglichkeiten es bietet. Es lohnt sich, die Automatisierungsplattform einmal auszuprobieren.

Die ersten Schritte haben wir hier schon gemeinsam gemacht, sodass Sie nun mit den Basics vertraut sind. Was Sie über einige zentrale Konzepte gelernt haben, lässt sich auf alle unterstützten Geräte und Dienste übertragen, wobei sich im Allgemeinen die jeweilige Addon-Dokumentation und die OpenHAB-Doku als sehr hilfreich erweisen.

Haben Sie weitere Fragen oder benötigen Sie Hilfe bei der Einrichtung von OpenHAB, sollten Sie nicht zögern, das OpenHAB-Forum [4] zu konsultieren. Ich wünsche Ihnen viel Erfolg bei Ihren zukünftigen Projekten mit OpenHAB und dem Ausbau Ihres Smart Homes! (jcb)

Der Autor

Florian Hotze studiert Informatik am Karlsruher Institut für Technologie (KIT). Der 19-Jährige ist seit 2018 begeisterter OpenHAB-Nutzer und seit Mai 2022 einer von derzeit 36 OpenHAB-Maintainern. Seine OpenHAB-Installation umfasst über 700 Items und integriert unter anderem eine KNX-Installation, einige Yamaha-Verstärker, eine Doorbird-Video-Türklingel, eine Photovoltaikanlage sowie Wetter- und PV-Vorhersagen.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 09/2024 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben