Müssen Träume Schäume bleiben?

Ich hatte sicherlich viele Träume, aber oft sind es Träume geblieben. Sobald ich anfing, einen Traum zu verwirklichen, stieß ich unweigerlich auf jene Hürden in der Praxis, die meine Motivation anscheinend nicht überwinden konnte.

Der Bau eines drahtlosen, batteriebetriebenen Temperatursensors zur Messung der Temperatur im Wohnzimmer ist nicht sonderlich kompliziert, und auch das Hinzufügen eines ferngesteuerten Relais zum Ein- und Ausschalten einer Heizung ist machbar. Aber da fängt die Komplexität erst an. Es wird eine Art Regler benötigt, der die Erstellung von Grundregeln wie „An Wochentagen die Heizung morgens um 7 Uhr einschalten; am Wochenende erst um 9 Uhr“ ermöglicht. Und es muss eine Art manuelles Überschreiben möglich sein, so dass jeder berechtigte Hausbewohner die Temperatur einstellen kann, ohne vorher Python lernen zu müssen.

Bis zu diesem Punkt können wir noch nicht einmal von Hausautomation sprechen, da nur ein etwas ausgefallenerer, programmierbarer Thermostat beschrieben wurde. Es ist weit mehr nötig, um aus einer ferngesteuerten Lampe ein vollwertiges, erweiterbares Hausautomatisierungssystem zu machen. Aus diesem Grund bin ich nie über meine Träume hinausgekommen.

Espurna und ESPHome

Bis vor Kurzem! Ich stieß bei der Online-Suche nach dem Handbuch eines WLAN-gesteuerten Netzsteckers, den ich vor ein paar Jahren gekauft, aber nie benutzt habe, auf das Espurna-Projekt. Auch wenn ich es am Ende nicht genutzt habe, erwähne ich es hier, da es ein ausgezeichnetes Open-Source-Projekt ist, das es verdient, bekannter zu werden. Espurna ermöglicht die einfache Programmierung von WLAN-basierten Sensoren und Controllern (hauptsächlich ESP8266), die miteinander kommunizieren können. ESPHome (Bild 1) ist ein Projekt, das Espurna sehr ähnlich ist.

Bild 1. Die recht umfangreiche ESPHome-Homepage zeigt alle vorgefertigten Komponenten, die Teil eines ESPHome-Geräts sein können.

Und Sie dachten, nur Arduino sei einfach?

Espurna und ESPHome bieten beide einfache Möglichkeiten, ESP8266- und ESP32-Boards von Espressif zu programmieren. Tatsächlich ist dies so einfach, dass sie den Arduino wie Raketenwissenschaft aussehen lassen. Nach der Installation der Software schreiben Sie - kurz gesagt- eine einfache Textdatei, die angibt, welche Art von Sensor an welche(n) Pin(s) Ihres ESP-Moduls angeschlossen ist. Nach dem Kompilieren und Flashen der Firmware erhalten Sie ein intelligentes Gerät mit einer Webschnittstelle, Over-the-Air (OTA)-Programmierung, MQTT-Kommunikation und was nicht alles. Beeindruckend, nicht wahr? Ich denke schon, aber das ist noch nicht alles.

Übernehmen Sie die Kontrolle über Ihre WLAN-Smart-Stecker!

Das Internet quillt über von billigen intelligenten Steckern und Relaiskarten mit integriertem WLAN und anderen WLAN-verbundenen Geräten. Viele davon sind mit einem ESP8266 aufgebaut (Bild 2).

Bild 2. ESPHome läuft auf ESP8266-basierten Modulen wie NodeMCU, das weit verbreitet und kostengünstig ist. Es können auch ESP32-Module verwendet werden.

Gemeinsam ist ihnen aber auch, dass sie einen Zugang zu einem Cloud-Service irgendwo im Internet benötigen, der über (s)eine App auf Ihrem Smartphone gesteuert wird. Dies macht die Nutzung sehr umständlich, so dass diese Geräte oft in einer Schublade oder, noch schlimmer, im Elektroschrott landen.

Das muss nicht sein, denn Espurna und ESPHome erlauben es Ihnen, diese Dinger mit einer Firmware umzuprogrammieren, die Sie nach Belieben verändern können. Keine Internetverbindung mehr, Schluss mit miserablen englischsprachigen Apps und dubiosen Cloud-Diensten! Einfach das Gerät neu flashen und in ihm ein von you@home gesteuertes Heimautomatisierungssystem integrieren.

Von der Fernsteuerung zur Automatisierung

ESPHome und Espurna ermöglichen eine Automatisierung, die es den Benutzern ermöglicht, Regeln für das Ein- und Ausschalten von Geräten auf Grund von Ereignissen und/oder Sensordaten festzulegen. Damit kann man ein ziemlich ausgefallenes Heimautomatisierungssystem aus handelsüblicher, billiger WLAN-fähiger Hardware oder selbst gebauten Geräten erstellen.

Dieser Artikel würde hier enden, wenn ich den Einstieg in die Automatisierung mit Espurna und ESPHome nicht für zu kompliziert halten würde. Und der Mangel an guter Dokumentation für diese Projekte ist ebenfalls nicht hilfreich. Es scheint zwar ziemlich viel davon zu geben, aber ziemlich verstreut im Netz und dann auch noch wenig deutlich.

Hausassistent

Sowohl ESPHome als auch Espurna ermöglichen eine Integration von Home Assistant, einem so genannten Home Automation Hub oder Controller. Dabei handelt es sich um ein Mittel, mit dem der Benutzer Sensoren und Aktoren von verschiedenen Herstellern in einem einzigen System kombinieren kann. Dabei sind „Sensoren und Aktoren“ in einem recht weiten Sinne zu verstehen, denn sie umfassen auch Geräte wie Thermometer über GPS und Internetdienste bis hin zu Motorsteuerung und Textverarbeitung. Home Assistant (auch HA, Hass oder Hass.io genannt) ist kompatibel mit - um nur einige bekannte Namen zu nennen - Alexa und OK Google, Ikeas Trådfri, Philips' Hue, Z-Wave und Zigbee Home Automation sowie Sonoff von iTead. Als dieser Artikel entstand, listete HA 1574 Integrationen auf und geht weit über die Möglichkeiten von Espurna und ESPHome hinaus.

Mit HA können die Regeln für die Geräte in und um Ihr Haus herum definiert werden. „Wenn die Sonne in 20 Minuten untergeht und das Smartphone von Bewohner A im Haus ist und es seit drei Wochen nicht mehr geregnet hat, dann schalten Sie den dritten Rasensprenger von rechts ein“. Dies ist eine (unsinnige, aber auch) typische (und sogar grundlegende) HA-Automatisierung und funktioniert, wenn denn die betreffende Hardware installiert ist. HA bietet auch eine vollständig anpassbare grafische Benutzeroberfläche (GUI) oder ein Dashboard für das System (Bild 3).

Bild 3. Das Dashboard des Home Assistant ist vollständig anpassbar und kann so ausgefallen oder so spartanisch sein, wie Sie es möchten.

HA ist Open Source, in Python geschrieben und läuft auf einem Raspberry Pi. Es funktioniert auch auf anderen Betriebssystemen, ich habe es halt nur auf einem Raspberry Pi 3 installiert, weil das so einfach war. Sie haben es inzwischen gemerkt, ich liebe die Einfachheit.

Integration in den Home Assistant

Home Assistant war auch der Grund, warum ich bei ESPHome statt bei Espurna geblieben bin. ESPHome hat ein Plugin (Bild 4), mit dem es so in den Home Assistant integriert werden kann, dass ESPHome-basierte Geräte automatisch von HA erkannt werden.

Bild 4. So ist die Option Show in sidebar für das ESPHome-Add-on im Home Assistant aktiviert.

Flash’n’Play, was wollen Sie mehr? Die Integration ist so weit fortgeschritten, dass Sie nicht einmal mehr einen Entwicklungscomputer benötigen. Sensoren und Aktoren können von Ihrem Smartphone aus (neu) programmiert und (neu) konfiguriert werden, während Sie bequem in Ihrem Sessel sitzen.

IoT-Geräte mit geringem Stromverbrauch

WLAN ist großartig, um Geräte schnell an ein Netzwerk anzuschließen, aber es ist ein bisschen, nein, ziemlich stromhungrig. Daher ist es keine Lösung für Sensorknoten mit niedrigem Stromverbrauch, die viele Jahre lang mit einer einzigen Knopfzelle betrieben werden müssen oder vom Energy Harvesting leben. Solche Geräte verbringen die meiste Zeit im Schlaf, und wenn sie wieder aufwachen, spucken sie ihre Daten so schnell wie möglich aus, da sie nicht die Energie für lange Handshake-Protokolle haben.

Eine großartige Lösung für diese Art von Geräten ist MySensors [5], ein Open-Source-Heimautomations- und IoT-Projekt, das auf Funkgeräten für das ISM-Band basiert, insbesondere dem nRF24 von Nordic Semiconductor (Bild 5) und dem RFM69 von HopeRF. Die neuere nRF5-Plattform, wie sie auf dem BBC micro:bit zu finden ist, kann ebenfalls verwendet werden.

Bild 5. nRF24-Module gibt es in verschiedenen Formen. Der 8-polige Typ scheint der gebräuchlichste zu sein; 10-polige Typen sind bis auf die Pinbelegung identisch.

Die MySensors-Website ist ein wenig unordentlich, aber wenn Sie da erst einmal durchblicken, werden Sie feststellen, dass es ziemlich gutes Material gibt.

MySensors verwendet hauptsächlich (aber nicht nur) Arduino als Mikrocontroller-Plattform und erstellt und und unterhält ein Baum- (oder Stern-) Netzwerk ganz von selbst. Wie ESPHome integriert es sich nahtlos, aber nicht ganz so nahtlos wie ESPHome in den Home Assistant.

Das Projekt besteht aus einer Arduino-Bibliothek, die im Bibliotheksmanager der Arduino-IDE enthalten ist. Nachdem Sie sie installiert haben, können Sie Ihre Anwendung auf einem der Beispiele aufbauen. In vielen Fällen bedeutet dies nur die Änderung der Pin-Nummer(n) der angeschlossenen Peripheriegeräte.

Nun aber in die Hände gespuckt!

Nach dieser langen Einführung möchten Sie vielleicht etwas Praktisches tun, und dafür schlage ich als erstes die Einrichtung eines Home Assistant auf einem Raspberry Pi vor. Eine gute Schritt-für-Schritt-Anleitung finden Sie unter [3] unter dem Tab Getting Started. Dort wird ein Rpi 4 vorgeschlagen, aber bei mir läuft HA klaglos auf einem Rpi 3. Eine microSD-Karte mit 32 GB oder größer wird empfohlen. Beachten Sie bitte, dass der RPi nicht mit exFAT-formatierten SDXC-Karten (das heißt, SD-Karten größer als 32 GB) umgehen kann. Wenn Sie sich also für eine 64-GB-microSD-Karte (oder noch größer) entscheiden, stellen Sie sicher, dass diese als FAT32 (neu) formatiert ist. Damit das System robust ist, sollten Sie in Erwägung ziehen, statt der empfindlichen microSD-Karte eine SSD zu verwenden.

Multicast-DNS

Home Assistant verlässt sich auf das Multicast-DNS-Protokoll (mDNS), um Geräte zu finden und mit ihnen zu kommunizieren, aber dieses Protokoll wird von Android und Windows nicht besonders gut unterstützt (siehe Kasten). Apple-Geräte und Raspberry Pis funktionieren gut, und ich nehme an, dass Computer mit einem anderen Linux auch funktionieren. Aus diesem Grund sollten Sie vielleicht eine statische IP für HA wählen. Mein HA-System verwendet DHCP, und ich habe Verbindungsprobleme mit der HA-Anwendung für Android erlebt, als der HA-Computer vom DHCP-Server eine neue IP erhielt.

Beachten Sie, dass das HA-Installationsprogramm schnell einen Webserver startet, auf dem Sie den Installationsfortschritt überwachen können. Das Anschließen eines Displays an den Pi ist hier nicht sinnvoll, nur um die IP-Adresse dieses Servers herauszufinden. Schauen Sie stattdessen in der GUI des Routers Ihres Netzwerks nach.

Zugriff auf die Konfigurationsdatei

Der zweite Installationsschritt ist die Konfiguration des Home Assistant. Hierfür gibt es einen Assistenten, daher brauche ich hier nicht ins Detail gehen. Wichtiger ist die Installation einiger Add-ons nach der Konfiguration von HA. Dies geschieht über das Menü Supervisor auf der Registerkarte Add-on Store. Aus irgendeinem Grund erlaubt Ihnen die Standard-Konfiguration von HA nicht, die Hauptkonfigurationsdatei (configuration.yaml) zu bearbeiten, dennoch werden Sie dies regelmäßig tun müssen, besonders wenn Sie mit dem System experimentieren. Deshalb habe ich das Add-on File Editor (früher bekannt als Configurator) und auch Samba share installiert. Ersteres erlaubt es Ihnen, Low-Level-Dateien direkt in HA zu bearbeiten, das zweite stellt einige HA-Ordner im Netzwerk zur Verfügung, so dass Sie zum Beispiel Dateien mit Ihrem Lieblings-Texteditor bearbeiten können. Aus Sicherheitsgründen möchten Sie statt Samba share vielleicht das Add-on Terminal & SSH installieren.

Samba ermöglicht Ihnen auch die Verwendung von HA als Dateiserver, wenn Sie einen www-Ordner im config-Ordner erstellen.

Die Installation von Add-Ons ist einfach, klicken Sie einfach auf die Karte des Add-Ons, um es zu öffnen, und klicken Sie dann auf installieren. Eine geöffnete Karte enthält Anweisungen zur Konfiguration des Add-ons.

Installieren des ESPHome-Add-ons

Das bringt uns zur Installation des ESPHome-Add-ons. Dazu fügen Sie im Home Assistant zunächst die URL des Repositorys im Add-on-Store hinzu. Suchen Sie das Kästchen Add new repositiory by URL und fügen Sie die folgende URL dort ein:

https://github.com/esphome/hassio

Jetzt können Sie das ESPHome-Zusatzmodul installieren. Es gibt die drei Versionen Plain, Beta und Dev, von denen wir die Plain-Vanilla-Version verwenden. Die einzige Konfiguration, die ich für dieses Add-on vorgenommen habe, war die Aktivierung der Optionen Start on boot, Auto update und Show in sidebar. Letztere Option ist praktisch, da sie den Zugriff auf das Add-on viel einfacher macht.

Integration von MySensors

Als ich diesen Artikel verfasste, gab es noch kein Home-Assistant-Add-on für MySensors. Um die Integration in HA zu ermöglichen, mussten der Datei HA configuration.yaml einige Zeilen hinzugefügt werden (siehe auch Kasten):

mysensors:
  gateways:
  - device: '192.168.1.100'
    persistence_file: 'mysensors/wifi_gateway.json'
    tcp_port: 5003
    optimistic: false
    persistence: true
    retain: true
    version: '2.0'

 

Wie angegeben, müssen Sie eine statische IP für das MySensors-Gateway wählen, das Sie erstellen wollen (ja, das wollen Sie, siehe unten). Sie müssen auch einen Namen und einen Speicherort für die JSON-Datei wählen, in der HA die MySensors-Netzwerkinformationen speichern kann.

Wichtig: Jedes Mal, wenn die Datei HA configuration.yaml geändert wird, benötigt das System einen Neustart, damit die Änderungen wirksam werden. Dies kann über die Registerkarte System des Supervisors erfolgen.

Wenn Sie die Konfigurationsdatei bearbeiten, können Sie auch direkt Folgendes hinzufügen (Speichern bei Neustart):

binary_sensor:
  - platform: workday
    country: [country]

 

Diese Zeilen ermöglichen das Schreiben von Automatisierungsregeln, die nur an Werktagen oder an Wochenenden feuern. Ersetzen Sie [country] durch den Code des Landes, in dem das System arbeitet. Diesen Code (und andere nützliche Informationen) finden Sie auf der Hilfeseite des Workday Binary Sensor.

Mein erstes ESPHome-Gerät

Wenn Sie alles wie oben beschrieben eingerichtet haben, können Sie nun ESP8266- und ESP32-basierte Geräte programmieren. Da ein neues (jungfräuliches) Gerät noch nicht mit ESPHome kompatibel ist, muss es zunächst über die serielle Schnittstelle programmiert werden. Je nach Gerät ist möglicherweise zuvor die Installation einen USB-zu-seriell-Port-Treibers auf dem HA-Computer erforderlich. Die von mir verwendeten NodeMCU-Boards mit einem CP2102-USB-Chip von Silabs (Silicon Laboratories) funktionierten aber ohne weitere Maßnahmen.

Nachdem Sie das Gerät an den Computer angeschlossen haben, auf dem HA läuft, öffnen Sie das ESPHome-Dashboard entweder über die Sidebar (wenn Sie diese Option aktiviert haben) oder in der Supervisor-Dashboard-Ansicht durch einen Klick auf Open Web UI von der Add-on-Karte aus. Vergewissern Sie sich, dass die serielle Schnittstelle aus der Dropdown-Liste in der oberen rechten Ecke verfügbar ist, die standardmäßig auf OTA (Over-The-Air) eingestellt ist. Sollte dies nicht der Fall sein, starten Sie das ESPHome-Add-on neu, indem Sie zur ESPHome-Karte im Supervisor-Dashboard zurückgehen. Das sollte reichen.

Im nächsten Schritt wird die rosafarbene +-Schaltfläche auf dem ESPHome-Dashboard angeklickt und damit ein Assistent geöffnet, der Sie durch den ersten Teil führt. Ich habe an keiner Stelle irgendein Zugangspasswort für irgendein Gerät angegeben, aber vielleicht bin ich unverantwortlich leichtsinnig. Wählen Sie für den Upload den seriellen Port, an dem das Gerät angeschlossen ist.

Bearbeiten der YAML-Datei

Der Assistent ist nun fertig und eine Karte für Ihr Gerät erstellt worden. Zu diesem Zeitpunkt funktionierte (bei mir) ein Klick auf die Schaltfläche Edit erst nach dem Neuladen der Seite. Klicken Sie also auf Edit und überprüfen Sie die Anmeldedaten für Ihr WLAN-Netzwerk. Auch sollten die Zeilen api: und ota: vorhanden sein. Wenn Sie diese Konfiguration auf Ihr Gerät hochladen und es neu starten, wird sie vom Home Assistant erkannt. Es kann nun auch vom Computer getrennt werden, weil die Over-the-Air-Programmierung aktiviert wurde. Das Gerät wird jedoch nichts tun, weil Sie seine Peripherie nicht konfiguriert haben. Lesen Sie deshalb weiter, bevor Sie eine Konfiguration hochladen.

Wenn Sie ein NodeMCU-Modul verwenden, können Sie es in Betrieb nehmen, indem Sie vor dem Hochladen der Konfigurationsdatei die untenstehenden Zeilen am Ende der Konfigurationsdatei (der Übersichtlichkeit halber unterhalb von ota:, aber die Position in der Datei spielt eigentlich keine Rolle) anfügen. Dadurch erhält HA Zugriff auf die On-Board-LED und die Flash-Taste.

output:
  - platform: gpio
    id: "led"
    pin:
      number: GPIO16
      inverted: True
 
light:
  - platform: binary
    name: "LED"
    output: "led"
 
binary_sensor:
  - platform: gpio
    name: "Flash pushbutton"
    pin:
      number: GPIO0
      inverted: True

 

Beachten Sie, dass in diesem Programmschnipsel jede Einrückungsebene aus zwei Leerzeichen besteht, was bedeutet, dass die Zeilen number: GPIOx und inverted: True mit sechs Leerzeichen beginnen, also drei Ebenen eingerückt sind (siehe Kasten).

Diese Konfiguration sollte auch mit einem ESP-01-Modul funktionieren, wenn Sie GPIO16 in GPIO3 ändern und eine LED in Reihe mit einem 470-Ω-Widerstand zwischen GPIO3 (RXD) und Masse schalten. Schließen Sie einen Taster zwischen GPIO0 und GND und einen 10-kΩ-Pull-up-Widerstand zwischen GPIO0 und 3V3 an. Drücken Sie diesen Taster nicht beim Booten des Geräts.

Laden Sie diese Konfiguration auf das ESPHome-Gerät hoch und starten Sie es neu. Der Home Assistant sollte die Konfiguration erkennen - das ESPHome-Dashboard zeigt sie als Online an - und, wenn Sie es zulassen, erstellt er eine Steuerung für eine Lampe und eine Anzeige für den Drucktaster. Wenn Sie zuerst die leere Konfiguration hochgeladen haben, dann müssen Sie möglicherweise in das HA-Menü Configuration gehen, um sie in der Devices-Liste zu sehen.

Sie können nun Boards für die Steuerungen zur Overview in HA hinzufügen (klicken Sie auf die drei Punkte und dann auf Configure UI) und erstellen Sie im Konfigurationsmenü (Automations) automatische Vorgänge im Automation Editor. Ich überlasse es Ihnen, dies zu ergründen, da es ziemlich selbsterklärend und zudem ein guter Anlass ist, sich im Home Assistant umzuschauen. Außerdem wartet MySensors auf uns.

Ein MySensors-WLAN-Gateway

Ein Gateway ist sowohl erforderlich, um ein MySensors Netzwerk aufzubauen, als auch, um Verbindung zu anderen (WLAN-)Netzwerken aufzunehmen. Hierfür habe ich eine ESP8266-basierte NodeMCU verwendet, weil sie einen nutzbaren SPI-Port zur Verfügung stellt. Die Verwendung eines ESP32-Moduls ist ebenfalls eine Option.

Schließen Sie den SPI-Port an ein nRF24L01+-Modul an (Bild 6).

Bild 6. Mit einem NodeMCU-Modul kann ein MySensors-WLAN-Gateway aufgebaut werden.

Es wird empfohlen, auch einen Elektrolytkondensator (4,7...47 µF) zusammen mit einem Keramikkondensator (etwa 100 nF) zwischen den VCC- und GND-Pins des nRF24-Moduls zu schalten. Das ist alles, was Sie an „Elektronik“ benötigen.

Auf der Softwareseite ist ein Computer mit installierter Arduino-IDE erforderlich. Fügen Sie der IDE den ESP8266- (oder ESP32-)Kern für Arduino hinzu - alle Details finden Sie unter [6] - und binden Sie die MySensors-Bibliothek ein (Sketch Bibliothek einbinden Bibliotheken verwalten). Laden Sie das Beispiel GatewayESP8266 (Datei Beispiele MySensors) und geben Sie die korrekte SSID, das Passwort und die statische IP ein, die Sie zuvor in der HA-Datei configuration.yaml angegeben haben. Laden Sie den Sketch auf Ihr Gerät hoch und schon ist Ihr Gateway betriebsbereit.

Bitte denken Sie daran, dass ein Gateway (und auch Repeater-Knoten, die in diesem Artikel nicht behandelt werden) immer mit Strom versorgt werden muss und niemals schlafen dürfen. Sensorknoten dagegen können tun, was immer sie wollen.

Mein erster MySensors-Knoten

Das Erstellen eines MySensors-Knotens ist dem Aufbau eines Gateways nicht unähnlich, außer dass das ESP-Modul durch eine Arduino-kompatible Platine ersetzt wird, an der Sensoren und Aktoren angeschlossen werden. Schließen Sie ein nRF24L01+-Modul an den SPI-Port des Boards an und fügen Sie die oben erwähnten Kondensatoren hinzu (Bild 7).

Bild 7. Der Schaltplan eines MySensors-Knotens mit einem Taster für einen binären Sensor und einer LED für einen Aktor.

Laden Sie einen Beispielsketch aus der MySensors-Beispielbibliothek, vorzugsweise einen, der dem ähnelt, was Sie zu erreichen versuchen. Sollten Sie keinen finden: Es gibt weitere Beispiele auf der MySensors-Website. Im Sketch müssen die Pin-Nummer(n) an Ihre Peripheriegeräte angepasst werden, aber im Grunde ist das alles, was zu tun ist. Laden Sie den Sketch auf Ihr Gerät hoch. Wenn Sie es booten, tritt es automatisch dem MySensors-Netzwerk bei (wenn das Gateway eingeschaltet ist).

Vorsicht bei der Protokollversion!

An diesem Punkt stieß ich auf das Problem, dass mein Gerät, ein ferngesteuertes Relais, im Home Assistant nicht auftauchte. Schließlich entdeckte ich, dass dies etwas mit der verwendeten Version der MySensors-API zu tun hatte. Bei der Durchsicht der Persistenz-JSON-Datei (siehe Abschnitt „Integration von MySensors“) bemerkte ich, dass das Gateway als API- oder Protokollversion 2.3.2 aufgeführt war. Die Seite MySensors unter [7] enthält ein Beispiel, das für die Verwendung mit API-Versionen 2.x vorgesehen ist. Als ich das ausprobierte, erschien mein Knoten in der Liste Entities im HA-Menü Configuration und ich konnte dafür UI-Karten erstellen.

Gemäß [7] muss ein V2.x-basierter Knoten, damit er in HA funktioniert, einen Anfangswert von der Funktion loop() senden. Die Beispielsketches tun dies nicht. Bei näherer Betrachtung kam mir der Verdacht, dass ein Aktor-Knoten einen Initialwert aus HA anfordern (und vielleicht auch senden) muss, um erkannt zu werden. Ein Sensorknoten wird gemeldet, sobald er mit dem Senden von Daten beginnt. Die Anforderung muss nicht über loop() erfolgen, sondern einfach irgendwo während des Bootvorgangs.

Spezielle Funktionen before() und presentation()

Um V2.x-Sketches älteren Typs auszumachen, suchen Sie nach der Funktion presentation(). Wenn diese Funktion vorhanden ist, so handelt es sich um V2 oder höher. Umgekehrt trifft dies jedoch nicht unbedingt zu, da presentation() weggelassen werden kann. Die present-Anweisungen, die normalerweise in dieser Funktion zu finden sind, dürfen aber nicht ausgelassen werden und müssen in eine andere Funktion verschoben werden, zum Beispiel in setup().

MySensors-Sketches können auch eine Funktion before() enthalten. Sowohl before() als auch presentation() werden vor setup() aufgerufen, und zwar in der Reihenfolge before(), presentation(), setup() und schließlich loop().

Die Anpassung von vorhandenem Code an Ihre Hardware ist jetzt ganz einfach. Viele Beispiele für alle Arten von gängigen Sensoren sind entweder in der Arduino-Bibliothek oder online verfügbar, also schauen Sie sich um, bevor Sie (zu) tief in die Materie eintauchen.

Ich hoffe, Sie fanden es interessant...

Hier endet die kleine Lektion über einfache Heimautomatisierung (Bild 8).

Bild 8. Wenn Sie alle in diesem Artikel beschriebenen Elemente kombinieren, erhalten Sie am Ende ein Hausautomatisierungssystem wie dieses.

Sie ist sicher nicht vollständig und es gibt bestimmt noch bessere oder einfachere Möglichkeiten und auch viele gänzlich andere Heimautomatisierungsprojekte. Einige sind vielleicht besser, andere sehen vielleicht schöner aus, aber sie alle haben ihre Stärken und Schwächen.

Da es so viele gibt, ist es schwer, sich für eine Variante zu entscheiden. In diesem Artikel habe ich einige vorgestellt, die ich ausprobiert und beibehalten habe, um mein Hausautomationssystem darauf aufzubauen. Ich verwende sie immer noch, und ich bin immer noch erstaunt über die endlosen Möglichkeiten, die sie bieten. Bleiben Sie dran, denn ich habe nicht vor, hier aufzuhören.

Bei Elektor Labs finden Sie Beispielkonfigurationen für ESPHome und MySensors-Geräte und auch einige sehenswerte Videos.

 

(200019-03)

 

----------------------------------------------------------------------------------------------------------------------

Wollen Sie weitere Elektor-Artikel lesen? Jetzt Elektor-Mitglied werden und nichts verpassen!

----------------------------------------------------------------------------------------------------------------------