Hmm ... kein triviales Problem, in der Tat. Dieser
Link gibt den Hinweis.
Du kannst einen Query als Text String in Grafana eingeben:
.
Im Detail kannst Du dort sagen:
Code: Alles auswählen
SELECT cumSum-dailyTot+Delta FROM
(SELECT cumulative_sum(sum("pv_estimate"))/2 as "dailyTot", difference(cumulative_sum(sum("pv_estimate")))/2 as Delta from "solcast" WHERE $timeFilter group by time(1d)),
(SELECT cumulative_sum(sum("pv_estimate"))/2 as "cumSum" from "solcast" WHERE $timeFilter group by time(30m))
fill(previous)
Background
- Ich verwende hier sum(...)/2 statt integral(..., 1h) da die Solcast Vorhersagen der Mittelwert mit über 30min vor dem periodEnd Timestamp sind, aber das ist letztlich ein Detail
- der erste sub-query berechnet eine Treppenkurve dailyTot über $timeFilter und dann die tägliche Treppenstufenhöhe Delta, was der täglichen Gesamtleistung entspricht
- der zweite sub-query berechnet dann eine cumulative sum der Vorhersagen, seit beginn von $timeFilter
Wenn man Chronograf am laufen hat, kann man die Mechanik mit dem folgendem Query überprüfen:
Code: Alles auswählen
SELECT cumSum-dailyTot+Delta as Energy, dailyTot, cumSum, Delta FROM
(SELECT cumulative_sum(sum("pv_estimate"))/2 as "dailyTot", difference(cumulative_sum(sum("pv_estimate")))/2 as Delta from "forecast"."autogen"."solcast" WHERE time > :dashboardTime: AND time < :upperDashboardTime: group by time(1d)),
(SELECT cumulative_sum(sum("pv_estimate"))/2 as "cumSum" from "forecast"."autogen"."solcast" WHERE time > :dashboardTime: AND time < :upperDashboardTime: group by time(:interval:))
fill(previous)
Wenn ich dann mal Musse habe, werde ich ev. einen entsprechenden Eintrag in der von PVForecast erzeugten Influx Datenbank hinzufügen
Ich hoffe, es hilft - Stefan