Installation von openHAB unter Windows

Wie in meinem Beitrag „Smarthome mit openHAB“ schon erwähnt, nutze ich das Open Source System um mein Heim zu automatisieren, „smarter“ (intelligenter) und gleichzeitig energieeffizienter und sicherer zu machen. Und das alles bei vorhandenem Haus, also nicht während des Neubaus und relativ kostengünstig.

In diesem Beitrag beschreibe ich, wie man openHAB auf einem Windows-Computer installiert und die ersten Schritte wagt. So habe auch ich mit dem Testen angefangen, bevor ich mir einen Raspberry Pi angeschafft habe um es produktiv einzusetzen.

Außerdem gehe ich auf openHAB-Grundlagen ein und erkläre die Dateistruktur.

Eines vorweg: Man sollte technisch einigermaßen affin sein und Spaß am „Spielen“ und Experimentieren mit dem System haben.
Wer sich kaum mit Technik, Computern und Co. auskennt und ein sehr einfach zu bedienendes und fertiges System erwartet, für den ist openHAB nichts. Dem empfehle ich ein kommerzielles Smarthome-System, davon gibt es aktuell so viele am Markt wie Sand am Meer. Die kosten allerdings auch einiges und haben ihre Grenzen und typischerweise eine eingeschränkte Auswahl an Geräten.
Hast du allerdings Spaß am Experimentieren, testest gerne neue Dinge aus und willst vielleicht sogar ein wenig in die Richtung Java schnuppern (oder kennst die Programmiersprache bereits), dann ist es genau das Richtige für dich und du wirst lange Spaß damit haben – so wie ich. Außerdem ist openHAB beliebig erweiterbar und verbindet viele Systeme miteinander, sodass man systemübergreifend arbeiten kann.

Dieser Beitrag ist relativ lang und gliedert sich in die folgenden Punkte:

Ich empfehle aber den Artikel komplett zu lesen, damit die Zusammenhänge besser verstanden werden.

Grundlegendes zu openHAB Versionen

openHAB 2 ist aktuell kurz vor Release und die beta 5 ist die neuste verfügbare Version. Fast die neuste! Denn die Entwickler kompilieren täglich neu, sodass man tatsächlich jeden Tag eine neue Version mit aktuellem Code herunterladen kann. Das wird Snapshot genannt.

Ihr habt also jederzeit die Wahl:

  • Stabiles Release: 1.8 aktuell. Veröffentlichung (Release) der Version 2.0 Ende Januar 2017 erwartet. Besonders für produktiven Betrieb geeignet.
  • Test-Release: Beta-Version. Halbwegs stabil. Neue Funktionen zum Testen. Für experimentierfreudige.
  • Snapshot-Release: Täglich aktuelle Codebasis. Potentiell instabil, dafür sofort die neusten Funktionen. Für besonders experimentierfreudige.

Wo erhaltet ihr die Versionen?

Auf der offiziellen Download-Seite erhaltet ihr in der Sektion „openHAB Runtime“ immer die aktuell stabile Version, die für alle Platformen funktioniert. Also 1.8.3 (Mitte Januar 2017). Ganz Ehrlich: Wenn ihr jetzt damit anfangt, nutzt direkt die Version 2. Die läuft inzwischen wirklich stabil und ist wie gesagt kurz vor der Veröffentlichung.

UPDATE 23.01.2017: openHAB 2.0.0 ist veröffentlicht worden und steht somit auf der Download-Seite als stabiles Release zur Verfügung.

Die Beta-Versionen gibt es jeweils unter Bintray, da muss man immer suchen wie ich finde (oder es nicht besser weiß). Hier der OH2 beta 5 Link.

Unten auf der Seite gibt es das Snapshot-Release zum Download, und optional alle Add-ons in einem Paket. Dieses ist aber nicht zwingend benötigt, da sich das System die Add-ons automatisch aus dem Internet lädt, sobald sie installiert werden.

openHAB Installation unter Windows

Unter Windows ist es recht einfach zu installieren, alles was ihr braucht ist ein bereits installiertes Java 8 oder neuer.

Ihr entpackt die Zip-Datei, und seht dann im Verzeichnis eine „start.bat“. Unter Windows startet ihr diese als Administrator:

Nun erscheint eine Sicherheitsabfrage von der Windows UAC (User Access Control), ob man dies denn wirklich möchte. Unter Windows 10 sieht das folgendermaßen aus:

Dies bestätigt man natürlich mit Ja, sonst hat es in dem Fall wenig Sinn. Nun startet die Applikation in einer DOS-Box:

Doch keine Angst, das ist nicht wirklich die Applikation selbst, sondern nur der ausgeführte Dienst. Hier in der „Karaf-Console“ gibt es die Möglichkeit die Logdateien einzusehen oder diverse Befehle einzugeben. Das tun wir an dieser Stelle aber erstmal nicht, schließen Sie jedoch auch nicht, sonst ist der Dienst wieder beendet.
Stattdessen öffnen wir nun einen beliebigen Browser und geben als URL ein: http://localhost:8080. Es öffnet sich eine Startseite:

Auf dieser Seite habt ihr nun die Wahl zwischen diversen Installationstypen:

  • Simple: Hier wird nur das allernötigste installiert. Also nicht zu empfehlen, nur für Experten.
  • Standard: Es wird ein Standard-Setup durchgeführt (wobei Setup hier zu laut gesprochen ist, auf dem Computer wird nichts installiert, nur innerhalb des openHAB-Ordners werden Veränderungen durchgeführt).
  • Expert: Nur für Experten mit speziellen Möglichkeiten und für Benutzer, die bereits mit der Version 1.x vertraut sind.
  • Demo: Es wird eine Demo-Umgebung installiert, in der man sich anschauen kann wie das System aussehen könnte.
  • UPDATE: Inzwischen gibt es auch einen Simple-Modus: In diesem wird das System lediglich grafisch über die Paper UI konfiguriert, somit hat man aber viele Einschränkungen und ist daher nicht empfehlenswert.

Ich wähle Standard aus. Hier kann man selbst etwas tun und tatsächlich ausprobieren. Es ist also eine „ganz normale“ Installation Wer sich nur mal anschauen möchte wie die Oberfläche aussehen könnte und einige Beispiele sehen möchte, der wählt Demo aus.

Es werden nun einige UIs (User Interfaces = Benutzeroberflächen) installiert, was einige Sekunden bis Minuten braucht.

Und anschließend stehen mehrere UIs zur Auswahl:

Paper UI ist die Oberfläche für die Verwaltung. Hier kann man Dinge (wie Add-ons oder Items) hinzufügen und bearbeiten, Systemeinstellungen ändern usw.

Basic UI ist die Standardoberfläche „für den täglichen Gebrauch“, so würde ich sagen. Dort steuert man die Geräte, sieht den Status usw. Die Basic UI zeigt nur das an, was vorher in der sogenannten Sitemap definiert wurde. Dazu später mehr.

Habpanel ist ähnlich der Basic UI, mit dem Unterschied, dass man sie hier grafisch gestalten kann und nicht erst in der Sitemap definieren muss. Auf das Habpanel werde ich nicht weiter eingehen.

Über die folgenden URLs erreicht ihr die beiden wichtigsten UIs:

  • Basic UI: http://localhost:8080/basicui/app
    Ihr werdet feststellen, dass Sie leer ist (außer ihr habt Demo gewählt)
  • Paper UI: http://localhost:8080/ui/index.html

Paper UI

In der Paper UI wollt ihr vermutlich zunächst einige Add-ons installieren, um ein oder mehrere Systeme anzubinden. Die Installation ist sehr einfach, ihr schaut in der Liste nach und klickt rechts auf Installieren.

Nach einiger Zeit ist es dann installiert. Evtl. ist ein Aktualisieren des Browsers nötig (F5). Viele der Add-ons sind so geschrieben, dass sie automatisch nach Geräten im Netzwerk suchen und die Geräte dann in der „Inbox“ erscheinen und hinzugefügt werden können. Einige Geräte erscheinen dort erst, wenn man in der Inbox explizit auf das Plus klickt

Und einige Add-ons müssen erst in einer config-Datei konfiguriert werden, damit sie funktionieren können.

Wie euer Add-on (auch Binding genannt) zu konfigurieren ist, müsst ihr im Zweifel in der Online-Hilfe nachlesen. Die Chance ist groß, dass ihr in der Paper UI unter Add-ons einfach auf den Namen des Bindings klicken könnt um direkt zur passenden Hilfe-Seite zu gelangen!

Weitere Einstellungen in der Paper-Ui sind unter Configuration zu finden, und nachdem euer Add-on installiert sind, könnte es dort auch für nähere Einstellungen auftauchen.

Ich gehe mal auf das Beispiel „Weather Binding“ ein. Dieses wird aktuell folgendermaßen angezeigt:

Wir sehen hier mehrere Dinge:

  1. Das Binding ist noch von der OH Version 1.x, das sieht man daran, dass die Version mit 1.9 beginnt, und nicht 2.0. D.h. in der Regel, dass man mit der Paper UI nicht allzu weit kommt.
  2. Der Systeminterne Name, der auch für die config-Datei benötigt wird. Der Systeminterne Name ist immer der zwischen „binding-“ und der Versionsnummer. In diesem Fall also „weather1“. Man kann in der Datei addons.cfg direkt beim Start Bindings mitinstallieren lassen, dort wird dieser Name benötigt. Oft muss auch die config-Datei für das Binding so heißen, wenn nicht anders beschrieben.

openHAB Weather-Binding Installation

Ok, genug Theorie, legen wir los! Zunächst installieren wir das Binding und warten, bis der Prozess fertig ist und der INSTALL-Button zu „UNINSTALL“ wechselt.

Nun gehen wir in das OH-Verzeichnis (wo die start.bat war) und dort ins Unterverzeichnis conf und dann services. Dort sollte es eine Datei „weather.cfg“ geben. Gibt es sie nicht, so legt sie als leere Textdatei an. Achtet darauf, dass „.cfg“ die Dateiendung ist. Standardmäßig sieht man unter Windows die Dateiendungen nicht, und wenn ihr eine Text-Datei anlegt, hat sie dann eine unsichtbare Dateiendung .txt. Hier könnt ihr die Dateiendungen sichtbar machen (Windows 10):

Wenn ihr soweit seid, öffnet ihr die weather.cfg Datei mit einem beliebigen Editor. Der Inhalt sieht folgendermaßen aus und muss angepasst werden:

Die meisten Wetter-Provider erwarten einen API-Schlüssel, den man meist kostenlos nach einer Registrierung erhält. Das ist bei jedem unterschiedlich. Yahoo braucht das zum Beispiel nicht, dort wird lediglich die „woeid“ (where on Earth ID) benötigt, die den Standort in einer Zahl darstellt. was für euren Standort einzutragen ist, könnt ihr hier herausfinden: woeid lookup. Für Limburg a.d. Lahn wäre es die 671832. Diese trage ich in die Datei ein und entferne in der Zeile die Raute # vorne, damit die Zeile nicht ignoriert wird (=Kommentarzeichen). Außerdem ändere ich das „<locationId1>“ zu „limburg“ und trage den Provider, Sprache usw ein. Meine Datei sieht anschließend so aus:

Man beachte, dass nur Zeilen ohne Kommentarzeichen vorne (#) vom System beachtet werden. Im Endeffekt reichen also diese Zeilen:

location.limburg.name=Limburg
location.limburg.woeid=671832
location.limburg.provider=Yahoo
location.limburg.language=de
location.limburg.updateInterval=10

Die Konfiguration des Bindings selbst uns nun fertig, allerdings muss das Wetter noch in der Oberfläche (Sitemap) eingetragen und die Items konfiguriert werden. Dazu können wir den Eclipse Smarthome Designer nutzen, der quasi vom selben Hersteller ist bzw. dasselbe Framework nutzt.

Eclipse Smarthome Designer

Der Eclipse Designer ist das Tool, mit dem die openHAB Dateien bearbeitet werden können. Also die Regeln, die Sitemap, Items usw.
Theoretisch würde jeder Texteditor gehen, aber der kostenlose Eclipse Designer kennt die Syntax und weist auf Fehler hin. Das funktioniert noch nicht immer 100% korrekt, aber in den meisten Fällen sehr gut. Was heißt das? In manchen Fällen (bei komplexeren Regeln) zeigt der Designer die Syntax als fehlerhaft an, obwohl sie korrekt ist und funktioniert. Die Entwickler arbeiten daran.

Ihr könnt den Smarthome Designer am Besten von der Eclipse Download Seite herunterladen, und zwar den unter Snapshot Releases, passend zu eurer Windows-Version (32bit, 64bit).

Nachdem die zip-Datei entpackt ist, startet ihr die SmartHome-Designer.exe. Sollte diese einen Fehler melden wie etwa diesen:

Failed to load the JNI shared library „C:\Program Files (x86)\Java\jre1.8.0_92\bin\client\jvm.dll“.

Dann versucht die andere Version des Eclipse Designers, also statt die 64bit Version die 32bit Version oder anders herum.

Wenn der Eclipse Designer geöffnet ist, wählt ihr nach dem Klick auf den folgenden Button euer „conf“-Verzeichnis aus dem openHAB Verzeichnis aus:

Im Anschluss lädt das Programm die Verzeichnisse und die Dateien:

Ihr könnt jeden dieser Ordner links mit dem Pfeil aufklappen und die Dateien darin per Doppelklick öffnen.

openHAB conf Verzeichnis und Konfigurationsdateien

An dieser Stelle sollten wir die Dateien durchgehen, die OH2 verwendet. Diese sind in jeweils einem Unterverzeichnis unterhalb vom conf-Ordner zu finden. Ihr könnt Beispiele sehen, wenn ihr openHAB im DEMO-Moduls installiert.

  • Html
    In diesem Verzeichnis können eigene HTML-Dateien gespeichert werden, die dann in der Oberfläche (Basic UI) angezeigt werden sollen. So kann das Weather-Binding noch schöner dargestellt werden. Darauf gehe ich aber nicht weiter ein, das ist wirklich optional.
  • Icons
    Falls die von OH mitgebrachten icons (knapp 380) nicht reichen sollten, können hier eigene hinzugefügt und somit in der Sitemap verwendet werden.
  • Items
    Items sind die Objekte, die beliebig definiert werden und in Regeln und/oder der Sitemap verwendet werden können. Items können durch Bindings an andere Systeme geknüpft werden. Wie zum Beispiel die „Aktuelle Temperatur im Wohnzimmer“, die durch ein anderes Smarthome-System (HomeMatic, Innogy….) aktualisiert wird.
    Items können einer oder mehreren Gruppen angehören, sodass auch Regeln auf ganze Gruppen angewendet können. Zum Beispiel: Schalte alle Items in der Gruppe „Licht“ aus.
    Es können beliebig viele .items Dateien erzeugt werden, und die items so thematisch aufgeteilt werden.
  • Persistence
    Unter Persistence werden die Einstellungen für die Speicherung der Werte bearbeitet, die dann historisch in Diagrammen angezeigt werden können oder nach einem Neustart den zuvor eingestellten Wert wiederherstellen (restoreOnStartup). Einige der Provider können auch direkt über die Paper UI konfiguriert werden.
    Persistence ist optional und nicht zwingend erforderlich.
  • Rules
    Unter Rules (Regeln) werden in .rules Dateien beliebige Regeln konfiguriert, die dann auf Ereignisse wie die Zustandänderung oder einen Zeitpunkt reagieren und diverse Dinge tun. Es können beliebig viele .rules Dateien angelegt werden, meine eigenen Rules werde ich in kommenden Beiträgen näher beleuchten und habe einige beispielhaft im Beitrag Smarthome mit openHAB aufgezählt.
  • Script
    Ein Script ist ein Code, der aus einer Regel heraus aufgerufen werden kann.
    Es gibt einige Unterschiede zwischen einer Rule und einem Script.
    Auch im Ordner scripts können beliebig viele .script Dateien abgelegt werden.
  • Services
    Das Services-Verzeichnis ist ziemlich wichtig für den Betrieb. Dort gibt es für einige Add-Ons wichtige Konfigurationsdateien, oder diese müssen angelegt werden.
    Außerdem können in der Datei addons.cfg einige grundlegende Einstellungen wie der Installationsmodus (Standard, Demo…) vorgegeben werden, und auch Add-ons direkt beim Start mitinstalliert werden. Vor allem für die Benutzer interessant, die wie ich ein „Testsystem“ haben und ein „Produktivsystem“.
  • Sitemap
    Beschreibung von mir übersetzt: Eine Sitemap ist eine visuell oder textuell organisierte Definition des Inhaltes einer Webseite, die dem Benutzer die Navigation […] usw erlaubt. Oder anders: In dieser definiert man per Text (oder Code), was der Benutzer auf der Webseite sieht. Die Sitemap zeigt Items oder Gruppen an, und kann die Schriftfarbe unterschiedlich darstellen, Icons, Abschnitte und so weiter.
    Normalerweise hat man eine einzige Sitemap.
  • Sounds
    Unter Sounds können mp3 Dateien abgelegt werden, um vom System durch Rules oder Scripts abgespielt zu werden, beispielsweise als Türklingel.
  • Things
    Ein Thing würde ich als eine Art Datenlieferant bezeichnen, das ein Gerät, ein Webservice oder ähnliches sein kann. Ein Thing kann als eine Art Schnittstelle zwischen Item und Gerät fungieren. Hier werden Zugriffe definiert (z.B. wie greife ich auf die FritzBox oder die HomeMatic-Zentrale zu), aber auch die einzelnen Geräte, die jeweils als „Kanal“ zur Verfügung stehen und dann per Item angesprochen werden können. Things können zum großen Teil auch über die Paper UI konfiguriert werden, ODER in .things Dateien. Je nach Binding.
  • Transform
    Im Transform-Ordner können in .map Dateien Übersetzungen eingefügt werden. Zum Beispiel der interne Status „ON“ eines Items soll in der Benutzeroberfläche als „Eingeschaltet“ angezeigt werden. Es können beliebig viele .map Dateien angelegt werden, die dann bei Bedarf unter Items oder der Sitemap angegeben/verwendet werden.

Konfiguration der Items und Sitemap

Nun müssen wir in einer .items Datei die Wetter-items konfigurieren, um sie dann in der Sitemap verwenden zu können. Dazu legen wir mit dem Windows Explorer unter conf\items\ eine Datei mit der Endung .items an, z.B. die „Weather.items“. Wenn ihr den Eclipse Designer schon offen habt, müsst ihr ihn nach dem Anlegen der Datei einmal schließen und wieder öffnen, damit er die Änderung mitbekommt. Den Inhalt der Datei könnt ihr nachher mit dem Designer bearbeiten, indem ihr sie per Doppelklick darin öffnet.

Der Inhalt der Datei kann aussehen wie der Inhalt der folgenden Text-Datei (ohne .txt Endung!):

weather.items

Unter conf\sitemaps\ wird die eine .sitemap Datei angelegt, z.B. home.sitemap. Der Inhalt könnte so aussehen wie dieser (auch ohne .txt Endung):

home.sitemap

Auch hier müsst ihr den Eclipse Designer evtl. neustarten damit er die Datei aktualisiert.

Das sieht anschließend etwa so aus:

Nun müssen wir in der Paper UI noch die zu verwendende Sitemap konfigurieren:

Es kann einige Minuten dauern (bei mir waren es lange 10 – 20…), bis alles vom System aktualisiert und übernommen bzw. von Yahoo abgefragt wird. Seht ihr auch nach einer halben Stunde in der Basis UI nichts, also keine Werte, so kann es helfen die geöffnete DOS-Console zu schließen und die start.bat erneut (als Administrator) auszuführen.
Eventuell auftretende Fehler könnt ihr im OH-Verzeichnis \userdata\logs\ in der Datei openhab.log einsehen.

Basic UI

Wenn alles geklappt hat, sieht die Basic UI etwa so aus:

Ihr könnt dort auf den Wetter-Eintrag klicken und gelangt in den Frame dahinter mit mehr Details:

Ganz schön kalt… 🙂

Das waren einige im Grunde sehr einfache Einstellungen. Im Endausbau kann die Basis-UI zum Beispiel folgendermaßen aussehen, wie bei mir:

Wobei ich noch nicht fertig bin, das System wird noch hin und wieder verändert / weiterentwickelt.

Ganz am Anfang habe ich mich an der Konfiguration von ThomDietrich orientiert, der seine gesamte openHAB config bei Github freigegeben hat. Dort, und natürlich an der Demo, kann man sich viele Ideen holen und so das für sich passende System zusammenstellen.

Fazit

Am Anfang mag das alles noch recht kompliziert vorkommen, doch mit der Zeit fällt es immer leichter und mit jedem umgesetzten neuen Schalter oder Regler bekommt man mehr und mehr Ideen.

In meinen nächsten Beiträgen werde ich auf die Installation von openHAB auf dem Raspberry Pi eingehen und natürlich meine Konfiguration weiter vorstellen.

Was haltet ihr von dem System? Ich freue mich auf Feedback in den Kommentaren.

Bewerte den Artikel

Schreibe einen Kommentar

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