Seite 1 von 1

Auslesewerte STATISTIK -> MONAT ändern

Verfasst: Mo 16. Jan 2023, 17:59
von damianator
Hallo,
da mein alter Post leider keine Antwort gefunden hat, versuche ich es mal mit einer anderen Fragestellung:
viewtopic.php?t=3215

Ist es möglich (mit Anleitung für ein Laien) die anfallenden Werte unter STATISTIK -> MONAT & TAG "1-9" (einstellig) in "01-09" (zweistellig) zu verändern.?

Hintergrund:
Grafana benötigt für das Datumsformat die Werte als 01–09, also zweistellig.

Re: Auslesewerte STATISTIK -> MONAT ändern

Verfasst: Mo 16. Jan 2023, 19:08
von Bogeyof
Keine Ahnung was Du genau erreichen willst.
Evtl. hilft es Dir ja das Datum aus dem Dashboard aus der ausgewählten Range zu nehmen:

Code: Alles auswählen

$__from and $__to
Grafana has two built-in time range variables: $__from and $__to. They are currently always interpolated as epoch milliseconds by default, but you can control date formatting.

Note: This special formatting syntax is only available in Grafana 7.1.2+

Syntax	Example result	Description
${__from}	1594671549254	Unix millisecond epoch
${__from:date}	2020-07-13T20:19:09.254Z	No args, defaults to ISO 8601/RFC 3339
${__from:date:iso}	2020-07-13T20:19:09.254Z	ISO 8601/RFC 3339
${__from:date:seconds}	1594671549	Unix seconds epoch
${__from:date:YYYY-MM}	2020-07	Any custom date format that does not include the : character
The syntax above also works with ${__to}
Schreibt sich dann im Select z.B. so (mit Jahr, Monat und Tag aus der Timerange):

Code: Alles auswählen

...WHERE time >='${__from:date:YYYY}-${__from:date:MM}-${__from:date:DD}'....
oder in diesem Fall gleich
...WHERE time >='${__from:date:YYYY-MM-DD}'....

Re: Auslesewerte STATISTIK -> MONAT ändern

Verfasst: Mi 18. Jan 2023, 08:30
von damianator
Ich bin mir nicht sicher ob mir das weiter hilft.

Für die Berechnung der aktuellen PV Produktion im Monat habe ich Folgende Formel:

Code: Alles auswählen

SELECT sum("power") AS "PV-Produktion" FROM (SELECT max("Wert") AS power FROM "Statistik" WHERE time >='${jahr}-${monat}-01' and time <= '${jahr}-12-31' GROUP BY time(1d) ) WHERE time>='${jahr}-01-01' tz('Europe/Berlin')
Die Variable "Monat" sieht folgendermaßen aus:

Code: Alles auswählen

SELECT last("Monat") FROM "Statistik"
Aber leider wird in der Datenbank der "Monat" nur einstellig geschrieben also für den Januar = 1, Februar = 2.
Daher funktioniert meine Berechnung der aktuellen PV Produktion nur in den Monaten von Oktober bis Dezember.

Momentan behelfe ich mir damit dass ich das jeden 01 im Monat den Wert manuell umstelle. :?

Re: Auslesewerte STATISTIK -> MONAT ändern

Verfasst: Mi 18. Jan 2023, 09:08
von Bogeyof
Warum testest Du es nicht einfach, Du wirst feststellen, dass es funtioniert. Sogar besser wie deine Lösung, denn wenn Du im Timepicker oben rechts z.B. den letzten Monat auswählst, dann wird Dir auch automatisch die Summe des letzten Monats berechnet:

Code: Alles auswählen

SELECT sum("power") AS "PV-Produktion" FROM (SELECT max("Wert") AS power FROM "Statistik" WHERE time >='${__from:date:YYYY}-${__from:date:MM}-01' and time <= '${__from:date:YYYY}-12-31' GROUP BY time(1d) ) WHERE time>='${__from:date:YYYY}-01-01' tz('Europe/Berlin')

Re: Auslesewerte STATISTIK -> MONAT ändern

Verfasst: Mi 18. Jan 2023, 10:33
von damianator
Das ist GUT. Wieder mal was neues dazu gelernt. Vielen Dank.

Aber wenn ich die Formel richtig verstehe würde sie die Summe der PV Erträge vom eingestellten "Timepicker" bis Jahresende bzw. der bisher im Jahr angefallenen Daten ausspucken.

Also angenommen ich würde in Mai den Timepicker auf Februar stellen, würden mir die Werte von 01-Februar bis Mai anzeigen.

Eigentlich habe ich ein anderes Panel für die Jahresübersicht der einzelnen Monate und wollte hier wirklich starr, nur den aktuellen haben.
Aber das ist schon mal ein Schritt weiter als das was ich immer manuell machen musste. Und meistens steht der Timepicker eh auf Today oder Yesterday. Also wird das so gehen. Danke.

Re: Auslesewerte STATISTIK -> MONAT ändern

Verfasst: Mi 18. Jan 2023, 11:14
von Bogeyof
Deine vorherige Formel hat fest als Endedatum < 31.12. Daher jetzt wenn Du zurückgehst werden alle Werte vom eingestellten Monat bis Jahresende summiert. Es muss also in das Endedatum das Ende des Monats rein, das ist aber schwierig weil unterschiedliche Anzahl Tage. Was aber gehen müsste ist der Anfang des nächsten Monats am 1. um 0:00 Uhr. Wie das zu formulieren ist probiere ich später, Antwort folgt...

Was auch geht ist als Endedatum das Ende des Timepickers zu verwenden. Damit müsstest Du halt wenn Du den Februar willst einfach den Februar komplett auswählen. Der Vorteil, Du kannst immer noch jeden beliebigen Zeitraum auswerten.
Der Select muss angepasst werden:

Code: Alles auswählen

SELECT sum("power") AS "PV-Produktion" FROM (SELECT max("Wert") AS power FROM "Statistik" WHERE time >='${__from:date:YYYY}-${__from:date:MM}-01' and time <= '${__to:date}' GROUP BY time(1d) ) WHERE time>='${__from:date:YYYY}-01-01' tz('Europe/Berlin')

Re: Auslesewerte STATISTIK -> MONAT ändern

Verfasst: Mi 18. Jan 2023, 12:11
von damianator
Nein nein, da missverstehen wir uns gerade.

So wie es jetzt ist gefällt mir das ganz gut. Ich kann die Formel verstehen und kann teile davon auch anderweitig gut verwenden.

Was ich gemeint habe, ist ob es möglich wäre den Start fest auf den 01 des aktuellen Monats zu setzten.
Falls du eine Idee dazu hast, kannst du die mir gerne schreiben.
Ansonsten bin ich wirklich mit deiner vorherigen Lösung sehr zufrieden.

Re: Auslesewerte STATISTIK -> MONAT ändern

Verfasst: Mi 18. Jan 2023, 12:15
von Bogeyof
Natürlich, das geht auch. Dann hast Du immer den aktuellen Monat, egal was oben im TimePicker gewählt wird:

Unter Edit-Panel bei den Query-Options Relative Time auf now/M setzen:
Screenshot 2023-01-18 121234.png
Dann reicht als Select folgendes:

Code: Alles auswählen

SELECT sum("power") AS "PV-Produktion" FROM (SELECT max("Wert") AS power FROM "Statistik" WHERE $timeFilter GROUP BY time(1d) ) 

Re: Auslesewerte STATISTIK -> MONAT ändern

Verfasst: Mi 18. Jan 2023, 13:37
von damianator
Das ist ja Spitze. Funktioniert auch tadellos. Vielen Dank. :D