Komisches verhalten im Light Scheduler

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

Antworten
Klausi1
Beiträge: 51
Registriert: 12.03.2018, 09:53
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Komisches verhalten im Light Scheduler

Beitrag von Klausi1 » 18.09.2019, 21:16

Hi,

ich benutze den den Knoten „Light Scheduler“ mit dem Parameter „when state changes + startup“

Wenn ich das mit debug Teste, kommt entweder True und False und das beim Start nur einmal, so wie gewünscht.
Wenn ich nachfolgende Funktion anhänge und starte, wird der Konten alle 60 Sekunden neu durchlaufen und Duty Circle geht bis auf 70 hoch.
Das Thermostat führt die Befehle korrekt aus.

var AnAus = msg.payload;
var Heizen = context.global.AktHeizperiode;

if (Heizen === false) {
msg.payload = "off";
return msg;}

if (Heizen === true) {
if (AnAus === true) msg.payload = "21";
if (AnAus === false) msg.payload = "17";
return msg;}

Irgendwo ist da der Wurm drin, wer kann mir weiterhelfen
Klausi

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Komisches verhalten im Light Scheduler

Beitrag von hobbyquaker » 18.09.2019, 21:34

Kenne diese Nodes nicht, kann ich also eher nicht helfen. Wenn sich hier niemand findet der helfen kann müsstest Dich an den Entwickler wenden https://github.com/niklaswall/node-red- ... -scheduler und dort mal ein Issue aufmachen.

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Komisches verhalten im Light Scheduler

Beitrag von hobbyquaker » 18.09.2019, 21:37

Ah, beim genaueren Lesen fiel mir doch was ein: Möglicherweise ist das Problem dass Du msg.payload setzt in dem nachfolgenden function Node. Wenn man properties eines Objekts (also in dem Fall die property payload des Objekts msg) setzt dann passiert das "by-reference", kann also möglicherweise auf den vorangegangen Node "zurückwirken". Das lässt sich verhindern indem man die msg "cloned", dann wird die Referenz aufgelöst, probier mal am Anfang Deiner Function folgendes:

Code: Alles auswählen

msg = Object.assign({}, msg);

Klausi1
Beiträge: 51
Registriert: 12.03.2018, 09:53
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Komisches verhalten im Light Scheduler

Beitrag von Klausi1 » 19.09.2019, 19:41

Hi

Super, genau das war es :D

vielen Dank!

Klausi

Antworten

Zurück zu „RedMatic“