NEWS
Grafana mit influxdb2, Messungen addieren
-
Hallo Zusammen,
ich habe eine frisch installierte InfluxDB2 und möchte Daten in Grafana darstellen.
Konkret möchte ich die Leistung meiner 2 PV-Strings addieren. Bisher habe ich folgende Abfrage:from(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "modbus.0.inputRegisters.3.30773_DC_Leistung_1" or r["_measurement"] == "modbus.0.inputRegisters.3.30961_DC_Leistung_2") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: "mean")
Damit klappt auch die Darstellung der jeweiligen Strings. Aber ich möchte diese jetzt als Summenwerte darstellen.
Versucht habe ich mit group() und sum(). Aber ohne Ergebnis.Da bräuchte ich mal einen Tipp, wie ich das lösen könnte.
-
@darkness_08 sagte in Grafana mit influxdb2, Messungen addieren:
Konkret möchte ich die Leistung meiner 2 PV-Strings addieren. Bisher habe ich folgende Abfrage:
Auf diese Weise bekommst du drei Spalten: Ausgangswert1, Ausgangswert2 und "Summe"
from(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "modbus.0.inputRegisters.3.30773_DC_Leistung_1" or r["_measurement"] == "modbus.0.inputRegisters.3.30961_DC_Leistung_2") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> pivot(rowKey: ["_time"], columnKey: ["_measurement"], valueColumn: "_value") |> map(fn: (r) => ({ r with Summe: r["modbus.0.inputRegisters.3.30773_DC_Leistung_1"] + r["modbus.0.inputRegisters.3.30961_DC_Leistung_2"] }))
Danach könntest Du die "langen" Spaltennamen z.B. noch umbenennen mit
|> rename(columns: {"modbus.0.inputRegisters.3.30773_DC_Leistung_1": "Leistung1", "modbus.0.inputRegisters.3.30961_DC_Leistung_2": "Leistung2"})
-
@marc-berg
Vielen Dank.
Das hilft mir weiter. Jetzt muss ich mal versuchen zu verstehen, was du da gemacht hast -
@darkness_08 sagte in Grafana mit influxdb2, Messungen addieren:
Jetzt muss ich mal versuchen zu verstehen, was du da gemacht hast
Wenn du mehrere Measurements mit "or" verknüpfst, stehen die Ergebnisse zunächst untereinander, also in unterschiedlichen Zeilen. Damit kann man nicht rechnen:
Zeit Meas. Value 03:00:00Z Wert1 11.0 03:00:00Z Wert2 21.0 03:01:00Z Wert1 12.0 03:01:00Z Wert2 22.0
Durch die "pivot" Funktion werden die Measurement-Namen als neue Spaltennamen gesetzt und gleiche Zeiten in einer Zeile zusammenfasst:
Zeit Wert1 Wert2 03:00:00Z 11.0 21.0 03:01:00Z 12.0 22.0
Mit der Map-Funktion wird nun gerechnet. Durch die Angabe von "r with Summe" werden alle bisherigen Spalten beibehalten und um die Spalte "Summe" ergänzt sowie das Ergebnis der Rechnung eingesetzt:
Zeit Wert1 Wert2 Summe 03:00:00Z 11.0 21.0 32.0 03:01:00Z 12.0 22.0 34.0
-
@marc-berg
Ey, nichts alles verraten
Danke für die Erläuterungen. Ich muss zugeben, das die Flux Documentation etwas zäh ist. Aber auch die Videos von @haus-automatisierung haben mir auch geholfen. Es lichtet sich aber braucht sicherlich noch etwas Zeit.Mein Problem war unter anderm auch, das die Werte mit nterschiedlichen Zeitstempeln gespeichert wurden. Aber jetzt pass es soweit und die ersten Daten werden in Grafana dargestellt.
Vielen Dank nochmals für die Unterstützung