[gelöst] Mittelwert mit logProxy

Begonnen von Nobbynews, 25 Dezember 2019, 10:02:44

Vorheriges Thema - Nächstes Thema

Nobbynews

Guten Morgen,

auch wenn Weihnachten ist, habe ich eine Frage zu logProxy:

Über einen Shelly Plug lasse ich den Stromverbrauch meines Kühlschrankes messen und speichere mir einmal täglich den Verbrauch in einer Logdatei ab. Daraus erstelle ich mir ein Plot.
Zusätzlich wollte ich mir jetzt über logProxy gem. Wiki eine horizontale Linie als Mittelwert einzeichnen lassen.
Funktioniert auch.
Nur leider ist der ermittelte Mittelwert nicht korrekt.
Es scheint so, als wenn der Mittelwert nur mit einer Nachkommestelle der Verbrauchsdaten aus der Logdatei ermittelt wird.

Hier die vom Plot verarbeiteten Daten:


get lp CURRENT INT 2019-11-24 2020-06-30 FileLog:Tagesverbrauch1:4:Shelly1.Verbrauch ConstY:$data{avg1}

2019-11-24_07:07:50 0.038599999999997
2019-11-24_23:59:00 0.101
2019-11-25_23:59:00 0.1351
2019-11-26_23:59:00 0.148099999999999
2019-11-27_23:59:00 0.146100000000001
2019-11-28_23:59:00 0.151200000000001
2019-11-29_23:59:00 0.1531
2019-11-30_23:59:00 0.142999999999999
2019-12-01_23:59:00 0.134499999999999
2019-12-02_23:59:00 0.1271
2019-12-03_23:59:00 0.1364
2019-12-04_23:59:00 0.129300000000001
2019-12-05_23:59:00 0.126100000000001
2019-12-06_23:59:00 0.1287
2019-12-07_23:59:00 0.140899999999998
2019-12-08_23:59:00 0.146599999999999
2019-12-09_23:59:00 0.139800000000001
2019-12-10_23:59:00 0.125599999999999
2019-12-11_23:59:00 0.1332
2019-12-12_23:59:00 0.125100000000002
2019-12-13_23:59:00 0.1242
2019-12-14_23:59:00 0.1309
2019-12-15_23:59:00 0.1325
2019-12-16_23:59:00 0.128099999999998
2019-12-17_23:59:00 0.1411
2019-12-18_23:59:00 0.128499999999999
2019-12-19_23:59:00 0.143099999999999
2019-12-20_23:59:00 0.132600000000002
2019-12-21_23:59:00 0.135400000000001
2019-12-22_23:59:00 0.1463
2019-12-23_23:59:00 0.1492
2019-12-24_23:59:00 0.1426
#4:Shelly1.Verbrauch
2019-11-24 0.1
2020-06-30 0.1
#ConstY:$data{avg1}


Das erzeugte Plot habe ich im Anhang beigefügt.

Eigentlich liegt der Durchschnittswert bei Handrechnung bei ca. 0,133.
Über sprintf habe ich mal 3 Nachkommastellen erzeugt, was aber nur zur Ausgabe von 0.100 geführt hat. Also hat das Ergebnis der Mittelwertbildung auch nur 1 Nachkommastelle.

Daher meiner Frage:
Wie kann ich die Zahl der Nachkommastellen bei der Berechnung der Mittelwertes mit $data{avg1} erhöhen?

Schöne restliche Feiertage....

Norbert

justme1968

#1
das hat nichts mit logProxy zu tun. der die avgX werte werden vom jeweiligen log device erzeugt. bei dir ist das FileLog.

und da wird bei der berechnung nach der ersten dezimalstelle abgeschnitten:1067     $data{"avg$j"} = $cnt[$i] ? sprintf("%0.1f", $sum[$i]/$cnt[$i]) : 0;

ich denke es wäre schick oder auf zwei oder drei stellen zu gehen und zu runden. vielleicht in abhängigkeit von der große des wertes. also z.b. bis 1 auf drei stellen, bis 10 auf zwei und darüber auf eine. aber das müßte rudi machen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Zitatich denke es wäre schick oder auf zwei oder drei stellen zu gehen und zu runden. vielleicht in abhängigkeit von der große des wertes. also z.b. bis 1 auf drei stellen, bis 10 auf zwei und darüber auf eine. aber das müßte rudi machen.
Jawohl.
Eingecheckt.

justme1968

sehr brav :)

vielleicht wäre es gut noch den absolut wert zur stellen bestimmung zu verwenden sonst geht es bei negativen zahlen nicht.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig


Nobbynews

Danke für den schnellen Support.
Funktioniert.

Norbert