Info (25.11.2020): Vor einigen Tagen wurde Openhab 3 offiziell veröffentlicht! Dieses Tutorial ist ausschließlich für Openhab 2.5!
Im Bereich Smarthome gibt es einige Standards und viele Begrifflichkeiten. Doch als Einsteiger verliert man hier schnell den Überblick, daher möchte ich hier mal einige Begriffe erläutern.
Add-Ons
Unter Add-Ons versteht man Erweiterungen für Openhab. Diese sind in mehrere Kategorien unterteilt. Man spricht hier von Actions, Bindings, Misc, Persistence, Transformations, User Interfaces und Voice. Auf einige gehe ich im weiteren Verlauf hier ein.
Bindings
Mit Bindings werden Add-Ons bezeichnet, welche dafür sorgen mit spezifischen Geräten zu kommunizieren. Mit der Installation eines Bindings sorgt man also dafür, dass Openhab mit den zum Binding gehörigen Geräten sprechen und diese bedienen oder visualisieren kann. Es gibt eine große Menge an Bindings für Openhab 2, eine Auflistung dazu findet ihr hier: Openhab 2 Bindings
Wer kein passendes Binding finden kann, sollte auch mal Google bemühen. Viele Bindings stehen nicht auf der offiziellen Liste, funktionieren aber dennoch mit Openhab. Manche sind noch von der Version 1, andere noch in Entwicklung für Version 2. In Entwicklung befindliche Bindings können mit Fehlern behaftet sein, daher sollte man diese mit Vorsicht genießen.
Things
Things werden über Bindings verbunden und beschreiben ein physikalisches Objekt. Also ein Gerät oder eine Informationsquelle, welche mehrere Kanäle mit Daten für Openhab besitzt.
Hierzu mal ein kleines Beispiel:
Wir wollen einen Amazon Echo-Dot mit Openhab bedienen. Hierzu haben wir uns bereits das Amazon Echo-Control Binding installiert und laut Anleitung zum Binding alles eingerichtet. In der Inbox des PaperUI erscheint nun unser Echo-Dot, diesen können wir mit einem Klick auf den Hacken hinzufügen. Sollte nichts in der Liste auftauchen, so hilft es eventuell Openhab neu suchen zu lassen. Dies kann man oben rechts über den Pfeil starten.
Haben wir den Echo-Dot erfolgreich hinzugefügt, so gehen wir auf „Configuration“ und anschließend auf „Things“. Dort finden wir unseren Echo-Dot wieder und können nun in den Bearbeitungsmodus wechseln. Hier werden uns alle Variablen angezeigt, die wir an den Echo-Dot senden können oder dieser an Openhab zurück gibt. Nun können wir mit wenigen Klicks für diese Variablen ein Item anlegen, welches direkt zugewiesen wird.
Items
Ein Item ist eine definierte Variable in Openhab. Es wird bestimmt durch den Itemtyp, was dieses Item kann. Somit kann man sich schnell Schalter, Dimmer oder auch String-Variablen anhand von Itemdateien oder über das PaperUI anlegen. Die Itemdefinition in den Dateien erlaubt es jedoch einige Funktionen mit zu definieren, welche über die PaperUI zum aktuellen Zeitpunkt noch nicht konfiguriert werden können.
Die Definition eines Items über die Dateien ist in einem Schema festgelegt. Die einfachste Form möchte ich hier kurz erläutern:
itemtype itemname „Beschriftung“ (Gruppe) [„tag“] {bindingconfig}
- itemtype: Hier wird festgelegt, was das Item eigentlich ist. Ist es ein Schalter oder Dimmer, ein String oder gar eine Gruppe. Dies wird mit der ersten Definition in der Zeile festgelegt.
- itemname: Hier kann ein Name vergeben werden, dieser muss einmalig sein. Achtet also hier bitte darauf diesen nicht mehrfach zu vergeben. Verwendet am besten einen Namen auf den sich zurückschließen lässt an welchem Ort sich das Item befindet, bspw.: Wohnzimmer_Licht_links
- Beschriftung: Hier könnt Ihr eure persönliche Beschriftung für das Item eintragen. Diese erscheint dann in der Sitemap als Name für das Objekt.
- Gruppe: Solltet Ihr den Status von mehreren Items überwachen oder schalten wollen, lohnt es sich mit Gruppen zu arbeiten. Eine Gruppe wird ebenfalls als Item angelegt.
- tag: Mit einem Tag versehene Items können von anderen Steuerungssystemen erkannt werden. Lässt man bspw. Alexa mit dem Openhab Skill nach Items suchen, so sind diese nur erkennbar, wenn der Tag eingestellt ist. Erlaubte Tags können der Homekit Dokumentation auf der Openhab Seite entnommen werden.
- bindingconfig: Hiermit wird das Binding angesprochen, dies ist also die Aus- und Eingangsvariable unseres Items. Wie diese einzustellen ist, muss dem entsprechenden Binding, welches benutzt werden soll, entnommen werden.
Alle Informationen zu den Items sind auf der Items Dokumentation der Openhab Seite zu finden.
Persistence
Manchmal möchte man aus einigen Items ein Diagramm erstellen, hierzu sind die Persistence notwendig. Persistence beschreibt im einfachen Sinne eine Datenbank zur Speicherung der Werte. Hierzu wird eine Konfiguration angelegt, in welcher die Definition der zu speichernden Items festgelegt wird. Auch die Zeitintervalle in denen gespeichert werden soll, werden hier eingetragen. Ich empfehle allerdings aufgrund der verhältnismäßig vielen Schreibvorgänge diese auszulagern, um die SD-Karte des Raspberrys zu schonen.
Die komplette Dokumentation zum Persistence System ist auf der Openhab Seite zu finden.
Rules
Hiermit kommt das Smart ins Smarthome, denn mit Rules können Automationen erstellt werden. Von einfachen „Wenn-Dann“ Regeln, bis zu komplexen Bedingungen ist alles möglich. Hier jedoch genau ins Detail zu gehen wäre etwas zu kompliziert, eventuell werde ich zu einem späteren Zeitpunkt ein genaues Tutorial nachreichen. Alle Informationen dazu gibt es natürlich in der Openhab Dokumentation.
Transformation Service
Dieses System erlaubt es, programmierte Daten mit ins System zu integrieren. So ist es beispielsweise möglich mit der Exec Transformation ein Python-Script einzulesen. Ein Fallbeispiel hierfür wäre das Einlesen von Temperatursensoren über die GPIOs des Raspberrys. Weitere Informationen auf der entsprechenden Dokumentations Seite.
Sitemaps
Mit den Sitemaps können Things und Items sortiert werden, um diese für das BasicUI und die Openhab-App aufzubereiten und geordnet darzustellen. Dieses Thema ist sehr umfangreich und die Konfiguration dafür sehr aufwendig. Allerdings wird bei der Openhab-Installation ein Sitemap-Editor mit hinzugefügt. Dieser ist über die Startseite der Weboberfläche erreichbar und kann ein grobes Grundgerüst für die weitere Sitemaperstellung generieren. Weitere Informationen zur Sitemaperstellung gibt es auf der offiziellen Dokumentationsseite.
Schlusswort
Ich hoffe ihr konntet einen kleinen Überblick der ganzen Begrifflichkeiten bekommen und es wirkt nun alles nicht mehr so verwirrend. Anfangs ist es wirklich schwierig sich bei den ganzen Definitionen zurecht zu finden. Hat man allerdings ein wenig mit dem System gearbeitet, so erwischt man sich immer mehr dabei lieber die Textkonfiguration anstatt das PaperUI zu verwenden, da man mit den Textdateien weitaus schneller vorran kommt. Bei gewissen Funktionen gibt es aktuell auch garkeine andere Möglichkeit, weswegen man sich zeitnah mit dem Editieren der Dateien anfreunden sollte um alles ausschöpfen zu können. Sollte der Ein oder Andere Fragen dazu haben, kann er diese gerne ins Forum schreiben, ich versuche diese dann so gut ich kann zu beantworten.