Hallo zusammen,
ich habe ein Update von Node v14 auf v16 gemacht. NPM ging von 6.13 auf 8.19.
Zu meiner Verwunderung, gab es keine größeren Probleme. Allerdings habe ich jetzt Probleme mit meinem Zähler, der den aktuellen Ertrag meines Wechselrichters misst.
Am Wechselrichter ist ein S0Bus, der eben entsprechende Impulse an einen Binäraktor sendet. Dieser sendet im Takt von 5 Sekunden den Wert seines eigenes Zählers. Er zählt also quasi nur seine eigenen Impulse.
Ich habe ein kleines Script, welches dann daraus entsprechend die aktuelle Leistung des Wechselrichters erreichnet. Die Summe ergibt sich aus der Änderung des Zählers innerhalb der letzten 5 Sekunden.
Dieses Konstrukt hat jetzt zwei Jahre absolut perfekt funktioniert. Nun nach den genannten Updates tut es das nicht mehr.
Die Werte werden korrekt angezeigt - springen zwischendurch aber plötzlich nach oben.
Beispiel: aktuelle Leistung Wechselrichter: 1000 Watt
Script errechnet: ca 980 Watt (gibt immer eine leichte Toleranz - stört mich jedoch nicht weiter).
Jetzt kommt die Sonne kurz etwas besser durch, Leistung geht hoch auf 1500 Watt.
Das Script zeigt an: 98XX W
Und springt dann nach kurzer Zeit wieder runter auf den echten Wert - bis ca. 20 Sekunden später das gleiche passiert.
Ich bin leider nur mittelmäßig fit in JS und rechnen liegt mir überhaupt nicht.
Kann mir vielleicht jemand einen Tipp geben?
Anbei das Script
on({ id: 'knx.0.Sensoren.Verbrauchsdaten.Strom_Erzeugung', change: "any" }, function (obj) {
if (getState("knx.0.Sensoren.Verbrauchsdaten.Strom_Erzeugung"/*Strom Erzeugung*/).val > 0) {
var totalSeconds = (Date.now() - obj.oldState.ts) / 1000;
var devil = 3600 * 1000 / (400 * totalSeconds);
setState("javascript.0.Verbrauchszaehler.Stromerzeugung", Math.round(devil));
}
});
Ich danke euch für eure Hilfe