Node-RED: Daten in InfluxDB 2 schreiben
Heute geht es mit ein bisschen Node-RED weiter. Und zwar möchte ich gerne Daten in eine InfluxDB protokollieren. Leider hat sich mit InfluxDB 2.x sehr viel getan - um nicht zu sagen alles geändert. So braucht man in jedem Fall ein 64-Bit Betriebssystem, um InfluxDB überhaupt installieren zu können. Da mit Raspbian Bullseye nach wie vor kein Stable-Release der 64-Bit Variante veröffentlicht wurde (ist verfügbar, aber als Beta), muss ich die Datenbank also wo anders installieren. Da ich seit Jahren Synology-NAS nutze, wird das heute mal etwas mehr gefordert. Ich zeige Dir also die Installation von InfluxDB 2 auf einem Synology NAS als Docker-Container. Im nächsten Schritt wird dann Node-RED verbunden und am Schluss integrieren wird die Datenbank in Grafana, um erste Daten anzuzeigen.
Kurz vorweg: Das Video wird etwas anspruchsvoller. Du solltest Dich auf jeden Fall mit den Docker-Grundlagen beschäftigen, bevor Du eigene Container erstellst. Ansonsten kann es passieren, dass Du Deine Daten verlierst. Schau Dir an, was Images, Container, Volumes, usw. sind. Eventuell baust Du sogar mal ein eigenes Image auf Basis von einem Standard-Image, damit Du lernst, wie Dockerfiles aufgebaut werden. Informiere Dich in jedem Fall darüber, wie sich Container von viruellen Maschinen unterscheiden! Sollte es dazu viele Interessenten geben, mache ich zu dem Thema auch gerne noch einmal ein detailliertes Video.
Was wird benötigt?
- Eine Node-RED-Installation
- Ein Synology NAS mit Docker-Unterstützung
- Eine Grafana-Installation (optional)
Video
Token auslesen
influx auth list --user mkleine --hide-headers | cut -f 3
Beispiel-Query
influx query 'from(bucket:"nodered") |> range(start:-1m)'
Beispiel-Query (Flux)
from(bucket: "nodered")
|> range(start: v.timeRangeStart, stop:v.timeRangeStop)
|> filter(fn: (r) =>
r._measurement == "verbrauch.strom.zaehlerstand"
)
|> difference()
|> aggregateWindow(every: 5m, fn: sum)