FHEM Forum

FHEM => Frontends => SVG/Plots/logProxy => Thema gestartet von: Nobbynews am 25 Dezember 2019, 10:02:44

Titel: [gelöst] Mittelwert mit logProxy
Beitrag von: Nobbynews am 25 Dezember 2019, 10:02:44
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
Titel: Mittelwert mit logProxy
Beitrag von: justme1968 am 25 Dezember 2019, 12:00:39
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.
Titel: Antw:Mittelwert mit logProxy
Beitrag von: rudolfkoenig am 25 Dezember 2019, 19:53:27
Zitat
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.
Jawohl.
Eingecheckt.
Titel: Antw:Mittelwert mit logProxy
Beitrag von: justme1968 am 25 Dezember 2019, 19:57:38
sehr brav :)

vielleicht wäre es gut noch den absolut wert zur stellen bestimmung zu verwenden sonst geht es bei negativen zahlen nicht.
Titel: Antw:Mittelwert mit logProxy
Beitrag von: rudolfkoenig am 25 Dezember 2019, 20:06:17
Das ist korrekt.
Titel: Antw:Mittelwert mit logProxy
Beitrag von: Nobbynews am 26 Dezember 2019, 07:13:21
Danke für den schnellen Support.
Funktioniert.

Norbert