Schnelle Abfrage früherer Werte (Vormonat, Vorjahr usw.)

Allgemeine Informationen zum Nachbau und zum Forum.
PV-Monitorung / PV Überwachung

Moderator: Ulrich

Bogeyof
Beiträge: 1138
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 24 Mal
Danksagung erhalten: 165 Mal

Schnelle Abfrage früherer Werte (Vormonat, Vorjahr usw.)

Beitrag von Bogeyof »

Ich habe schon länger monatliche Panel für verschiedene Auswertungen definiert, z.B. Verbrauchsdaten oder Erzeugungsdaten. Dabei verwende ich gerne die Query options, setze dort den Wert Relative time auf "now/M". Damit zeigt er mir immer den aktuellen Monat bis heute (tägliche Werte). Das Schöne ist, dass ich dann in der Legende mit "Total" z.B. auch jeweils Summenwerte für den aktuellen Monat angezeigt bekomme.

Immer wieder kommt auch der Wunsch auf, diese Werte mit vergangenen Werten, z.B. wie war das im letzten Monat / vor 3 Monaten / im letzten Jahr usw., zu vergleichen.
Dafür habe ich mich jetzt wieder einer Variablen im Dashboard bedient, die ich ebenfalls in den Query options verwende:
Grafana2.png
Der Default sollte auf 0m (Null Minuten) stehen, damit entspricht es dem Zustand ohne geänderte Eingabe in diesem Feld.
Diese Variable in den Query Options erlaubt mir einfach im Dashboard den Wert auf 1M / 3M / 1y usw. zu ändern und schon zeigt er mir den gleichen Zeitraum vor 1 Monat, 3 Monaten, 1 Jahr an (also heute z.B. den 1. bis 26. Tag des Wunschzeitraumes). Schon kann ich ablesen, was ich vor einem Jahr im gleichen Zeitraum verbraucht habe, oder letzten Monat oder was auch immer ich vergleichen möchte.
Ich habe mehrere solche Panels mit verschiedenen Werten (Erzeugung / Produktion / Kosten und Ertrag / Eigenverbrauch und Autarkie usw.), mit dieser einen Eingabe oben im Dashboard ändern sich sofort alle diese Auswertungen auf den gewünschten Vergleichszeitraum (natürlich ist in allen Panels dazu die Query option angepasst).
Grafana.png
Grafana3.png

Bogeyof
Beiträge: 1138
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 24 Mal
Danksagung erhalten: 165 Mal

Re: Schnelle Abfrage früherer Werte (Vormonat, Vorjahr usw.)

Beitrag von Bogeyof »

Das gleiche habe ich jetzt noch mit einer Variablen "Shift" für aktuelle Anzeigen gemacht. In allen aktuellen Query options wurde die Variable ${Shift} bei Time shift eingefügt. Damit kann ich mit einer Eingabe oben im Dashboard sofort abrufen, wie waren die Werte vor 1 Stunde, 1 Tag, 1 Monat usw. Natürlich geht das auch über das Dashboard, aber es sind nur eingeschränkte Auswahlmöglichkeiten vorhanden.
Grafana4.png
Damit funktioniert auch z.B. zuerst die Auswahl in Grafana mit "die letzte Stunde" und danach mit Shift = "1d" die Werte für die gleiche Stunde gestern zu vergleichen. Einfacher kann man solche Abfragen nicht mehr auswählen...

Blackberry
Beiträge: 24
Registriert: Do 31. Aug 2023, 13:28

Re: Schnelle Abfrage früherer Werte (Vormonat, Vorjahr usw.)

Beitrag von Blackberry »

Hi,
@Bogeyof : hast Du eine Lösung gefunden, die Daten aus dem vorherigen Tag auzurufen?

Ich hatte gehofft, dass es mit einer anderen Zeitzone funktioniert, d.h. z.B. mit

Code: Alles auswählen

SELECT mean("Status") AS "Ladung" FROM "Batterie" WHERE $timeFilter GROUP BY time($__interval) fill(null) tz('America/Edmonton')
aber da hat sich keine Verschiebung ergeben :(

Auch etwas wie

Code: Alles auswählen

SELECT mean("Status") AS "Ladung" FROM "Batterie" WHERE $timeFilter GROUP BY time($__interval - 2d) fill(null) 
funktioniert nicht ....
- - - - - - - - - -
HW:
- Fronius Gen24 10.0 mit 11kWPeak
- BYD 10 kWh Akku
- Ohmpilot mit 4,5kW Heizstaab

Bogeyof
Beiträge: 1138
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 24 Mal
Danksagung erhalten: 165 Mal

Re: Schnelle Abfrage früherer Werte (Vormonat, Vorjahr usw.)

Beitrag von Bogeyof »

Probier mal folgendes:

Code: Alles auswählen

SELECT mean("Status") AS "Ladung" FROM "Batterie" WHERE time >=  (${__from:date:seconds}000000000 - 86400000000000) and time < ${__from:date:seconds}000000000  tz('Europe/Berlin')
Hier wird der Beginn des eingestellten Datum oben rechts genommen, davon 1 Tag in Nanosekunden abgezogen (60 * 60 * 24 = 86400 + 9 Stellen mit 0 für Nanosekunden). Wenn also oben Rechts "today" oder "today so far" eingestellt ist, dann ist der Beginn Heute 0:00 und der ausgewertete Zeitraum im Select ist dann Gestern 0:00 bis Heute 0:00.
Wird in der Auswahl oben rechts z.B. Yesterday ausgewählt, dann ist der Wert von Vorgestern im Select inbegriffen.
Durch unterschiedliche Werte bei den Zeitangaben kannst Du natürlich auch die letzte Woche, oder 3 Tage oder die letzten 24 Stunden, also beliebige Zeiträume abhängig von der oben eingestellten Zeit ermitteln. Dazu einfach die Sekunden für den gewünschten Zeitraum ausrechnen und 9 Nullen anhängen...

Du kannst hier im Forum auch mal nach Heute_TS, Gestern_TS usw. suchen, das sind Timestamps, die im Measurement Statistik für solche Abfragen hinterlegt sind. Dazu gibt es auch schon mehrere Posts...

Ob Du allerdings mit mean(Status) etwas Sinnvolles ermittelst ist mir nicht klar. Das wäre der Durchschnitt des Status über den gestrigen Tag? Aber zumindest die Where-Klausel sollte Dir liefern, was Du suchst...

Blackberry
Beiträge: 24
Registriert: Do 31. Aug 2023, 13:28

Re: Schnelle Abfrage früherer Werte (Vormonat, Vorjahr usw.)

Beitrag von Blackberry »

Hi,
das Ergebnis ist eine Tabelle mit einem einzigen Eintrag:
Solaranzeige.JPG
Solaranzeige.JPG (10.58 KiB) 474 mal betrachtet
Ein Wert von gestern früh, exakt um 24h+12h verschoben.
Schaue ich in den Aufzeichnungen nach, bekomme ich dort aber einen Wert von 7% und nicht 44,7%, d.h. auch der Wert stimmt nicht.

Das mit dem "mean" habe ich so übernommen und hat (bis jetzt) keine Probleme gemacht. Du hast Recht, wenn ich auf "last" ändere, dann kommt der richtige Wert (von Gestern). Ich habe aber immer nur noch einen einzigen Wert :shock:

Ich suche mal nach dem "Gestern_TS".

Ansonsten: was kann ich noch versuchen?
- - - - - - - - - -
HW:
- Fronius Gen24 10.0 mit 11kWPeak
- BYD 10 kWh Akku
- Ohmpilot mit 4,5kW Heizstaab

Bogeyof
Beiträge: 1138
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 24 Mal
Danksagung erhalten: 165 Mal

Re: Schnelle Abfrage früherer Werte (Vormonat, Vorjahr usw.)

Beitrag von Bogeyof »

Sorry, aber mit ist nicht klar was Du gerne haben möchtest. Natürlich liefert "Last" genau einen Wert, nämlich den letzten Wert. Mean liefert einen Durchschnittswert aus allen Werten (in diesem Fall aus allen Werten von Gestern).
Willst Du stündliche Werte, dann muss ein Group by time(1h), willst du alle Werte (minütiges Schreiben in die Datenbank vorausgesetzt) dann Group by time(1m) dazu gefügt werden...

Blackberry
Beiträge: 24
Registriert: Do 31. Aug 2023, 13:28

Re: Schnelle Abfrage früherer Werte (Vormonat, Vorjahr usw.)

Beitrag von Blackberry »

Die Werte in der Tabelle für den aktuellen Tag zeigen den jeweil aktuellen Wert - abgefragt in 20s Intervallen.

Ich möchte daher das Gleiche für den gestrigen Tag, d.h. auch die dann jeweils gültigen Werte im Intervall von 20 s.
- - - - - - - - - -
HW:
- Fronius Gen24 10.0 mit 11kWPeak
- BYD 10 kWh Akku
- Ohmpilot mit 4,5kW Heizstaab

Bogeyof
Beiträge: 1138
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 24 Mal
Danksagung erhalten: 165 Mal

Re: Schnelle Abfrage früherer Werte (Vormonat, Vorjahr usw.)

Beitrag von Bogeyof »

Dann mean(wert) ... Group by time(20s)

Blackberry
Beiträge: 24
Registriert: Do 31. Aug 2023, 13:28

Re: Schnelle Abfrage früherer Werte (Vormonat, Vorjahr usw.)

Beitrag von Blackberry »

Hi,

nun geht's langsam in die richtige Richtung :thumbup:

Mit

Code: Alles auswählen

SELECT mean("Status") AS "Ladung" FROM "Batterie" WHERE time >=  (${__from:date:seconds}000000000 - 86400000000000) and time < ${__from:date:seconds}000000000  Group by time(20s)
habe ich in der Tabelle schon mal die richtigen Werte. Aber nun müssen die in den heutigen Tag verschoben werden, dass diese im gleichen Diagramm angezeigt werden können.
D.h. hier ist der aktuelle Tag:
Solaranzeige.JPG
und hier sollen überlagert die Daten "von gestern" (aus Code siehe oben) reinkommen. Wie schaffe ich das??
Der Query oben gibt mir schon mal die Daten - ich sehe diese, wenn ich auf "Tabelle" umschalte. Im Prinzip müsste ich "nur" zum Zeitwert 24h hinzuzählen lassen. Geht das?
- - - - - - - - - -
HW:
- Fronius Gen24 10.0 mit 11kWPeak
- BYD 10 kWh Akku
- Ohmpilot mit 4,5kW Heizstaab

Bogeyof
Beiträge: 1138
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 24 Mal
Danksagung erhalten: 165 Mal

Re: Schnelle Abfrage früherer Werte (Vormonat, Vorjahr usw.)

Beitrag von Bogeyof »

Eine Anzeige der Daten von gestern in der Zeitlinie von heute ist nicht möglich. Da musst Du wohl oder übel ein eigenes Panel verwenden. In diesem kannst Du z.B. Yesterday als Zeit für das Panel vorgeben, dann braucht es eigentlich auch gar nicht die komplizierte where-Klausel, sondern dann reicht auch "where $timeFilter"...

Antworten

Zurück zu „Allgemeines“