Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Timeout / Cleartimeout

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    493

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

Timeout / Cleartimeout

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
6 Beiträge 2 Kommentatoren 1.4k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • P Offline
    P Offline
    Pat
    schrieb am zuletzt editiert von
    #1

    Hallo ihr

    Ich versuche mich gerade einwenig mit Javascript :D

    Ich habe noch ein verständnis Problem gerade mit cleartimeout.

            if (getState(online_1).val || getState(online_2).val) {
                setState(jalosie_s_s7, true);
            } else {
                setState(jalosie_s_s7, false);
                var timeout = setTimeout(function() {
                    sendTo("pushover.0", "send", {
                    message: 'Shelly 2.5 im Büro ist Offline',
                    sound: "siren"
                    });
                }, 20000); //240000
            }
            if (getState(jalosie_s_s7).val) {
                (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
            }
    

    Der Sciptblock funktioniert das ist es jetzt nicht aber kann man den cleartimeout kürzer machen ??
    Habe ihn jetzt 1 zu 1 aus Blockly kopiert.

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      Pat
      schrieb am zuletzt editiert von
      #2

      warum geht nicht nur

      clearTimeout(timeout)
      

      ??

      oder reicht

      clearTimeout(timeout); 
      timeout = null;
      
      paul53P 1 Antwort Letzte Antwort
      0
      • P Pat

        warum geht nicht nur

        clearTimeout(timeout)
        

        ??

        oder reicht

        clearTimeout(timeout); 
        timeout = null;
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #3

        @Pat sagte:

        warum geht nicht nur

        Das genügt zum Stoppen des Timers.

        @Pat sagte in Timeout / Cleartimeout:

        oder reicht

        Die Version braucht man, wenn an anderer Stelle ein laufender Timer abgefragt werden soll.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          Pat
          schrieb am zuletzt editiert von Pat
          #4

          erstmal vielen dank für deine antwort !!

          Ich habe nochmal ein wenig gespiellt und ich bekomme die funktion nicht abgebrochen. Er schreibt immer nach 3sek in die console Hallo.

          createState('Test.Button1', { type: 'boolean', def: false});
          var taster1 = 'javascript.0.Test.Button1';
          
          on({id: taster1, change: "any"}, function (obj) {
          
              if (getState(taster1).val) {
                  var timeout = setTimeout(function() {
                          console.log('Hallo');    
                  }, 3000);  
              } else {
                  clearTimeout(timeout); 
                  timeout = null;      
              }
          });    
          
          1 Antwort Letzte Antwort
          0
          • P Offline
            P Offline
            Pat
            schrieb am zuletzt editiert von
            #5

            ok fehler gefunden.

            Ich habe den "var timeout" im if gesetzt. Als ich ihn im header gesetzt habe ging es.

            createState('Test.Button1', { type: 'boolean', def: false});
            
            var taster1 = 'javascript.0.Test.Button1';
            var timeout
            
            on({id: taster1, change: "any"}, function (obj) {
            
                if (getState(taster1).val) {
            
                    timeout = setTimeout(function() {
                            console.log('Hallo');    
                    }, 3000);  
                } else {
                    clearTimeout(timeout); 
                    timeout = null;      
                }
            });    
            
            P 1 Antwort Letzte Antwort
            0
            • P Pat

              ok fehler gefunden.

              Ich habe den "var timeout" im if gesetzt. Als ich ihn im header gesetzt habe ging es.

              createState('Test.Button1', { type: 'boolean', def: false});
              
              var taster1 = 'javascript.0.Test.Button1';
              var timeout
              
              on({id: taster1, change: "any"}, function (obj) {
              
                  if (getState(taster1).val) {
              
                      timeout = setTimeout(function() {
                              console.log('Hallo');    
                      }, 3000);  
                  } else {
                      clearTimeout(timeout); 
                      timeout = null;      
                  }
              });    
              
              P Offline
              P Offline
              Pat
              schrieb am zuletzt editiert von Pat
              #6

              Ok nochmal eine ergänzung. Wenn der Eingang pulsiert innerhalb der eingestelltenzeit wird der Code trotzdem ausgeführt.

              mit einer nicht timeout abfrage im if hat dies verhindert.

              createState('Test.Button1', { type: 'boolean', def: false});
              
              var taster1 = 'javascript.0.Test.Button1';
              var timeout
              
              on({id: taster1, change: "ne"}, function (obj) {
                  if (getState(taster1).val && !timeout) {
                      timeout = setTimeout(function() {
                              console.log('Hallo');    
                      }, 3000);  
                  } else {
                      clearTimeout(timeout); 
                      timeout = null;      
                  }
              });    
              

              Falls ich ein fehler gemacht habe (z.B formatierung) bitte schreiben da ich noch Java / Javascript neuling bin.

              1 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              370

              Online

              32.5k

              Benutzer

              81.8k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Home
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe