NEWS
Grafana: täglichen Solar-Ertrag summieren
-
Hallo zusammen,
mein Victronic Blue Solar liefert mir den Ertrag in kWh als Wert in einem Datenpunkt. Jetzt möchte ich diesen Wert pro Tag addieren und daraus einen Wochen/Monats/Jahres-Ertrag berechnen. Dafür habe ich diese FLUX Query geschrieben:
import "timezone"
option location = timezone.location(name: "Europe/Berlin")
from(bucket: "homebucket")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "Victronic Heute Ertrag" and r["_field"] == "value")
|> aggregateWindow(every: 1d, fn: last, createEmpty: false)
|> aggregateWindow(every: 1w, offset: 4d, fn: sum, createEmpty: false)
|> yield(name: "sum")Leider stimmt die Visualisierung nicht ganz. Sowohl die Summe als auch die Anzeige des Datums (DD-MM) funktionieren nicht. Findet jemand meinen Fehler?
-
Hier z. B. eine Lösung für eine Tagesübersicht:
import "timezone" option location = timezone.location(name: "Europe/Berlin") from(bucket: "iobroker") |> range(start: -1mo, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "solax.0.data.yieldtoday" and r["_field"] == "value") |> aggregateWindow(every: 1d, fn: max, timeSrc: "_start")
Das kannst du natürlich auch für Monate und Jahre anzeigen lassen.
-
@meister-mopper Danke! Das habe ich auch schon so ähnlich. Ich muss aber für die Wochenübersicht die Tageswerte addieren und dann als einen Balken darstellen. Also "max" als fn ist es nicht und ich habe versucht, durch eine zweite aggregation diese Wochensumme zu ermitteln.
Oder gibt es eine andere Möglichkeit, diese 7 Werte jeweils zu addieren?
-
Hier die Tage einer Woche, Wochen in einem Monat u. s. w. sollte damit auch funktionieren:
import "timezone" option location = timezone.location(name: "Europe/Berlin") from(bucket: "iobroker") |> range(start: -1w) |> filter(fn: (r) => r["_measurement"] == "smartmeter.0.1-0:1_8_0__255.value" and r["_field"] == "value") |> difference() |> aggregateWindow(every: 1d, fn: sum, timeSrc: "_start") |> map(fn: (r) => ({r with _cost: float(v: r._value) * 0.4414894736842105}))
-
@meister-mopper said in Grafana: täglichen Solar-Ertrag summieren:
|> difference()
Danke. Ich glaub wir missverstehen uns. Ich bekomme für jeden Tag einen Wert geliefert. Z.B. Montag 2 kWh, Dienstag 2,5, Mittwoch 1,3 usw. Und für die Wochendarstellung muss ich die Werte addieren und als Wochenwert darstellen. Der Datenpunkt liefert immer den ganzen Tag einen Wert, der tagsüber ansteigt und in der Nacht gleich bleibt und um 0 Uhr wieder auf 0 zurückgestellt wird.
import "timezone"
option location = timezone.location(name: "Europe/Berlin")
from(bucket: "homebucket")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "Victronic Heute Ertrag" and r["_field"] == "value")
|> aggregateWindow(every: 24h, fn: last, timeSrc: "_start")
|> yield(name: "last")liefert diese Werte:
Time value
2024-04-15 16:15:11 2.17
2024-04-16 00:00:00 2.20
2024-04-17 00:00:00 2.12
2024-04-18 00:00:00 2.13
2024-04-19 00:00:00 1.52
2024-04-20 00:00:00 2.30
2024-04-21 00:00:00 2.75
2024-04-22 00:00:00 2.77 -
@mere13 sagte in Grafana: täglichen Solar-Ertrag summieren:
|> aggregateWindow(every: 1w, offset: 4d, fn: sum, createEmpty: false)
in beiden "aggregateWindow"-Funktionen muss
timeSrc: "_start"
angehängt werden.
In der grafana.ini kannst du noch das deutsche Datumsformat einstellen (wenn gewünscht)
-
@marc-berg said in Grafana: täglichen Solar-Ertrag summieren:
timeSrc: "_start"
Super!! Das war die Lösung.