← Anleitungen
Node-RED & AutomatisierungFortgeschritten2 Min

InfluxDB mit Node-RED verwalten: Daten schreiben, lesen und löschen

Schritt-für-Schritt-Anleitung, wie du Telemetriedaten mit Node-RED in eine InfluxDB schreibst, sie per Query wieder ausliest und bei Bedarf wieder löschst.

InfluxDB ist eine gute Wahl für die Speicherung von Telemetriedaten: Sie arbeitet mit geringer Latenz und bietet eine SQL-ähnliche Abfragesprache. In dieser Anleitung zeige ich dir, wie du eine InfluxDB-Datenbank direkt aus Node-RED heraus verwaltest – also Daten schreibst, ausliest und wieder löschst.

Voraussetzungen: Eine laufende InfluxDB sowie der InfluxDB-Knoten in Node-RED (über das Menü 'Palette verwalten' nachinstallierbar). Grundkenntnisse in SQL-ähnlichen Abfragen sind hilfreich, da die InfluxDB damit verwaltet wird.

1. Daten in die InfluxDB schreiben

Als Datenquelle dient in diesem Beispiel ein Knoten, der Zufallszahlen zwischen 1 und 10 erzeugt. Diese Werte sollen anschließend in die InfluxDB übergeben werden.

Die erzeugten Daten werden zunächst in einem Function-Knoten in ein Objekt verpackt. In der Praxis überträgt man selten nur einen einzelnen Messwert, sondern mehrere – mit dieser Struktur lässt sich das Objekt einfach um weitere Felder erweitern:

1msg.payload = [{
2 RandomWert: msg.payload
3}];
4return msg;

Zum Schluss wird der InfluxDB-Knoten konfiguriert. Zuerst gibst du den Endpunkt des Servers an. Läuft die InfluxDB auf demselben Gerät wie Node-RED, trägst du hier localhost ein. Danach hinterlegst du den Namen deiner Datenbank.

Anschließend definierst du ein Measurement. In diesem Beispiel heißt es Random, da mit Zufallszahlen gearbeitet wird. Alle folgenden Befehle beziehen sich explizit auf dieses Measurement. Ab jetzt werden die erzeugten Zahlen im Measurement Random gespeichert.

2. Daten aus der InfluxDB lesen

Zum Auslesen der Daten verwende ich zwei verschiedene Abfragen. Die erste liefert nur die letzten fünf Datenpunkte, absteigend nach Zeit sortiert:

1select * from Random order by time desc limit 5

Die zweite Abfrage liest alle vorhandenen Datenpunkte aus dem Measurement aus:

1select * from Random

Das Ergebnis der Abfrage lässt sich über einen Debug-Knoten direkt im Node-RED-Editor anzeigen.

3. Inhalt der InfluxDB löschen

Oft ist es sinnvoll, Daten wieder aus der InfluxDB zu entfernen – zum Beispiel, nachdem sie weitergeleitet oder ausgewertet wurden. Auch dafür kommt eine Abfrage zum Einsatz. Mit dem folgenden Befehl löschst du den gesamten Inhalt des Measurements:

1DELETE FROM Random

DELETE FROM Random entfernt alle Datenpunkte des Measurements unwiderruflich. Setze den Befehl nur bewusst ein und stelle sicher, dass die Daten zuvor gesichert oder verarbeitet wurden.

4. Der komplette Node-RED Flow

Die einzelnen Bausteine – Schreiben, Lesen und Löschen – ergeben zusammen einen vollständigen Flow zur Verwaltung der InfluxDB. Du kannst die Funktionen über separate Inject-Knoten gezielt auslösen.

Fazit

Mit wenigen Knoten lässt sich eine InfluxDB komplett aus Node-RED heraus verwalten: Daten werden über ein Objekt in ein Measurement geschrieben, per Query ausgelesen und bei Bedarf wieder gelöscht. Das Beispiel mit Zufallszahlen lässt sich problemlos auf reale Sensor- und Telemetriedaten übertragen, indem du das Datenobjekt um weitere Felder ergänzt.