ioBroker
ioBroker ist die im DACH-Raum verbreitete Open-Source-Plattform zur Smart-Home- und IoT-Integration. Über Adapter bindest du Geräte, Protokolle und Dienste in ein gemeinsames Objekt- und State-Modell ein und steuerst, automatisierst und visualisierst alles zentral.
ioBroker ist eine quelloffene Integrationsplattform für Smart Home und IoT, die im deutschsprachigen Raum besonders stark verbreitet ist. Statt sich auf einen Hersteller oder ein Protokoll festzulegen, führt ioBroker Geräte, Cloud-Dienste und Bussysteme über sogenannte Adapter in einem einheitlichen Datenmodell zusammen. In dieser Anleitung erfährst du, was ioBroker ausmacht, wofür es sich eignet und wie du es sauber als Docker-Container mit persistentem Datenverzeichnis betreibst.
Was ist ioBroker?
ioBroker ist eine auf Node.js basierende Open-Source-Plattform, die heterogene Geräte und Dienste zu einem zentralen Smart-Home-System verbindet. Jede Anbindung erfolgt über einen Adapter, der ein Protokoll oder einen Dienst (etwa Zigbee, KNX, MQTT, Modbus oder eine Hersteller-Cloud) in das interne Objekt- und State-Modell von ioBroker übersetzt. Auf diesem gemeinsamen Datenmodell setzen dann Automatisierungen, Skripte und Visualisierungen auf, sodass Geräte unterschiedlichster Hersteller herstellerneutral zusammenspielen.
Wofür eignet sich ioBroker?
Herstellerübergreifende Integration. – bringt Geräte und Protokolle verschiedener Anbieter in ein einheitliches System, statt mehrere getrennte Apps zu betreiben.
Automatisierung und Logik. – über Blockly, JavaScript oder weitere Adapter lassen sich Regeln, Zeitpläne und ereignisbasierte Abläufe umsetzen.
Visualisierung und Dashboards. – mit VIS und ähnlichen Adaptern baust du eigene Bedienoberflächen, die auf eigenen Ports erreichbar sind.
Datenanbindung und Industrie/OT-Nähe. – durch Adapter für MQTT, Modbus oder InfluxDB eignet sich ioBroker auch für IoT- und einfache OT-Szenarien mit Logging und Weiterleitung.
Zentrale Konzepte
Adapter. – eigenständige Prozesse, die ein Gerät, Protokoll oder einen Dienst anbinden; sie werden über die Admin-Oberfläche installiert und konfiguriert.
Objekte und States. – Objekte beschreiben die Struktur (Geräte, Kanäle, Datenpunkte), States halten die aktuellen Werte; dieses Modell ist das Herzstück von ioBroker.
Admin-Oberfläche. – die zentrale Weboberfläche auf Port 8081, über die du Adapter, Instanzen, Objekte und Skripte verwaltest.
Persistenz. – die gesamte Konfiguration, alle Adapter und Daten liegen unter /opt/iobroker; dieses Verzeichnis muss zwingend dauerhaft erhalten bleiben.
ioBroker speichert die gesamte Konfiguration inklusive aller installierten Adapter unter /opt/iobroker. Wird dieses Verzeichnis nicht persistent gemacht, gehen bei jedem Neustart des Containers sämtliche Geräte, Instanzen und Skripte verloren. Persistiere /opt/iobroker daher immer über ein benanntes Volume.
Installation mit Docker
Für den Betrieb hat sich das offizielle Community-Image buanet/iobroker etabliert. Der einzig wirklich persistente Pfad ist /opt/iobroker – dort liegen die komplette ioBroker-Installation, alle Adapter, das Objekt-/State-Modell sowie deine Konfiguration. Diesen Pfad legen wir auf ein benanntes Volume (iobroker_data), damit Updates und Neustarts des Containers die Daten nicht verlieren. Wichtig: Für den Dauerbetrieb empfiehlt die offizielle Doku ausdrücklich, NICHT den latest-Tag zu verwenden, sondern einen auf die Major-Version gepinnten Tag (z. B. latest-v11), damit nicht versehentlich ein Major-Update mit Breaking Changes eingespielt wird. Als Netzwerk reicht für die meisten Adapter der Standard-Bridge-Modus mit explizit gemappten Ports; nur für Adapter, deren Geräte-Erkennung (Discovery) auf Multicast/Broadcast angewiesen ist, wird zusätzlich der Host-Netzwerkmodus (oder MACVLAN) benötigt.
1docker run -d \2 --name iobroker \3 --hostname iobroker \4 -p 8081:8081 \5 -e TZ=Europe/Zurich \6 -e LANG=de_DE.UTF-8 \7 -e SETUID=1000 \8 -e SETGID=1000 \9 -v iobroker_data:/opt/iobroker \10 --restart unless-stopped \11 buanet/iobroker:latest-v11
Oder als wiederverwendbare docker-compose.yml:
1services:2 iobroker:3 # Major-Version pinnen statt 'latest' (Breaking-Change-Schutz)4 image: buanet/iobroker:latest-v115 container_name: iobroker6 hostname: iobroker7 ports:8 - "8081:8081" # Admin-Oberflaeche9 environment:10 TZ: Europe/Zurich11 LANG: de_DE.UTF-812 SETUID: "1000"13 SETGID: "1000"14 volumes:15 - iobroker_data:/opt/iobroker16 restart: unless-stopped1718# Hinweis: Fuer Adapter mit Geraete-Discovery (Multicast/Broadcast)19# stattdessen 'network_mode: host' setzen und den ports-Block entfernen.2021volumes:22 iobroker_data:
Verwende fuer den Produktivbetrieb einen gepinnten Tag (z. B. latest-v11) statt latest, damit nicht ungewollt ein Major-Update mit Breaking Changes eingespielt wird. Im Host-Netzwerkmodus werden -p Port-Mappings ignoriert; ioBroker belegt die Ports (8081 fuer Admin, weitere fuer VIS und Adapter) dann direkt auf dem Host. Stelle die Admin-Oberflaeche nicht ungeschuetzt ins Internet, sondern sichere sie ueber Reverse-Proxy, Authentifizierung und Firewall ab. Das Volume iobroker_data enthaelt deine komplette Installation – binde es in deine Backups ein, bevor du Container oder Image aktualisierst.
Nach dem Start braucht der erste Lauf etwas Zeit, da die Installation initialisiert wird. Prüfe danach die Admin-Oberfläche und den Container-Status:
1# Container-Status pruefen2docker ps --filter name=iobroker34# Logs des Erststarts beobachten5docker logs -f iobroker67# Admin-Oberflaeche im Browser oeffnen8# http://SERVER-IP:8081
Fazit
ioBroker ist eine flexible, herstellerneutrale Drehscheibe für Smart Home und IoT: Über Adapter bindest du nahezu beliebige Geräte und Dienste an ein gemeinsames Objekt- und State-Modell an und automatisierst, steuerst und visualisierst sie zentral. Im Docker-Betrieb sind drei Dinge entscheidend – das Datenverzeichnis /opt/iobroker als benanntes Volume zu persistieren, einen auf die Major-Version gepinnten Image-Tag (z. B. latest-v11) statt latest zu verwenden und das Netzwerk passend zu wählen (Bridge mit Port-Mapping als Standard, Host-Modus nur für Adapter mit Multicast/Broadcast-Discovery). Damit hast du eine wartbare Basis, die du um MQTT-Broker, InfluxDB oder Grafana zu einem vollständigen IoT-Stack erweitern kannst.
