NEWS
Liste aus Temperaturen, Mittelwert wiedergeben [gelöst]
-
Du hattest natürlich recht
Den Datenpunkt noch mal neu gefüllt, jetzt kann ich auch diesen nehmen, an dem Ort wo ich möchte. -
@xbow42
"und so umbauen" ..... wie geht das ????Hat sich erledigt - einfach blind Vielen Dank für die Anleitung
Hier mein Script:
Zu beachten ist, das sich durch die Mittelwertsberechnung bei einer grafischen Darstellung ein Shift ergibt....
-
@Muhagl Ich hab das so gelöst für einen laufenden Durchschnitt für 15min:
-
@paul53
Hallo,
bei mir läuft Dein blockly zum gleitenden Mittelwert seit einiger Zeit ohne Probleme:var Liste, Summe, i, Mittel; // einmalig Liste befüllen Liste = getState("0_userdata.0.Variablen.Lux_Durchschnitt").val; schedule("*/15 * * * * *", async function () { Liste.pop(); Liste.unshift(getState("zigbee.1.04cf8cdf3c7b6097.illuminance").val); setState("0_userdata.0.Variablen.Lux_Durchschnitt"/*Lux_Durchschnitt*/, Liste, true); Summe = 0; for (i = 1; i <= 80; i++) { Summe = (typeof Summe == 'number' ? Summe : 0) + Liste[(i - 1)]; } console.log(('Summe ist ' + String(Summe))); Mittel = Math.round(Summe / 80); setState("0_userdata.0.Variablen.Lux_Durchschnitt_Wert"/*Lux_Durchschnitt_Wert*/, Mittel, true); console.log(('Mittel ist ' + String(Mittel))); });
Neuerdings bekomme ich diesen Fehler:
15:28:30.012 error javascript.0 (10504) at Object.<anonymous> (script.js.common.Verschiedenes.Lux_Durchnitt_berechnen:8:9) 15:28:45.002 error javascript.0 (10504) script.js.common.Verschiedenes.Lux_Durchnitt_berechnen: TypeError: Liste.pop is not a function
Downgrade des javascript Adapters hat nicht geholfen, ebensowenig Neueingabe des scripts.
Was kann ich tun? -
@zahnheinrich
Offenbar enthält der Datenpunkt "0_userdata.0.Variablen.Lux_Durchschnitt" keine Liste mehr.
Welche Version des Javascript-Adpters? In neueren Versionen wurde auf JSON umgestellt, so dass es sein kann, dass die Liste neu befüllt werden muss. Einmalig ausführen:Vorher den Javascript-Adapter aktualisieren.
-
@paul53
Die Listenvariable war schon gefüllt, hatte ich extra abgezählt auf 80 Elemente, aber egal.Nach Neubefüllung mit Deinem blockly geht´s wieder, vielen Dank!
Wäre aufgrund der mir unverständlichen Fehlermeldung vorerst nicht drauf gekommen.
-
@zahnheinrich sagte: Nach Neubefüllung mit Deinem blockly geht´s wieder
Adapter-Version?
-
@paul53
Aktuell javascript 4.11.0, downgrade von 5.2.6
Allerdings auf meinem Produktivsystem mit admin 4.xAuf meinem Testsystem mit admin 5.x und neuesten stable Adapterversionen ging es auch nicht.
-
@zahnheinrich sagte: downgrade von 5.2.6
Deshalb hat es nicht mehr funktioniert: Version 5.2.6 hat ein JSON in den Datenpunkt geschrieben, was für Version 4.11.0 kein Array ist. Mit der Admin-Version hat es nichts zu tun.
-
@paul53
OK, danke für die info.
Wieder etwas dazugelernt