Iobroker

Architektur

 

 
ioBroker-Architektur

 

 
Multihost-Funktionalität

ioBroker ist modular aufgebaut.[5] Jede Instanz eines Adapters läuft in einem eigenen Prozess, welcher mit dem ioBroker-Controller kommuniziert. Darüber werden unter anderem Variablen über sogenannte Datenpunkte ausgetauscht. Die Instanzen verwalten die Verbindungen zu den jeweiligen Geräten und führen die entsprechenden Befehle zur Steuerung aus[6].

Diese Modularität erlaubt es, ioBroker auch auf mehreren Hosts auszuführen, um etwa die Last aufzuteilen oder einen Host vor Ort direkt an Hardware anzubinden (z. B. durch GPIO).[7]

Installierbar ist es unter anderem auf regulären Computern, Embedded Systems (z. B. Raspberry Pi) und in Docker-Containern beispielsweise auf NAS-Servern.[8]

Scripte

 
Blockly-Beispiel für ein über einen Bewegungsmelder gesteuertes Licht

Mithilfe von Skripten können Datenpunkte ereignisgesteuert geändert werden. Beispielsweise kann zu einer bestimmten Uhrzeit der Datenpunkt für eine bestimmte Lampe eingeschaltet werden. Eine Besonderheit von ioBroker ist, dass Scripte sowohl grafisch (über Blockly), als auch textuell über JavaScript erstellt werden können. Es können auch fremde Node.js-Module integriert werden. Somit ist es beispielsweise auch möglich, Sensoren zu integrieren, für die es keinen Adapter gibt.

Des Weiteren kann Node-RED eingebunden werden.

Visualisierung

 
Beispiel-Visualisierung über den Visualisation-Adapter

Die Visualisierung wird über Adapter bereitgestellt. Mit Hilfe des Visualisation-Adapters ist es möglich sich eine Visualisierung über eine grafische Oberfläche per Drag and Drop im Browser zusammenzubauen. Es kann aber auch ergänzend HTML, CSS und JavaScript verwendet werden.

Alternativ existieren auch Adapter, welche direkt auf die Objekte zugreifen können (z. B. über eine App oder den mobilen Browser). Beispielsweise eine Portierung von der Lovelace UI aus dem Home-Assistant-Projekt.[9]

Adapter

Für ioBroker gibt es mittlerweile über 400 Adapter.[10] Mit einem Adapter können verschiedene Hardware- und Softwarekomponenten an den Controller angedockt werden. Adapter werden aufgrund der modularen Architektur unabhängig vom Kern entwickelt.

Diese können über eine integrierte Adapterverwaltung direkt installiert und aktualisiert werden.

Folgende Adapter stehen zur Verfügung:

Admin

Der Admin-Adapter ist bereits vorinstalliert. Er dient zur Konfiguration des ioBrokers. Nach der Installation werden hier sämtliche Einstellungen vorgenommen. Das manuelle Bearbeiten von Konfigurationsdateien ist bei ioBroker, im Gegensatz zu anderen Lösungen nicht vorgesehen.

Cloud

Mit dem Cloud-Adapter kann über das Internet, mithilfe eines Internet-Dienstes auf die lokale Visualisierung zugegriffen werden, ohne die eigene Firewall zu konfigurieren.

Des Weiteren können Datenpunkte über Amazon Echo gesteuert werden. Außerdem können die Datenpunkte auch in IFTTT genutzt werden.

MQTT

Mittels MQTT-Adapter können Datenpunkte zwischen MQTT-Brokern und ioBroker ausgetauscht werden.

Alexa

Mit dem Alexa-Adapter kann der Amazon Echo geschriebenen Text ausgeben (TTS), um so beispielsweise Statusmeldungen als Sprache auszugeben. Außerdem können auch Smarthome-Geräte integriert werden, welche nur eine Amazon Echo-Anbindung haben, aber keinen Adapter für ioBroker. Des Weiteren kann von Alexa erfasster Text weiterverarbeitet werden.

SQL History

Der SQL History-Adapter dient dazu Datenpunkte in einer Datenbank, wie MySQL, PostgreSQL, SQLite oder Microsoft SQL abzulegen. Diese können dann über die Visualisierung als Diagramm angezeigt werden.

Weitere

Es gibt unter anderem noch Adapter für 1-Wire, Amazon Dash, Backups, Beckhoff TwinCat ADS, Bluetooth, Broadlink, den deutschen Wetterdienst, eBus, E-Mail, Fritz!Box, Geofencing, Google Home, Homematic, Innogy Smarthome, KNX, Miele, Modbus, MySensors, OSRAM Lightify, Webseiten-Parser, Philips Hue, Pushbullet, Ping, Pushover, RFLink, Siemens Simatic S7, Sonoff, Sonos, Spotify, Telegram, IKEA Trådfri, UniFi, UPnP, viessmann und Weatherunderground.

Des Weiteren gibt es Adapter, um andere Zentralen anzubinden, beispielsweise FHEM, openHAB und pimatic.