NEWS
Verständnisproblem zu benötigten Datenpunkt Grafana
-
Kannst auch mal auf den Youtube Channel EddyD's SmartHome schauen, er hat gute Videos zu dem Thema.
@andre-r Danke, aufgrund dessen habe ich das alles gemacht. Aber wie gesagt, so ein paar Dinge irritieren mich, oder ich habe einen Fehler drin:
-
Tageswerte der letzten 7 Tage:
import "timezone" // import wegen der Berechnung um 02:00:00 option location = timezone.location(name: "Europe/Berlin") from(bucket: "ioBroker") |> range(start: -7d, stop: now() ) |> filter(fn: (r) => r["_measurement"] == "Vb_Kuehlschrank") |> filter(fn: (r) => r["from"] == "system.adapter.javascript.0") |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start") |> difference()
Werte der letzten 4 Wochen:
import "timezone" // import wegen der Berechnung um 02:00:00 option location = timezone.location(name: "Europe/Berlin") from(bucket: "ioBroker") |> range(start: -1mo, stop: now()) |> filter(fn: (r) => r["_measurement"] == "Vb_Stromzaehler") |> filter(fn: (r) => r["from"] == "system.adapter.javascript.0") |> aggregateWindow(every: 1w, offset: -3d, fn: last) |> difference()
Noch Verbrauch über das Jahr mit Werten aus dem Downsampling und der aktuelle Monat aus dem aktuell geschriebenen Daten:
<A> import "date" import "timezone" // import wegen der Berechnung um 02:00:00 option location = timezone.location(name: "Europe/Berlin") from(bucket: "Stromverbrauch") |> range(start: -1y, stop: date.truncate(t: now(), unit: 1mo)) |> filter(fn: (r) => r["_measurement"] == "Stromzaehler") |> aggregateWindow(every: 1mo , fn: last, timeSrc: "_start" ,createEmpty: true ) |> difference() <B> import "timezone" // import wegen der Berechnung um 02:00:00 option location = timezone.location(name: "Europe/Berlin") from(bucket: "ioBroker") |> range(start: -1mo, stop: now()) |> filter(fn: (r) => r["_measurement"] == "Vb_Stromzaehler") |> filter(fn: (r) => r["from"] == "system.adapter.javascript.0") |> aggregateWindow(every: 1mo , fn: last, timeSrc: "_start") |> difference()
MfG Ralf
@spacerx Ich verstehe es einfach nicht und so langsam weiß ich auch nicht was ich noch versuchen kann.
So sieht die Anzeige für heute und diese Woche aus:

Das ist der Code für den Stromverbrauch heute:
import "timezone" // import wegen der Berechnung um 02:00:00 option location = timezone.location(name: "Europe/Berlin") from(bucket: "DBANDY1") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "Drucker_gesamt" or r["_measurement"] == "FeFoTV_gesamt" or r["_measurement"] == "Imac_gesamt" or r["_measurement"] == "Kühlschrank_gesamt" or r["_measurement"] == "Router_gesamt" or r["_measurement"] == "Ventilator_gesamt" or r["_measurement"] == "Smart_Kettle_Pro_gesamt") |> filter(fn: (r) => r["_field"] == "value") |> difference() |> aggregateWindow(every: 24h, fn: sum,createEmpty: true)Die query options sind leer
Das ist der Code für den "Stromverbrauch diese Woche":
import "timezone" // import wegen der Berechnung um 02:00:00 option location = timezone.location(name: "Europe/Berlin") from(bucket: "DBANDY1") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "Drucker_gesamt" or r["_measurement"] == "FeFoTV_gesamt" or r["_measurement"] == "Imac_gesamt" or r["_measurement"] == "Kühlschrank_gesamt" or r["_measurement"] == "Router_gesamt" or r["_measurement"] == "Ventilator_gesamt" or r["_measurement"] == "Smart_Kettle_Pro_gesamt") |> filter(fn: (r) => r["_field"] == "value") |> difference() |> aggregateWindow(every: 1d, offset: -3d, fn: sum,createEmpty: true)In den query options steht now/w drin.
Ich verstehe nicht warum ich hier eine identische Anzeige bekomme?
Nehme ich bei Stromverbrauch heute das "difference()" raus bekomme ich diese Anzeige

Smart Ketle Pro über 700 kWh - ist ja irre
-
@spacerx Ich verstehe es einfach nicht und so langsam weiß ich auch nicht was ich noch versuchen kann.
So sieht die Anzeige für heute und diese Woche aus:

Das ist der Code für den Stromverbrauch heute:
import "timezone" // import wegen der Berechnung um 02:00:00 option location = timezone.location(name: "Europe/Berlin") from(bucket: "DBANDY1") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "Drucker_gesamt" or r["_measurement"] == "FeFoTV_gesamt" or r["_measurement"] == "Imac_gesamt" or r["_measurement"] == "Kühlschrank_gesamt" or r["_measurement"] == "Router_gesamt" or r["_measurement"] == "Ventilator_gesamt" or r["_measurement"] == "Smart_Kettle_Pro_gesamt") |> filter(fn: (r) => r["_field"] == "value") |> difference() |> aggregateWindow(every: 24h, fn: sum,createEmpty: true)Die query options sind leer
Das ist der Code für den "Stromverbrauch diese Woche":
import "timezone" // import wegen der Berechnung um 02:00:00 option location = timezone.location(name: "Europe/Berlin") from(bucket: "DBANDY1") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "Drucker_gesamt" or r["_measurement"] == "FeFoTV_gesamt" or r["_measurement"] == "Imac_gesamt" or r["_measurement"] == "Kühlschrank_gesamt" or r["_measurement"] == "Router_gesamt" or r["_measurement"] == "Ventilator_gesamt" or r["_measurement"] == "Smart_Kettle_Pro_gesamt") |> filter(fn: (r) => r["_field"] == "value") |> difference() |> aggregateWindow(every: 1d, offset: -3d, fn: sum,createEmpty: true)In den query options steht now/w drin.
Ich verstehe nicht warum ich hier eine identische Anzeige bekomme?
Nehme ich bei Stromverbrauch heute das "difference()" raus bekomme ich diese Anzeige

Smart Ketle Pro über 700 kWh - ist ja irre
@damrak2022 habs jetzt auch nochmal getestet
die difference brauchst ja weil du die total werte hast
bei|> aggregateWindow(every: 1d, offset: -3d, fn: sum,createEmpty: true)|> aggregateWindow(every: 7d, fn: sum, createEmpty: false)mein komplett test
from(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "sonoff.0.PC.ENERGY_Total" or r["_measurement"] == "sonoff.0.Server.ENERGY_Total" or r["_measurement"] == "sonoff.0.Whirlpool.ENERGY_Total" or r["_measurement"] == "sonoff.0.Spülmaschine.ENERGY_Total" or r["_measurement"] == "sonoff.0.Kuehlschrank.ENERGY_Total" or r["_measurement"] == "sonoff.0.SonyTV_Wohnzimmer.ENERGY_Total" or r["_measurement"] == "sonoff.0.Sophia.ENERGY_Total" or r["_measurement"] == "sonoff.0.Trockner.ENERGY_Total" or r["_measurement"] == "sonoff.0.waschmaschine.ENERGY_Total") |> filter(fn: (r) => r["_field"] == "value") |> difference() |> aggregateWindow(every: 7d, fn: sum, createEmpty: false)
-
@spacerx Ich verstehe es einfach nicht und so langsam weiß ich auch nicht was ich noch versuchen kann.
So sieht die Anzeige für heute und diese Woche aus:

Das ist der Code für den Stromverbrauch heute:
import "timezone" // import wegen der Berechnung um 02:00:00 option location = timezone.location(name: "Europe/Berlin") from(bucket: "DBANDY1") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "Drucker_gesamt" or r["_measurement"] == "FeFoTV_gesamt" or r["_measurement"] == "Imac_gesamt" or r["_measurement"] == "Kühlschrank_gesamt" or r["_measurement"] == "Router_gesamt" or r["_measurement"] == "Ventilator_gesamt" or r["_measurement"] == "Smart_Kettle_Pro_gesamt") |> filter(fn: (r) => r["_field"] == "value") |> difference() |> aggregateWindow(every: 24h, fn: sum,createEmpty: true)Die query options sind leer
Das ist der Code für den "Stromverbrauch diese Woche":
import "timezone" // import wegen der Berechnung um 02:00:00 option location = timezone.location(name: "Europe/Berlin") from(bucket: "DBANDY1") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "Drucker_gesamt" or r["_measurement"] == "FeFoTV_gesamt" or r["_measurement"] == "Imac_gesamt" or r["_measurement"] == "Kühlschrank_gesamt" or r["_measurement"] == "Router_gesamt" or r["_measurement"] == "Ventilator_gesamt" or r["_measurement"] == "Smart_Kettle_Pro_gesamt") |> filter(fn: (r) => r["_field"] == "value") |> difference() |> aggregateWindow(every: 1d, offset: -3d, fn: sum,createEmpty: true)In den query options steht now/w drin.
Ich verstehe nicht warum ich hier eine identische Anzeige bekomme?
Nehme ich bei Stromverbrauch heute das "difference()" raus bekomme ich diese Anzeige

Smart Ketle Pro über 700 kWh - ist ja irre
@damrak2022 setz mal das difference() nach das aggregieren. und ersetze das sum in AggregateWindow mit last. Dann mal schauen was kommt.
und welche TimeRange hast du Eingestellt? Wenn da nur 24h Daten abgeholt werden kann er nicht eine Woche berechen.
Deshalb so in flux vorgeben:
|> range(start: -7d, stop: now() )Und teste doch mal meine flux Query von weiter oben. Trau dich:blush: