Achtung: Diese Anleitung ist veraltet. Das geht mittlerweile sehr viel einfacher mit dem iot-Adapter vom ioBroker.
Wenn man selber die Kontrolle über sein Smarthome bekommen möchte, dann kommt man an den offenen Tools wie home assistant, openHab oder ioBroker nicht vorbei. Mit ioBroker habe ich nach 10 Minuten, die erste Philips Hue-Lampe über Alexa steuern können. Dazu habe ich Docker und Node-RED verwendet. Außerdem habe ich auf zusätzliche Tools wie Portainer und macvlan verzichtet. Wie das geht, erkläre ich in diesem Tutorial.
Geht das auch mit einem DS216j oder Pi Zero?
Nur Synology NAS mit einem „+“ am Ende unterstützen das Docker Paket. Dazu gehören im Einsteigerbereich das DS218+ (kaufen) für wenig Geld. Der Pi Zero hat leider mit 512 MB RAM zu wenig Arbeitsspeicher für den ioBroker. Außerdem ist die Installation nicht trivial, weil man Node.js manuell installieren muss. Beim Versuch erscheint dann folgende Meldung:
You appear to be running on ARMv6 hardware. Unfortunately this is not currently supported by the NodeSource Linux distributions.
Wieso kein Raspberry Pi 4?
Tatsächlich hatte den ioBroker zuerst auf einem Raspberry Pi 4 installiert. Das lief auch sehr gut. Allerdings hatte das auch einige Nachteile:
- Ein Raspberry Pi 4 ist recht teuer (kaufen).
- Automatische Neustarts bei Fehlern sind schwer zu realisieren.
- Der ioBroker Docker Container verbraucht mit 1 % CPU auf einem DS1019 (kaufen) nur wenig Ressourcen.
- Backup, Aktualisierungen und Konfiguration sind unsicher und aufwendig.
Aus diesem Grund ziehe ich Docker jeder Installation auf eigenständiger Hardware vor.
Kurze Einführung in ioBroker für Neulinge
Die altbackene Oberfläche der Open Source Lösung ioBroker schreckt sofort ab. Dabei ist das Prinzip ganz einfach: Es gibt Adapter, Instanzen und Objekte. Adapter installiert man für bestimmte Systeme wie Philips Hue oder Meross. Als Instanz bezeichnet man einen installierte und konfigurierten Adapter. Dieser Adapter erzeugt dann Objekte wie „Hue Licht Tisch vorne“. Diese Objekte haben dann schreibbare Attribute wie „on“ welches den Zustand „true“ oder „false“ annehmen kann. Die Attribute werden über Pfade angesprochen wie z.B. hue.0.Tisch_vorne.on. Die Poollampe am Gästehaus mit einer zweiten Hue-Bridge würde man so steuern: hue.1.pool_fluter.on.
Schritte zur Umsetzung
Schritt 1: Erstellen eines Shared Folders
Der Server braucht einen Speicherort auf der DiskStation, in dem die Konfigurationsdateien vom ioBroker liegen. Deswegen ist dieser Schritt wichtig, weil sonst Aktualisierungen des Containers zum Verlust der gesamten Konfiguration führen. Damit dies nicht passiert, legt man im Control Panel ein dediziertes Shared Folder namens „ioBroker“ an. Weiter geht es mit der Installation des Docker Applikation.
Schritt 2: Installation des Docker Containers auf Synology NAS
- Zuerst installieren wir im Paketmanager das Docker Paket. Wenn das nicht möglich ist, fehlt dir ein Synology NAS der „Plus“-Reihe wie das DS218+ (kaufen)
- Nun suchen wir unter der „Registry“ nach „ioBroker“ und entscheiden uns für buanet/iobroker.
- Ein Doppelklick darauf stellt uns die Frage nach dem „tag“ des Images. Es ergibt keinen Sinn „latest“ zu nehmen und den Container später mit Watchtower aktuell zu halten. Stattdessen nehmen wir die höchste verfügbare Versionsnummer. Für diese Anleitung war das 5.0.0
Schritt 3: Konfiguration des Volumes
Nun müssen wir den in Schritt 1 angelegten Order (bei mir in SSD/iobroker) als Volume noch auf das interne Folder des Containers /opt/iobroker mounten.
Schritt 4: Konfiguration der Ports und Network
Damit der Docker Container nachher Daten senden und empfangen kann, müssen wir ihm unter „Ports“ folgende freigeben:
Port Lokal | Port Container | Wofür? |
---|---|---|
1880 | 1880 | Node-RED Oberfläche |
8081 | 8081 | Oberfläche ioBroker |
8082 | 8082 | Webserver ioBroker für VIS |
Alternativ kann man auch beim Anlegen des Containers unter „Network“ den Haken bei „Use the same Network as Docker Host“. Dann spart man sich die Portfreigaben. Die Implikationen habe ich allerdings noch nicht ganz verstanden.
Nun kann man den Docker-Container auch schon Starten.
Schritt 5: Starten des Docker Containers
Nun drücken wir auf „Start“ um den Container zu starten. Man kann auch den Haken bei der Konfiguration setzen, dass der Container direkt gestartet wird. Unter „log“ sieht man, was beim Hochfahren alles passiert ist. Nun gibt man die IP seines NAS im lokalen Netzwerk oben in die Browserzeile ein und hängt den Port dahinter. Bei mir ist das 192.168.178.100:8081. Ihr solltet euch auf der ioBroker Oberfläche befinden. Wenn nicht, schau im Log des Containers nach eventuellen Fehlern.
Schritt 6: Installation des Hue Adapters
Links im Menü wählt man „Adapter“ aus und sucht oben nach „Hue“. Nun werden mehrere Hue-Adapter gelistet. Ich habe mich für den Adapter „Philips Hue Bridge“ entschieden. Nach einem Klick auf das „+“ rechts daneben wird der Adapter installiert.
Nun koppeln wir die Hue Bridge im lokalen Netzwerk mit dem ioBroker. Dazu geben wir die IP-Adresse ein. Nun drücken wir den physikalischen Knopf an der Hue-Bridge kurz aber kräftig, um einen Benutzer zu erzeugen.
Sobald man „Sichern und schließen“ auswählt, werden die Zigbee-Lampen und Steckdosen aus dem Hue-System ausgelesen und als Objekte zur Verfügung gestellt. Man kann nun testweise im Menü unter „Objekte“ eine Lampe unter hue.0 auswählen und dort das Attribut „on“ verändern. Die Lampe wird nun an- oder angeschaltet. Wenn nicht, dann schaut man im „Log“ nach was schiefgelaufen ist.
Schritt 7: Node-RED mit dem ioBroker nutzen
Node-RED ist eigentlich selber ein System wie ioBroker. Leider ist dies nach meiner Recherche die einfachste Art und Weise aktuell Alexa an den ioBroker anzubinden. Man könnte sogar nur Node-RED nutzen. Allerdings hat der ioBroker eine große Unterstützung und community für „deutsche“ Systeme wie eNet von Gira oder Jung. Das bietet Node-RED nicht.
Node-RED wird einfach als weiterer Adapter installiert und steht dann links im Menü bereit. In Node-RED stehen „Flows“ im Vordergrund. Das sind Flussdiagramme welche den jeweiligen Status an „Nodes“. Node-RED verfügt über ioBroker Nodes, bei denen man die Pfade der Objekte angeben kann. Nun fehlt aber noch Alexa.
Schritt 8: Alexa-Home Palette in Node-RED installieren
In Node-RED kann man oben rechts über das „Hamburger-Menü“ den Punkt „Palette verwalten“ auswählen. Hier kann man die „Paletten“, also die „Adapter“ für Node-RED, installieren. Nun installieren wir die Palette „node-red-contrib-alexa-home-skill“. Diese Palette stellt zwei „Nodes“ bereit: Alexa Home und Alexa Home Response. Wir brauchen nur den ersten Node.
Schritt 9: Registrierung des Cloud Accounts mit Alexa Geräten
Ich habe mich gegen eine lokale Lösung bei der Kommunikation mit Alexa und für die Cloud-Variante entscheiden. Dafür muss ein Account bei hardill.me.uk registriert und dort Geräte angelegt werden. Dort legt man sich unter „Device“ ein Testgerät an. Mein Gerät heißt „Fuchs“ und kann nur Ein und Aus weitergeben.
Schritt 10: Installation des Alexa Skills Node-RED
Die Überschrift sagt alles: In der Alexa-App wird der Skill „Node-RED“ (aufrufen) gesucht und installiert. Dort authentifiziert man sich mit dem oben in Schritt 9 registrierten Account und aktiviert den Skill. Nun sucht man nach neuen Smarthome-Geräten über die Gerätesuche und findet hoffentlich den Fuchs.
Schritt 11: Konfiguration des Flows in Node-RED
Wir ziehen nun aus der Sidebar links den Node „Alexa Home“ auf die Arbeitsfläche in Node-RED. Dann ziehen wir den Node „ioBroker out“ ebenfalls auf die Fläche. Nun verbinden wir beide Nodes so wie oben in der Abbildung „Zielbild“ über Schritt 7. Ich habe den Node „Debug“ benutzt um zu wissen, welcher Status nachher wirklich weitergegeben wird. Zu Guter Letzt werden die beiden Nodes konfiguriert.
Node: Alexa Home Node
- Account: Hier die Zugangsdaten von weiter oben aus Schritt 9.
- Device: Das Gerät, welches man in Schritt 9 im Account angelegt hat.
Node: ioBroker Out
- Topic: Der Pfad zu dem „on“-Attribut einer Hue-Lampe.
- Type: command
Oben rechts in der Ecke muss nun mit „deploy“ der Flow aktiviert werden. Nach ein paar Sekunden sollte an jedem Node „connected“ stehen. Wenn nicht, wie immer ins „Log“ schauen.
Schritt 12: Alexa, Fuchs einschalten
Nun kann man mit „Alexa, Fuchs einschalten.“ die Hue-Lampe ein- und ausschalten. Aber das ist natürlich erst der Anfang.
„Alexa, Lockdown einschalten!“
Das Beispiel mit einer Hue-Lampe soll den einfachsten Anwendungsfall erklären. Nun kann man jeden beliebigen Adapter des ioBrokers installieren und mit Node-RED kontrollieren. Auch ein Mix ist machbar. Meine Motivation war es die Jalousien der Anlage von GIRA über Alexa zu steuern. Diese alte Anlage hat leider keine Cloud-Anbindung. Mit dem ioBroker ist allerdings nun folgendes möglich:
Sobald der „Lockdown“ eingeschaltet wird, werden die Hue Color Lampen rot und die Rollläden fahren runter. Der Flow dafür ist etwas komplizierter. Die Verzögerung umgeht die Limitierung, dass nicht alle Rollos gleichzeitig gesenkt werden können. Die „F-Nodes“ sind Javascript-Funktionen.
Optional: Zugriff über das Handy per VIS
Die Sprachsteuerung über Alexa sollte meiner Ansicht nach für alles ausreichen. Ich finde diese Tablets an den Wohnzimmerwänden mancher Leute weder ästhetisch, noch ist es meiner Meinung nach sinnvoll. Die wenigen Fälle, wo man sein Zuhause nicht per Alexa, sondern per Tastendruck steuern will, reicht dann das Mobiltelefon. Dafür hat der ioBroker einen Adapter namens „Visualisation“ oder kurz „Vis“. Damit kann man dann eine Webseite auf seinem Handy im lokalen Netz zur Steuerung verwenden. Das klappt dann über den VPN der Fritz!Box auch bequem außerhalb des LAN.
Im 3. Schritt haben wir bereits die Ports für Vis freigegeben. Nachdem man den Adapter „Visualisation“ installiert hat, findet man in der Sidebar-Navigation ganz oben den Punkt „Overview“ und dort auch die Live-Ansicht und den Editor. Das hässliche Standard-Dashboard löscht man am besten sofort und fängt neu an.
In der Editoransicht zieht man die „Widgets“ von links auf das Dashboard. Nun gibt man unter Object ID den ioBroker Pfad an, den man schalten möchte. An bzw. Aus werden dann Bool-Schalter und Prozentangaben werden zu Slidern. Zu Guter Letzt habe ich mein Vis-Board auf Mobiltelefone optimiert. Das bedeutet alle Elemente sind untereinander angeordnet und passen so scrollbar auf das Handy.
Steuerung von eNet, Garagentoren und Plex
Durch diese Lösung kann nun das Garagentor ebenfalls per Stimme gesteuert werden. Oder das Heimkino durch den Plex-Adapter. Letzterer erlaubt das Einschalten der Lampen, wenn der Film gerade pausiert wird. Ebenso können nun auch Hersteller wie Gira, Jung, Loxone so wie alles, was auf KNX beruht gesteuert werden. Die Möglichkeiten sind nun grenzenlos. Viel Spaß damit.
Schreibe einen Kommentar