@t-147 said in Grafana: Probleme mit Errechnen von Werten und deren Anzeige:
Problem 1:
from(bucket: "ioBroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r._measurement == "PV_Inverter___Ertrag_total" or r._measurement == "Strompreis_kWh" or r._measurement == "SmartMeter___Einspeisung_gesamt") |> filter(fn: (r) => r._field == "value") |> aggregateWindow(every: 1mo, fn: last, timeSrc: "_start") |> pivot(rowKey: ["_time"], columnKey: ["_measurement"], valueColumn: "_value") |> difference(columns: ["PV_Inverter___Ertrag_total", "SmartMeter___Einspeisung_gesamt" ]) |> map(fn: (r) => ({ r with PV_Nutzung: r.PV_Inverter___Ertrag_total - r.SmartMeter___Einspeisung_gesamt })) |> map(fn: (r) => ({ r with Ersparnis: (r.PV_Inverter___Ertrag_total - r.SmartMeter___Einspeisung_gesamt) * r.Strompreis_kWh }))
In einer Visualisierung möchte ich anzeigen, wie viel Strom mein BKW produziert hat, wieviel davon ich selbst genutzt und wieviel Geld ich damit gespart habe. Den genutzten PV-Strom errechne aus dem erzeugten PV-Strom und der Einspeisung ins Netz, bzw berechne zusätzlich mit dem aktuellen Strompreis aus einem manuellen Datenpunkt die Ersparnis:Funktioniert soweit ganz gut, allerdings gibt es den Datenpunkt für die Einspeisung erst seit Mitte Mai, in der Folge werden alle Tage/Monate ohne diesen Datenpunkt gar nicht berechnet:
a10143f8-b6da-4537-b0fc-5bf6440e4b91-grafik.png
Kann ich das irgenwie umgehen? zB indem ich Grafana irgendwie mitteile, dass er stattdessen mit "0" weiterrechnen soll, wenn er keinen Wert findet?
Dieses Problem ließ sich zwischenzeitlich lösen:
|> fill(column: "SmartMeter___Einspeisung_gesamt", value: 0.0)Auf Grund der fehlenden Anfangswerte für diese Monate ist das Ergebnis nicht ganz korrrekt, aber die Berechnung wird damit ausgeführt. Damit bin ich für einige andere Anwendungsfälle ebenfalls ein Stück weiter 😊