NEWS
Grafana Stromerzeugung / verschwendung summieren
-
hat keiner einen Tipp für mich?
-
@blechbixn der wattwer des shelly hilft dir nihct. du brauchst einen aktuellen verbrauchswert des letzten zeitraums in kWh. sonst musst du ja aggregieren, das setzt aber voraus, dass der 30s-wert der durchschnittswert der letzten 30s ist, damit du daraus die Summe in kWh errechnen kannst.
wenn du die absoluten verbrauchsstände hast, kannst die einfach herausholen:
...
|> filter(fn: (r) => r["aggregate"] == "last")
|> aggregateWindow(every: 1d, fn: first, timeSrc: "_start")
|> difference()gruß,
andre -
@astrakid danke für deinen Beitrag!
Problem ist nur, das der Shelly auf Mqtt läuft & damit nicht in der Cloud ist.
Der Wattwert ist das einzigste was er mir liefertAlso abschreiben, weils nicht anders funktioniert?
Cloud möchte ich ungern aktivieren.Grüße
-
@blechbixn Du hast doch die Wh im Energy Datenpunkt. Die sollten hochzählen und wenn Du die in der Influx speicherst musst Du halt die Differenzen der Zählerstände berechnen. Alternativ habe ich gerade einen Node für NodeRed - für sowas gebastelt: https://forum.iobroker.net/topic/73952/tageszähler-stromverbrauch
Da ist auch ein Blockly von @paul53 - falls Dir das lieber ist.
-
@blechbixn der muss nicht in der cloud sein. weiß nicht, warum shelly den energy-wert nicht hochzählt. mal auf dem shelly direkt geschaut, ob es dafür eine option gibt?
-
@astrakid hab da beim shelly nichts gefunden...
habs jetzt über sourceanalytics gemacht, weiß aber noch nicht wo genau ich deinen code einfügen muss.
So wie ichs aktuell gemacht habe funktionierts leider nichtfrom(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "sourceanalytix.0.shelly__0__SHPLG-S#DD4CA5#1__Relay0__Power.2024.readingCumulative") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: "mean") |> filter(fn: (r) => r["aggregate"] == "last") |> aggregateWindow(every: 1d, fn: first, timeSrc: "_start") |> difference()
edit:
Versuch 2 der mir logisch gewesen wäre funktioniert auch nicht
-
@blechbixn die voraussetzung für meinen codeschnipsel sind abolute zählerwerte - davon wird aus den aggregationsintervall der jeweils letzte wert genommen und die differenz ausgegeben.
was steht in der tabelle von sourceanalytix? -
@astrakid der kumuliert die kWh fürs ganze Jahr, leider gibts da kein Objekt welches die Tageseinspeisung anzeigt.
die 12,1kwh zeigt er mir auch an.. Es fehlt eigentlich nur die Rechnung aktueller wert - wert des vortags in der Nacht
-
@blechbixn du musst einen anderen graphen auswählen. du hast stat ausgewählt, der zeigt nr einen wert an. nimm am besten timeseries fürs erste und als zeitraum dann irgendwas größer 2 tage, um auch zwei werte zu sehen.
-
@astrakid nachtrag: du musst die werte regelmäßig in deine influxdb schreiben, je nachdem wie granular das haben willst. ich schreibe alle 10s einen wert in die DBen und aggregiere später. für die tagesanzeige gehe ich auf minuten-intervalle, für wochen und monats ansichten auf 6h intervalle.