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. [Gelöst] Verständnis frage : Timeouts innerhalb Funktionen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[Gelöst] Verständnis frage : Timeouts innerhalb Funktionen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 3 Kommentatoren 931 Aufrufe
  • Ä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.
  • DutchmanD Offline
    DutchmanD Offline
    Dutchman
    Developer Most Active Administrators
    schrieb am zuletzt editiert von
    #1

    Hi,

    Kurz ne frage an die Profis.

    Ich hatte ein script mit trigger und if-then Kontrolle nach einem bestimmten stats, wen ja eine function welche mit einem time-out nach 30 Minuten das system anschaltet.

    Diesen timeout habe ich in die function hinterlegt, das clear time-out in der If-Then abfrage.

    Bei true : starte function, innerhalb der Funktion ein time-out und dan schalten.

    Bei False : stoppe de timer

    Stimmt es das der time-out welcher in de function gesetzt wird nicht ausgeschaltet wird wen ich den clear time-out ausserhalb der function wieder bei der IF-Then abfrage triggere ?

    Es ist mir aufgefallen das obwohl die if-abfrage FALSE war die Schaltung trotzdem erfolgte.

    ~Dutch

    1 Antwort Letzte Antwort
    0
    • Jey CeeJ Online
      Jey CeeJ Online
      Jey Cee
      Developer
      schrieb am zuletzt editiert von
      #2

      Kannst du mal deinen Code zeigen?

      Ein Timer sollte sich immer innerhalb eines Skripts löschen lassen. Vorausgesetzt er hat einen eindeutigen Namen.

      Persönlicher Support
      Spenden -> paypal.me/J3YC33

      1 Antwort Letzte Antwort
      0
      • BuZZyB Offline
        BuZZyB Offline
        BuZZy
        schrieb am zuletzt editiert von
        #3

        Du solltest eine variable im global scope definieren in welche du später dann das Timeout schreibst - so ist die Timeoutvariable im gesamten Skript verfügbar.

        var timeout1;
        
        function nameFunction() {
            timeout1 = setTimeout( ...... );
        }
        
        on(......) {
            if (.....) {
                nameFunction();
            } else {
                clearTimeout(timeout1);
            }
        }
        
        

        Gruß

        1 Antwort Letzte Antwort
        0
        • DutchmanD Offline
          DutchmanD Offline
          Dutchman
          Developer Most Active Administrators
          schrieb am zuletzt editiert von
          #4

          Hmm der Fehler sitzt wohl an der Tastatur ich werde mein script nochmal gründlich überschauen.

          Da dies ziemlich Gross ist haben ich zum Testen der timer und time reset mal ein einfacheres erstellt mit 2 scenarien:

          • timer_1 wird gestartet innerhalb einer function und reset über eine 2te function

          • Timer_2 wird gestartet innerhalb einer Function und reset innerhalb der IF abfrage

          Beide timer und deren resets funktionieren wie erwartet, da hab ich mich bei dem anderen script wohl in der login verhauen.

          Danke euch !

          Mein Code wer es testen/nachspielen möchte :

          var timeout_2, timeout_1;
          
          /**
           * TimeOut_Test_2 mit reset außerhalb der function
           */
          function TimeOut_Test_2() {
            timeout_2 = setTimeout(function () {
              console.log('TimeOut_Test_2  activiert nach 10 sekunden');
            }, 10000);
          }
          
          /**
           * TimeOut_Test_1 Timer innerhalb einer function
           */
          function TimeOut_Test_1() {
            timeout_1 = setTimeout(function () {
              console.log('TimeOut_Test_1 activiert nach 10 sekunden');
            }, 10000);
          }
          
          /**
           * TimeOut_Test_1 reset innerhalb einer function
           */
          function TimeOut_Test_1_Clear() {
            (function () {if (timeout_1) {clearTimeout(timeout_1); timeout_1 = null;}})();
            console.log('TimeOut_Test_1_deactiviert ');
          }
          
          on({id: "javascript.1.Test_Switch"/*Test_Switch*/, change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            if (getState("javascript.1.Test_Switch").val == true) {
              console.log('Timeout aktiviert starte nach 10 sekunden');
              TimeOut_Test_1();
              TimeOut_Test_2();
            } else {
              (function () {if (timeout_2) {clearTimeout(timeout_2); timeout_2 = null;}})();
              console.log('Timeout deactivieren');
              TimeOut_Test_1_Clear();
            }
          });
          
          

          Log Ausgabe :

          javascript.1	2018-04-25 13:26:08.036	info	script.js.common.palletkachel.Test_Script_Timer: TimeOut_Test_1_deactiviert
          javascript.1	2018-04-25 13:26:08.035	info	script.js.common.palletkachel.Test_Script_Timer: Timeout deactivieren
          javascript.1	2018-04-25 13:26:04.385	info	script.js.common.palletkachel.Test_Script_Timer: Timeout aktiviert starte nach 10 sekunden
          
          
          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

          740

          Online

          32.6k

          Benutzer

          82.3k

          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