Zum Automatisieren der eigenen vier Wände bedarf es nicht zwingend kommerzieller Lösungen. Mit etwas Geschick entwickeln Sie dazu für wenig Geld eigene Projekte.
Am Beispiel der Z-Wave-Welt zeigte der Vorgängerartikel “Heimautomat” aus Ausgabe 06/2021 [1], wie Sie den RasPi für auf dem Markt verfügbare Komponenten zur Heimautomation fit machen. Damit wäre eigentlich das Ziel erreicht, den Automatisierungszauber im Haus in Eigenregie walten zu lassen. Komponenten gibt es genug, und diese lassen sich durch Home Assistant auch ohne Cloud ansprechen. Als einzige Grenzen hierbei erweisen sich der Geldbeutel und die Fantasie.
Die vorliegende Fortsetzung erklärt, wie Sie an beiden Schrauben drehen – am Preis und am Selbstbaufaktor der Komponenten. Wenn man berücksichtigt, dass der RasPi ab Modell 3 von Haus aus WLAN mitbringt, also eine Drahtlosschnittstelle, über die auch etliche Mikrocontroller-Module verfügen, müsste sich hier doch eine Tür auftun. Der Kitt, der das Ganze dann noch mit der eingeführten Home-Assistant-Umgebung verbindet, ist ein IP-fähiges Protokoll, das schon lange vor dem IoT-Hype das Licht der Welt erblickte: MQTT.
Das Protokoll Message Queuing Telemetry Transport wurde 1999 eingeführt und arbeitet textbasiert über TCP in jedem IP-Netz. Optional kommt zur Verschlüsselung TLS zum Einsatz. Die Sensoren und Aktoren kommunizieren als Clients mit dem sogenannten Broker, der als Drehscheibe der Kommunikation dient. Die Adressierung erfolgt über ein Topic. Sender nennen sich Publisher, Empfänger bezeichnet man als Subscriber.
MQTT-Tests
Um das Protokoll auf dem Raspberry zu implementieren, benötigen Sie das Paket mosquitto. Für die anschließenden kleinen Einführungstests brauchen Sie auch den zugehörigen Client. Beide Komponenten richten Sie mit den Kommandos aus Listing 1 auf dem Raspberry Pi ein.
Listing 1
Mosquitto
$ sudo apt-get install mosquitto $ apt-get mosquitto-clients
Läuft der Broker nach der Installation, melden Sie sich mit dem Client bei den einzelnen Topics an. Eine Liste der Topics erhalten Sie mit dem Kommandozeilenaufruf aus der ersten Zeile von Listing 2. Dabei geben Sie hinter -h den Host an, auf dem der Broker läuft – in unserem Fall localhost. Um zum Beispiel den Wert 10 an das Topic test/test1 zu senden und den Wert als Subscriber zu empfangen, verwenden Sie die Befehlsfolge aus der zweiten und dritten Zeile von Listing 2.
Listing 2
Topics ansteuern und Werte transferieren
$ mosquitto_sub -h localhost -t "#" $ mosquitto_pub -V mqttv311 -h 192.168.3.7 -t test/test1 -m 10 $ mosquitto_sub -h 192.168.3.7 -t test/test1 $ mosquitto_pub -h 192.168.3.7 -t wohn/temp/28-0417c1b1f7ff -m $wert $ mosquitto_sub -h localhost -t wohn/temp/28-0417c1b1f7ff
Ein etwas praxisorientierteres Beispiel soll die Messwerte eines an einem Raspberry Pi angeschlossenem One-Wire-Temperatursensors vom Typ DS18x20 über MQTT zum Broker übertragen, der auf einem anderen RasPi lauscht. Dazu müssen Sie vorab den One-Wire-Support mit dtoverlay=w1-gpio in der Datei /boot/config.txt aktivieren.
Nach dem Anschluss des Sensors auf dem Standard-One-Wire-GPIO-Anschluss lassen sich die Temperaturwerte unter /sys/bus/w1/devices/28-0417c1b1f7ff/w1_slave als vierstellige ganze Zahlen abfragen. Der Wert 28-0417c1b1f7ff stellt die eindeutige ID des Sensors auf dem Bus dar. Die komplette Befehlsfolge sehen Sie in den Zeilen 4 und 5 von Listing 2.
Um die Werte in die Home-Assistant-Umgebung zu bekommen, müssen Sie in der Datei configuration.yaml den verwendeten Broker eintragen, der in unserem Fall auf demselben Host läuft (Listing 3, erste zwei Zeilen). Um das Abonnieren des passenden Topics und den Empfang der Sensordaten in Home Assistant kümmern sich die Einträge aus den folgenden Zeilen, die auch die Einheit als Grad Celsius festlegen.
Listing 3
configuration.yaml
mqtt:
broker: localhost
sensor:
- platform: mqtt
name: temp1
state_topic: "wohn/temp/28-0417c1b1f7ff"
unit_of_measurement: '°C'
ESP8266-Controller
So weit die Theorie. Für jeden abgesetzten Aktor oder Sensor einen eigenen RasPi zu verwenden, erscheint in der Praxis aber eher unrealistisch. Für Abhilfe sorgt der Controller ESP8266. Zum einen gibt es sehr günstige und geeignete Entwickler-Boards auf seiner Basis. Zum anderen kommt der Chip in diversen fernöstlichen Produkten zum Einsatz, über die Sie durch einfaches Flashen mittels frei verfügbarer Firmware selbst die Kontrolle übernehmen.
Für unsere Tests kamen ein Wi-Fi-Smart-Switch des Typs Sonoff Basic der chinesischen Firma Sonoff.tech (Abbildung 1) zum Einsatz. Dabei handelt es sich um einen steuerbaren Relaisschalter mit Schraubanschluss für 220 Volt Netzversorgung mit schaltbarem Ausgang. Vorsicht: Bei unsachgemäßer Verwendung besteht Lebensgefahr. Deswegen beschränkt sich dieser Artikel auf die Versorgung des Moduls mit 3,3 Volt Spannung.






