Drucken

Überblick

Abhängig vom zu verwendenden Grät (Thing) muß zuerst das passende Binding eingerichtet werden. Anschließend werden die Things installiert, Items erzeugt und die Sitemap generiert. Dieser Ablauf sollte immer eingehalten werden.

Im Folgenden wird die Einrichtung an Hand des Z-Wave-Bindings näher erklärt!

 

Binding einrichten und konfigurieren

Zuerst muß das Binding installiert werden. Es ist ein Treiber, der eine Anbindung mit den Thing-spezifischen Kommandos und Schnittstellen ermöglicht. An ein Binding können 1 bis n Things derselben Schnttstellenart (Z-Wave, HomeMatic, Hue etc.) angebunden werden. Jedes Thing kann aber eine andere Funktion haben (Thermostat, Schalter, Multisensor). Das Binding muß nach der Installation in den meisten Fällen konfiguriert werden.

Die Einrichtung eines Bindings erfolgt über:

PaperUI --> Add-ons --> Bindings --> Binding auswählen --> Install

Die Konfiguration über:

PaperUI --> Configuration --> Bindings --> Binding auswählen --> Configure

Ist kein "Configure"-Button vorhanden, gibt es nichts zu konfigurieren oder man muss eine Konfigurationsdatei editieren.

 

Item-Erzeugung auf manuell einstellen

Ich konnte mit automatisch angelegten Items nicht viel anfangen. Eine Ausgabeformatierung oder einen Homekit-Tag hinzuzufügen, ist nicht möglich. Deshalb schalte ich die automatische Item-Erzeugung aus:

PaperUI --> Configuration --> System --> Unterpunkt "Item Linking" ausschalten und "Save" klicken

So sieht es nach erfolgreicher Deaktivierung aus:

Dieser Schritt muß gemacht werden, bevor man Things hinzufügt! Sonst werden die Items dazu automatisch angelegt und müssen von Hand wieder gelöscht werden.

 

Things anlegen

Bei Z-Wave kann man mit der automatischen Suche arbeiten:

PaperUI --> Inbox --> "+"-Zeichen anklicken --> Z-Wave Binding anklicken --> 30 Sekunden Suchzeit für neue Things

Am Thing den Button fürs Hinzufügen klicken und nach ein paar Sekunden sollte das Thing an den Z-Wave Controller gebunden sein. Bei batterieversorgten Things muß man das eventuell hartnäckig wiederholen (3-7 mal nach meiner Erfahrung) bis es klappt. Sollte sich ein Thing überhaupt nicht einbinden lassen, muß ein Reset auf den Werkszustand erfolgen. Wie das bei den einzelnen Things verschiedener Hersteller geht, ist in den jeweiligen Manuals beschrieben. Diese Probleme haben mir bei meinen ersten Z-WaveThings viele Probleme mit stundenlanger Suche beschert.

Nach einiger Zeit taucht das mit dem Controller verbundene Thing in der Inbox auf und müssen nur noch in OpenHAB in die Datenbank hinzugefügt werden, indem man auf den blauen Kreis des Things klickt:

BILD

Nach diesem Vorgang hat man ein verwendbares Thing in OpenHAB mit all seinen zugehörigen Kanälen. Im nächsten Schritt müssen Items (=Variablen) an jeden benötigten Kanal gebunden werden um den Kanal zu steuern oder Messwerte abfragen zu können. Diese sollten manuell, durch editieren des Item-Files, erzeugt werden.

 

Items manuell erzeugen

Das Anlegen einer Item-Datei ist nicht weiter schwierig. Im Items-Unterverzeichnis erzeugt man eine Datei zwave.items (das "s" am Ende nicht vergessen!) und trägt pro Item eine eigene Zeile ein. In OpenHAB 2 gibt es eine gegen OpenHAB Version 1.8 abweichende Syntax:

itemtype itemname ["labeltext"] [<iconname>] [(group1, group2, ...)] [["tag1", "tag2", ...]] [{bindingconfig}]

Hier ein reales Beispiel:

Switch Office_Lamp   "Lamp [%s]" <light> ["Lighting"] { channel="zwave:device:bbad873e:node6:switch_binary" }

Das Item ist ein Schalter  ("Switch") mit dem Itemnamen "Office_Lamp" und dem Label "Lamp [%s]" der auch gleich die Formatierung "[%s]" für die Anzeige des Schaltzustands in sich trägt. Das Homekit-Tag "[ Lighting ]" dient für die Sprachsteuerung über Alexa oder Siri (optional). Der Channel wird abweichend zu OpenHAB 1.8 in der neuen Notation

{ channel="zwave:device:bbad873e:node6:switch_binary" }

angegeben. Die große Frage ist, woher man die erhaltenen Informationen bekommt? Diese kann man relativ einfach ermitteln. Zuerst benötigt man die Z-Wave-Network-ID (hier bbad873e). Diese ist bei jedem Z-Wave-Stick anders. man findet sie über:

PaperUI --> Confuguration --> Things --> Z-Wave Serial Controller

Jetzt braucht man noch die Channel-Info:

PaperUI --> Configuration --> Things --> Thing auswählen --> in der Channel-Info nachsehen:

Rechts neben der gelb markierten Kanalinfo ist ein kleines Symbol zu sehen. Klickt man dieses an, dann wird der Z-Wave-Pfad in das Clipboard des PC kopiert und man kann es im Item-File einfügen. Das schützt vor Schreibfehlern. Hier eine komplette Definition für mein Fibaro-Doppelrelais:

/* Fibaro Double Relay Node 6: Mains Operation/Router */
Switch Office_Lamp "Lamp [%s]"             ["Lighting"]   { channel="zwave:device:bbad873e:node6:switch_binary" }
Switch Switch_Lamp "Switch Lamp [%s]"                     { channel="zwave:device:bbad873e:node6:switch_binary1" }
Switch Switch_Siren "Switch Siren [%s]"                   { channel="zwave:device:bbad873e:node6:switch_binary2" }

Die Items werden über den Samba-Share \\openhabianpi.local\items\demo.items per Editor eingetragen. Selbstverständlich kann man auch mehrere .items-Dateien anlegen um die Übersicht zu erhöhen. Die Item-Namen müssen über alle Dateien hinweg eindeutig sein!

 

Sitemap erstellen

Für die Darstellung der Items in einer Benutzeroberfläche dient die Sitemap. Und genau hier gibt es eine Abweichung zur alten Version 1.8 von OpenHAB. Nach Erstellen der Sitemap wurden in der GUI nicht wie erwartet die Label der Items angezeigt, sondern abweichende Texte. Nach mehrstündiger Suche in den Eingeweiden des Systems stieß ich darauf, dass die Channel-Labels angezeigt werden. Diese lassen sich aber nicht verändern, weil die Channel dynamisch erzeugt wurden. Das Problem lässt sich ganz einfach lösen (wie immer), wenn man jedem Item in der Sitemap einen Label gibt:

Die gesamte Sitemap "demo" sieht dann folgendermaßen aus:

sitemap demo label="IT Expo 2017"
{
Frame label="Security" {   Text item=StateDoor label="Door"   Text item=StateWindow label="Window"   Text item=MotionBinary label="Motion"   Text item=FloodAlarmBinary label="Flood"   Switch item=Office_Siren label="Siren" } Frame label="Office" { Text item=Temperature label="Indoor temperature" Text item=Luminance label="Luminance" Switch item=Office_Lamp label="Lamp" } Frame label="Battery" { Text item=Bat_Multisensor label="Battery multi sensor" Text item=Bat_Floodsensor label="Battery flood sensor" Text item=Bat_DoorContact label="Battery door contact" } }

Die Items werden über den Samba-Share \\openhabianpi.local\sitemaps\demo.sitemap per Editor eingetragen. Selbstverständlich kann man auch mehrere .sitemap-Dateien anlegen, um auf dem Gerät/browser unterschiedliche Ansichten erzeugen zu können.

Jetzt wird in der BasicUI alles richtig angezeigt:

Die Sitemap ist auch für die Anzeige auf den Smartphone-App's zuständig. Hier die Anzeige für Android:


und die Anzeige für iOS:

 

OpenHAB Dienst neu starten

Es schadet nicht, den OpenHAB Dienst während der ganzen Konfiguration neu zu starten. Ich hatte bei der Arbeit mit HABmin und PaperUI öfters das Problem, dass mir multiple Items am Channel angezeigt wurden. Dann ist die interne OpenHAB-Datenbank gestört. Es recht ein Neustart des OpenHAB DIenstes. Dazu meldet man sich über SSH am Rechner an und gibt folgende Kommandos ein

sudo systemctl restart openhab2.service

sudo systemctl stop openhab2.service

sudo systemctl start openhab2.service

wenn etwas nicht funktionieren sollte, kann man noch folgende Kommandos eingeben.

sudo systemctl daemon-reload

sudo systemctl enable openhab2.service

Wer sich das nicht merken kann, der kann auch den Rechner neu booten:

sudo reboot now

Hierbei wird auch der OpenHAB Dienst sauber geschlossen und beim Neuboot gestartet.