WZ-IT Logo
AnleitungIoT

Node-RED MQTT-Dashboard: Sensordaten visualisieren (Anleitung)

Timo WevelsiepTimo WevelsiepAktualisiert: 30.06.2026

Hinweis zum Inhalt: Versionen, Befehle und Preise können sich ändern. Bitte prüfen Sie kritische Schritte vor dem produktiven Einsatz eigenständig. Dieser Leitfaden ersetzt keine individuelle Beratung.

IoT-Visualisierung souverän und self-hosted aufbauen? WZ-IT plant, baut und betreibt Node-RED, MQTT und Dashboards auf Ihrer Infrastruktur - Open Source, EU, ohne Cloud-Lock-in. Zur IoT-Plattformentwicklung

Ein Node-RED MQTT-Dashboard bauen Sie in fünf Schritten: Node-RED 5 per Docker starten, das Paket Dashboard 2.0 (@flowfuse/node-red-dashboard) über die Palette installieren, eine mqtt-in-Node mit Ihrem Broker verbinden, die JSON-Payload mit einer json- und change-Node zerlegen und die Werte an Gauge-, Chart- und Text-Widgets hängen. Nach dem Deploy sehen Sie Live-Sensordaten unter http://localhost:1880/dashboard. Diese Anleitung führt Schritt für Schritt durch Installation, MQTT-Anbindung, Payload-Parsing und die Frage, wann Node-RED-Dashboard reicht und wann Grafana die bessere Wahl ist.

Inhaltsverzeichnis


Voraussetzungen: Node-RED 5 und Dashboard 2.0

Sie brauchen einen erreichbaren MQTT-Broker (z. B. Mosquitto oder den Broker einer IoT-Plattform), auf den Ihre Sensoren publishen, und eine Umgebung mit Docker. Zwei Versionsfragen sind 2026 wichtig:

  • Node-RED 5.0 wurde am 9. Juni 2026 veröffentlicht (nodered.org/blog). Es setzt Node.js 22.9 oder neuer voraus und empfiehlt Node 24.x. Das offizielle Docker-Image bringt eine passende Runtime bereits mit.
  • Bei der Oberfläche gibt es zwei Pakete, die leicht zu verwechseln sind. Nehmen Sie Dashboard 2.0 (@flowfuse/node-red-dashboard). Das alte node-red-dashboard (Dashboard 1.0) basiert auf dem seit Ende 2021 abgekündigten Angular v1 und wurde am 27. Juni 2024 offiziell deprecated (flowfuse.com) - keine neuen Funktionen, nur noch Best-Effort-Patches.

Grundlagen zum Transportprotokoll erklärt der Beitrag Was ist MQTT?. Wir nutzen im Beispiel Sensoren, die JSON wie {"temperature": 21.5, "humidity": 48} auf ein Topic wie sensors/room1/data publishen.

Node-RED mit Docker installieren

Node-RED startet mit einem einzigen Befehl. Wir pinnen bewusst den Tag 5.0 statt latest:

docker run -d \
  -p 1880:1880 \
  -v node_red_data:/data \
  --name nodered \
  nodered/node-red:5.0

Das benannte Volume node_red_data wird auf das Verzeichnis /data im Container gemappt - dort liegen Flows (flows.json), Credentials und installierte Nodes, sodass nichts beim Neustart verloren geht (nodered.org/docs). Öffnen Sie anschließend http://localhost:1880 im Browser; bei einem Remote-Host entsprechend http://SERVER-IP:1880.

Für den Dauerbetrieb gilt dasselbe wie bei jeder Web-Anwendung: Node-RED nicht ungeschützt ins Internet stellen. Setzen Sie einen Reverse Proxy mit TLS (nginx, Traefik, Caddy) davor und aktivieren Sie in der settings.js die adminAuth (Login für den Flow-Editor) sowie bei Bedarf eine separate Authentifizierung fürs Dashboard.

Dashboard 2.0 installieren

Die Widgets kommen als zusätzliche Nodes über den Palette Manager:

  1. Oben rechts das Menü öffnen, Palette verwalten wählen.
  2. Reiter Installieren, nach node-red-dashboard suchen.
  3. Das Paket @flowfuse/node-red-dashboard installieren (nicht das deprecatete node-red-dashboard).

Nach kurzer Installation erscheinen in der Palette neue dashboard 2.0-Nodes (ui-gauge, ui-chart, ui-text, ui-button und weitere). Dashboard 2.0 organisiert die Oberfläche in einer vierstufigen Hierarchie (dashboard.flowfuse.com):

Ebene Node Funktion
Base ui-base Wurzel-URL der gesamten Oberfläche (/dashboard)
Page ui-page navigierbare Seite, eigenes Theme möglich
Group ui-group Container, der Widgets auf einer Seite bündelt
Widget ui-gauge u. a. das einzelne Anzeige- oder Bedienelement

Beim Anlegen des ersten Widgets können Sie ui-base, ui-page und ui-group direkt mit dem Stift-Symbol neu erzeugen - das müssen Sie also nur einmal tun.

MQTT-in-Node mit dem Broker verbinden

Ziehen Sie eine mqtt in-Node aus der Palette in den Flow und öffnen Sie sie per Doppelklick:

  • Server: über den Stift eine neue Broker-Konfiguration anlegen. Host und Port eintragen - 1883 unverschlüsselt oder 8883 mit TLS (im Reiter Security/TLS aktivieren). Falls der Broker es verlangt, im Reiter Security Benutzer und Passwort hinterlegen.
  • Topic: das Topic Ihrer Sensoren, z. B. sensors/room1/data. Wildcards sind erlaubt: sensors/+/data fängt alle Räume, sensors/# alles darunter.
  • QoS: für die meisten Sensordaten genügt 0; 1 garantiert mindestens eine Zustellung.
  • Output: auf „a parsed JSON object" stellen, dann liefert die Node msg.payload bereits als Objekt.

Klicken Sie Deploy. Unter der Node sollte der Status „connected" erscheinen. Hängen Sie zur Kontrolle eine debug-Node an und beobachten Sie im Debug-Seitenbereich, ob Nachrichten eintreffen.

JSON-Payload parsen: json, change oder function

Liefert die mqtt in-Node nur Text (etwa bei Output: auto-detect), wandelt eine json-Node den String zuverlässig in ein Objekt um. Danach extrahieren Sie einzelne Messwerte, denn ein Gauge zeigt genau eine Zahl:

  • change-Node (no-code): Regel Set -> msg.payload -> msg.payload.temperature. Ideal, wenn Sie nur einen Wert herausziehen.
  • function-Node (Code), wenn Logik dazukommt:
// Temperatur extrahieren, plausibilisieren, Einheit ergänzen
const t = msg.payload.temperature;
if (typeof t !== "number") return null;   // ungültige Werte verwerfen
msg.payload = Math.round(t * 10) / 10;    // auf 0,1 °C runden
return msg;

Für mehrere Werte aus einer Nachricht (Temperatur und Luftfeuchte) nutzen Sie eine function-Node mit mehreren Ausgängen oder eine zweite change-Node pro Widget. So bleibt jeder Strang sauber genau einem Anzeigeelement zugeordnet.

Widgets aufs Dashboard: Gauge, Chart, Text

Jetzt verbinden Sie die geparsten Werte mit den Anzeige-Nodes. Dashboard 2.0 nutzt für Diagramme Apache eCharts:

  • ui-gauge (Momentanwert): Node hinter den Temperatur-Strang hängen, einer Group zuordnen, Min/Max (z. B. 0 bis 50) und Einheit °C setzen. Der numerische msg.payload füllt den Zeiger.
  • ui-chart (Zeitverlauf): als Typ Line wählen, derselbe msg.payload landet als Datenpunkt auf der Zeitachse. Über das Feld „Remove older data" (z. B. 1 Stunde) begrenzen Sie den Speicher im Browser.
  • ui-text (Label/Status): zeigt Werte oder Texte direkt an, etwa „Letzte Aktualisierung" oder einen aus einer function-Node gesetzten Status.

Ein typischer Flow sieht damit so aus:

[mqtt in] -> [json] -> [change: payload = payload.temperature] -> [ui-gauge]
                   \-> [change: payload = payload.temperature] -> [ui-chart]

Live-Sensordaten visualisieren

Nach Deploy öffnen Sie die Oberfläche unter http://localhost:1880/dashboard (Remote: http://SERVER-IP:1880/dashboard). Jedes weitere Topic landet über eine eigene mqtt in-Node und einen eigenen Widget-Strang in derselben oder einer neuen ui-page. Sobald Ihre Sensoren publishen, bewegt sich der Gauge-Zeiger in Echtzeit und das Chart füllt sich Punkt für Punkt.

Drei Praxistipps:

  • Gruppen-Breite: ui-group haben eine feste Spaltenbreite (Standard 6). Passen Sie Group- und Widget-Breite an, damit das Layout auf dem Smartphone responsiv bleibt.
  • Pufferung: Die Chart-Historie lebt im Browser. Wer Daten über Tage oder Monate braucht, schreibt sie zusätzlich in eine Zeitreihendatenbank (siehe nächster Abschnitt).
  • Sicherheit: Das Dashboard erbt nicht automatisch das Editor-Login. Schützen Sie /dashboard über den Reverse Proxy oder die Dashboard-eigene Auth.

Node-RED-Dashboard vs Grafana: wann was?

Beide visualisieren IoT-Daten, lösen aber unterschiedliche Aufgaben. Node-RED-Dashboard sitzt direkt am Flow und kann auch steuern (Buttons, Slider, Formulare). Grafana ist das Analyse- und Reporting-Werkzeug über einer Datenbank.

Kriterium Node-RED Dashboard 2.0 Grafana
Stärke leichte Anzeige + Bedienung am Flow historische Zeitreihen, Analyse
Datenquelle Live-Messages aus dem Flow Datenbank (InfluxDB, Postgres u. a.)
Historie im Browser gepuffert langfristig, beliebig tief
Steuerung (Aktoren) ja (Buttons, Eingaben) nein (read-only)
Alerting einfach (per Flow) ausgereift, mehrkanalig
Typischer Einsatz Bedienpanel, Maschinen-HMI Monitoring, Dashboards, Reports

In der Praxis kombiniert man beides: Node-RED nimmt MQTT entgegen, zeigt Live-Werte und schreibt sie parallel in InfluxDB, aus der Grafana langfristige Dashboards baut. Den Aufbau dieser Kette beschreibt der Beitrag Grafana IoT-Dashboard mit InfluxDB.

Unser Vorgehen bei WZ-IT

Wir planen, bauen und betreiben Node-RED, MQTT und Dashboards als souveräne, self-hostete Bausteine Ihrer IoT-Plattform - auf Proxmox, Hetzner oder On-Premises. Dazu gehören gehärtete Docker-Setups mit TLS und Backups, robuste Flows mit sauberem Payload-Handling, die Anbindung von Broker und Sensoren sowie die passende Visualisierung: Node-RED-Dashboard fürs Bedienpanel, Grafana fürs Reporting. Im Rahmen unserer Node-RED-Expertise und IoT-Plattformentwicklung - Open Source, EU, ohne Per-Device-Lizenz.

Weiterführende Guides

Sie wollen IoT-Daten souverän visualisieren? Lernen Sie uns kennen oder sehen Sie sich unsere IoT-Plattformen an.

Sie möchten IoT nicht selbst betreiben? WZ-IT übernimmt Einrichtung, Betrieb und Wartung – DSGVO-konform aus Deutschland.

Häufig gestellte Fragen

Antworten auf die wichtigsten Fragen

Aktuell ist Node-RED 5.0 (veröffentlicht am 9. Juni 2026), das Node.js 22.9 oder neuer voraussetzt und Node 24.x empfiehlt. Für die Oberfläche nutzen Sie Dashboard 2.0, also das Paket @flowfuse/node-red-dashboard (aktuell 1.30.x), das auf Vue und Apache eCharts basiert und unter der Apache-2.0-Lizenz steht.

Für neue Projekte immer Dashboard 2.0 (@flowfuse/node-red-dashboard). Das alte node-red-dashboard (Dashboard 1.0) basiert auf dem seit Ende 2021 abgekündigten Angular v1 und wurde am 27. Juni 2024 offiziell deprecated. Es bekommt keine neuen Funktionen mehr und nur noch Best-Effort-Sicherheitspatches.

Mit einem Befehl: docker run -d -p 1880:1880 -v node_red_data:/data --name nodered nodered/node-red:5.0. Das mappt Port 1880 und legt das benannte Volume node_red_data auf das Verzeichnis /data im Container, damit Flows und installierte Nodes erhalten bleiben. Die Oberfläche öffnen Sie unter http://localhost:1880.

Ziehen Sie eine mqtt-in-Node in den Flow, legen Sie eine Broker-Konfiguration an (Server, Port 1883 oder 8883 mit TLS, optional Benutzer/Passwort), tragen Sie das Topic ein (z. B. sensors/+/data) und setzen Sie Output auf 'a parsed JSON object'. Nach dem Deploy zeigt der Status der Node 'connected'.

Wenn die mqtt-in-Node nicht schon JSON ausgibt, hängen Sie eine json-Node an, die den String in ein Objekt wandelt. Einzelne Werte holen Sie dann mit einer change-Node (msg.payload = msg.payload.temperature) oder einer function-Node aus dem Objekt - jeweils ein Wert pro Widget.

Node-RED-Dashboard ist ideal für leichte Steuer- und Anzeige-Oberflächen direkt am Flow, inklusive Buttons und Eingaben. Grafana ist die bessere Wahl für historische Zeitreihen, viele Panels, Alerting und Reporting über eine Zeitreihendatenbank wie InfluxDB. Oft laufen beide parallel.

Ja. Node-RED steht unter der Apache-2.0-Lizenz, Dashboard 2.0 ebenfalls. Es gibt keine Lizenz- oder Per-Device-Gebühren. Es fallen nur Kosten für Ihre eigene Infrastruktur und den Betrieb an - kein Cloud-Lock-in.

Lassen Sie uns über Ihre Idee sprechen

Ob konkrete IT-Herausforderung oder einfach eine Idee - wir freuen uns auf den Austausch. In einem kurzen Gespräch prüfen wir gemeinsam, ob und wie Ihr Projekt zu WZ-IT passt.

E-Mail
[email protected]

Führende Unternehmen vertrauen WZ-IT

  • Rekorder
  • Keymate
  • Führerscheinmacher
  • SolidProof
  • ARGE
  • Boese VA
  • NextGym
  • Maho Management
  • Golem.de
  • Millenium
  • Paritel
  • Yonju
  • EVADXB
  • Mr. Clipart
  • Aphy
  • Negosh
  • ABCO Water Systems
Timo Wevelsiep & Robin Zins - CEOs of WZ-IT

Timo Wevelsiep & Robin Zins

Geschäftsführer

1/3 - Themenauswahl33%

Worum geht es bei Ihrer Anfrage?

Wählen Sie einen oder mehrere Bereiche, bei denen wir Sie unterstützen dürfen.