ioBroker installieren - Docker

Mit ioBroker können verschiedene Automatisierungslösungen oder Geräte in einem System zusammengefasst werden. Um bestimmte Gateways oder Geräte ansprechen zu können, werden in ioBroker verschiedene Adapter verwendet.   

Für einen kurzen Überblick, wie sich ioBroker im SmartHome einfügt, siehe auch: Smart-Home-Plattform: Systeme

Als Voraussetzung für das Einrichten des ioBrokers wird für die hier vorgestellte Variante ein Docker-Setup vorausgesetzt, siehe: Docker.

ioBroker in Docker starten

Falls nicht bereits geschehen, sollte ein eigenes Netzwerk angelegt werden. Das Netzwerk kann auch für andere Smart-Home-Container verwendet werden, damit diese Daten untereinander leichter austauschen können. 

docker network create smart-home

Um ioBroker dann in dem angelegten Netzwerk zu starten, habe ich den folgenden Befehl verwendet:

mkdir -p /docker
mkdir -p /docker/iobroker
docker run -d \
  --network=smart-home \
  -p 8081:8081 \
  -p 8081:8081/udp \
  -p 8082:8082 \
  -p 8083:8083  \
  -p 1882:1882 \
  -p 8091:8091 \
  --hostname=iobroker \
  --restart=always  \
  --name iobroker  \
  -v /docker/iobroker/:/opt/iobroker  \
  buanet/iobroker -p

Die erste Verbindung auf die Weboberfläche führt uns zu den Haupteinstellungen:

Anmeldung-Passwort

Um den Zugriff auf ioBroker abzusichern, muss die Authentifizierung eingeschaltet werden. Zuvor kann über "Benutzer" ein Passwort vergeben werden:

Für das Einschalten der Authentifizierung, auf Instanzen, "admin.0":

Adapter, als Beispiel: deConz ZigBee, verbinden

Für die Steuerung der ZigBee-Geräte gibt es für Conbee einen eigenen Adapter,

Nach dem Hinzufügen, muss noch das Phoscon-GW des ConBee-Sticks auf "App verbinden" gesetzt werden. Informationen zur Inbetriebnahme von ConBee, siehe: Conbee 2 Inbetriebnahme.

dann: Erstelle API Key und speichern:

Wenn die Verbindung zu deCONZ funktioniert, wird der API-Key automatisch befüllt.

InfluxDB

Der Adapter "InfluxDB" ermöglicht es historische Werte in eine Influx-Datenbank zu schreiben, für das Setup, siehe: Docker InfluxDB.

Nach dem Setup kann die Influx Datenbank in den Einstellungen des Adapters hinterlegt werden:

Für das Erfassen der Zählerstände, auf Objekte und "Einstellungen":

Durch das Aktivieren werden alle Status-Änderungen in die Datenbank geschrieben: 

An dieser Stelle kann auch die Vorhaltezeit definiert werden.

verschiedene Geräte verbinden, steuern

Das direkte Steuern der Geräte über deren Objekte ist zwar möglich, aber nicht wirklich komfortabel. Der Menüpunkt Objekte dient vielmehr um alle Stati anzuzeigen und um bestimmte Aktionen zu testen. Um Sensoren oder Schalter mit bestimmten Geräten zu verknüpfen, wird eine bestimmte Logik benötigt, dazu gibt es in ioBroker mehrere Möglichkeiten. Für einfache Verknüpfungen kann der Adapter "Szenen" verwendet werden, etwas mehr Möglichkeiten bietet der Adapter "Script Engine":

Szenen - auf bestimmte Werte reagieren

Eine sehr einfache Variante bestimmte Trigger mit bestimmten Aktionen zu verknüpfen bietet der Adapter "Szenen". Als Beispiel steuere ich einen Luftentfeuchter über eine steuerbare Steckdose anhand der angezeigten Luftfeuchtigkeit eines Sensors:

Die Steckdose wird dabei bei einem Wert über 65 über die Szenenzustände eingeschaltet. Ein zweiter Ablauf schaltet den Luftentfeuchter bei einem Wert kleiner 60 dann wieder aus.

Script Engine - logische Abläufe

Das Beispiel mit dem Luftentfeuchters kann mit dem Adapater "Script Engine" wie folgt umgesetzt werden:

Der Adapter Script Engine erzeugt über visuelle Elemente (blockly) einen JavaScript-Code.

Das hier vorgestellte Beispiel erzeugt automatisch folgenden JavaScript-Block:

on({id: 'deconz.0.Sensors.10.humidity', change: "ne"}, function (obj) {
  var value = obj.state.val;
  var oldValue = obj.oldState.val;
  if (getState("deconz.0.Sensors.10.humidity").val >= '65') {
    setStateDelayed("deconz.0.Lights.7.on"/*Smart plug 7 on*/, true, 600000, false);
  }
  if (getState("deconz.0.Sensors.10.humidity").val < '60') {
    setState("deconz.0.Lights.7.on"/*Smart plug 7 on*/, false);
  }
});

Fazit

Der ioBroker kann verschiedenste Smart-Home-Lösungen miteinander verbinden. Eine Vielzahl an Adaptern im ioBroker bietet zahlreiche Anbindungs- und Erweiterungsmöglichkeiten. Mit Hilfe von Docker können zudem einfach Container außerhalb von ioBroker, aber auf der selben Hardware, betrieben und angebunden werden, zum Beispiel ein ZigBee Gateway Conbee 2, eine InfluxDB und Grafana für die Visualisierung.

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!



Fragen / Kommentare


(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]

✍Tobias
erstellt am 21.01.2021 10:01
ioBroker in Docker starten

Hallo Bernhard, ich lese mit Interesse deine Beiträge und versuche derzeit von meinem PI auf meinem Windows 10PRO Rechner mit ioBroker umzuziehen.
- mit Linux und Docker bin ich natürlich noch nicht so sattelfest
- WIN10PRO
- Docker Desktop mit WSL2 läuft mit Adminrechten als User A_Tobias
- Netzwerk smart-home eingerichtet
- Ordner mkdir -p /docker/iobroker auf Windows Partition LW:C im Root angelegt und testweise unter C/User/A_Tobias (ist das für das Binding und die peristenten Daten richtig? Funktioniert bei mir nicht)
- ist der host eigentlich die WSL Umgebung mit Linux oder ist der host Windows mit seiner Verzeichnisstruktur?

- Container gestartet mit deinen Angaben
docker run -d --network=smart-home -p 8081:8081 -p 8081:8081/udp -p 8082:8082 -p 8083:8083 -p 1882:1882 -p 8091:8091 --hostname=iobroker --restart=always --name iobroker -v /docker/iobroker/:/opt/iobroker buanet/iobroker -p

- über localhost:8081 kann ich iobroker starten, die Daten bleiben aber nicht erhalten, da die Daten aus welchem Grund auch immer nicht vom Container ins host Verzeichnis /docker/iobroker gespeichert werden
- lt. buanet-block kann man auch eine backitup-Datei in den Ordner /opt/iobroker bzw. /docker/iobroker legen um die vorhandene Konfiguration auf das neue System aufzuspielen
- kannst du mir hierzu ein paar Tipps geben oder meine Gedankenfehler ausräumen?
- bedanke mir vorab für deine Unterstützung

Gruß Tobias
✍Bernhard
erstellt am 21.01.2021 13:01
Hallo Tobias, 
damit iobroker persistent wird, ist zumindest in Linux der Paramter -v /docker/iobroker/:/opt/iobroker verantwortlich: 
der lokale Ordner /docker/iobroker soll im Container unter /opt/iobroker verwendet werden.
Ich kann mir vorstellen, dass in Windows der Ordner dann ev. entsprechend auch einen Laufwerksbuchstaben braucht? sowas wie: 
-v c:\temp\docker:/opt/iobroker

erstellt von Bernhard
✍Tobias
erstellt am 22.01.2021 10:01
Hallo Bernhard,

danke für die Rückmeldung.
Wo wurden denn bei Dir die Ordner /docker/iobroker angelegt?

Du arbeitest doch auch mit Docker Desktop für Windows.

VG Tobias

erstellt von Tobias
✍Bernhard
erstellt am 22.01.2021 10:01
Hallo Tobias, 

ich arbeite mit einem Linux-Rechner, dort gibt es keine Laufwerkbuchstaben, nur einen Mountpoint, in dem Fall /docker/iobroker, was in der Windows-Welt sowas wie c:\docker\iobroker ist ...

erstellt von Bernhard

Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter. Details anzeigen.