Bastelecke > Smarthome > ioBroker vs. Home Assistant
Wer damit beginnt sein Zuhause "smart" zu machen, wird meist erstmal mit dem System eines bestimmten Herstellers anfangen. Bei mir waren es zum Beispiel die Heizungsthermostate von eQ3. Jemand anders würde sich vielleicht DECT-Thermostate von AVM kaufen. Irgendwann kamen dann paar Lichtschalter, ebenfalls von eQ3 hinzu. So lange man auf nur einen Hersteller setzt, funktionieren die Systeme auch einwandfrei. Sie sind jedoch nicht kompatibel zu Systemen anderer Hersteller. Und so stößt man schnell an die Grenzen der einzelnen Systeme, wenn man beispielsweise einen Homematic Präsenzmelder von eQ3 verwenden möchte um einen Shelly Schalter zu steuern Schlicht und einfach: Es geht nicht. Die Systeme sind nicht kompatibel miteinander.
ioBroker, sowie auch Home Assistant (ich werde es der Einfachheit halber in weiteren Artikel mit HA abkürzen) sind Systeme zum Aufbau eine Smarthome Zentrale. Also ein zentrales Bindeglied um Systeme und Geräte verschiedenster Hersteller miteinander zu kombinieren. Nur so lassen sich komplexe Szenerien erstellen, wie zum Beispiel: "Wenn die Photovoltaikanlage genug Strom liefert und der Hausakku einen gewissen Ladestand erreicht hat, schalte die Wallbox frei um das E-Auto zu laden." Oder: "Hausakku voll und PV-Überschuss (Victron), Außentemperatur über 25 Grad (ESP-Home DIY Sensor), Wohnzimmer 28 Grad (Homematic Wandthermostat), dann Klimaanlage einschalten (IR-Einschaltcode über Broadlink IR Transciever)."
ioBroker, sowie auch HA sind zwei sehr verbreitete Systeme, welche von großen Entwicklerteams stetig weiter entwickelt werden. Sie sind beide sehr weit verbreitet und für beide Systeme gibt es hunderte Adapter mit welchen sich Geräte verschiedenster Hersteller integrieren lassen. Dennoch stellt sich einen zu Beginn die Frage auf welches Pferd man setzt. Denn ein Umzug von einen zum anderen System ist im Nachhinein oft nicht mehr so einfach möglich, da sie doch auf ein zu unterschiedliches Bedienkonzept setzen. So lassen sich Scripts, welche im ioBroker geschrieben wurden, nicht im HA verwenden. Anders herum sind Szenen vom HA nicht 1 zu 1 in den ioBroker zu übertragen. Daher möchte ich im Folgenden die Eigenarten beider Systeme etwas genauer beleuchten.
Bedienbarkeit und Kompatibilität
Beide Systeme sind zu einer Vielzahl von Geräten kompatibel. Ich setze den ioBroker nun seit vielen Jahren ein und mir ist es noch nicht passiert das ich ein Gerät nicht damit koppeln konnte. Meist war es einfach, manchmal erforderte es ein wenig "try and error", aber immer hat es irgendwie funktioniert. Und beim HA verhält es sich eben so. Beide Systeme werden von einer Vielzahl von Entwicklern, sowie einer riesigen Open Source Gemeinschaft weiter entwickelt. Und kaum wirft jemand ein neues Gerät auf den Markt, liefert auch irgendein Entwickler den passenden Adapter nach. In so fern steht keines der beiden Systeme dem Anderen da in irgendeiner Weise nach.
Anders sieht es schon beim Bedienkonzept aus. HA macht einen sehr aufgeräumten Eindruck. Es ist sehr klar strukturiert und hat eine gut bedienbare Oberfläche, wo auch Neueinsteiger schnell mit klar kommen. Auch lässt sich so gut wie alles im HA von jeden Endgerät aus komplett bedienen und administrieren. Wenn man möchte, benötigt man nichtmal einen PC. Man kann alles genauso gut vom Tablet oder Smartphone aus konfigurieren, während man auf seinem Sofa liegt. Das ist ein gewältiger Pluspunkt für den HA.
ioBroker wiederum wirkt da eher zusammen gewürfelt. Schon bei der Administration feht eine klare Linie. Während man sich zwar von mobilen Endgeräten aus auf der Admin-Oberfläche anmelden kann, hört die Bedienbarkeit spätenstens im Objektstamm, also der zentralen Datenbank der Schaltzustände verschiedener Geräte, endgültig auf. Automatisierungen oder Scripte auf dem Smartphone erstellen, unvorstellbar. Hier hat der HA ganz klar die Nase vorn. Wer möglichst einfach einsteigen und schnell zum Ergebnis kommen möchte, ist mit HA warscheinlich besser beraten.
Technik und Performance
HA ist komplett in Python geschrieben und als OpenSource verfügbar. Dem Umstand das HA als fertig kompiliertes Programm vorliegt verdankt es seine gute Performance. HA ist wenig Speicherhungrig und reagiert sehr schnell.
ioBroker wiederum ist in JavaScript geschrieben und benötigt während er Laufzeit einen Java-Interpreter. Heißt also, der Sourcecode wird durch den Interpreter in Maschinencode übersetzt, so wie er zur Ausführung benötigt wird. Und eben das ist der Flaschenhals bei JavaScript. Dadurch ist der ioBroker langsamer und benötigt auch gleichzeitig mehr Rechenpower. Bei kleinen Installationen fällt das noch wenig ins Gewicht, wird die Installation jedoch größer, hat mehr Adapter, oder es laufen noch Scripts zur Automatisierung im Hintergrund mit dann merkt man schnell wie die CPU-Last hoch geht und der ioBroker auch sehr lange zum Starten benötigt.
Also auch in diesem Punkt hat der HA ganz klar die Nase vorn.
Automatisierungen
Im HA sieht ein Script so aus, dass man eine einfache Wenn-Dann-Abfrage definiert. Damit lassen sich so ziemlich alle Schaltzustände miteinander kombinieren und alles automatisch steuern. Es bedarf keiner Programmierkenntnisse um Scripte zu erstellen und man muss dazu auch an keinem PC sitzen. Das Smartphone reicht dazu absolut aus. Jeodch stößt man mit der Arbeitsweise auch schnell an die Grenzen des Systems oder es wird schnell unübersichtlich.
ioBroker arbeitet hier ebenfalls mit JavaScript. Darin lassen sich komplexe Scripts erstellen, welche Schaltzustände auswerten, Statistiken erstellen, Prognosen berechnen, uvm.. Man hat über die Script-Engine quasi Komplettzugriff aufs gesamte System, kann alles verwenden und und fast alles machen. Und wer des JavaScripts nicht mächtig ist, für den steht an dieser Stelle Blockly zur Verfügung. Blockly ist eine von Google entwickelte Programmierumgebung für JavaScript, welche komplett ohne geschriebenen Code auskommt. Die Programme werden im Baukasten-Prinzip mit Logik-Bausteinen per Drag-and-Drop zusammen geklickt.
In diesem Punkt lässt sich keiin klarer Sieger finden. HA ist ein wenig einfacher, dafür bietet ioBroker hier bessere Möglichkeiten.
Schaltzustände und Werte
HA arbeitet mit so genannten Entitäten. Sämtliche Schaltzustände und Werte, welche Geräte liefern, werden als Entität hinterlegt und können darüber abgerufen und geändert werden. Das funktioniert bei kleinen Installationen noch recht gut, kann bei wachsender Größe jedoch schnell unübersichtlich werden. So liefert mein Victron-ESS beispielsweise über Modbus eine ganze Reihe von Werten, die größtenteils dedoch alle leer sind. Auch diese Werte werden alle als Entität angelegt und dann die Richtigen auszuwählen kann unter Umständen recht nervtötend sein, zumal einem nur ein Textfeld zur Verfügung steht, wo man einen Suchbegriff eingibt und einem Entitäten vorgeschlagen werden, auf welche der Suchbegriff passen könnte. Man sieht hierbei weder die Werte der Entität, noch kann man diese ordnen oder Favoriten erstellen.
ioBroker hingegen arbeitet mit einem Objektbaum, welcher auch komplett im Objektbrowser eingesehen werden kann. Dieser ist eher wie eine Ordnerstruktur auf der Festplatte. Man hat je einen Hauptordner für jeden installierten Adapter. Darunter finden sich Unterordner für die einzelnen Geräte des Adapters, darunter Unterordner für die Schaltzustände, usw.. Außerdem gibt es einen Ordner "Userdata", worin man selbst Variablen speichern kann. Hat man beispielsweise mehrere PV-Anlagen und möchte den Gesamtertrag wissen, dann addiert man die Einzelerträge in einem Script und speichert das Ergebnis in einem eigenen Datenpunkt im Ordner Userdata. Dann steht auch der Gesamtertrag, ebenso wie die Einzelerträge, jederzeit abrufbar zur Verfügung.
Zwar bietet auch HA die Möglichkeit eigene Entitäten zu erstellen, doch verlassen wir hierbei den sicheren Hafen der einfachen Bedienbarkeit und begeben uns in die Welt der Konfiguration des HA mittels YAML-Dateien. Daher würde ich sagen, in diesem Punkt hat dann wohl der ioBroker die Nase vorn.
Visualisierung
Zu guter Letzt möchten wir unsere Schaltzustände sichtbar machen und eine möglichst übersichtliche Bedienoberfläche bauen.
HA hat hier Lovelace als Nutzerinterface fest integriert. Lovelace zeichnet sich durch eine gute Übersichtlichkeit und einfach Konfigurierbarkeit aus. Auch kann die Oberfläche, wie alles im HA, auch von mobilen Endgeräten aus bearbeitet werden. Jeodch sind Lovelace Grenzen beim Design gesetzt. Es werden Kacheln erstellt, welche Schaltzustände und Werte verschiedener Entitäten enthalten. Diese ordnen sich dann dynamisch, je nach Bildschirmauflösung an. Eine pixelgenaue Anordnung der Elemente ist hier nicht möglich, ebenso wie Schriftgrößen, Farben und Form der Elemente fest vorgegeben sind.
ioBroker bietet hier eine ganze Reihe von Möglichkeiten. Von haus aus ist keine Visualisierung installiert. Diese muss, je nachdem was man möchte, erst als Adapter aus einer internen Datenbank nachinstalliert werden. Auf die Vor- und Nachteile der einzelnen Visualisierungen einzugehen, würde hier den Rahmen sprengen. Vielleicht liefer ich zu späterem Zeitpunkt einen entsprechenden Artikel hinterher. Verkürzt lässt sich jedenfalls sagen, das beim ioBroker nahezu keine Grenzen gesetzt sind. mit Vis lassen sich Darstellungen pixelgenau erstellen und nahezu jedes erdenkliche Design ist möglich. Aber auch Lovelace vom HA steht mitlerweile zur Verfügung. Und alles lässt sich parallel einsetzen. So nutze ich beispielsweise Lovelace für den schnellen Zugriff vom Smartphone aus. Auf dem Tablet an der Wand wird jedoch eine in Vis erstellte Ansicht gezeigt. Auch wird auf der Intranet-Seite des ioBrokers mit Bedienelementen gearbeitet, welche ich zuvor in Vis erstellt habe.
In Sachen Visualisierung liegt somit ganz klar der ioBroker vorne.
Technische Details
Home Assistant | ioBroker | |
Programmiersprache | Python | JavaScript |
Betriebssystem | kommt als eigenes, vorkonfiguriertes Betriebssystem | installierbar auf beliebigem Linux, z.B. Debian, Ubuntu, Raspbian, etc... |
Virtualisierung möglich | ja | ja |
Visualisierung | - Lovelace |
- Vis |
individuelle Interfaces | nein | ja |
Scripting | - einfache Wenn-Dann-Abfragen - Szenen für Beleuchtung, etc. |
- einfache Wenn-Dann-Abfragen - JavaScript - Blockly - TypeScript |
Schaltzustände | Entitäten in einer durchsuchbaren Datenbank | Variablen in einem Objekt-Datenbaum mit Ordnerstruktur |
Perforfmance | sehr performant, da aufeinander abgestimmt und fertig kompiliert | Ressourcenhungrig und langsamer, da in JavaScript geschrieben |
Grafana | ja | ja |
Influx-DB | ja | ja |
mobile Endgeräte (volle Unterstützung) |
ja | nein |
Erweiterbarkeit | - eigene Adapter-Datenbank - User-Appstore - externe Repos über Github |
- eigene Adapter-Datenbank - externe Repos über Github |
Sprache (Community) | vorwiegend englisch | vorwiegend deutsch |
Fazit:
Abschließend lässt sich kaum eine eindeutige Empfehlung geben welches System besser ist. Beide haben ihre Vorzüge, aber auch ihre Nachteile. Wer Wert auf eine gute Skalierbarkeit legt und eine maximale Anpassungsfähigkeit möchte, wird sicher mit dem ioBroker eine gute Wahl treffen. In Sachen Einfachheit und Bedienkomfort liegt der Home Assistant klar vorne. Home Assistant hat die größere Community und wird von zahlreichen Entwicklern sogar hauptberuflich weiter entwickelt. ioBroker ist hingegen mehr im deutschsprachigen Raum vertreten, wird aber auch von einer großen Entwicklergemeinschaft weiter gepflegt und es kommen regelmäßig neue Versionen raus.
Wer unschlüssig ist, kann auch beide Systeme parallel zueinander einsetzen und ausprobieren welches eher zusagt. Über einen MQTT-Adapter lassen sich beide auch miteinander koppeln.