NEWS
Grafana Werte zur gleichen Zeit
-
Welche InfluxDB-Query liegt der Grafana Anzeige zugrunde?
-
@endurance Wenn die Werte nicht synchron in die Grafana Datenbank geschrieben werden, sondern vom iobroker weggeschrieben werden, wie sie anfallen, passiert das.
Du must wahrscheinlich dafür sorgen, dass das Zeug "getaktet" von iobroker geschrieben wird ... Das wird nicht gut mit dem influx-Adapter gehen ... da muss man wahrscheinlich Javascript bemühen, und ggfs auch noch interpolieren zumindest bei Werten, die deutlich seltener einlaufen, als andere ... -
@marc-berg said in Grafana Werte zur gleichen Zeit:
Welche InfluxDB-Query liegt der Grafana Anzeige zugrunde?
from(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.PV.TageszählerWR2") |> filter(fn: (r) => r["_field"] == "value")
from(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.PV.Tageszähler") |> filter(fn: (r) => r["_field"] == "value")
-
Da fehlt die
aggregateWindow (...)
Zeile. Damit kannst du die Datensätze auf die exakt gleiche Zeit "zwingen".
-
@marc-berg
Danke, was gehört zwischen die Klammern? -
Wie oft und wann schreibst du deine Daten in Influx?
mit folgendem Code wird der letzte Wert vom Tag genommen, der Timestamp aber auf Beginn des Tages gelegt.
|> aggregateWindow(every: 1d, fn: last, timeSrc: "_start")
Passt das so?
-
@mickemup said in Grafana Werte zur gleichen Zeit:
folgendem Code wird der letzte Wert vom Tag genommen, der Timestamp aber auf Beginn des Tages gelegt.
nicht wirklich, geschrieben werden die Daten immer um 02:00 Nachts, vom Vortag.
-
Pack mal dies ganz oben in deinen query:
import "date" import "timezone" option location = timezone.location(name: "Europe/Madrid")
und wende das
|> aggregateWindow(every: 1d, fn: last, timeSrc: "_start")
mal auf beide queries an
-
@mickemup hm, leider immer noch nicht ganz
-
@endurance
Kannst du mal im bearbeiten Modus auf Table view gehen?Dies am besten von beiden queries..
Wenn die identisch sind, liegts nicht mehr am query sondern an anderen Darstellungsettingsalso Idee schonmal, probiere
|> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false)
-
Hast Du schon probiert beide Werte in einem Rutsch abzufragen?
from(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.PV.Tageszähler" or r["_measurement"] == "0_userdata.0.PV.TageszählerWR2") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start", createEmpty: false) |> yield(name: "last")
Strom und Spannung werden etwas versetzt gespeichert, jedoch beide Werte gestapelt (macht keinen Sinn, ist nur ein Test für hier)
Die Abfrage für das Beispielbild:
from(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Zaehler.Strom.EVU.ist.U1" or r["_measurement"] == "0_userdata.0.Zaehler.Strom.EVU.ist.I1" ) |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: 10s, fn: mean, createEmpty: false) |> yield(name: "last")
-
@peterfido
Sollte ja keinen Unterschied machen ob in einem oder zwei Queries oder?
Ich denke, dass createEmpty könnte der Schlüssel zum Erfolg sein.
Ist halt ein wenig schwierig zu supporten, wenn man so wenig Infos hat (wie oft wird geloggt usw.)
Zumal ganz am Anfang Bilder von täglichen Logs aufgelistet sind, nachher aber scheinbar DPs angezeigt werden sollen, die nur allle Wochen geloggt werden...