Gebäudeautomation mit OpenHAB

In einer meiner Lernsituationen wird ein Beispiel zur Gebäudeautomation (Smart Home) mit dem Ziel konfiguriert, ein oder mehrere Endgeräte über die Smartphones der Lernenden bzw. über einen PC anzusteuern. Die dafür notwendige zentrale Steuereinheit wird auf dem Kleinstrechner Raspberry Pi bzw. einem anderen Linux-Rechner installiert. Zur Ansteuerung der Endgeräte wird das Open-Source-Programm OpenHAB genutzt, welches vielfältige IoT-Standards unterstützt und damit gut an vorhandene Hardware zur Gebäudeautomation angebunden werden kann.

(OpenHAB ist ein Java-Programm und kann daher auch unter Windows bzw. MacOS genutzt werden, hier wird jedoch nur die Installation und Konfiguration unter Linux beschrieben.)

Installation von OpenHAB

Da OpenHAB eine Java-Anwendung ist, muss als Voraussetzung eine Java-Lauzeitumgebung, engl. Java Runtime Environment (JRE) installiert sein. Ob Java in welcher Version bereits installiert ist, kann mit dem Befehl

java -version

überprüft werden. Die Installation der JRE kann über die jeweilige Paketverwaltung erfolgen:

apt-get install default-jre

Mit dem Befehl java -version kann die erfolgreiche Installation überprüft werden:

java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.14.04.1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

(OpenJDK ist die offizielle freie Implementierung von Java.)

Die anschließende Installation von OpenHAB kann wahlweise manuell (Datei von der Projekt-Webseite laden und selbst entpacken) oder ebenfalls über die Packetverwaltung erfolgen. Letzteres hat den Vorteil, dass das Programm beim System-Update (apt-get upgrade) automatisch mit aktualisiert wird.

Da OpenHAB standardmäßig nicht in den Paketquellen integriert ist, muss zuerst ein entsprechender Eintrag in der Datei bzw. in einer eigenen .list-Datei im Verzeichnis generiert 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

Mit dem ersten Befehl wird ein Schlüssel für die neue Paketquelle generiert. Der Schlüssel wird von der Projektseite mit wget herunterladen und mit apt-key direkt an die Schlüsselverwaltung übergeben. Nur mit dem Schlüssel kann auf die neue Paketquelle zugegriffen werden.

Mit dem zweiten Befehl wird die neue Paketquelle in der neu erstellten Datei openhab.list eingetragen.

Nun kann OpenHAB mit dem Befehl

apt-get install openhab-runtime

installiert werden. Bei Bedarf kann ein Beispiel-Szenario mit installiert werden, anhand dessen die Funktion und auch Konfiguration von OpenHAB deutlich wird:

mkdir download
cd download
wget https://bintray.com/artifact/download/openhab/bin/distribution-1.7.1-demo-configuration.zip
unzip distribution-1.7.1-demo-configuration.zip
cp -r configurations/* /etc/openhab/configurations/

Der erste Befehl erstellt ein Verzeichnis für den Download der neuen Konfigurationsdateien von OpenHAB. In dieses Verzeichnis wird mit wget das Beispiel-Szenario als .zip-Datei geladen und mit unzip entpackt. Mit dem letzten Befehl werden die neuen Konfigurationsdateien in das entsprechende Verzeichnis von OpenHAB kopiert.

Anschließend kann das Download-Verzeichnis wieder gelöscht (rm) und OpenHAB neu gestartet werden.

cd ..
rm -r download
service openhab restart

Die für das Beispiel-Szenario notwendigen Bindings (Schnittstellen zur Außenwelt) werden wieder mit apt-get installiert:

apt-get install openhab-addon-binding-http openhab-addon-binding-ntp openhab-addon-persistence-exec openhab-addon-persistence-logging openhab-addon-persistence-rrd4j

Anschließend öffnet man einen Browser und gibt die URL des OpenHAB-Servers ein:

http://IP-Adresse:8080

Von Jan Quast

Ich bin Berufsschullehrer mit dem Schwer­punkt Netzwerk­technik am OSZ IMT in Berlin. Auch zu finden auf Xing

Ein Kommentar

  1. Lieber Jan,
    bei der Recherche nach Lernsituationen für den Raspberry Pi bin ich auf deine Seite gestoßen.
    Nun interessiert mich die Lernsituation genauer (Arbeitsauftrag, zusätzlich zu verwendende Hardware etc.).
    Kannst du mir die Materialien zusenden oder mir schreiben, wo ich sie finden kann (BSCW, o.ä.)?

    Danke und liebe Grüße
    Ralf

Kommentare sind geschlossen.