Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Mikrocontroller
    • Arduino
    • ESP32 & Co.
    • Calliope Mini
    • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Node-RED Tutorial: Daten im Dashboard visualisieren

Veröffentlicht am 18. März 202616. März 2026 von Stefan Draeger

Im letzten Beitrag habe ich gezeigt, wie man mit Node-RED Wetterdaten von einer offenen API abruft und in einer CSV-Datei speichert. Damit haben wir bereits eine einfache Möglichkeit geschaffen, Messwerte dauerhaft zu protokollieren.

Doch reine Daten in einer Datei sind oft schwer zu interpretieren. Viel übersichtlicher wird es, wenn man die Werte grafisch als Diagramm darstellt.

Genau hier kommt das Node-RED Dashboard ins Spiel. Damit lassen sich mit wenigen Klicks eigene Web-Dashboards erstellen, auf denen Daten aus Flows übersichtlich angezeigt werden können – zum Beispiel als Diagramme, Anzeigen oder Statusfelder.

Dieses Video auf YouTube ansehen.

In diesem Beitrag zeige ich dir Schritt für Schritt:

  • wie du das Node-RED Dashboard installierst,
  • wie du deine gespeicherten Daten aus der CSV-Datei einliest,
  • und wie du daraus ein Diagramm im Dashboard erstellst.

Am Ende dieses Tutorials erhältst du ein kleines Dashboard, das den Temperaturverlauf aus einer gespeicherten CSV-Datei als Diagramm darstellt. Zusätzlich lassen sich die Daten später problemlos erweitern, etwa um Minimal- und Maximalwerte oder weitere Wetterparameter.

Inhaltsverzeichnis

  • Installation des FlowFuse Dashboards
  • CSV-Datei in Node-RED einlesen
  • Wetterdaten aus der CSV-Datei laden
  • Daten für das Diagramm formatieren
  • Temperaturverlauf im Dashboard visualisieren
    • Formatieren der Zeitachse
    • Starten des Flows und visualisieren der Daten
  • Minimale, maximale und durchschnittliche Temperatur berechnen
  • Fazit

Installation des FlowFuse Dashboards

Für die Visualisierung von Daten in Node-RED gibt es verschiedene Dashboard-Lösungen. Lange Zeit war das Paket node-red-dashboard die Standardlösung. Dieses wird jedoch inzwischen nicht mehr aktiv weiterentwickelt und ist als deprecated markiert.

Node-RED Dashboard - deprecated Hinweis
Node-RED Dashboard – deprecated Hinweis

Stattdessen setzen wir in diesem Beitrag auf das FlowFuse Dashboard, den modernen Nachfolger des klassischen Dashboards. Dieses wird aktiv gepflegt und bietet eine deutlich modernere Oberfläche.

Die Installation erfolgt direkt über das Webfrontend von Node-RED.

Öffne dazu das Menü oben rechts und gehe anschließend wie folgt vor:

  1. Menü (≡) öffnen
  2. Palette verwalten auswählen
  3. Zum Tab „Installation“ wechseln
  4. Nach @flowfuse/node-red-dashboard suchen
  5. Auf Installieren klicken

Nach der Installation erscheinen im Node-RED Editor neue Nodes für das Dashboard. Diese erkennst du an der Kategorie Dashboard 2.

Damit lassen sich verschiedene Elemente erstellen, zum Beispiel:

  • Charts für Diagramme
  • Textfelder zur Anzeige von Werten
  • Buttons für Interaktionen
  • Statusanzeigen

Im nächsten Schritt erstellen wir ein einfaches Dashboard und zeigen dort die gespeicherten Wetterdaten aus der CSV-Datei als Diagramm an.

CSV-Datei in Node-RED einlesen

Als erstes lesen wir die Daten aus der zuvor gespeicherten CSV-Datei ein.

Node-RED - Flow zum einlesen der CSV-Daten - Ausgabe im Debug-Tab
Node-RED – Flow zum einlesen der CSV-Daten – Ausgabe im Debug-Tab
Node-RED - Konfiguration der Read-File-Node
Node-RED – Konfiguration der Read-File-Node
Node-RED - Konfiguration der Debug-Node für die Ausgabe der CSV-Daten
Node-RED – Konfiguration der Debug-Node für die Ausgabe der CSV-Daten

Die CSV-Datei liegt in meinem Fall im Homeverzeichnis auf dem Raspberry Pi.

Ablage der CSV-Datei im Homeverzeichnis
Ablage der CSV-Datei im Homeverzeichnis

Wetterdaten aus der CSV-Datei laden

Wir haben die Daten zunächst im Debug-Tab ausgegeben, um zu prüfen, ob die CSV-Datei korrekt eingelesen wird. Für die weitere Verarbeitung reicht diese Darstellung jedoch nicht aus, da wir die Daten später als Array von Objekten benötigen, um sie im Diagramm darstellen zu können.

Im nächsten Schritt werden die Daten daher mit einem CSV-Node verarbeitet. Dabei definieren wir die Spaltenüberschriften der Datei. Diese werden kommagetrennt angegeben und dienen anschließend als Keys für die erzeugten Objekte.

Node-RED - Konfiguration der CSV-Node für das ablegen der Daten in einem Array mit Keys
Debug-Tab mit Array

Die Ausgabe im Debug-Tab ist nun ein Array (eine simple Liste) mit Objekten welche die Schlüssel-Werte Paare enthält.

Daten für das Diagramm formatieren

Die nun ermittelten Daten werden im nächsten Schritt mit einer Function-Node mithilfe von JavaScript aufbereitet. Zum einen benötigen wir aus den eingelesenen Datensätzen lediglich den Zeitstempel sowie die Temperatur. Zum anderen – und das ist der entscheidende Punkt – erwartet das Diagramm im Dashboard die Daten in einem bestimmten Format.

Damit das Diagramm den Temperaturverlauf korrekt darstellen kann, müssen die Werte als Objekte mit Zeit- und Messwert bereitgestellt werden. Zusätzlich wird der Zeitstempel in Millisekunden umgewandelt, da das Diagramm diese Form für die Darstellung der Zeitachse verwendet.

Die Function-Node übernimmt also zwei Aufgaben:

  • Reduzieren der Daten auf die benötigten Werte
  • Umwandeln der Daten in das passende Format für das Diagramm
Node-RED - Flow - aufbereiten der Daten für das Diagramm
Node-RED – Flow – aufbereiten der Daten für das Diagramm
let data = msg.payload;

if (!Array.isArray(data)) {
    data = [data];
}

msg.payload = data
    .map(row => {
        let ts = row.zeitstempel;
        let temp = parseFloat(row.temperatur);

        return {
            time: ts,
            temperatur: temp
        };
    })
    .filter(row => row !== null);

msg.action = "replace";
return msg;

Wir haben nun ein gefiltertes Array mit nur dem Zeitstempel und der Temperatur.

Node-RED - Ausgabe der via JavaScript aufbereiteten Daten im Debug-Tab

Temperaturverlauf im Dashboard visualisieren

Wir haben nun die Daten aufbereitet und können diese als nächstes im Diagramm visualisieren. Dazu wählen wir die Chart-Node und konfigurieren diese wie folgt:

Node-RED - Konfiguration der Chart-Node
Node-RED – Konfiguration der Chart-Node
Node-RED - Flow - visualisieren der gespeicherten Daten aus einer CSV-Datei im FlowFuse Dashboard
Node-RED – Flow – visualisieren der gespeicherten Daten aus einer CSV-Datei im FlowFuse Dashboard

Formatieren der Zeitachse

Für die Formatierung der Zeitachse stehen verschiedene Möglichkeiten zur Verfügung. Welche Werte dabei verwendet werden können, ist in der offiziellen Dokumentation von Apache ECharts beschrieben.

Eine Übersicht der verfügbaren Formatierungsoptionen findest du hier:
https://echarts.apache.org/en/option.html#xAxis.axisLabel.formatter

Über diese Einstellungen lässt sich beispielsweise festlegen, ob nur Stunden und Minuten, das vollständige Datum oder eine individuelle Darstellung der Zeitstempel auf der X-Achse angezeigt werden.

Starten des Flows und visualisieren der Daten

Damit die Daten im Diagramm angezeigt werden, starten wir den Flow über die Injection-Node damit wir das Diagramm mit den ausgelesenen Daten befüllt.

Node-RED - Injection-Node
Node-RED - FlowFuse Dashboard mit historischen Temperaturdaten
Node-RED – FlowFuse Dashboard mit historischen Temperaturdaten

Minimale, maximale und durchschnittliche Temperatur berechnen

Neben der minimalen und maximalen Temperatur kann es interessant sein, zusätzlich die durchschnittliche Temperatur zu berechnen. Diese gibt einen schnellen Überblick über die allgemeine Temperaturentwicklung im betrachteten Zeitraum.

Node-RED - Flow erweitert für die Ausgabe der min - max und Durschnittstemperatur
Node-RED – Flow erweitert für die Ausgabe der min – max und Durschnittstemperatur

Da unsere Daten bereits als Array von Objekten vorliegen, können wir alle drei Werte in einem einzigen Durchlauf berechnen. Das ist effizienter als mehrere separate Berechnungen.

Dazu verwenden wir drei Variablen:

  • minTemp für die minimale Temperatur
  • maxTemp für die maximale Temperatur
  • sumTemp für die Summe aller Temperaturwerte

Während wir das Array durchlaufen, aktualisieren wir diese Werte entsprechend. Am Ende können wir aus der Summe und der Anzahl der Messwerte die durchschnittliche Temperatur berechnen.

Eine mögliche Implementierung in der Function-Node sieht wie folgt aus:

let data = msg.payload; let minTemp = Infinity;

let maxTemp = -Infinity;
let sumTemp = 0;
let count = 0;

for (const row of data) {

    let temp = parseFloat(row.temperatur);

    if (isNaN(temp)) {
        continue;
    }

    if (temp < minTemp) minTemp = temp;
    if (temp > maxTemp) maxTemp = temp;

    sumTemp += temp;
    count++;
}

let avgTemp = count > 0 ? sumTemp / count : 0; 

msg.minTemp = "Min. Temperatur: " + minTemp.toFixed(2) + "°C";
msg.maxTemp = "Max. Temperatur: " + maxTemp.toFixed(2) + "°C";
msg.avgTemp = "Ø Temperatur: " + avgTemp.toFixed(2) + "°C"; 

return msg;

Nach der Ausführung stehen uns drei Werte im msg-Objekt zur Verfügung:

  • msg.minTemp – minimale Temperatur
  • msg.maxTemp – maximale Temperatur
  • msg.avgTemp – durchschnittliche Temperatur
Node-RED - komplettes Nachrichten Objekt mit min,max und durschnittstemperatur

Diese können anschließend beispielsweise mit Text-Widgets im Dashboard angezeigt werden.

Node-RED - Abschnitt zum anzeigen der min,max und durschnitts Temperatur mit ui-text-Nodes
Node-RED – Abschnitt zum anzeigen der min,max und durschnitts Temperatur mit ui-text-Nodes
Node-RED - Konfiguration der Text-Node für die MIN-Temperatur
Node-RED – Konfiguration der Text-Node für die MIN-Temperatur
Node-RED - Konfiguration der Text-Node für die MAX-Temperatur
Node-RED – Konfiguration der Text-Node für die MAX-Temperatur
Node-RED - Konfiguration der Text-Node für die AVG-Temperatur
Node-RED – Konfiguration der Text-Node für die AVG-Temperatur
Node-RED – Dashboard für Temperaturverlauf aus CSV-DateiHerunterladen

Fazit

Mit wenigen Nodes lässt sich in Node-RED aus einfachen CSV-Daten ein übersichtliches Dashboard erstellen. Die gespeicherten Wetterdaten werden dabei nicht nur grafisch dargestellt, sondern können zusätzlich ausgewertet werden, etwa durch die Berechnung von Minimal-, Maximal- und Durchschnittswerten.

Das gezeigte Beispiel lässt sich leicht erweitern – etwa um weitere Wetterparameter wie Luftfeuchtigkeit, Windgeschwindigkeit oder Wettercodes. Ebenso können die Daten automatisch in regelmäßigen Abständen aktualisiert werden, sodass das Dashboard stets aktuelle Informationen liefert.

Letzte Aktualisierung am: 16. März 2026

Foto von Stefan Draeger
Über den Autor

Stefan Draeger — Entwickler & Tech-Blogger

Ich zeige praxisnah, wie du Projekte mit Arduino, ESP32 und Smarthome-Komponenten umsetzt – Schritt für Schritt, mit Code und Schaltplänen.

Mehr Artikel von Stefan →

1 thought on “Node-RED Tutorial: Daten im Dashboard visualisieren”

  1. Pingback: Node-RED unter Windows 11 mit WSL installieren – Schritt für Schritt - Technik Blog

Schreibe einen Kommentar Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • QR-Code Generator
  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen
Tel.: 015565432686
E-Mail: info@draeger-it.blog

Folge mir auf

link zu Fabook
link zu LinkedIn
link zu YouTube
link zu TikTok
link zu Pinterest
link zu Instagram
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2026 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
  • Optionen verwalten
  • Dienste verwalten
  • Verwalten von {vendor_count}-Lieferanten
  • Lese mehr über diese Zwecke
Einstellungen anzeigen
  • {title}
  • {title}
  • {title}