Schlagwort-Archive: openhab

[openhab] Items mit Hilfe von Gruppen sortieren

Wenn man in openhab mehrere Items anlegt zum Beispiel mehrere Lichtschalter fürs Wohnzimmer oder für die Weihnachtsbeleuchtung, empfiehlt es sich wegen der Übersichtlichkeit auf Gruppen zurückzugreifen.

Bevor die Gruppe genutzt werden kann, muss Sie über Group Gruppenname definiert werden. In der Item Konfiguration wird die Gruppe in runden Klammern angegeben.

Item Konfiguration:
Group flur
Switch Treppe "Im Fenster" (flur) {exec="OFF:/home/openhab/bin/flur.py 2 0,ON:/home/openhab/bin/flur.py 2 1"}
Switch Telefon "Telefon" (flur) {exec="OFF:/home/openhab/bin/flur.py 1 0,ON:/home/openhab/bin/flur.py 1 1"}

default.sitemap:
sitemap default label="Main Menu"
{
Frame label="Weihnachten"{
Group label="Weihnachten" icon="house" item=weihnachten
}
Frame label="Flur"{
Group label="Flur" icon="house" item=flur
}
Frame label="Wohnzimmer"{
Group label="Wohnzimmer" icon="house" item=wohnzimmer
}
}

Es ist auch möglich mehrere Gruppen Komma separiert anzugeben, somit kann ein Item in verschiedenen Frames aufgeführt werden.

openhab automatisch starten

Damit bei einem Neustart des Raspberry Pi openhab ebenfalls startet, gibt es unter https://code.google.com/p/openhab-samples/wiki/Tricks ein passendes Startscript.
Das Script habe ich unter /etc/init.d/openhab abgelegt und die ein oder andere Variable wie zum Beispiel NAME oder PID angepasst.

Im Anschluss die Datei ausführbar machen und in die entsprechenden Runlevel eintragen.

cd /etc/init.d
chmod 755 openhab
update-rc.d openhab defaults

Openhab auf dem Rasbperry Pi installieren

Neben Fhem gibt es auch openhab als opensource Hausautomations Software. Über openhab können unter anderem Aktoren von KNX, Z-Wave oder EnOcean angesteuert werden. Zusätzlich gibt es eine Vielzahl von Bindings wie zum Beispiel für den Linux Videorecorder, die AVM Fritzbox oder Samsung Fernseher.

Openhab wurde in Java geschrieben und kann unter Linux, Windows, Mac OS etc installiert werden, Voraussetzung ist eine aktuell installierte Java Version.

In meinem Beispiel installiere ich die Software unter Raspian auf dem Raspberry Pi und als erstes muss die benötige Java Umgebung installiert werde.

sudo su
apt-get update
apt-get install oracle-java7-jdk

Über java -version erhält man nach der Installation die folgende Ausgabe:
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) Client VM (build 24.0-b56, mixed mode)

Openhab installieren

Für die openhab Installation habe ich auf dem Raspberry Pi über adduser openhab einen Benutzer angelegt und unter dem Benutzer die Software heruntergeladen(wget https://github.com/openhab/openhab/releases/download/v1.5.0/distribution-1.5.0-runtime.zip). Alternativ kann die Software auch über die Seite http://www.openhab.org/downloads.html heruntergeladen werden, Sie muss dann nur zum Beispiel per scp übertragen werden.
Nach dem entpacken der Datei über unzip distribution-1.5.0-runtime.zip, erhält man die Ordner und Dateistruktur.

Vor dem ersten Start muss chmod 755 start.sh ausgeführt werden, im Ansch kann über ./start.sh openhab gestartet werden.

./start.sh
Launching the openHAB runtime...
osgi> 21:47:58.174 WARN o.o.c.core.ConfigDispatcher[:172] - Main openHAB configuration file 'configurations/openhab.cfg' does not exist.
21:47:58.287 INFO o.o.c.internal.CoreActivator[:61] - openHAB runtime has been started (v1.5.0).
21:48:42.704 INFO o.o.i.s.i.DiscoveryServiceImpl[:72] - mDNS service has been started
21:49:02.580 INFO o.o.io.rest.RESTApplication[:143] - Started REST API at /rest
21:49:08.645 INFO o.o.u.w.i.s.WebAppServlet[:79] - Started Classic UI at /openhab.app

Wie in der Ausgabe zu erkennen ist, muss noch die configurations/openhab.cfg angelegt werden.
cp configurations/openhab_default.cfg configurations/openhab.cfg

Erste Steckdose einbinden

Um die Funksteckdose schalten zu können nutze ich das elro_wiring.py Script aus dem Artikel https://www.itbasic.de/raspberry-pi-erster-schritt-zur-hausautomation/, die ich unter /home/openhab/bin abgelegt habe.
Damit der obenhap Benutzer in der Lage ist die Funksteckdosen zu schalten, muss in der /etc/rc.local noch der Eintrag sudo -u openhab /usr/local/bin/gpio export 23 out vor exit 0 hinzugefügt werden. Nach dem Eintrag muss der Raspberry Pi neugestartet werden, damit die Änderungen wirksam werden.

Zusätzlich habe ich die Datei configurations/sitemaps/default.sitemap und configurations/items/weihnachten.items mit folgendem Inhalt erstellt.

default.sitemap:
sitemap default label="Main Menu"
{
Frame label="Weihnachten"{
Switch item=Stern
}
}

weihnachten.items:
Switch Stern "Sternbeleuchtung" {exec="OFF:/home/openh
ab/bin/wnachten.py 4 0,ON:/home/openhab/bin/wnachten.py 4 1"}

Bevor man jedoch openhab erneut startet, muss das Addon „org.openhab.binding.exec-1.5.0.jar“ in dem Verzeichniss addon abgelegt werden, ansonsten führt openhab das Script nicht aus.
Alle benötigten Addons können hier heruntergeladen http://www.openhab.org/downloads.html werden.

Jetzt openhab über ./start.sh starten und über die URL http://ip Adresse:8080/openhab.app kann auf die Weboberfläche zugegriffen werden.

openhab

Cannot retrieve item

Endlich bin ich dazu gekommen mir openhab anzusehen und hatte gleich zu Beginn ein kleines Problem.

Nachdem ich die ersten Konfigurationsdateien erstellt und openhab gestartet hatte, konnte ich ohne Probleme auf die Weboberfläche zugreifen. Leider erhielt ich dann auf der Kommandozeile die folgende Ausgabe:
21:30:11.412 WARN o.o.u.w.i.r.SwitchRenderer[:70] - Cannot determine item type of 'Stern'
org.openhab.core.items.ItemNotFoundException: Item 'Stern' could not be found in the item registry
at org.openhab.core.internal.items.ItemRegistryImpl.getItem(ItemRegistryImpl.java:80)
21:30:11.427 ERROR o.o.u.i.i.ItemUIRegistryImpl[:411] - Cannot retrieve item 'Stern' for widget org.openhab.model.sitemap.Switch
21:30:11.437 ERROR o.o.u.i.i.ItemUIRegistryImpl[:411] - Cannot retrieve item 'Stern' for widget org.openhab.model.sitemap.Switch
21:30:11.446 ERROR o.o.u.i.i.ItemUIRegistryImpl[:411] - Cannot retrieve item 'Stern' for widget org.openhab.model.sitemap.Switch
21:30:11.454 ERROR o.o.u.i.i.ItemUIRegistryImpl[:411] - Cannot retrieve item 'Stern' for widget org.openhab.model.sitemap.Switch
21:31:58.974 WARN o.o.u.w.i.servlet.CmdServlet[:100] - Received command 'TOGGLE' for item 'Stern', but the item does not exist in the registry
21:32:02.374 WARN o.o.u.w.i.servlet.CmdServlet[:100] - Received command 'TOGGLE' for item 'Stern', but the item does not exist in the registry

Es dauerte ein wenig bis ich den Fehler gefunden hatte und letztendlich half mir nur der Eintrag in einem Forum.

Die Konfigurationsdateien für die Items werden unter dem Pfad configurations/items/ abgelegt und müssen die Endung .items haben. In meinem Fall hatte die Datei die Endung .item.