MQTT-Flow in Node-RED entwickeln: Vom lokalen Broker in die Cloud
Autor
Ueli Iff
Veröffentlicht
Lesezeit
2 Min.

In diesem Beitrag zeige ich, wie sich eine durchgaengige MQTT-Kommunikation aufbauen laesst: von der lokalen Sensorerfassung ueber die Datenaufbereitung in Node-RED bis zur Uebertragung an eine Cloud. Als Datenquelle dienen zwei Shelly-Geraete, die bei mir zu Hause verbaut sind und sich ueber MQTT auslesen lassen.
Konzept und Aufbau
Fuer den Testaufbau nutze ich zwei Shellys, die ihre Messwerte per MQTT bereitstellen. Damit ich lokal mit den Geraeten kommunizieren kann, betreibe ich einen MQTT-Broker direkt auf meiner Steuerung. Den Broker integriere ich dabei ueber Docker.
Sobald die lokale Kommunikation steht, leite ich die Daten ueber einen kostenfreien Test-Broker von Mosquitto an die Cloud weiter. Diesen Test-Broker empfehle ich ausschliesslich fuer Tests, da er keine Verschluesselung bietet.
Der oeffentliche Mosquitto-Test-Broker ist unverschluesselt und eignet sich nur fuer Experimente, nicht fuer den produktiven Einsatz.
Datenvorverarbeitung in Node-RED
Alle Sensordaten laufen nun ueber den lokalen Broker. Um sie in Node-RED weiterzuverarbeiten, binde ich den bereits vorinstallierten MQTT-Node ein. Dieser Node liefert die Nutzlast als String zurueck.
Mit dem JSON-Node konvertiere ich diesen String anschliessend in ein sauberes JSON-Objekt. Im naechsten Schritt uebergebe ich die Sensordaten aus dem JSON an einen Function-Node. Dort speichere ich die Werte in eine globale Variable, die innerhalb von Node-RED weiterverwendet werden kann.
Debug-Node. Der gruene Node ist lediglich ein Debug-Node und gibt jederzeit den aktuellen Stand der Daten aus.
Daten per MQTT an die Cloud senden
Fuer das Senden lege ich zunaechst einen Inject-Node an. Dieser triggert die globalen Variablen alle fuenf Sekunden, sodass die Daten im selben Takt neu aktualisiert werden.
Es folgt ein weiterer Function-Node. Mit ihm verschachtle ich die globalen Variablen in ein JSON-Objekt und gebe es an den MQTT-Endknoten weiter. Der MQTT-Endknoten sendet die Daten anschliessend an den Mosquitto-Online-Broker.
Visualisierung im Backend
Im Backend der Web-Applikation der Batix Schweiz AG laesst sich nun ein MQTT-Client integrieren. Ueber diesen Client werden meine Nachrichten im Fuenf-Sekunden-Takt empfangen und visualisiert.
Fazit
Mit einem lokalen, per Docker betriebenen MQTT-Broker, der Datenaufbereitung in Node-RED und einem Mosquitto-Online-Broker entsteht eine durchgaengige Kette von der Sensorik bis in die Cloud. Fuer den produktiven Betrieb sollte der unverschluesselte Test-Broker durch eine abgesicherte, verschluesselte Verbindung ersetzt werden.
Hat dir dieser Beitrag geholfen?
Warum empfiehlt der Autor den kostenfreien Mosquitto-Test-Broker nur für Tests?

Eigene Dienste betreiben, ganz ohne YAML: der Stack Baukasten
Home Assistant, Nextcloud oder ein Werbeblocker im eigenen Netz, ohne eine Zeile YAML zu schreiben. Warum der Stack Baukasten Selfhosting auch für Einsteiger öffnet.

Ich habe mir J.A.R.V.I.S. selbst gebaut: ein eigener KI-Butler im Browser
Warum ich einen eigenen, selbst gehosteten KI-Assistenten gebaut habe, was er kann und was mir der Weg dorthin über das Arbeiten mit KI wirklich gebracht hat.

Virtuelle Maschinen vs. Docker — der Unterschied einfach erklärt
Virtuelle Maschinen oder Docker-Container? Architektur, Unterschiede (Grösse, Startzeit, Isolation) und wann sich was lohnt — verständlich mit Grafiken erklärt.
