openHAB
openHAB ist die herstellerneutrale Open-Source-Plattform für Hausautomation: Sie bindet Geräte unterschiedlichster Hersteller über Bindings an und verknüpft sie zu durchgängiger Logik. Mit Docker und benannten Volumes läuft sie in Minuten und bleibt bei Updates persistent.
openHAB (open Home Automation Bus) ist eine quelloffene Plattform, die Geräte und Protokolle unterschiedlichster Hersteller unter einem Dach zusammenführt. Statt dich an ein geschlossenes Ökosystem zu binden, sprichst du KNX, Zigbee, Z-Wave, MQTT, Modbus und Hunderte weiterer Systeme über austauschbare Bindings an und verknüpfst sie zu eigener Automatisierungslogik. In dieser Anleitung erfährst du, was openHAB ausmacht, wofür es sich eignet und wie du es mit Docker und persistenten benannten Volumes sauber betreibst.
Was ist openHAB?
openHAB ist ein in Java geschriebener, herstellerneutraler Automatisierungs-Server für Haus, Gebäude und Infrastruktur. Der Kern bleibt bewusst protokollagnostisch: Die eigentliche Geräteanbindung erfolgt über sogenannte Bindings (Add-ons), von denen es mehrere Hundert gibt. So lassen sich Komponenten verschiedener Hersteller und Standards in einer gemeinsamen Oberfläche und Logik kombinieren, ohne dass du dich an eine Cloud oder einen einzelnen Anbieter bindest. openHAB läuft vollständig lokal, ist quelloffen und damit auch für datenschutz- und souveränitätssensible Umgebungen geeignet.
Wofür eignet sich openHAB?
Heterogene Geräte-Landschaften. – wenn du Komponenten mehrerer Hersteller und Protokolle (KNX, Zigbee, Z-Wave, MQTT, Modbus, HTTP/REST) unter einer Oberfläche zusammenführen willst, ist die herstellerneutrale Architektur die zentrale Stärke.
Lokale, cloudunabhängige Automatisierung. – die gesamte Logik läuft on-premises; es gibt keinen Zwang zu einer Hersteller-Cloud, was für Datenschutz, Verfügbarkeit und Souveränität entscheidend ist.
Komplexe Regel-Logik. – über Rules (Blockly, DSL oder Skripte wie JavaScript) baust du Zeitpläne, Schwellwerte und Verkettungen, die weit über einfache Wenn-Dann-Schaltungen hinausgehen.
IoT-/OT-Integration. – per Modbus-, MQTT- oder HTTP-Bindings lassen sich auch industrielle Sensorik, SPS-Werte und eigene Backends einbinden, nicht nur klassische Smart-Home-Geräte.
Zentrale Konzepte: Things, Items und Rules
Things. – repräsentieren ein physisches Gerät oder einen Dienst, der über ein Binding angebunden wird (z. B. eine Zigbee-Lampe oder ein MQTT-Topic).
Channels. – die einzelnen Datenpunkte eines Things, etwa „Helligkeit“ oder „Temperatur“, die mit Items verknüpft werden.
Items. – die abstrakte, protokollunabhängige Sicht auf einen Zustand; Items sind das, womit Oberfläche und Logik arbeiten, unabhängig vom darunterliegenden Hersteller.
Rules. – die Automatisierungslogik, die Items auswertet und Aktionen auslöst – per Blockly-Editor, DSL oder Skriptsprache.
openHAB profitiert stark von network_mode: host, weil viele Bindings auf UPnP- und mDNS-Discovery angewiesen sind, das über die isolierte Docker-Bridge nicht zuverlässig funktioniert. Auf Windows und macOS wird host-Networking nicht unterstützt – dort musst du die Ports 8080 und 8443 (Web-UI) explizit mappen und Geräte ggf. manuell anlegen.
Installation mit Docker
openHAB speichert seinen kompletten Zustand in drei Verzeichnissen, die du unbedingt persistieren musst: /openhab/conf enthält deine textbasierte Konfiguration (Things, Items, Rules, Sitemaps), /openhab/userdata hält den Laufzeitstand inklusive installierter Add-ons, Datenbanken, Cache und Logs, und /openhab/addons ist für manuell hinzugefügte Add-on-JARs. Würden diese Pfade nur im Container liegen, wäre nach einem Update oder Neustart alles verloren. Wir legen daher für jeden Pfad ein benanntes Docker-Volume an. Hinweis: openHAB ist von Haus aus eigenständig – soll es jedoch Zigbee- oder MQTT-Geräte einbinden, brauchst du zusätzlich einen MQTT-Broker (z. B. Eclipse Mosquitto) bzw. einen Zigbee2MQTT-Dienst, an den openHAB über das MQTT-Binding andockt.
1docker run -d \2 --name openhab \3 --net=host \4 -v openhab_conf:/openhab/conf \5 -v openhab_userdata:/openhab/userdata \6 -v openhab_addons:/openhab/addons \7 -v /etc/localtime:/etc/localtime:ro \8 -e OPENHAB_HTTP_PORT=8080 \9 -e OPENHAB_HTTPS_PORT=8443 \10 -e USER_ID=9001 \11 -e GROUP_ID=9001 \12 -e CRYPTO_POLICY=unlimited \13 -e TZ=Europe/Zurich \14 --restart=unless-stopped \15 openhab/openhab:latest
Oder als wiederverwendbare docker-compose.yml:
1services:2 openhab:3 image: openhab/openhab:latest4 container_name: openhab5 restart: unless-stopped6 network_mode: host7 volumes:8 - openhab_conf:/openhab/conf9 - openhab_userdata:/openhab/userdata10 - openhab_addons:/openhab/addons11 - /etc/localtime:/etc/localtime:ro12 environment:13 OPENHAB_HTTP_PORT: 808014 OPENHAB_HTTPS_PORT: 844315 USER_ID: 900116 GROUP_ID: 900117 CRYPTO_POLICY: unlimited18 TZ: Europe/Zurich1920volumes:21 openhab_conf:22 openhab_userdata:23 openhab_addons:
network_mode: host umgeht die Docker-Netzwerkisolation – der Container teilt sich den Netzwerk-Stack des Hosts und belegt unter anderem Port 8080/8443 (Web-UI), 8101 (SSH-Konsole) und 5007 (LSP) direkt auf dem Host. Setze openHAB nie ungeschützt ins offene Internet, sondern hinter einen Reverse-Proxy mit TLS und Authentifizierung. Achte zudem darauf, dass USER_ID/GROUP_ID zu den Berechtigungen passen, falls du angeschlossene Hardware (z. B. /dev/ttyUSB0 für Zigbee/Z-Wave-Sticks) per --device durchreichst.
Nach dem Start dauert die Erstinitialisierung einige Minuten. Prüfe das Log und rufe danach die Weboberfläche auf, um den Einrichtungsassistenten zu starten:
1docker logs -f openhab2curl -I http://localhost:80803# Browser: http://SERVER-IP:8080
Fazit
openHAB ist die Wahl, wenn du eine herstellerneutrale, lokal laufende Automatisierungsplattform brauchst, die Geräte unterschiedlichster Protokolle unter einem Dach vereint und echte, komplexe Logik erlaubt. Der Docker-Betrieb mit drei benannten Volumes für conf, userdata und addons macht Updates und Backups unkompliziert und sorgt dafür, dass deine Konfiguration jeden Neustart übersteht. Für Discovery-abhängige Bindings ist host-Networking unter Linux der empfohlene Weg; willst du Zigbee- oder MQTT-Geräte anbinden, ergänzt du openHAB um einen MQTT-Broker. Damit hast du eine souveräne, erweiterbare Basis, die mit deinen Anforderungen mitwächst.
