Monatswerte in Grafana
Moderator: Ulrich
- mdkeil
- Beiträge: 301
- Registriert: So 12. Sep 2021, 20:40
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 21 Mal
Re: Monatswerte in Grafana
Dieser Lösungsansatz ist mit heute auch durch den Kopf gegangen. Ich schau mal, wie es bei mir zeitlich aussieht, ggfs. kann ich das implementieren.
IBN: 07/2021
Fronius Symo 20.0-3-M : 13.2 kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
Tibber-Invite (100% Öko-Strom + 50€ Bonus)
Fronius Symo 20.0-3-M : 13.2 kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
Tibber-Invite (100% Öko-Strom + 50€ Bonus)
Re: Monatswerte in Grafana
Ich hab das nicht zu ende gedacht. Man müsste das tatsächlich täglich laufen lassen, um den aktuellen Monat jeweils korrekt ab zu bilden. Sonst "wächst" der nicht mit sondern aktualisiert sich erst am Ende des Monats.
-
- Beiträge: 19
- Registriert: Di 12. Okt 2021, 19:31
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Monatswerte in Grafana
Hallo zusammen
Ich kann mal aufzeigen was ich bisher hingekriegt habe. Mein Ziel wäre eigentlich, dass ich 12 Monate darstellen kann mit der jeweiligen Produktion pro Monat. Gleichzeitig hätte ich gerne in einer zweiten Farbe den selben Monat des Vorjahres.
Also: Januar 22, Januar 21, Februar 22, Fabruar 21, etc.
Da ich erst seit Oktober produziere, kann ich noch keine Vergleiche zwischen aktuellem Monat und dem selben Monat im Vorjahr machen.
Zudem sind die Abfragen in Grafana zwar definiert, liefern aber keinen Inhalt, daher werden auch keine Säulen dargestellt. Das ist schade, ich hätte gerne Säulen mit Wert 0 gehabt, krieg ich aber nicht hin. Vielleicht hat ja jemand ein Tip.
Für mein Panel muss ich zwei Variablen führen welche ich jedes Jahr anpassen muss. Mit den in der Statistik_DB liegenden Werten für "DiesesJahr_TS" und "LetztesJahr_TS" kriege ich es nicht hin. Habe also diese beiden als Konstante definiert:
- DiesesJahr
- LetztesJahr
Der Graf sieht dann so aus (Alle Monate mit Werten, diejenigen ohne Wert werden leider nicht angezeigt)
Ich habe somit 24 Abfragen (für Jeden Monat im aktuellen und im letzten Jahr) nach diesem Schema, ich verwende die Visualisierung "Bar Gauge".
Hat jemand einen Tip wie ich auch die Monate welche keine Werte in der DB haben anzeigen kann (Mit Wert 0)?
Hat jemand einen Tip, wie ich mit vordefinierten Variablen arbeiten kann und so nicht jedes Jahr meine Konstanten anpassen muss?
Viele Grüsse
Ich kann mal aufzeigen was ich bisher hingekriegt habe. Mein Ziel wäre eigentlich, dass ich 12 Monate darstellen kann mit der jeweiligen Produktion pro Monat. Gleichzeitig hätte ich gerne in einer zweiten Farbe den selben Monat des Vorjahres.
Also: Januar 22, Januar 21, Februar 22, Fabruar 21, etc.
Da ich erst seit Oktober produziere, kann ich noch keine Vergleiche zwischen aktuellem Monat und dem selben Monat im Vorjahr machen.
Zudem sind die Abfragen in Grafana zwar definiert, liefern aber keinen Inhalt, daher werden auch keine Säulen dargestellt. Das ist schade, ich hätte gerne Säulen mit Wert 0 gehabt, krieg ich aber nicht hin. Vielleicht hat ja jemand ein Tip.
Für mein Panel muss ich zwei Variablen führen welche ich jedes Jahr anpassen muss. Mit den in der Statistik_DB liegenden Werten für "DiesesJahr_TS" und "LetztesJahr_TS" kriege ich es nicht hin. Habe also diese beiden als Konstante definiert:
- DiesesJahr
- LetztesJahr
Der Graf sieht dann so aus (Alle Monate mit Werten, diejenigen ohne Wert werden leider nicht angezeigt)
Ich habe somit 24 Abfragen (für Jeden Monat im aktuellen und im letzten Jahr) nach diesem Schema, ich verwende die Visualisierung "Bar Gauge".
Code: Alles auswählen
SELECT integral("Leistung",1h) from "PV" where time >= '${DiesesJahr}-01-01' and time < '${DiesesJahr}-02-01' fill(null)
Code: Alles auswählen
SELECT integral("Leistung",1h) from "PV" where time >= '${LetztesJahr}-01-01' and time <
'${LetztesJahr}-02-01' fill(null)
Hat jemand einen Tip, wie ich mit vordefinierten Variablen arbeiten kann und so nicht jedes Jahr meine Konstanten anpassen muss?
Viele Grüsse
-
- Beiträge: 167
- Registriert: Mi 13. Okt 2021, 09:52
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 7 Mal
Re: Monatswerte in Grafana
Moin.
Schau mal bitte bei viewtopic.php?f=19&t=1223&p=14794&hilit ... ben#p14794, da hatte @Bogeyof beschrieben, wie man Dummy-Werte in die Datenbank schreibt. Das kann ja auch eine "0" sein (null). Oder Du machst daraus einen Miniwert mit der dritten Stelle hinter dem Komma. So sollte es dann funktionieren.
Jan
Schau mal bitte bei viewtopic.php?f=19&t=1223&p=14794&hilit ... ben#p14794, da hatte @Bogeyof beschrieben, wie man Dummy-Werte in die Datenbank schreibt. Das kann ja auch eine "0" sein (null). Oder Du machst daraus einen Miniwert mit der dritten Stelle hinter dem Komma. So sollte es dann funktionieren.
Jan
- mdkeil
- Beiträge: 301
- Registriert: So 12. Sep 2021, 20:40
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 21 Mal
Re: Monatswerte in Grafana
Ich habe nun auch eine für mich gute Möglichkeit gefunden, Monatswerte in Grafana zu visualisieren. Ich nutze dafür die aktuellste Grafana-Version mit dem Time-series-Plugin, Ich habe auch mal kurz auf "Bar Chart" gewechselt und ein Bild eingestellt, wenn man die Werte nicht gestackt im Balken haben möchte. Alle
"Verbräuche" sind bei mir auf der negativen Y-Achse dargestellt, was nun in der Time-series endlich möglich ist.
Ganz trivial ist es natürlich nicht, da auch einige Transformation durchgeführt werden müssen. Darüber hinaus ist für jeden Wert ein seperater Query notwendig, sprich bei 5 Werten/Monat (wie bei mir) wären es 60 Querys.
(Query options: Time shift: 1d/y) Hier mal für den Monat Januar beispielhaft die Abfragen aufgeführt: Die Queries können bei Euch natürlich varieieren, jenachdem wie eure Daten in der Datenbank verfügbar sind.
- Variable $current_year PV-Produktion: (Alias PV_Monat)
Einspeisung: (Alias Einspeisung_Monat)
Gesamtverbrauch: (Alias Gesamtverbrauch_Monat)
Netzbezug: (Alias Netzbezug_Monat)
Eigenverbrauch: (Alias Eigenverbrauch_Monat)
Transformationen:
1. Outer Join 2-x Add field from calculation (Für jeden Wert separat) 3. Organized fields (Einzelmonate ausblenden (Aliase)) Man erhällt dann z.B. folgenden Table-View, den man dann beliebig visualisieren kann. Bei Rückfragen kann ich gerne behilflich sein.
"Verbräuche" sind bei mir auf der negativen Y-Achse dargestellt, was nun in der Time-series endlich möglich ist.
Ganz trivial ist es natürlich nicht, da auch einige Transformation durchgeführt werden müssen. Darüber hinaus ist für jeden Wert ein seperater Query notwendig, sprich bei 5 Werten/Monat (wie bei mir) wären es 60 Querys.
(Query options: Time shift: 1d/y) Hier mal für den Monat Januar beispielhaft die Abfragen aufgeführt: Die Queries können bei Euch natürlich varieieren, jenachdem wie eure Daten in der Datenbank verfügbar sind.
- Variable $current_year PV-Produktion: (Alias PV_Monat)
Code: Alles auswählen
SELECT last("Wh_Gesamt_Jahr") - first("Wh_Gesamt_Jahr") FROM "Summen" WHERE time>='${current_year}-01-01' AND time<'${current_year}-02-01' fill(null) tz('Europe/Berlin')
Code: Alles auswählen
SELECT sum("helper") FROM (SELECT integral("Einspeisung",1h) AS helper FROM "Meter" WHERE time>='${current_year}-01-01' AND time<'${current_year}-02-01' GROUP BY time(1d) ) WHERE time>='${current_year}-01-01' tz('Europe/Berlin')
Code: Alles auswählen
SELECT sum("helper") FROM (SELECT integral("Verbrauch",1h) AS helper FROM "Meter" WHERE time>='${current_year}-01-01' AND time<'${current_year}-02-01' GROUP BY time(1d) ) WHERE time>='${current_year}-01-01' tz('Europe/Berlin')
Code: Alles auswählen
SELECT sum("helper") FROM (SELECT integral("Bezug",1h) AS helper FROM "Meter" WHERE time>='${current_year}-01-01' AND time<'${current_year}-02-01' GROUP BY time(1d) ) WHERE time>='${current_year}-01-01' tz('Europe/Berlin')
Code: Alles auswählen
SELECT sum("helper") FROM (SELECT integral("Verbrauch",1h) - integral("Bezug",1h) AS helper FROM "Meter" WHERE time>='${current_year}-01-01' AND time<'${current_year}-02-01' GROUP BY time(1d) ) WHERE time>='${current_year}-01-01' tz('Europe/Berlin')
1. Outer Join 2-x Add field from calculation (Für jeden Wert separat) 3. Organized fields (Einzelmonate ausblenden (Aliase)) Man erhällt dann z.B. folgenden Table-View, den man dann beliebig visualisieren kann. Bei Rückfragen kann ich gerne behilflich sein.
IBN: 07/2021
Fronius Symo 20.0-3-M : 13.2 kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
Tibber-Invite (100% Öko-Strom + 50€ Bonus)
Fronius Symo 20.0-3-M : 13.2 kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
Tibber-Invite (100% Öko-Strom + 50€ Bonus)
- mdkeil
- Beiträge: 301
- Registriert: So 12. Sep 2021, 20:40
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 21 Mal
Re: Monatswerte in Grafana
Ich habe das ganze mal noch ein wenig "optimiert" mit folgenden Voraussetzungen:
1) Die "Leistung" aus dem Measurement "PV" wird als "PVLeistung" zusätzlich in das Measurement "Meter" geschrieben:
Könnte ja @Ulrich ggfs. übernehmen, bzw. könnte man mal eine Überlegung anstellen und ein Measurement "Grafana" erstellen, wo die wichtigsten/beliebtesten Werte enthalten sind
/var/www/html/phpinc/funktionen.inc.php 2) Alle vorhandenen Daten ("Leistung" aus "PV") zusätzlich nach "PVLeistung" aus "Meter" kopieren // WARNUNG, Nur machen, wenn man weis, was man tut!
3) Man brauch nun für jeden Monat nur noch einen Query: In meinem Bespiel sind folgende Werte enthalten:
- PV-Produktion
- Einspeisung
- Gesamtverbrauch
- Netzbezug
- Eigenverbrauch
Dies kann man natürlich noch erweitern, solange alle Daten aus einem Measurement kommen.
- Es wird weiterhin die Variable $current_year benötigt
- Format as "Table" auswählen
Bespiel für Januar: (Der Übersichtshalber ein wenig anders formariert)
4) Unter Transform muss nur noch "Merge" ausgewählt werden.
Viel Spass damit und bei Fragen einfach fragen!
1) Die "Leistung" aus dem Measurement "PV" wird als "PVLeistung" zusätzlich in das Measurement "Meter" geschrieben:
Könnte ja @Ulrich ggfs. übernehmen, bzw. könnte man mal eine Überlegung anstellen und ein Measurement "Grafana" erstellen, wo die wichtigsten/beliebtesten Werte enthalten sind

/var/www/html/phpinc/funktionen.inc.php 2) Alle vorhandenen Daten ("Leistung" aus "PV") zusätzlich nach "PVLeistung" aus "Meter" kopieren // WARNUNG, Nur machen, wenn man weis, was man tut!
Code: Alles auswählen
influx -execute 'SELECT Leistung AS PVLeistung INTO "Meter" FROM "PV" GROUP by *' -database="solaranzeige" // ggf. -database anpassen
- PV-Produktion
- Einspeisung
- Gesamtverbrauch
- Netzbezug
- Eigenverbrauch
Dies kann man natürlich noch erweitern, solange alle Daten aus einem Measurement kommen.
- Es wird weiterhin die Variable $current_year benötigt
- Format as "Table" auswählen
Bespiel für Januar: (Der Übersichtshalber ein wenig anders formariert)
Code: Alles auswählen
SELECT
sum("power") AS "PV-Produktion",
sum("einsp") AS "Einspeisung",
sum("verbrauch") AS "Gesamtverbrauch",
sum("bezug") AS "Netzbezug",
sum("verbrauch")-sum("bezug") AS "Eigenverbrauch"
FROM
(SELECT
integral("PVLeistung",1h) AS power,
integral("Einspeisung",1h) AS einsp,
integral("Verbrauch",1h) AS verbrauch,
integral("Bezug",1h) AS bezug
FROM Meter
WHERE time>='${current_year}-01-01' AND time<'${current_year}-02-01' GROUP BY time(1d) )
WHERE time>='${current_year}-01-01' tz('Europe/Berlin')
Code: Alles auswählen
SELECT sum("power") AS "PV-Produktion", sum("einsp") AS "Einspeisung", sum("verbrauch") AS "Gesamtverbrauch", sum("bezug") AS "Netzbezug", sum("verbrauch")-sum("bezug") AS "Eigenverbrauch" FROM (SELECT integral("PVLeistung",1h) AS power, integral("Einspeisung",1h) AS einsp, integral("Verbrauch",1h) AS verbrauch, integral("Bezug",1h) AS bezug FROM Meter WHERE time>='${current_year}-01-01' AND time<'${current_year}-02-01' GROUP BY time(1d) ) WHERE time>='${current_year}-01-01' tz('Europe/Berlin')
Viel Spass damit und bei Fragen einfach fragen!

IBN: 07/2021
Fronius Symo 20.0-3-M : 13.2 kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
Tibber-Invite (100% Öko-Strom + 50€ Bonus)
Fronius Symo 20.0-3-M : 13.2 kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
Tibber-Invite (100% Öko-Strom + 50€ Bonus)
- Ulrich
- Administrator
- Beiträge: 5193
- Registriert: Sa 7. Nov 2015, 10:33
- Wohnort: Essen
- Hat sich bedankt: 130 Mal
- Danksagung erhalten: 756 Mal
- Kontaktdaten:
Re: Monatswerte in Grafana
Habe ich im Update übernommen...1) Die "Leistung" aus dem Measurement "PV" wird als "PVLeistung" zusätzlich in das Measurement "Meter" geschrieben:
Könnte ja @Ulrich ggfs. übernehmen
---------------------------------------
Ulrich . . . . . . . . [Projektinhaber]
Ulrich . . . . . . . . [Projektinhaber]
- mdkeil
- Beiträge: 301
- Registriert: So 12. Sep 2021, 20:40
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 21 Mal
Re: Monatswerte in Grafana
Das ist leider das Verhalten der Integral-Funktion, die als Zeitstempel immer epoch 0 zurückgibt. Eigentlich sollte dies nur passieren, wenn man der Funktion über Where keinen Zeitraum festlegt. Bei der Sum-Funktion ist das zum Glück, wie beschrieben. Schau dir am besten meine Lösung an, da habe ich die Integral-Funktion (Group by time (1d)) mit der Sum-Funktion kombiniert. Die Integral-Funktion liefert also die Tageswerte für einen festgelegten Zeitraum (z.B. Montag) welche anschließend summiert werden..
IBN: 07/2021
Fronius Symo 20.0-3-M : 13.2 kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
Tibber-Invite (100% Öko-Strom + 50€ Bonus)
Fronius Symo 20.0-3-M : 13.2 kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
Tibber-Invite (100% Öko-Strom + 50€ Bonus)
-
- Beiträge: 19
- Registriert: Di 12. Okt 2021, 19:31
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Monatswerte in Grafana
Vielen Dank @mdkeil. Sehr interessant, grundsätzlich klappt es bei mir auch.
Ich nehme an mit dem Time-Series Plugin meinst du das native Grafana Plugin?
Wie hast du das mit dem Stacking hingekriegt? Und die Verbräuche negativ dargestellt? Das habe ich noch nicht hingekriegt.
Am liebsten hätte ich pro Monat eine Säule mit PV Produktion, daneben gestackt Eigenverbrauch und Einspeisung.
Negativ dargestellt den Gesamtverbrauch und daneben Netzbezug und Eigenverbrauch.
Ich nehme an mit dem Time-Series Plugin meinst du das native Grafana Plugin?
Wie hast du das mit dem Stacking hingekriegt? Und die Verbräuche negativ dargestellt? Das habe ich noch nicht hingekriegt.
Am liebsten hätte ich pro Monat eine Säule mit PV Produktion, daneben gestackt Eigenverbrauch und Einspeisung.
Negativ dargestellt den Gesamtverbrauch und daneben Netzbezug und Eigenverbrauch.
- mdkeil
- Beiträge: 301
- Registriert: So 12. Sep 2021, 20:40
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 21 Mal
Re: Monatswerte in Grafana
Jep, dass was standardmäßig mit bei ist.sirathan hat geschrieben: Ich nehme an mit dem Time-Series Plugin meinst du das native Grafana Plugin?
Wenn Du bei der Visualisierung "Time Series" alles so eingestellt hast, wie ich es beschrieben habe, stackt er automatisch.. das kann man glaube auch nicht verhindern, bzw. in der Visualisierung verhindern.Wie hast du das mit dem Stacking hingekriegt? Und die Verbräuche negativ dargestellt? Das habe ich noch nicht hingekriegt.
(1) Format As untem beim Query auf "Table" gestellt?; Unter Transform "Merge" ausgewählt? Anbei mal ein aktueller Screenshot (auf table-view gestellt); sollte eigentlich so oder ähnlich aussehen. (2) bzw. der negativen Darstellung.. Das war mal ein Feature in einer älteren Grafana-Version, was nun in der aktuellsten (8.4.1) wieder implementiert wurde.
Was mit der Visialisierung "Bar Chart" mit Anpassungen funktionieren könnte.. Ich selbst habe noch nicht herausgefunden, wie man Stacking und Non-Stacking kombiniert in einer Darstellung.. negative Darstellung geht da glaube nur über den Workaround, die entsprechenden Daten mit (-1) zu multiplizieren.. (MIN, MAX, etc. funktionieren dann aber natürlich nicht mehr)Am liebsten hätte ich pro Monat eine Säule mit PV Produktion, daneben gestackt Eigenverbrauch und Einspeisung.
Negativ dargestellt den Gesamtverbrauch und daneben Netzbezug und Eigenverbrauch.
IBN: 07/2021
Fronius Symo 20.0-3-M : 13.2 kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
Tibber-Invite (100% Öko-Strom + 50€ Bonus)
Fronius Symo 20.0-3-M : 13.2 kWp S 45° + 3.96 kWp S 15° (Verschattung) &
Fronius Primo 3.0-1 : 2.97 kWp N 15° (Verschattung)
######
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
Tibber-Invite (100% Öko-Strom + 50€ Bonus)