@marsmännchen
Ist zwar schon eine Weile her, aber vielleicht hilft die Herangehensweise jemandem. Den folgenden Code habe ich im Data Explorer der neuen InfluxDB 2.x quasi fast automatisch erstellen lassen. Wer in etwa weiß wie die InfluxQL Abfragen funktionieren, der braucht kaum Code lernen wie ich finde. Die Weboberfläche der neuen DB erreicht man unter der IP Adresse des Hosts über Port :8086 im Browser und dort sieht es nach dem Anmelden und 4-5 Clicks dann z.B. so aus:
Bildschirmfoto 2023-02-08 um 20.19.12.png
Hier können nach belieben Code-Schnipsel zusammengebracht und ggf. angepasst werden. Ich habe Difference() aus der Liste unten rechts per Click eingefügt, nonNegative auf true geändert und aggregateWindow auf every: 1mo. Das war es dann auch schon.
from(bucket: "iobroker")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "sonoff.0.Gartenkraftwerk II.ENERGY_Total" or r["_measurement"] == "sonoff.0.MiniJoule.ENERGY_Total")
|> filter(fn: (r) => r["_field"] == "value")
|> aggregateWindow(every: 1mo , fn: last, timeSrc: "_start")
|> difference(nonNegative: true, columns: ["_value"])
|> yield(name: "last")
Den Code dann 1:1 in Grafana kopiert und siehe da, passt. In den Query Options die Relative Time auf 1Y und schon wirft Grafana saubere Monatswerte der saldierenden Zählerwerte aus.
Bildschirmfoto 2023-02-08 um 20.29.33.png
Anpassungen der Optik sind wie gewohnt und nach belieben möglich.