Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Ganz einfache Abschaltverzögerung für Anfänger

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Ganz einfache Abschaltverzögerung für Anfänger

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tristan last edited by

      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
          }
      });
      
      
      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      457
      Online

      31.9k
      Users

      80.2k
      Topics

      1.3m
      Posts

      1
      1
      308
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo