ioBroker installieren - Docker

This page is also available in English

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.

Docker Basics

Docker ermöglicht es, Services oder Applikationen per Befehl in einem sogenannten Container zu starten.
Ein Container ist eine vom Betriebssystem (OS) unabhÀngige isolierte Umgebung:
Beim ersten Start eines Containers, lÀdt Docker selbststÀndig alle notwendigen Quellen
aus dem Internet.
Docker kann unter Windows, macOS oder einer Linux-Distribution installiert werden,
siehe auch: Docker

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

SoftwareIoBroker
GitHubhttps://github.com/ioBroker/ioBroker
aktuelle Version 2022-06-15
gefunden20.06.2022
Als Voraussetzung fĂŒr das Einrichten von ioBroker wird fĂŒr die hier vorgestellte Variante ein Docker-Setup vorausgesetzt, siehe: Docker.

ioBroker in Docker starten

Um ioBroker zu starten, habe ich den folgenden Befehl verwendet:

sudo docker run -d \
  --net=host \
  --hostname=iobroker \
  --restart=always  \
  --name iobroker  \
  -v /opt/iobroker  \
  buanet/iobroker -p

Die erste Verbindung auf die WeboberflÀche starten einen Einrichtungs-Assistenten:

Anmeldung-Passwort

Um den Zugriff auf ioBroker abzusichern, muss die Authentifizierung eingeschaltet werden: Entweder ĂŒber den Wizard, oder ĂŒ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 des ConBee, siehe: Conbee 2 Inbetriebnahme.

Damit iobroker mit deConz eine Netzwerkverbindung aufbauen kann, habe ich 

dann: Erstelle API Key und speichern:

ⓘ
Normalerweise verwendet deConz den Port 80.
Da Port 80 auf meinem Server bereits belegt ist, verwende ich einen altertiven Port, siehe: Conbee 2: Phoscon deCONZ - Docker Inbetriebnahme | Review

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 Status 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 Adapter „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. Mithilfe von Docker können zudem einfach Container außerhalb von ioBroker, aber auf derselben Hardware, betrieben und angebunden werden, zum Beispiel ein ZigBee Gateway: Conbee 2, eine InfluxDB und Grafana fĂŒr die Visualisierung. Als Alternative zu ioBroker, siehe auch: Home-Assistant.

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

DANKE fĂŒr deine Bewertung!

Aktualisiert: 21.08.2022 von Bernhard 🔔


Top-Artikel in diesem Bereich


Smart-Home-Plattform - Systeme: ioBroker vs. Home-Assistant
FĂŒr die Heim-Automatisierung gibt es neben zahlreichen verschiedenen Standards eine große Menge an verschiedenen Plattformen. Open Source Plattformen bieten dabei oft die Möglichkeit, verschiedene Automatisierungs-Standards miteinander zu verbinden. Als Beispiel könnte ein kleiner Mini-Computer, ein Raspberry Pi oder ein NAS, ausgestattet mit mehreren EmpfĂ€ngern, verschiedene Automatisierungs-Lösungen ĂŒber eine Plattform steuern.

Zigbee2MQTT vs deCONZ und Phoscon
Sowohl Phoscon als auch Zigbee2MQTT sind Programme fĂŒr das Steuern eines Zigbee-Gateways, wie den Conbee 2. Die primĂ€re Aufgabe eines Zigbee-Gateway ist das Verbinden und zentrale Steuern von Zigbee-Devices. Nach anfĂ€nglichen Schwierigkeiten mit der StabilitĂ€t, hat Phoscon bei mir zuletzt relativ gut funktioniert, dennoch bin ich nach ĂŒber einem Jahr deCONZ und Phoscon auf Zigbee2MQTT umgestiegen. Mit ein Grund fĂŒr den Umstieg war ein Dimmer-Switch, welche...

Home-Assistant Docker Conbee 2 und Zigbee2MQTT / deCONZ
Dank zahlreicher Integrationsmöglichkeiten ist Home-Assistant eine einfache Plattform fĂŒr das Steuern verschiedenster Smart-Home GerĂ€te. Im Vergleich zu ioBroker ist mir der Start mit Home Assistant wesentlich einfacher gefallen. WĂ€hrend ich fĂŒr ioBroker noch am Suchen war, welches Frontend ich fĂŒr meine Dashboards verwenden könnte, hatte ich mit Home-Assistant out of the box ein fertig eingerichtetes System. Die Lovelance Dashboards von Home Assistant können einfach in der GUI zusammengeklickt...

Fragen / Kommentare


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

✍anonym
20.08.2022 18:43
Du hast ein eigenes Netzwerk eingerichtet.
Ich habe im Internet nur Anleitungen mit dem Bridge Modus gefunden. Aber dann kann ich nicht auf den Deconz Docker zugfreien. (Kann das sein?)

Wie lautet der Befehl, dass ioBroker im Haste Modus lÀuft?
↳
✍Bernhard
gepostet am 21.08.2022 10:37, geÀndert: 21.08.2022 14:08
Damit ioBroker auf DeConz  zugreifen kann, muss auch DeConz das selbe Netzwerk verwenden. 
Alternativ, kann der Host-Modus mit --net=host verwendet werden. Da ioBroker fĂŒr dessen Instanzen eigene Ports verwendet, ist --net=host einfacher, daher habe ich den Artikel angepasst. Wichtig ist dabei nur, dass keine anderen Services einen von ioBroker verwendeten Port belegen.

Beitrag erstellt von Bernhard

✍anonym
08.06.2022 23:18
Hurra, endlich eine Anleitung die funktioniert :-)
Jetzt habe ich nur noch eine Frage, wie kann ich den kompletten Container sichern? Also nicht nur den IObroker darin?
Das Teil lÀuft auf PI4 mit Raspbian. 

MFG

Frank. I

✍anonym
21.03.2022 09:07
Hallo,
ich habe den IObroker in Docker (wie angegeben) auf einem Raspi 4 installiert.
Der IObroker lÀuft auch...
ABER
Meine Raspimatic lÀuft auf einem anderen Raspberry pi im lokalen Netz
192.168.100.???

Ich kenne im Linux nicht wirklich gut aus, 
wie komme ich vom Netzwerk im Container in mein lokales Netz?
..denn ohne die Homematic zu erreichen, nutzt mir der IObroker nix :(
Danke fĂŒr eine Antwort

✍anonym
04.02.2022 17:51
Hallo, 
ich habe die Befehle 1:1 verwendet und der Container wurde auch erstellt, aber leider startet dieser nicht. Ich bekomme auch kein RĂŒckmeldung. Ich habe das Ganze auch schon mit Portainer versucht. Nun wurde dieser dort zwar gestartet, aber dann hatte ich das Problem, dass kein Netzwerk verfĂŒgbar war. Kannst du mir hier eventuell weiter helfen?

Gruß Mario

✍anonym
30.06.2021 20:07
Moin,

kannst du mir Verraten wie ich den Docker updaten kann und wofĂŒr die ganzen Ports gut sind?

✍anonym
07.03.2021 15:51
Hallo,
Du erwĂ€hnst in dem Befehl viele Ports. WofĂŒr sind sie bzw. welche sind denn tatsĂ€chlich nötig ?

GrĂŒĂŸe
Martin

✍Tobias
21.01.2021 09:38
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
gepostet am 21.01.2021 12:27
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

Beitrag erstellt von Bernhard
↳
✍Tobias
gepostet am 22.01.2021 09:14
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

Beitrag erstellt von Tobias
↳
✍Bernhard
gepostet am 22.01.2021 09:16
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 ...

Beitrag erstellt von Bernhard

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details