Grafana und influxDB Datumsproblematik

Ich versuche meinen Stromverbrauch und die Stromerzeugung meines BKW in Grafana darzustellen. Die Werte stimmen soweit nur leider sind sie dem falschen Tag zugeordnet. Ich würde, wenn dies dann mal endlich richtig angezeigt wird auch gerne eine MonatsAnzeige und Jahresanzeige haben, aber ich scheitere ja schon bei der richtigen Tagesanzeige.

Füge ich dem FLUX-Code folgende Zeilen hinzu

import "timezone"
option location = timezone.location(name: "Europe/Berlin")

dann wird aus 1:00Uhr 0:00Uhr, aber das Datum ist in Wirklichkeit trotzdem ein Tag zu weit.
Die Werte die im Screenshot beim 01.03. stehen gehören zum 29.02… Die vom 29.02. gehören zum 28.02. etc.
Hat jemand eine Idee wie ich aus den Datumsanzeigen jeweils einen Tag abziehen kann?

//import "timezone"
//option location = timezone.location(name: "Europe/Berlin")
from(bucket: "homeassistant")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "kWh")
  |> filter(fn: (r) => r["domain"] == "sensor")
  |> filter(fn: (r) => r["entity_id"] == "stromverbrauch_gesamt" or r["entity_id"] == "solarproduktion_gesamt")
  |> filter(fn: (r) => r["_field"] == "value")
  |> aggregateWindow(every: 1d, fn: spread, createEmpty: false)

Danke
Claudius

Moin,

ich habe kein BKW, aber wenn ich meinen Stromzähler auswerte, dann könnte das so aussehen.


Die query dazu

import "timezone"
option location = timezone.location(name: "Europe/Berlin")
from(bucket: "home_assistant")
  |> range(start: -7d, stop: now())
  |> filter(fn: (r) => r["_measurement"] == "kWh")
  |> filter(fn: (r) => r["_field"] == "value")
  |> filter(fn: (r) => r["domain"] == "sensor")
  |> filter(fn: (r) => r["entity_id"] == "hichi_sma_zahler_sml_total_kwh")
  //|> set(key: "_field", value: "Tag")
  |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
  |> difference()

VG
Bernd

P.S.: wenn Du auf der x-Achse etwas anderes haben möchtest, dann probier mal etwas mit den Einstellungen bei time siehe,

Ich schau mir Deines nochmal in Ruhe ganz genau an.
Vielen Dank.

Mein Problem ist jedoch nicht die Formatierung, sondern der Umstand, dass er die Werte vom 01.03. unter dem Datum 02.03. und die von 21.02. unter dem Datum vom 22.02. anzeigt.
In der InfluxDB stehen die Werte mit UTC Zeit und in DE endet dann nach UTC-Zeit der Tag immer um 1Uhr des Folgetages. wenn er dann die Differenz bildet zwischen „Vortag“ und aktuellem Tag“ dann zeigt er den falschen Tag als Ergebnis an.
Mit meiner Zeitzoneneinstellung bekomme ich es hin, dass aus 1:00 korrekt 0:00 macht, jedoch gehört 0:00 zum neuen Tag und nicht zum alten.
Die Werte vom 01.03., verglichen mit den Tageswerten im EnergyDashboard von HA, veröffentlicht er vom 02.03. 0:00 in grafana und somit steht dort „Werte vom 02.03. obwohl es sich um Werte vom 01.03. handelt.

Aber vielleicht sehe ich ein Unterschied in deinem Code zu meinem und kann da einen Fehler bei mir finden.

Warum schreibst du die Daten nicht mit der local time in die database? Von wo kommt die UTC Einstellung ?

Das ist ein ganz normal aufgesetzte infkuxDB verbunden mit HA.
Ich habe da keinen Einfluss darauf genommen wie die Daten dort abgelegt werden. Wobei 23Uhr UTC ja 0Uhr momentan in DE bedeuten. Also rechnet grafana oder influxDB ja mit dem Code richtig. Das Ergebnis wird halt ausgegeben als
Wert von heute 0Uhr obwohl das der Wert von dem gestrigen Tag ist.

Ich suche also eine Möglichkeit in der Ausgabe der X-Achse eine Zeiteinheit zurück zu gehen.

Bei Monats oder Jahresauswertungen wäre es ja auch flach. Der Differenzwert würde am 01.03. 0Uhr ausgegeben werden obwohl das der Februarwert ist, der da ermittelt wurde.

Moin,

deswegen muss man ja auch die ersten beiden Zeilen mit angeben, damit man die Deutsche Zeit bekommt.
Hast Du mal die Abfrage, angepasst an Deine Gegebenheiten, ausprobiert?

Das ist Standard in influx, denn so sind die Daten einheitlich, und durch Setzen der location kann man dann die korrekten Uhrzeiten je nach Lokation anpassen.

VG
Bernd

das wars …

super vielen Dank.

Sorry, dass ich mich so spät erst melde. Musste eine ZigBee-Steckdose Unterputz einbauen und das war eine heftige Fummelei :flushed: