NEWS
InflusDB2: Offset für to()
-
Hallo
Ich bin gerade dabei mit Influx 2.7.1 meine ersten Erfahrungen zu sammeln. Ich möchte dabei die Energie einer Leistungskurve von einem Balkonkraftwerk tageweise ausrechnen. Anschließend soll dies in einer Datenbank geschrieben werden.
Am Anfang hatte ich das Problem, dass bei der Abfrage als Zeitstempel immer 0:00:00 Uhr vom Foletag genommen wurde. Dies konnte ich mit einem Offset von 1s auf 23:59:59 hin bekommen.
Leider werden die Werte aber im Bucket "Test" wieder mit 0:00:00 Uhr geschrieben. Wie bekomme ich hier einen Offset von 1s hin?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.Balkonkraftwerk.Leistung_gespart") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow( every: 1h, fn: (tables=<-, column) => tables |> integral(unit: 1h) |> map(fn: (r) => ({r with _value: r._value / 1000.0})), ) |> aggregateWindow(fn: sum, offset: -1s, every: 1d) |> to( bucket: "Test", fieldFn: (r) => ({"kwH": r._value}) )
Ergebnis Abfrage
Ergebis "Test" Bucket
Gruß Hendrik
-
@hendrik-gr-austing sagte in InflusDB2: Offset für to():
Ergebis "Test" Bucket
Zeig mal die konkrete Abfrage, die zu diesem Ergebnis führt.
-
from(bucket: "Test") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Balkonkraftwerk.Leistung_gespart") |> filter(fn: (r) => r["_field"] == "kwH") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: "mean")
-
@hendrik-gr-austing sagte in InflusDB2: Offset für to():
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
Du müsstest diese Zeile weglassen, um das "unverfälschte" Ergebnis zu bekommen.
-
Danke, super, hat geklappt