openHAB bietet viele Möglichkeiten, um das eigene Smarthome in vollem Umfang nutzen zu können. Dafür ist jedoch zuerst eine Installation von openHAB notwendig. Dafür gibt es verschiedene Herangehensweise – wobei ich mittlerweile immer eine Lösung mit Docker bevorzuge. Das liegt daran, dass eine Installation mit Docker sowohl einfach in der initialen Einrichtung als auch im späteren Update zu nutzen ist. Welche Installation du bevorzugst liegt natürlich bei dir – jedoch würde ich oftmals zur Docker-Variante greifen. Daher werde ich auf dieser Webeite die Einrichtung von openHAB mit Docker betrachten und auch im restlichen Blog den Fokus auf das Duo Docker und openHAB setzen.
Warum openHAB mit Docker?
openHAB bietet nahezu unbegrenzte Möglichkeiten, da viele Geräte von unterschiedlichen Herstellern zentral damit verwaltet und gesteuert werden können. Bei der Steuerung können mit den Regeln von openHAB viele Szenarien abgebildet werden. Das kann eine recht einfache Heizungssteuerung bei Anwesenheit/Urlaub sein oder eine Musiksteuerung, die jemanden über die Lautsprecher in den einzelnen Räumen folgt. Diese Flexibilität hat viele Vorteile und openHAB kann mit Docker dabei optimal genutzt werden:
- Einfache Einrichtung und Verwaltung durch Docker
- Möglichkeit des Tests sowie der Nutzung unterschiedlicher openHAB-Versionen
- Nutzung von verschiedenen Modulen innerhalb des Systems
Jedoch solltest du verstehen, dass der Betrieb nicht nur Vorteile mit sich bringt – auch, wenn diese aus meiner Sicht überwiegen.
Voraussetzungen für den Betrieb
Um openHAB mit Docker betreiben zu können, benötigst du natürlich Docker auf deiner Umgebung (QNAP, Synology, RaspberryPI oder was immer du nutzt). Da ich hier keinen Fokus auf die Installation von Docker setze, bitte ich dich einfach danach mit Google oder ähnlichem zu suchen. Auf meinem QNAP-Server funktioniert die Einrichtung sehr leicht, da die Containersation und damit die Virtualisierung mit Docker bereits enthalten ist und somit einfach genutzt werden kann – nach einer einmaligen Freischaltung.
Einrichtung openHAB
Die openHAB-Installation erfolgt innerhalb von Docker in dem Ordner /openhab. Dabei ist die Basis für openHAB eine minimale Installation von Linux.
Laden des openHAB-Images von Docker Hub
Als Basis für die Einrichtung von openHAB musst du als erstes das Image von der offiziellen Seite von Docker Hub downloaden.
Dies erreichst du in der Containerstation über einen einfachen Klick unter Images oder mit dem nachfolgenden Befehl:
docker pull openhab/openhab
Einrichtung von Ordnern
Um eine Speicherung der Daten außerhalb von Docker zu ermöglichen, musst du als erstes die folgenden Ordner bzw. Unterordner auf deinem System anlegen:
openhab
openhab/addons
openhab/conf
openhab/userdata
Erstellung des openHAB-Containers
Im Anschluss kannst du den Container über die Containerstation bzw. die richtigen Docker-Befehle startest.
Dabei ist wichtig, dass du die richtige Timezone für die Installation setzt und die restlichen notwendigen Parameter übernimmst:
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v /opt/openhab/conf:/openhab/conf \
-v /opt/openhab/userdata:/openhab/userdata \
-v /opt/openhab/addons:/openhab/addons \
-d \
-e USER_ID= \
-e GROUP_ID= \
--restart=always \
Weitere Umgebungsvariablen sowie Details zu den notwendigen Befehlen findest du auf der offiziellen Seite von openHAB zur Installation mit Docker: zu openHAB
Weiterer Ausblick
Im Anschluss kannst du deine eigene openHAB-Instanz nutzen und dein eigenes Smarthome nach deinen individuellen Vorstellungen bauen. Innerhalb dieses Blogs findest du weitere Ideen sowie Anregungen für die Realisierung von deiner smarten Wohnung. Daher empfehle ich dir noch die folgenden Beiträge, die sich mit einigen grundlegenden Möglichkeiten von openHAB beschäftigen.
InfluxDB für openHAB
Ein einfaches Beispiel für die Steuerung von Lichtszenen auf Basis von Bewegung, Uhrzeit und dem Zustand von Geräten ist mit dem folgenden Code zu realisieren:
rule "Motion detection in office and regulation of light scene"
when
Item Hue_Office_Presence changed to ON
then
var illuminance = Hue_Office_Illuminance.state as Number
if (illuminance < 15.0) {
if (Shelly_Office_Light_Power.state == OFF && Network_Matthias_PCOnline.state == OFF) {
switch Time_Of_Day.state {
case "NIGHT": Shelly_Office_Light_Brightness.sendCommand(60.0)
case "BED": Shelly_Office_Light_Brightness.sendCommand(15.0)
default: Shelly_Office_Light_Brightness.sendCommand(45.0)}}}
end
Ich wünsche dir weiterhin viel Spaß beim Lesen!
Matthias