NEWS
Ganz einfache Abschaltverzögerung für Anfänger
-
Hallo,
ich habe mal meine Abschaltverzögerung für die Gartenbewässerung etwas kommentiert für den Fall, dass ein Anfänger sowas mal braucht. Ist das ok, wenn man sowas Einfaches zur Verfügung stellt?
VG Tristan
idDropdown = "javascript.0.myDropdownBrunnen"; // Ein Dropdownfeld im VIS mit den Werten 0;5;10;15;20 (Minuten) idZiel = "zwave.0.NODE5.SWITCH_BINARY.Switch_1"; // Ein FIBARO Wall Plug var human = true; // Zwischenspeicher ob die Aktion manuell ausgeführt wurde var timer = null; // Timerspeicher für die Abschaltverszögerung on(idDropdown, function (obj) { // Wenn sich am Dropdown der Zustand ändert if(human === true){ // Nur ausführen, wenn manuell ausgelöst human = false; // Für folgende Aktionen human auf false, dasmit das Script weiß, dass es selbst der Auslöser ist //console.log( getState(idDropdown).val ); var zeit = getState(idDropdown).val; // Abschaltverzögerung auslesen und speichern if(timer) clearTimeout(timer); // Wenn schon ein Timer lief, diesen löschen und neu setzen setState(idZiel, true); // Das Gerät einschalten timer = setTimeout(function() { // Abschaltverzögerung setState(idZiel, false); // Gerät verzögert abschalten setState(idDropdown, 0); // Das Dropdown wieder auf 0 setzen }, zeit * 1000 * 60 ); // Verzögerung setTimeout(function(){ // Eine Sekunde verzögert (Antiprellen) human wieder auf true für zukünftige manuelle Eingaben human = true; },1 * 1000); // Verzögerung 1 Sekunde } }); on(idZiel, function(obj) { // Das Gerät ist im VIS direkt auf einen ON/OFF Schalter gelegt, dessen Zustand hier überwacht wird if(human === true){ // Nur ausführen, wenn manuell ausgelöst human = false; // Für folgende Aktionen human auf false, dasmit das Script weiß, dass es selbst der Auslöser ist setState(idDropdown, 0); // Unser Dropdown auf 0 setzen, da der ON/OFF Schalter jetzt Vorrang hat //console.log("ON/OFF gedrückt"); setTimeout(function(){ // Eine Sekunde verzögert (Antiprellen) human wieder auf true für zukünftige manuelle Eingaben human = true; },1 * 1000); // Verzögerung 1 Sekunde } });
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden