Mit dem Raspberry Pi, openHAB und Z-Wave zum Smart Home
Da ich schon einige Zeit keine Beiträge mehr geschrieben habe, ist es wohl mal wieder Zeit. In letzter Zeit wurde ich immer wieder gefragt, wie Smart Home geht und wie ich das implementiert habe. Darum werde ich eine Smart Home Serie verfassen, in der ich die interessantesten Themen aus der Smart Home Welt posten möchte.
Heute beginnen wir erstmal mit einer Einführung und einer Art Smart Home getting started Guide.
Als erstes stellt sich natürlich die Frage, was ist Smart Home. Diese Frage ist nicht wirklich eindeutig, und jeder sagt etwas anderes. Wenn es nach den meisten Herstellern geht, dann darf sich alles Smart Home nennen, was sich mit dem Handy steuern lässt oder eine App dafür existiert. Diese Meinung kann ich leider nicht teilen, für mich gehört schon ein wenig mehr dazu. Für mich fängt Smart Home damit an, wenn verschiedene „Welten“ miteinander verbunden werden und mittels Logik und Automatisierung in sinnvollen Einklang gebracht werden.
Ich werde hauptsächlich auf den Einsatz von openHAB in Verbindung mit Z-Wave eingehen.
Eine Anleitung für openHAB 2 könnt ihr hier finden.
Dieser Artikel wird die Installationsanleitung, um openHAB auf einem Raspberry Pi mit Z-Wave zum Laufen zu bekommen.
Also fangen wir mal an …
Bevor wir uns um die Softwareinstallation kümmern können, benötigen wir die Hardware.
Was wird benötigt:
- Raspberry Pi 2 mit Gehäuse und Netzteil
- eine microSDHC 64GB Speicherkarte
- RaZberry Z-Wave Modul 1 oder RaZberry Z-Wave Module 2 oder UZB Z-Wave USB-Stick
Installationsanleitung
1. Download von Raspbian
Als Erstes muss das Betriebssystem Raspbian 8 (Jessie) auf die microSDHC Speicherkarte, dazu muss das aktuelle Image von der offiziellen Website von Raspberry Pi herunter geladen werden.
2. Installation von Raspbian
Die ZIP Datei muss ausgepackt werden und mit einem Imaging Tool auf die microSDHC Speicherkarte kopiert werden. Windows Nutzer verwenden dafür das Tool Win32DiskImager, für alle anderen Systeme gibt es hier eine Anleitung. Das Windows Tool Win32DiskImager muss unbedingt mit höheren Rechten ausgeführt werden, da es sonst nicht funktioniert.
3. Inbetriebnahme von Raspbian
Es ist an der Zeit das RaZberry Z-Wave Modul 1 oder RaZberry Z-Wave Module 2 oder den UZB Z-Wave USB-Stick an zu schließen. Jetzt kann die fertig „betankte“ microSDHC Speicherkarte in den Raspberry Pi 2 eingesetzt und gestartet werden. Wenn die rote LED dauerhaft leuchtet und die grüne blinkt, dann hat alles geklappt und der Raspberry Pi ist richtig gestartet. Um sich mittels SSH mit dem Raspberry Pi 2 zu verbinden, muss die IP ermittelt werden, welche im Router nachgeschlagen werden kann. Windows Nutzer verwenden das Tool Putty um sich mit dem Raspberry Pi 2 zu verbinden.
Die Zugangsdaten lauten:
Username: pi
Passwort: raspberry
Als erstes sollte das Konfigurationstool „raspi-config“ ausgeführt werden, um den gesamten Speicherplatz der microSDHC Speicherkarte zu nutzen und den Grafikmodus zu deaktivieren.
#: sudo raspi-config
In dem sich öffnenden Grafikmenü muss die Option „Expand Filesystem“ gewählt werden, anschließend startet der Raspberry Pi 2 neu. Nach dem Neustart muss man sich erneut mit dem Raspberry Pi 2 verbinden. Nun sollten alle Updates für die Software installiert werden, dazu folgende Befehle ausführen:
#: sudo apt-get update #: sudo apt-get upgrade
4. Installation von openHAB
Für openHAB wird Java in der Version 1.6 oder höher benötigt, was mit folgendem Befehl überprüft werden kann:
#: java -version
Wenn sichergestellt ist, dass Java in der richtigen Version vorhanden ist, kann das Repository von openHAB angebunden werden.
#: wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo apt-key add - #: echo "deb http://dl.bintray.com/openhab/apt-repo stable main" | sudo tee /etc/apt/sources.list.d/openhab.list
Anschließend muss der Index von APT neu aufgebaut werden.
#: sudo apt-get update
Nun kann openHAB installiert werden.
#: sudo apt-get install openhab-runtime openhab-addon-binding-zwave
Damit werden alle Basiskomponenten der openHAB-Runtime und das Binding Addon für Z-Wave installiert. Die openHAB Verzeichnisstruktur sieht bei der Installation aus den Paketen etwas anders aus, als bei der ZIP Variante. Die Verzeichnisstruktur sieht wie folgt aus:
- openHAB-System: /usr/share/openhab
- Addons: /usr/share/openhab/addons
- Konfigurationsdateien /etc/openhab/configurations
- Log-Files: /var/log/openhab
- Nutzerdaten z.B. aus Datenbanken etc. (rrd4j, db4o etc.): /var/lib/openhab
Um eine vollständige Liste aller Addons und weiterer openHAB Pakete zu erhalten, kann folgender Befehl ausgeführt werden:
#: sudo apt-cache search openhab
Damit das Z-Wave Modul angesprochen werden kann, muss die Datei „/usr/share/openhab/bin/openhab.sh“ im Bereich „JAVA_ARGS_DEFAULT“ um folgende Zeile ergänzt werden:
RaZberry:
-Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0 \
UZB:
-Dgnu.io.rxtx.SerialPorts=/dev/ttyACM0 \
Der Abschnitt sieht in Startscript dann wie folgt aus:
JAVA_ARGS_DEFAULT="-Dosgi.clean=true \ -Declipse.ignoreApp=true \ -Dosgi.noShutdown=true \ -Dgnu.io.rxtx.SerialPorts=/dev/ttyACM0 \ -Djetty.port=${HTTP_PORT} \ -Dopenhab.configfile="${OPENHAB_CONF_DIR}/configurations/openhab.cfg" \ -Dopenhab.configdir="${OPENHAB_CONF_DIR}/configurations" \ -Dopenhab.logdir="${OPENHAB_LOG_DIR}" \ -Dsmarthome.userdata="${OPENHAB_USER_DATA_DIR}" -Djetty.home="${OPENHAB_DIR}" \ -Djetty.port.ssl=${HTTPS_PORT} \ -Djetty.config="${OPENHAB_CONF_DIR}/jetty" \ -Djetty.logs="${OPENHAB_LOG_DIR}" \ -Djetty.rundir="${OPENHAB_DIR}" \ -Dfelix.fileinstall.dir="${OPENHAB_DIR}/addons" \ -Dfelix.fileinstall.filter=.*\\.jar \ -Djava.library.path="${OPENHAB_DIR}/lib" \ -Djava.security.auth.login.config="${OPENHAB_CONF_DIR}/login.conf" \ -Dorg.quartz.properties="${OPENHAB_CONF_DIR}/quartz.properties" \ -Dequinox.ds.block_timeout=240000 \ -Dequinox.scr.waitTimeOnBlock=60000 \ -Dfelix.fileinstall.active.level=4 \ -Djava.awt.headless=true \ -jar ${LAUNCHER} \ -configuration ${OPENHAB_WORKSPACE_DIR} \ -data ${OPENHAB_WORKSPACE_DIR} \ -console ${TELNET_PORT}"
Der Nutzer openhab benötigt noch zusätzliche Rechte, um auf das Z-Wave Modul zugreifen zu können:
#: sudo usermod -a -G dialout openhab
Damit openHAB und das Z-Wave Binding auch wissen, wie sie an das Z-Wave Modul kommen, muss die „/etc/openhab/configurations/openhab.cfg“ im Bereich „Z-Wave Binding“ wie folgt angepasst werden.
RaZberry:
zwave:port=/dev/ttyAMA0 zwave:healtime=2 zwave:masterController=true
UZB:
zwave:port=/dev/ttyACM0 zwave:healtime=2 zwave:masterController=true
Jetzt wird noch das Addon HABmin 1 benötigt, welches eine Web GUI mitbringt, um Z-Wavegeräte konfigurieren zu können. Dazu die letzte Version von HABmin 1 hier herunterladen und auspacken. Das Addon Modul „org.openhab.io.habmin-1.7.0-SNAPSHOT.jar“ aus dem Ordner „addons“ muss nach „/usr/share/openhab/addons/“ kopiert werden. Alle anderen Dateien, bis auf das „addons“ Verzeichnis und die .git* Dateien in das Verzeichnis „/usr/share/openhab/webapps/habmin/“ kopieren.
Damit openHAB auch automatisch startet, wenn der Raspberry Pi 2 gestartet wird, muss openHAB dem Autostart hinzugefügt werden:
#: sudo systemctl daemon-reload #: sudo systemctl enable openhab
Damit ist die Basiskonfiguratione fertig und es kann mit openHAB los gehen!
Fortsetzung folgt …
- Autostart von openHAB
- Anbindung von MyopenHAB.org
- Heizungssteuerung mit openHAB und Z-Wave
- openHAB mit CalDAV Binding
- Anleitung für openHAB 2 Basisinstallation
Hallo,
prima Installationsanweisung …. ein Frage, was meinst die mit .git* Dateien. Könntest du die HABmin Installation noch etwas weiter erläutern. Ich bekomme die Meldung Access Forbidden.
Danke schon mal im Voraus
Hallo,
prima Installationsanweisung, könnten Sie die HABmin Installation etwas detailierter darstellen. Ich erhalte die Meldung Access Forbidden während des HABmin Logins. Was genau sind die *.git* Dateien?
Danke schon mal im Voraus
Hallo,
in der ZIP Datei ist der Orner „HABmin-master“, darin steckt der Inhalt für HABmin. Wie bereits beschriben, steckt im Ordner addons das „org.openhab.io.habmin-1.7.0-SNAPSHOT.jar“ Addon, welches in das addons Verzeichnis der openHAB Installation kopiert werden muss. Das zwave-Binding, welche auch in der ZIP Datei enthalten ist, kann ignoroert werden, da es mittlerweile eine aktuellere gibt. Alle weiteren Dateien und Verzeichnisse sind für das Webinterface, bis auf den Ordner „addons“ und die .git* Dateien („.gitattributes“ und „.gitignore“), welche in das Web-Verzeichnis unter „/usr/share/openhab/webapps/habmin/“ kopiert werden. Das Webinterfach ist dann unter http://:8080/habmin/ zu erreichen (Groß- und Kleinschreibung des Verzeichnisnamen beachten).
Ich hoffen jetzt ist es eindeutiger.
Hi,
zunächst sorry für die zwei Einträge? Ich habe es am Laufen, der Autostart Befehl reicht bei mir aber nicht aus. Erst nach sudo /etc/init.d/openhab start wird mein zWave Stick erkannt und auch HABmin startet und zeigt diesen als Node1 an. Allerdings bin ich dann auf das nächste Problem aufgelaufen: meine Fibaro FGK-101 Windows/Door Sensoren nicht erkannt werden, also der Insert-Prozess fehlschlägt?
Hallo,
ich sehe im log beim hochhfahren zunächst einen Fehler bzgl. -Dgnu.io.rxtx.SerialPorts=/dev/ttyACM0 \.
Anscheinend findet er den Treiber dann doch. Taucht der Fehler bei Ihnen auch auf und wo haben Sie die Teile eingefügt. Ich habe gelesen, dass man die Zeile nicht überall einfügen kann?
Danke.
Hallo,
ich habe den gesamten Codeabschnitt des Startscriptes der Anleitung hinzugefügt.
Ein Start von openHAB sieht im Log, bezogen auf den Z-Wave Controller, dann so aus:
2016-02-01 20:29:03.173 [INFO ] [.z.internal.ZWaveActiveBinding] - Update config, port = /dev/ttyACM0
2016-02-01 20:29:03.175 [INFO ] [.z.internal.ZWaveActiveBinding] - Update config, healtime = 2
2016-02-01 20:29:03.177 [INFO ] [.z.internal.ZWaveActiveBinding] - Update config, masterController = true
2016-02-01 20:29:03.182 [INFO ] [.service.AbstractActiveService] - ZWave Refresh Service has been started
2016-02-01 20:29:03.277 [INFO ] [b.z.i.protocol.ZWaveController] - Starting Z-Wave controller
2016-02-01 20:29:03.279 [INFO ] [b.z.i.protocol.ZWaveController] - Z-Wave timeout is set to 5000ms. Soft reset is false.
2016-02-01 20:29:03.280 [INFO ] [b.z.i.protocol.ZWaveController] - Connecting to serial port /dev/ttyACM0
2016-02-01 20:29:03.420 [INFO ] [b.z.i.protocol.ZWaveController] - Serial port is initialized
2016-02-01 20:29:03.690 [INFO ] [.service.AbstractActiveService] - NTP Refresh Service has been started
Hallo,
ich hatte den Treiber ganz am Ende des Abschnittes platziert. Nach der Änderung ist der Fehler weg …. Danke!
Wann und wie geht es weiter …. was ist als nächstes geplant?