openhab2 extension installer
ONLINE

Umstieg auf openHAB 2

Ich habe mein Smarthome auf openHAB 2 umgestellt und möchte euch heute ein wenig davon berichten -- wenngleich ohne Anspruch auf Vollständigkeit.

Mit openHAB-1.8 ist das letzte Release der 1er Runtime am Start — die Entwicklung beschränkt sich auf Addons, und 2017 wird dann openHAB 2 STABLE an den Start gehen.

Ich muss zugeben, dass ich mich ein wenig schwer damit getan habe, mich in das System einzufinden — es ist doch sehr anders als das, was ich von knapp drei Jahren openHAB 1.x gewöhnt bin 😉 Die Dokumentation ist noch ziemlich ausbaufähig, und ganz ehrlich: ohne textbasierte Konfiguration komme ich nicht weit.

Die bislang für mich auffälligsten Unterschiede

Der Artikel Migration from openHAB 1 to openHAB 2 gibt eine gute Übersicht — nutze ihn unbedingt als ersten Einstieg.

  • Der Ordner configurations/ wurde in conf/ umbenannt, und die generelle openhab.cfg gibt es nicht mehr.
  • Für openHAB 2 gibt es keinen openHAB Designer — stattdessen wird der Eclipse SmartHome Designer verwendet, der mir persönlich sehr gut gefällt.
  • Die Regelwerke sind nun ziemlich zickig im Bezug auf Umlaute, was sich in entsprechenden Log-Meldungen niederschlägt. Insgesamt musste ich sie hier und da überarbeiten — beispielsweise, da auf die gängigsten Importe nun verzichtet werden kann, UNINITIALIZED zu NULL umbenannt wurde und so weiter.
  • Wichtig ist insbesondere das Konzept der Things — arbeitet euch hier aufmerksam ein, dann habt ihr es einfacher als ich beim Umstieg 😉
  • Für Zugriff von unterwegs ist es nicht mehr wie bisher möglich, einfach User und Passwort zu setzen; ich fand diesen Thread hierzu ganz erhellend. Und ein wenig ernüchternd — für den Moment wird man um ein Reverse Proxy Setup nur schwerlich herum kommen.

Installation der Distribution

Auch openHAB 2 läuft, wie bereits sein Vorgänger, auf meinem Raspberry Pi 2 (Raspbian), als User pi und in dessen $HOME. Der aktuelle Snapshot kann von der Download-Seite des openHAB-Projekts heruntergeladen werden, ich habe mich für die Online-Distro entschieden.

$ cd /home/pi
$ screen -DRS openHAB
$ mkdir openHAB2_$DATUM
$ cd openHAB2_$DATUM
$ wget $AKTUELLER_SNAPSHOT
$ unzip $AKTUELLER_SNAPSHOT
$ rm LICENSE.TXT *.bat $AKTUELLER_SNAPSHOT
$ cd ..
$ ln -s openHAB2_$DATUM openhab

Nun kann der Dienst auch schon in Betrieb genommen werden (sofern Java installiert ist, in meinem Falle oracle-java8-jdk). Er ist dann erstmal sozusagen im Leerlauf, da er keinerlei Addons, Bindings oder sonstwas hat — die kommen mit dem nächsten Schritt ins Spiel.

$ cd /home/pi/openhab
$ ./start.sh
Launching the openHAB runtime...
 
                          __  _____    ____
  ____  ____  ___  ____  / / / /   |  / __ )
 / __ \/ __ \/ _ \/ __ \/ /_/ / /| | / __  |
/ /_/ / /_/ /  __/ / / / __  / ___ |/ /_/ /
\____/ .___/\___/_/ /_/_/ /_/_/  |_/_____/
    /_/                        2.0.0-SNAPSHOT
                               Build #588
 
 
openhab> log:tail
14:03:07.641 [INFO ] [arthome.ui.paper.internal.PaperUIApp] - Started Paper UI at /ui
14:03:07.708 [INFO ] [assic.internal.servlet.WebAppServlet] - Started Classic UI at /classicui/app
14:03:07.708 [INFO ] [basic.internal.servlet.WebAppServlet] - Started Basic UI at /basicui/app
14:03:07.764 [INFO ] [.dashboard.internal.DashboardService] - Started dashboard at /start

Installation von Bindings, Actions & Co.

openhab2 extension installerJetzt, da der Dienst läuft, ist auch das Webinterface unter http://DEIN_RECHNER:8080/start/index erreichbar. Das ist auch gut so, denn die weiteren Installationen erfolgen per Mausklick in Paper UI. Für den initialen Betrieb installierte ich die folgenden — einfach per Klick auf INSTALL, siehe Screenshot:

  • Binding Homematic
  • Binding Astro
  • Persistence RRD4j
  • Transformation Map Transformation

Homematic an den Start bringen

Über Paper UI → Inbox → Klick auf großes Plus-Zeichen → Klick auf Homematic Binding wird nun die Verbindung zur CCU2 hergestellt; automatisch gefunden wurde sie in meinem Fall leider nicht, aber ein Klick auf ADD MANUALLY führt zu einer Eingabemaske. Eingegeben habe ich hier die Gateway Address — also die IP-Adresse der CCU2 — sowie den String ccu2 als Thing ID. That’s it und mit Klick auf den Haken speichern.

14:10:42.539 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'homematic:bridge:ccu2' changed from INITIALIZING to ONLINE

In der Inbox erscheinen nun als Things alle Datenpunkte, die auf der CCU2 gefunden werden können; Klick auf den Haken übernimmt sie in die Things, Klick auf die Mülltonne verwirft sie. Nach einiger Rumklickerei war in meinem Fall also der Things-Bereich gut gefüllt.

Mapping der Items

openhab 2 WetterstationWas für mich überhaupt nicht funktionierte war das Editieren dieser Daten per Webfrontend, ganz gleich ob in Paper UI, Habmin oder wie sie auch alle heißen — es hat mich viel Zeit und Nerven gekostet und war im Endeffekt doch wahnsinnig verkorkst. Im zweiten Anlauf setzte ich deshalb an dieser Stelle an und überarbeitete meine Konfig-Files: es geht nun also, um beim Beispiel der Wetterstation zu bleiben, darum,

  • dem Number Item Wetter_Temperatur den Wert von homematic:HM-WDS10-TH-O:ccu2:MEQ1600130:1#TEMPERATURE und
  • dem Number Item Wetter_Luftfeuchtigkeit den Wert von homematic:HM-WDS10-TH-O:ccu2:MEQ1600130:1#HUMIDITY zuzuweisen.

In der bisherigen openHAB-1.x-Notation sah das so aus:

Number	Wetter_Temperatur	"Außentemperatur [%.1f °C]"		<temperature>	{ homematic="address=MEQ1600130, channel=2, parameter=ACTUAL_TEMPERATURE" }
Number	Wetter_Luftfeuchtigkeit	"Luftfeuchtigkeit außen [%.1f %%]"	<water>		{ homematic="address=MEQ1600130, channel=2, parameter=ACTUAL_HUMIDITY" }

Für openHAB 2 habe ich mir das File conf/items/Wetterstation.itemsGITHUB angelegt mit (unter anderem) folgendem Inhalt:

Number	Wetter_Temperatur	"Außentemperatur [%.1f °C]"		<temperature>	{ channel="homematic:HM-WDS10-TH-O:ccu2:MEQ1600130:1#TEMPERATURE" }
Number	Wetter_Luftfeuchtigkeit	"Luftfeuchtigkeit außen [%.1f %%]"	<humidity>	{ channel="homematic:HM-WDS10-TH-O:ccu2:MEQ1600130:1#HUMIDITY" }

openhab 2 basic uiDer String hinter channel=" kann also einfach aus Papier UI kopiert werden; das musste ich analog mit allen Items durchexerzieren. Bleiben die Namen der Items gleich, müssen die bisherigen Sitemaps nicht angepasst werden, und schließlich entspricht das neue System weitestgehend der Funktionalität des bisherigen — mit dem Unterschied, dass es halt ausschließlich aus dem internen Netz erreichbar ist, siehe oben.

Was ist mit RRD4j?

Ich lasse mein openHAB lustig bunte Bildchen malen und nutze dafür rrd4j; die zugehörige conf/persistence/rrd4j.persistGITHUMB konnte ich hierzu einfach weiternutzen. In meiner openHAB-1.8.3-Installation lagen die einzelnen *.rrd-Files im openHAB-Ordner unterhalb von etc/rrd4j/, während sie sich unter openHAB 2 in userdata/persistence/rrd4j/ finden. Vor dem ersten Start habe ich diese Files einfach von A nach B kopiert, und meine Graphen wurden ohne Unterbrechung weitergezeichnet.

Und der Ausblick?

openHAB macht mir Spaß, vor der Umstellung schon und danach ebenso. Derzeit beschäftige ich mich damit, auch Twitter, XBMC und all den Kram korrekt angepasst ins neue System zu portieren, meine Regelwerke anzupassen und zu optimieren, ein wenig Ordnung zu schaffen. Auch wenn derzeit nur Snapshots verfügbar sind und noch keine STABLE — der Dienst läuft zuverlässig, stabil und scheint mir sogar weniger ressourcenhungrig zu sein als sein Vorgänger.

Was mich sehr amüsiert ist die Homekit-Anbindung, die es mir ermöglicht, per »Hey Siri« mein Heimkino zu steuern, den Badezimmerlüfter anzuwerfen — oder einfach nur das Smartphone zu beschimpfen, in Sachen »Hey Siri« bin ich nämlich nicht so der Held. Aber man muss ja alles mal ausprobiert haben, ne? Falls ihr euch nun fragt, wie sich diese Homekit-Anbindung realisieren lässt: genau davon wird der nächste Artikel dann handeln 😉

UnterschriftBis dahin ein wenig Geduld, und in der Zwischenzeit probiert ihr vielleicht mal alle openHAB 2 und teilt eure Erfahrungen?

  1. Das ewige Beta
    Hallo UNIXE deine Artikel sind wirklich klasse, man kann viel Lernen dabei.
    Mit Openhab ist das so eine Sache, ich hab mich durch 1.8 durchgekämft,
    habe dann auf die Beta 2 gewechselt und bin nur entäuscht.
    Das ist etwas für Menschen die viel Zeit und langeweile haben.
    Viele Seiten der Onlinedoku sind leer… und wenn man sich durch das Forum durchackert stellen sich einem die Haare was da nicht funktioniert…
    Für mich ist das System etwas chaotisch, hat keine klare Linie…
    und die Sache mit den Things setzt noch eines drauf…
    Eigentlich hat sich nicht viel geändert von 1.8 nach 2, man zerstückelt die cfg
    und packt noch meht unausgegorene Features hinzu.. Scheisse nein da hab ich kein Bock mehr drauf,,
    Node-red ist da zum Beispiel bedeutend bedienerfreundlicher und es gibt viele Nodes für Sensoren/Aktoren, das erstellen von Regeln/Funktionen ist relativ simpel,
    und Datenbank ist kein Fremdwort, und das gute daran ist, es funktioniert und macht sehr viel Spaß.
    Bei dir klappt das auch, und ich wünsche Dir viel Spaß mit dem ewigen BETA

  2. danke für die infos,

    ich habe diese woche auch umgestellt, aber da OH2 noch beta ist nur mit legacy bindings.
    das spart auch erstmal das anlegen der things, was ich aber auf dem testserver auch schon textuel durchexerziert habe.
    nun est wenigstens das lästige file-touch problem endgültig verschwunden.

    nutz du das aktuelle homematic binding 2.0 welches keine variablen lesen kann oder das legacy 1.9 ?

    ich frage nur wegen dem beitrag „sprachausgabe“ welchen ich eben gelesen habe, da wurde der status der SZ fensters mittels HM-variable an OH übergeben.
    ich habe mit dem 2.0er binding noch keine variable übergeben können.

    • Ich hab das 2.0-Binding, mit den Legacy-Bindings hab ich mich nicht beschäftigt, und weil ich derzeit an keiner Stelle mit Variablenübergabe arbeite, kann ich da auch nicht viel zu sagen. Aber ja, ist alles noch ziemlich… beta 😉

  3. Was nutzt du denn jetzt als UI zum steuern? Immernoch greent, oder geht das nur für die 1.8?
    Ich kämpfe mich gerade durch die Konfiguration und da scheint in der Paper UI ja noch einiges nicht gelöst zu sein, was dann aber in den Textdateien funktioniert.

    • Also ich finde Basic UI eigentlich ganz gelungen — reagiert flüssig und sieht nicht ganz so rustikal aus wie Classic UI 😉 Um GreenT hab ich mich nicht weiter gekümmert, ich hatte nicht dein Eindruck, dass sich da noch viel tut. Ich würde auch mal vermuten, dass das überhaupt nur unter 1.x lauffähig ist, denn den webapps-Ordner gibt es meines Erachtens nach in 2.x gar nicht mehr…?

      Die Konfiguration mache ich weiterhin in Textdateien; das Geklicke ist nicht meins, schon gar nicht, wenn es nicht richtig funktioniert…

  4. Schön, dass Du Dich erfolgreich durchgekämpft hast!
    Du hat recht, für openHAB 1 Umsteiger ist die textuelle Konfiguration weiterhin das Mittel der Wahl – das heute online gegangene Migrationtutorial (http://docs.openhab.org/tutorials/migration) weist da nun deutlich stärker drauf hin (und hätte Dir sicher einigen Frust erspart, wenn es etwas früher da gewesen wäre!)

  5. Schöner Artikel,
    Ich kämpfe mich auch grade durch die OH2 Migration. Spiele aber noch in der Testumgebung und Prod läuft noch die 1.8.3.
    Mich hat am meisten die Amazon Alexa Integration interessiert, da diese unter 1.8 deutlisch komplizierter ist als 2.0. Und was soll ich sagen: Installation und Konfiguration war super einfach. Auch wenn es sich komisch anfühlt mit seinem Haus zu sprechen.

    Bei den Item Definitionen bin ich der Lesbarkeit halber auf mehrzeilige Definitionen übergegangen. Ein Item sieht dann etwa so aus:

    Number Wetter_Temperatur
    „Außentemperatur [%.1f °C]“

    { channel=“homematic:HM-WDS10-TH-O:ccu2:MEQ1600130:1#TEMPERATURE“ }

    Vor allem wenn man dann noch Gruppen und Tags pflegt, bringt die mehrzeilige Definition ein deutliches plus an Übersichtlichkeit.

    Und für die Konsolen Freaks wie mich die vim benutzen ist das Syntax Highlighting Plugin zu empfehlen. Gibt es hier: https://github.com/cyberkov/openhab-vim
    Gruß Sebastian

Mentions

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.