NEWS
Grafana Visualisierung -> Tagesverbrauch
-
Guten tag, ich bin ganz neu hier im Forum und poste mal mein Problem. Ich würde gerne über die Influx DB und darauf aufgesetzt über Grafana eine Visualisierung machen. in SQL wie früher wäre das kein Problem aber mit dem neuen FLUX komme ich garnicht zurecht.
Ich habe in einer DB z.B. ganz simpel Werte vom Stromzähler drin. demnach wieviel Verbrauch am Tag mehrere Datenpunkte. Also auch mal sehr viele und nicht nur einen.
Ich möchte einfach meinen Verbrauch am Tag visualisieren. Also wenn ich morgens 30 KWh hatte und Abends 45 kWh auf dem Zähler habe ich wohl 15kWh am Tag verbraucht. Ich bekomme das einfach nicht hin, bin schon 2 Tage am suchen inkl. ChatGPT.
Mein Gedanke war über FIRST() und LAST() wert von einem Tag zu gehen und darüber die Differenz zu berechnen. Klingt einfach .. bricht mir aber das Genick. Das ich das nachher über mehrere Tage haben möchte soweit will ich gar nicht denken.
Mein Ansatz... zeigt mir auch wunderbar den letzten Stand an jedem Tag an.
import "date" from(bucket: "IR_Lesekopf_Zaehler") |> range(start: date.truncate(t: -7d, unit: 1d), stop: date.truncate(t: now(), unit: 1d)) |> filter(fn: (r) => r._measurement == "Zaehlerstand_Summe_ZU" and r._field == "value") |> aggregateWindow(every: 1d, fn: last)
Statt last kann ich auch first nehmen, der Zeigt mir auch wunderbar den Zählerstand morgens als erstes an. Ich würde aber gerne dei Differenz aus beiden haben.
Kann mir jemand dabei Helfen ?
-
Ich zeige den Tagesverbrauch hiermit an
import "timezone" option location = timezone.location(name: "Europe/Berlin") from(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Energie.PV.Tagesverbrauch" and r["_field"] == "value") |> difference() |> aggregateWindow(every: 1d, fn: sum, timeSrc: "_start")
-
@meister-mopper Hallo, ja super das funktioniert...
Damit ich das verstehe... man berechnet alle Differenzen aus allen Werten und summiert die dann zusammen
-
Die Differenz zwischen Tagesstart und Tagesende.
-
@meister-mopper sagte in Grafana Visualisierung -> Tagesverbrauch:
Die Differenz zwischen Tagesstart und Tagesende.
Im Ergebnis stimmt das zwar, aber @danwir hat schon recht. Es werden zunächst die Differenzen aller Einzelwerte errechnet, danach die Summe aller Differenzen eines Tages.
Man könnte das ganze auch umdrehen:|> aggregateWindow(every: 1d, fn: last, timeSrc: "_start") |> difference()
So wird erst der letzte Wert eines Tages ermittelt ("fn_ last"), um dann die Differenz aus den einzelnen Tageswerten zu berechnen.
-
@marc-berg sagte in Grafana Visualisierung -> Tagesverbrauch:
So wird erst der letzte Wert eines Tages ermittelt ("fn_ last"), um dann die Differenz aus den einzelnen Tageswerten zu berechnen.
Ich lasse den Tagesverbrauch für den jeweils laufenden Monat anzeigen. Mit deiner Variante wird der erste Tag im Monat unterschlagen.
-
JA super dann hab ich das verstanden, Danke euch. Kann man das auch auf Monate anwenden ? hab es genau so versucht klappt aber nicht-
import "date" import "timezone" option location = timezone.location(name: "Europe/Berlin") from(bucket: "IR_Lesekopf_Zaehler") |> range(start: date.truncate(t: -3mo, unit: 1d), stop: date.truncate(t: now(), unit: 1d)) |> filter(fn: (r) => r._measurement == "Zaehlerstand_Summe_ZU" and r._field == "value") |> difference() |> aggregateWindow(every: 1mo, fn: sum)
auch mit Anpassung in der range ... unit: 1mo, klappt es nicht
-
Hier monatlich:
from(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "smartmeter.0.1-0:1_8_0__255.value" and r["_field"] == "value") |> difference() |> aggregateWindow(every: 1mo, fn: sum, timeSrc: "_start")
-
@meister-mopper said in Grafana Visualisierung -> Tagesverbrauch:
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
bei mir ist das ein Monat versetzt.. Hab jetzt schon daten für August drin HAHA
-
@danwir sagte in Grafana Visualisierung -> Tagesverbrauch:
bei mir ist das ein Monat versetzt..
Wie sehen da die query options aus?
-
max data points: 873
min interval: no limit
interval : 3h
relativ Time : 1h
time shift: 1h -
-
mhhh probiere noch was rum, zumindest schon mal auf dem richtigen weg