Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Script abbrechen wenn innerhalb einer Zeit Bedingung wieder erfüllt

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    Script abbrechen wenn innerhalb einer Zeit Bedingung wieder erfüllt

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

      Hi zusammen!

      Ich hab n kleines Problem und stehe da gerade auf m Schlauch.

      Und zwar prüfe ich mit den Ping-Adapter ob ein Arduino im Netz noch erreichbar ist.

      Jetzt möchte ich falls er nicht mehr erreichbar ist mit einem Script eine Aktion ausführen.

      Jetzt kann es aber vorkommen das der Ping-Adapter ihn kurz als abwesend Registriert und dann gleich wieder als Anwesend.

      Jetzt möchte ich gern dass das Script erst dann ausgeführt wird wenn der Arduino länger als 5 Minuten nicht erreichbar ist.

      Also so würde ich Ihn Triggern, bloß weiß ich jetzt nicht wie ich da nen 5 Minuten-Counter integriere und den ggf abbreche

      on({id: 'ping.0.orangepiplus2e.192_168_178_60', change: 'any'}, function(obj) {
      if ((obj.newState.val === 'false') || (obj.newState.val === false) || (obj.newState.val === 0)) {
              setTimeout(function() {
      
      // Hier nach 5 Minuten "Nicht Erreichbarkeit" Aktion ausführen
      
              }, 36000);
      	log('Homeduino nicht mehr erreichbar.'); 
      }
      });
      
      

      Kann mir da jemand von euch mal etwas helfen? 🙂

      Gruß

      Johnny

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        Das geht mit clearTimeout(timer).

        vat timer = null;
        
        on({id: 'ping.0.orangepiplus2e.192_168_178_60', change: 'any'}, function(obj) {
           if(obj.state.val) {
              if(timer) clearTimeout(timer);
           } else {   
              timer = setTimeout(function() {
                 // Hier nach 5 Minuten "Nicht Erreichbarkeit" Aktion ausführen
                 log('Homeduino nicht mehr erreichbar.');
              }, 300000);  // 5 Minuten
           }
        });
        
        
        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        870
        Online

        32.0k
        Users

        80.5k
        Topics

        1.3m
        Posts

        2
        2
        820
        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