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
Komisches verhalten im Light Scheduler
Moderator: Co-Administratoren
-
- 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
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.
-
- 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
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);