NEWS
Schieberegister für gleitenden Mittelwert Smartmeter
-
Hallo,
der gleitende Mittelwert ist mit blockly möglich. Hiermit kann man z.B. die recht häufigen Smartmeter Werte beruhigen.
Habe 10 Werte angelegt und diese schiebt das Script dann durch bis sie hinten wieder "runterfallen".
-
-
@uwessmarthome das geht viel einfacher mit Listen
die letzten beiden Zeilen können auch noch vereinfacht werden, da gibtes noch einenen nimm den Mittelwert block
-
ja das habe ich am Anfang auch so gemacht, leider ist es von der Messdauer abhängig. Wie ist diese hier definiert? Da geing dann ja nur zeitabhängig.
Bei meiner Lösung ist es zeitlich unabhängig und jerder neue Wert erzeugt auch gleich einen neuen Mittelwert. Bei deiner Lösung wird der Mittelwert nach der Messdauer ezeugt?Grüsse
-
@uwessmarthome sagte: von der Messdauer abhängig. Wie ist diese hier definiert?
Wie man am Vergleich sieht: Anzahl der Werte in der Liste.
@uwessmarthome sagte in Schieberegister für gleitenden Mittelwert Smartmeter:
leider ist es von der Messdauer abhängig.
Der Trigger kann der gleiche wie in Deiner Lösung sein.
-
@uwessmarthome sagte in Schieberegister für gleitenden Mittelwert Smartmeter:
Wie ist diese hier definiert?
Ich habe den gleichen Trigger wie du.
Die Messdauer wird dann über die Anzahl Werte definiert, die ja in einheitlichem Abstand kommen (bei mir in 6 Sekunden Abstand)
Also Mess"dauer" [Anzahl] x6 Sekunden ist Zeit -
@uwessmarthome sagte in Schieberegister für gleitenden Mittelwert Smartmeter:
Bei meiner Lösung ist es zeitlich unabhängig und jerder neue Wert erzeugt auch gleich einen neuen Mittelwert.
Das ist sie nur wenn du sicher stellen kannst das dein Trigger in regelmässigen Abständen aktualisiert wird. Das ist aber nicht immer so. Bei unregelmässigen Triggern wird das Skript aber nur unwesentlich komplexer:
Das Beispiel berechnet den Durchschnitt über die letzte Stunde, wobei bei jeder Wertänderung neu berechnet wird, sprich wenn ein Wert über eine Stunde unverändert bleibt passt der Durchschnitt erst bei der nächsten Änderung. Ansonsten ist egal wie schnell die Wertänderungen herein kommen.
A.
-
@asgothian
Auch eine gute Lösung, danke für diesen guten Vorschlag.Grüsse
-
@homoran sagte in Schieberegister für gleitenden Mittelwert Smartmeter:
@uwessmarthome das geht viel einfacher mit Listen
die letzten beiden Zeilen können auch noch vereinfacht werden, da gibt es noch einenen nimm den Mittelwert block
Ich werde leider noch nicht ganz schlau mit dieser "Listenfunktion".
Wo mache ich einen Denkfehler. Bezug_Test ist einfach ein erstellter number Datenpunkt unter userdata.0., den ich manuell mit einer Zahl belegen kann. Ich dachte es würde nun eine Liste erstellt aus max. 10 Zahlen, wo immer die letzte Zahl neu dazu kommt und die erste gelöscht wird:javascript.0 2022-04-23 10:28:33.771 error (357) at processImmediate (internal/timers.js:464:21) javascript.0 2022-04-23 10:28:33.771 error (357) at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5909:56) javascript.0 2022-04-23 10:28:33.771 error (357) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:567:29) javascript.0 2022-04-23 10:28:33.770 error (357) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1167:38) javascript.0 2022-04-23 10:28:33.770 error (357) at Object.<anonymous> (script.js.common.Energie.Bezug-Einspeise_mittel:8:20) javascript.0 2022-04-23 10:28:33.769 error (357) script.js.common.Energie.Bezug-Einspeise_mittel: TypeError: Cannot read property 'push' of undefined
-
@lobomau Du musst deine Liste schon initialisieren.
Am besten via den Baustein
Ansonsten weiss Blockly nicht das "Ueberschussliste" eine Liste sein soll.
A.
-
Edit: habe es hinbekommen
javascript.0 2022-04-23 13:01:05.561 info (357) script.js.common.Energie.Bezug-Einspeise_mittel: [3,5,7,22,1,-5,66,120,-50] javascript.0 2022-04-23 13:01:01.153 info (357) script.js.common.Energie.Bezug-Einspeise_mittel: [3,5,7,22,1,-5,66,120] javascript.0 2022-04-23 13:00:57.853 info (357) script.js.common.Energie.Bezug-Einspeise_mittel: [3,5,7,22,1,-5,66] javascript.0 2022-04-23 13:00:51.799 info (357) script.js.common.Energie.Bezug-Einspeise_mittel: [3,5,7,22,1,-5] javascript.0 2022-04-23 13:00:48.196 info (357) script.js.common.Energie.Bezug-Einspeise_mittel: [3,5,7,22,1] javascript.0 2022-04-23 13:00:44.491 info (357) script.js.common.Energie.Bezug-Einspeise_mittel: [3,5,7,22] javascript.0 2022-04-23 13:00:41.171 info (357) script.js.common.Energie.Bezug-Einspeise_mittel: [3,5,7]