Warum openHab?
Das erste Mal habe ich von openHab gehört, als mir ein ehemaliger Arbeitskollege die iPhone App gezeigt hat. OpenHab hat für Android und iOS eine App und kann auch über den Browser, sowohl mobil als auch über den Desktop, aufgerufen werden. Die App verbindet sich automatisch mit dem openHab Server im lokalen Netzwerk, was ich mehr als praktisch finde. Das Design ist aktuell und es sieht gut aus.
Was ich außerdem gerne habe ist, dass ich selber kein Frontend basteln muss. Die App ist nicht groß und zudem kostenlos. OpenHab bietet sogar die Möglichkeit verschiedene Home Automatisierungstechniken einzubinden und dank Open Source ist es auch möglich eigene Softwarepakete einzubinden.
Ein weiterer Vorteil ist es, dass es auf dem Raspberry Pi läuft. Mit einem Plugin kann ich externe Scripte ansprechen, die auf die GPIOs des Raspberry zugreifen. Somit können auch alte Home Automatisierungsscripte und zusammengebastelte Codes wiederverwendet werden. Dieses Plugin werde ich in einem weiteren Thread ansprechen und genauer behandeln.
Mit sehr wenig Zeitaufwand konnte ich in das Thema Home Automatisierung einsteigen. Es ist sehr spannend und man wird schnell erste Erfolge erleben.
Installation
Sicherstellen, dass auf dem Raspberry Pi Java installiert ist.
1 |
java -version |
Aktuelle/gewünschte openHab Version runterladen:
Ein Verzeichnis für die openHab Dateien erstellen. Ich habe hierfür in meinem „pi“ Home Verzeichnis benutzt.
1 |
mkdir /home/pi/openhab |
Mit „unzip“ die Dateien entpacken und as Zip-Verzeichnis danach löschen.
Danach sollte das Verzeichnis folgende Ausgabe bei einer Auflistung anzeigen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
drwxr-xr-x 9 pi pi 4096 Okt 4 10:43 . drwxr-xr-x 5 pi pi 4096 Okt 4 10:37 .. drwxr-xr-x 2 pi pi 4096 Sep 12 13:38 addons drwxr-xr-x 8 pi pi 4096 Sep 12 13:39 configurations drwxr-xr-x 2 pi pi 4096 Sep 12 13:38 contexts drwxr-xr-x 2 pi pi 4096 Sep 12 13:39 etc -rw-r--r-- 1 pi pi 11232 Sep 12 13:38 LICENSE.TXT -rw-r--r-- 1 pi pi 626 Sep 12 13:38 README.TXT drwxrwxrwx 6 pi pi 4096 Sep 12 14:09 server drwxr-xr-x 2 pi pi 4096 Sep 12 13:38 sounds -rw-r--r-- 1 pi pi 958 Sep 12 13:38 start.bat -rw-r--r-- 1 pi pi 1110 Sep 12 13:38 start_debug.bat -rwxr-xr-x 1 pi pi 1043 Sep 12 13:38 start_debug.sh -rwxr-xr-x 1 pi pi 880 Sep 12 13:38 start.sh drwxr-xr-x 3 pi pi 4096 Sep 12 13:39 webapps |
In dem Verzeichnis „configurations“ müssen noch einige Änderungen vorgenommen werden. Zunächst muss die Konfiguratinosdatei erstellt werden. Dazu wird eine Beispieldatei mitgeliefert, die benutzt werden kann.
1 |
cp openhab_default.cfg openhab.cfg |
Das erste Element hinzufügen
Im „configurations“ Verzeichnis findet man unteranderem die Ordner „items“ und „sitemaps“. Sitepams werden benötigt, um das Layout zu erstellen. Items können Lichtschalter, Dimmer, Rolläden, usw. sein und werden in dem gleichnamigen Ordner erstellt und konfiguriert.
Zuerst benötigen wir also ein Item. Dafür benutze ich einen einfachen Lichtschalter, der den Namen „Stehlampe“ haben soll und sich in meinem Wohnzimmer befindet.
Das Erstellen des Switches erfolgt also in dem „items“ Ordner, in dem ich die Datei „wohnzimmer.items“ anlege. Diese Datei soll später alle Geräte enthalten, die ich im Wohnzimmer mit openHab ansprechen will.
1 |
vi items/wohnzimmer.items |
Inhalt meiner Datei:
1 2 3 4 5 |
Group All Group Wohnzimmer (All) /* Lichter */ Switch Wohnzimmer_Stehlampe "Stehlampe" (Wohnzimmer) |
„Group All“ -> Ich denke der Name sagt alles.
„Group Wohnzimmer (All)“ -> Die Gruppe Wohnzimmer, die ein Mitglied der Gruppe „All“ ist.
„Switch“ -> Schalter, wie man ihn von Smartphones kennt; „Wohnzimmer_Stehlampe“ -> Eindeutiger Name des Items; „Stehlampe“ -> String, der als Anzeigenamen des Items benutzt wird; „(Wohnzimmer)“ -> Mitglied der Gruppe „Wohnzimmer“.
Ein Item kann auch mehreren Gruppen angehören, was es ermöglicht, mehrere Lichtergruppen an-, bzw. auszuschalten.
Das Item ist also erstellt, jetzt muss es noch dem Layout hinzugefügt werden. Das funktioniert über ein sogenanntes Sitemap. Die Sitemap Datei wird ähnlich, wie die Items Datei erstellt:
1 |
vi sitemaps/default.sitemap |
1 2 3 4 5 |
sitemap default label="Johannes Petz Smart Home" { Frame label="Wohnzimmer" { Switch item=Wohnzimmer_Stehlampe } } |
Das Sitemap habe ich „default“ genannt. Somit wird automatisch dieses Sitemap angezeigt, sobald ich die openHab App oder die Webseite öffne, was ich sehr praktisch finde.
openHab starten
So nun ist das erste Element eingefügt, das Layout ist ebenfalls hinzugefügt. Jetzt ist Zeit, alles auszuprobieren.
1 2 3 |
cd ../ chmod a+x start.sh # ist nicht unbedingt nötig, da die Datei schon die Rechte zum Ausführen besitzt. ./start.sh |
Jetzt wird openHab inizialisiert. Das kann einige Minuten dauern. Hier sollte abgewartet werden, bis folgende Ausgabe erscheint:
1 2 3 4 5 6 7 |
Launching the openHAB runtime... osgi> 12:07:59.074 INFO o.o.c.internal.CoreActivator[:61] - openHAB runtime has been started (v1.5.1). 12:08:34.147 INFO o.o.m.c.i.ModelRepositoryImpl[:79] - Loading model 'wohnzimmer.items' 12:08:39.492 INFO o.o.i.s.i.DiscoveryServiceImpl[:72] - mDNS service has been started 12:08:50.176 INFO o.o.m.c.i.ModelRepositoryImpl[:79] - Loading model 'default.sitemap' 12:08:57.364 INFO o.o.io.rest.RESTApplication[:143] - Started REST API at /rest 12:09:03.453 INFO o.o.u.w.i.s.WebAppServlet[:79] - Started Classic UI at /openhab.app |
Danach kann auf das Webinterface der Anwendung zugegriffen werden.
Mit dem default Sitemap:
http://<raspberry-pi>:8080/openhab.app
Mit einem benutzerdefiniertem Sitemap:
http://<raspberry-pi>:8080/openhab.app?sitemap=demo
Screenshots
Desktop Ansicht:
iOS App Screenshot (iPhone 5):
Quellen:
github.com/openhab/openhab/wiki
Gearbeitet habe ich mit openHab Version 1.5.1.