Umstieg auf openHAB 2

Diesen Beitrag schrieb ich 5 Jahre und 2 Monate zuvor; die nachfolgenden Ausführungen müssen heute nicht unbedingt noch genau so funktionieren. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 4 Minuten

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 in 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.

Channels in PaperUI Channels in PaperUI

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.

Jetzt, 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

Was 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]"
  { homematic="address=MEQ1600130, channel=2, parameter=ACTUAL_TEMPERATURE" }
Number Wetter_Luftfeuchtigkeit
  "Luftfeuchtigkeit außen [%.1f %%]"
  { homematic="address=MEQ1600130, channel=2, parameter=ACTUAL_HUMIDITY" } 

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

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

Der 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.

Sitemap openHAB 2 Sitemap openHAB 2

Was ist mit RRD4j?

Ich lasse mein openHAB lustig bunte Bildchen malen und nutze dafür rrd4j; die zugehörige conf/persistence/rrd4j.persist 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 ;) Bis dahin ein wenig Geduld, und in der Zwischenzeit probiert ihr vielleicht mal alle openHAB 2 und teilt eure Erfahrungen?