@ChrisXY Ich mache es so: Merke den Sollzustand in Datenpunkten oder Variablen und bei Netzspannungswiederkehr wird verzögert gesendet, wenn der Sollzustand "ein" ist.
"Heizventil" enthält den Sollzustand.
// Heizaktor für Auf-/Zu-Ventil ansteuern // no = Ventil stromlos offen var no = false; // Raumkurzname am Anfang des Datenpunktnamen und als JS-Gruppenname var raum = name.split(".")[2]; var actid = getIdByName(raum + ".Heizaktor-Ein"); var ventid = getIdByName(raum + ".Heizventil"); var netid = getIdByName("USV.Netz"); var net = getState(netid).val; var vent = getState(ventid).val; var act = getState(actid).val; var timer1 = null; var timer5 = null; function actor() { var y = vent; if(no) y = !vent; if(act === y) { // Ist == Soll if(timer1) clearTimeout(timer1); if(timer5) clearTimeout(timer5); } else if(net) { // Ist != Soll und Netz vorhanden setState(actid, y); timer1 = setTimeout(function() {setState(actid, y);}, 1000); timer5 = setTimeout(function() {setState(actid, y);}, 5000); } } actor(); // script start on(ventid, function(dp) { vent = dp.state.val; actor(); }); on(netid, function(dp) { net = dp.state.val; act = false; // Aktor ist nach Netzausfall aus if(net) setTimeout(actor, 10000); // Netzwiederkehr }); on({id: actid, ack: true}, function(dp) { // Aktor-Zustand bestätigt act = dp.state.val; // Ist actor(); });