NEWS
Grafana, Summierung der letzten Tageswerte
-
Hallo,
ich möchte die täglichen Tageswerte der Regenmenge zu Monatswerten aufsummieren. Die jeweiligen Regenwerte werden fortlaufend am Tag erfasst und am Tagesende auf 0 gesetzt. Mein Problem ist, dass ich bei nachstehender Abfrage offensichtlich auch die jeweiligen Tageswerte aufsummiere und nicht nur den letzten Tageswert.
import "timezone" import "date" option location = timezone.location(name: "Europe/Berlin") from(bucket: "iobroker") |> range(start: date.truncate(t: date.add(d: -6mo, to: today()), unit: 1mo), stop: date.truncate(t: today(), unit: 1mo)) |> filter(fn: (r) => r["_measurement"] == "Regen heute") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: 1mo, fn: sum, createEmpty: true, timeSrc: "_start") |> yield(name: "last")Es hat zwar viel geregnet aber soviel dann doch nicht.

Wo ist mein Fehler in der Abfrage?
-
Hallo,
ich möchte die täglichen Tageswerte der Regenmenge zu Monatswerten aufsummieren. Die jeweiligen Regenwerte werden fortlaufend am Tag erfasst und am Tagesende auf 0 gesetzt. Mein Problem ist, dass ich bei nachstehender Abfrage offensichtlich auch die jeweiligen Tageswerte aufsummiere und nicht nur den letzten Tageswert.
import "timezone" import "date" option location = timezone.location(name: "Europe/Berlin") from(bucket: "iobroker") |> range(start: date.truncate(t: date.add(d: -6mo, to: today()), unit: 1mo), stop: date.truncate(t: today(), unit: 1mo)) |> filter(fn: (r) => r["_measurement"] == "Regen heute") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: 1mo, fn: sum, createEmpty: true, timeSrc: "_start") |> yield(name: "last")Es hat zwar viel geregnet aber soviel dann doch nicht.

Wo ist mein Fehler in der Abfrage?
@andi_grafa sagte in Grafana, Summierung der letzten Tageswerte:
Wie du schon richtig selbst festgestellt hast, summierst du stumpf ALLE Werte. Stattdessen willst du ja nur den jeweilig letzten Wert des Tages nehmen und den im Monat summieren. Das bedeutet, dass du noch ein zusätzliches "aggregateWindow" benötigt, mit dem du den Tages"letzt"wert ermittelst. Versuchs mal so:
import "timezone" import "date" option location = timezone.location(name: "Europe/Berlin") from(bucket: "iobroker") |> range(start: date.truncate(t: date.add(d: -6mo, to: today()), unit: 1mo), stop: date.truncate(t: today(), unit: 1mo)) |> filter(fn: (r) => r["_measurement"] == "Regen heute") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start") |> aggregateWindow(every: 1mo, fn: sum, createEmpty: true, timeSrc: "_start")
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden