NEWS
Grafana - Stromzähler nachbauen
-
@meister-mopper mache ich genauso, dh die neg. Werte werden in pos. Werte umgerechnet, es geht mir um die Summen wieviel Bezug bzw. Lieferung stattgefunden hat.
Aus pos. Werte wird im Grafana ein Minuswert erzeugt, völliger quatsch. Aber wo liegt der Fehler?du siehst am Graph vom ioBroker die pos. Werte, da müsste im Grafana dann die Summe berechnet werden. Soweit klar, raus kommt aber unsinnige Werte und auch Minus.
-
@humidor sagte in Grafana - Stromzähler nachbauen:
Aber wo liegt der Fehler?
Okay, das sind zwei verschiedene Ausgangslagen und ein Missverständnis.
Ich visualisiere bei dem täglichen Verbrauch im letzten Monat sowohl für den Tagesbezug als auch den Tagesverbrauch anwachsende Datenpunkte (Stromzähler und selbst berechneter Verbrauchszähler).
-
@meister-mopper hmm
range(start: -1mo, stop: v.timeRangeStop)
das ist dann das -1mo, wie sage ich ihm von 0:00 - 23:59? also 1 Tag?
und das summiert wird, ist aberdifference() |> aggregateWindow(every: 1d, fn: sum, timeSrc: "_start")
fn: sum oder nicht?
welche Rolle spielt das difference? -
hätte ev. jemand die richtigen Settings um die den Wert im Grafana zu summieren?
-
@humidor
Habe da einiges bei mir gemacht um solche Sachen darzustellen.
Um dir helfen zu können, muss man aber wissen wie (und wie oft du dir Rohdaten loggst.)
Sind es Leistungen oder Zählerstände?Wenn du Leistungen aufsummieren willst, kommt es darauf an, wie oft du die loggst
difference() |> aggregateWindow(every: 1d, fn: sum, timeSrc: "_start")
Das hier macht nur Sinn, wenn du "Zählerstände loggst....
-
@mickemup danke dir!
das sind Werte die per Mqtt einlese
mW ist Mqtt Event gesteuert, dh keine fixe Abfragezeit, der Timestamp könnte da eine Auskunft geben -
@humidor
OK das heisst es sind Leistungswerte?
Um Energie zu erhalten, muss man das Integrieren.
Das kann man "grob" im Grafana machen.Die saubere Lösung wurde aber schon hier beschrieben.
@lesiflo hat das im Post von 13.Okt als Blockly aufgezeigt...
Kannst du sagen wie oft die Werte in Influx geloggt werden und loggst du nur Veränderungen oder jeden mqtt Wert?
evtl Printscrren? -
@mickemup Ja, momentane Leistungswerte
das ist was ich aus dem System per Mqtt raus bekomme:
die Werte kommen jede Sekundegibt zwar auch die Möglichkeit per Modbus direkt auf den Zähler zu gehen, aber die Register scheinen nicht zu stimmen, da kommen oft utopische Werte rüber.
-
Ok probier mal das:
import "date" import "timezone" option location = timezone.location(name: "Europe/Madrid") from(bucket: "iobroker_YOURBUCKET") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "YOURdatapoint") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: 1m, fn: mean, timeSrc: "_start") |> aggregateWindow(every: 1h, fn: mean, timeSrc: "_start") |> aggregateWindow(every: 1d, fn: sum, timeSrc: "_start")
aja und kommen die Daten immer oder nur bei Veränderung
und loggst du immer oder nur bei Veränderung? -
@mickemup standard Einstellung von influxdb
-
hab mal diesen Wert genommen: Power (ist ein Plus/Minus Wert)
das wird aber wenig Sinn machen, verm. muss ich getrennt für Plus und Minus Werte hier loggen.
-
@humidor
Du hast ja gesagt, dass du Dps für Einspeisung und Bezug separat hast.
Diese müsstest du natürlich auch so loggen.Falls du denn generellen loggst, hast du Einfach eine Netto Bilanz...hast du überhaupt ein PV Anlage?
Aber die die 12 KW (Ich nehme an Bezug) machen wohl schon Sinn, wenn man mit deinem INFLUX Plot vergleichtHast du erst Daten von heute gesammelt?
Falls nicht, musst du mal die Tiemrange in deinem Panel erhöhen
Schreib mal beim zweiten "Printscreen" unter Query Options:
Relative time now/M
Time shift 0M/MUnd nimm mal Barchart
Sobald du mit dem ersten Plot zufrieden bist, kann man anschliessend noch die Wochen/Jahressummaries erstellen.
Dies ist dann nur noch ein kleiner Schritt -
@humidor
OK das passtWenn die Datenpunkte regelmässig beschrieben werden, wie du ja gesagt hast, dann stimmt auch die "Pseudointegrierung" in Grafana
-
@humidor Sry für die vielen Fragen, aber hier hättest du ja unter Energy: Forward einen Datenpunkt, welche die Energie liefert...
Wird der jeden Tag genullt oder erhöht der sich kontinuirlich? -
@mickemup sry, war abgelenkt, hatte zuviel zu tun...
ich denke das sind Summen:
getrennt Bezug u Lieferung habe ich -
@humidor
OK also bräuchtest du gar keinen Stromzähler nachbauen...
Den Strombezug vom Netz eines Tages kriegst du so raus:import "date" import "timezone" option location = timezone.location(name: "Europe/Madrid") from(bucket: "DEIN BUCKET") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "DEIN BEZUGSZAEHLER") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start") |> difference()
Hier nimmst du einfach immer den letzten Zählerstand eines Tages und bildest dann die Differenz zum Zählerstand vom Vortag.
Somit Hast du nachher den Strombezug pro Tag.
Passt das so?Falls du deinen "Hausverbrauch" wissen willst, musst du noch dazuzählen wieviel von deinem Solarstrom du selbst verbraucht hast.
Ich hab das bei mir so dargestellt (Monatsstatistiken)