NEWS
[gelöst] on Methode wird nicht ausgeführt
-
Hallo zusammen,
Ich poste hier direkt mal den ganzen Code.
Ich möchte unten sobald der Status gesetzt wird eine Nachricht bekomme. Als erstes im Log und später per Telegram.
Das Problem hier ist das ich den Eintrag im Log nicht sehe. Ich habe in der Methode auch schon versucht mit direkt eine Nachricht zu senden.
Ich bin mir sicher die Methode wird nicht ausgeführt.
Der Status oben wird gesetzt und zurüc gesetzt. Habe mir das ins Vis gelegt und kann es dort beobachten.
Sieht jemand mein Fehler?
createState("RaumklimaBerechnung.Wohnzimmer.Lueften" , false, { read: true, write: true, desc: "", type: "boolean", def: 0 }); schedule("* * * * *", function () { var ra = getState("xxx").val; var ri = getState("xxx").val; if (ri > (ra+1)) { setState("RaumklimaBerechnung.Wohnzimmer.Lueften",true); } if (ri < (ra)) { setState("RaumklimaBerechnung.Wohnzimmer.Lueften",false); } }); //Telegram Nachicht senden on({id: "RaumklimaBerechnung.Wohnzimmer.Lueften", val: true}, function (obj) { console.log("Telegram Lüften versenden"); });
-
Hallo,
ich empfehle dir, den langen ID-Namen in eine Konstante zu packen. Der ändert sich ja nicht und so kannst du den Code übersichtlicher machen und eine Fehlerquelle ausschließen. Denn ich glaube, hier liegt auch das Problem.
Während createState() automatisch die Instanz des Javascript-Adapters auswählt, in der das Skript abgespeichert wurde, braucht on() den Adapternamen und die Instanz immer in der ID.
const idLueften = "javascript." + instance + ".RaumklimaBerechnung.Wohnzimmer.Lueften"; createState(idLueften, false, { read: true, write: true, desc: "", type: "boolean", def: 0 }); schedule("* * * * *", function() { var ra = getState("xxx").val; var ri = getState("xxx").val; if (ri > (ra + 1)) { setState(idLueften, true); } if (ri < (ra)) { setState(idLueften, false); } }); //Telegram Nachicht senden on({id: idLueften, val: true}, function(obj) { console.log("Telegram Lüften versenden"); });
Gruß
Pix
PS: Oder ändere ergänze einfach deinen Code um die Instanz in der on()-Funktion (hier als Beispiel mit Instanz 0)
!
//Telegram Nachicht senden on({id: "javascript.0.RaumklimaBerechnung.Wohnzimmer.Lueften", val: true}, function (obj) { console.log("Telegram Lüften versenden"); }); !