NEWS
"entprellen" eines States
-
Sorry, da komme ich nicht weiter:
const idPing = "ping.0.IoBroker-VM-Debian.192_168_178_50"/*Rainyman*/; var timer = null; on({id: idPing, val: true}, function() { if(!timer) { sendTo('pushover.0', 'Rainyman 192.168.178.50 wieder erreichbar'); setState("CalcVal.0.Szenen.Dachfensterautomatik"/Dachfensterautomatik/, true); console.log('Rainyman 192.168.178.50 wieder erreichbar'); } else clearTimeout(timer); timer = setTimeout(function() { sendTo('pushover.0', 'Fehler: Rainyman 192.168.178.50 nicht erreichbar'); setState("CalcVal.0.Szenen.Dachfensterautomatik"/*Dachfensterautomatik*/, false); setState("hm-rpc.0.OEQ1301523.1.LEVEL"/*HM-LC-Bl1PBU-FM OEQ1301523:1.LEVEL*/, 0); //console.log('Fehler: Rainyman 192.168.178.50 nicht erreichbar'); timer = null; }, 5*60*1000); });
-
@passuff
Funktioniert es so nicht ? Sollte eigentlich. Damit die Struktur zu erkennen ist:const idPing = "ping.0.IoBroker-VM-Debian.192_168_178_50"/*Rainyman*/; var timer = null; on({id: idPing, val: true}, function() { if(!timer) { sendTo('pushover.0', 'Rainyman 192.168.178.50 wieder erreichbar'); setState("CalcVal.0.Szenen.Dachfensterautomatik"/*Dachfensterautomatik*/, true); console.log('Rainyman 192.168.178.50 wieder erreichbar'); } else clearTimeout(timer); timer = setTimeout(function() { sendTo('pushover.0', 'Fehler: Rainyman 192.168.178.50 nicht erreichbar'); setState("CalcVal.0.Szenen.Dachfensterautomatik"/*Dachfensterautomatik*/, false); setState("hm-rpc.0.OEQ1301523.1.LEVEL"/*HM-LC-Bl1PBU-FM OEQ1301523:1.LEVEL*/, 0); //console.log('Fehler: Rainyman 192.168.178.50 nicht erreichbar'); timer = null; }, 5*60*1000); });
-
Nein, funktioniert leider nicht:
00:00:23.053 error javascript.0 script.js.common.Sonstige.Überwachung_Rainyman_Kopieren compile failed: at script.js.common.Sonstige.Überwachung_Rainyman_Kopieren:8
-
@passuff
In Zeile 8 ist der Kommentar(Name) falsch eingebaut. Ich habe es oben korrigiert. -
Super, vielen Dank!
-
@paul53 Bei neustart des Skripts wird einmalig die Bedingung " if(!timer)" wahr un somit eine pushover abgesetzt. Hast du eine Lösung dafür?
const idPing = "ping.0.IoBroker-VM-Debian.192_168_178_50"/*Rainyman*/; var timer = null; on({id: idPing, val: true}, function() { if(!timer) { sendTo('pushover.0', 'Rainyman 192.168.178.50 wieder erreichbar'); console.log('Rainyman 192.168.178.50 wieder erreichbar'); } else clearTimeout(timer); timer = setTimeout(function() { sendTo('pushover.0', 'Fehler: Rainyman 192.168.178.50 nicht erreichbar'); setState("hm-rpc.0.OEQ1301523.1.LEVEL"/*HM-LC-Bl1PBU-FM OEQ1301523:1.LEVEL*/, 0); //console.log('Fehler: Rainyman 192.168.178.50 nicht erreichbar'); timer = null; }, 5*60*1000); });
-
@passuff
In Zeile 3 den Timer setzenvar timer = setTimeout(function() {}, 0);
-
Das ging schnell. Danke!
-
@passuff
Was macht dassetState("hm-rpc.0.OEQ1301523.1.LEVEL"/*HM-LC-Bl1PBU-FM OEQ1301523:1.LEVEL*/, 0);
in dem Skript ?
-
@paul53 schloss das Dachfenster.
Gibt es jetzt aber nicht mehr. Es wird lediglich ein Logik DP geswitched welcher nun in einem externen Dachfensterlüftungsskript ausgewertet wird.