Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. "entprellen" eines States

    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

    "entprellen" eines States

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @passuff last edited by

      @passuff sagte in "entprellen" eines States:

      } else clearTimeout(timer);
      else clearTimeout(timer);
      

      Das zweite else ... muss raus.
      Bitte Jacascript-Code in Code tags posten !

      1 Reply Last reply Reply Quote 0
      • P
        passuff last edited by

        Sorry, da komme ich nicht weiter:

        const idPing = "ping.0.IoBroker-VM-Debian.192_168_178_50"/*Rainyman*/;
         
        var timer = null;
         
        on({id: idPing, val: true}, function() {
            if(!timer) {
            sendTo('pushover.0', 'Rainyman 192.168.178.50 wieder erreichbar');
            setState("CalcVal.0.Szenen.Dachfensterautomatik"/Dachfensterautomatik/, true);
            console.log('Rainyman 192.168.178.50 wieder erreichbar');
        } else clearTimeout(timer);
               timer = setTimeout(function() {
               sendTo('pushover.0', 'Fehler: Rainyman 192.168.178.50 nicht erreichbar');
               setState("CalcVal.0.Szenen.Dachfensterautomatik"/*Dachfensterautomatik*/, false);
               setState("hm-rpc.0.OEQ1301523.1.LEVEL"/*HM-LC-Bl1PBU-FM OEQ1301523:1.LEVEL*/, 0);
               //console.log('Fehler: Rainyman 192.168.178.50 nicht erreichbar');
               timer = null;
            }, 5*60*1000);
         });
        
        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @passuff last edited by paul53

          @passuff
          Funktioniert es so nicht ? Sollte eigentlich. Damit die Struktur zu erkennen ist:

          const idPing = "ping.0.IoBroker-VM-Debian.192_168_178_50"/*Rainyman*/;
           
          var timer = null;
           
          on({id: idPing, val: true}, function() {
             if(!timer) {
                 sendTo('pushover.0', 'Rainyman 192.168.178.50 wieder erreichbar');
                 setState("CalcVal.0.Szenen.Dachfensterautomatik"/*Dachfensterautomatik*/, true);
                 console.log('Rainyman 192.168.178.50 wieder erreichbar');
             } else clearTimeout(timer);
             timer = setTimeout(function() {
                 sendTo('pushover.0', 'Fehler: Rainyman 192.168.178.50 nicht erreichbar');
                 setState("CalcVal.0.Szenen.Dachfensterautomatik"/*Dachfensterautomatik*/, false);
                 setState("hm-rpc.0.OEQ1301523.1.LEVEL"/*HM-LC-Bl1PBU-FM OEQ1301523:1.LEVEL*/, 0);
                 //console.log('Fehler: Rainyman 192.168.178.50 nicht erreichbar');
                 timer = null;
             }, 5*60*1000);
          });
          
          P 1 Reply Last reply Reply Quote 0
          • P
            passuff @paul53 last edited by

            @paul53

            Nein, funktioniert leider nicht:

            00:00:23.053	error	javascript.0 script.js.common.Sonstige.Überwachung_Rainyman_Kopieren compile failed:
             at script.js.common.Sonstige.Überwachung_Rainyman_Kopieren:8
            
            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @passuff last edited by paul53

              @passuff
              In Zeile 8 ist der Kommentar(Name) falsch eingebaut. Ich habe es oben korrigiert.

              1 Reply Last reply Reply Quote 0
              • P
                passuff last edited by

                Super, vielen Dank!

                1 Reply Last reply Reply Quote 0
                • P
                  passuff last edited by

                  @paul53 Bei neustart des Skripts wird einmalig die Bedingung " if(!timer)" wahr un somit eine pushover abgesetzt. Hast du eine Lösung dafür?

                  const idPing = "ping.0.IoBroker-VM-Debian.192_168_178_50"/*Rainyman*/;
                   
                  var timer = null;
                   
                  on({id: idPing, val: true}, function() {
                     if(!timer) {
                         sendTo('pushover.0', 'Rainyman 192.168.178.50 wieder erreichbar');
                         console.log('Rainyman 192.168.178.50 wieder erreichbar');
                     } else clearTimeout(timer);
                     timer = setTimeout(function() {
                         sendTo('pushover.0', 'Fehler: Rainyman 192.168.178.50 nicht erreichbar');       setState("hm-rpc.0.OEQ1301523.1.LEVEL"/*HM-LC-Bl1PBU-FM OEQ1301523:1.LEVEL*/, 0);
                         //console.log('Fehler: Rainyman 192.168.178.50 nicht erreichbar');
                         timer = null;
                     }, 5*60*1000);
                  });
                  
                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @passuff last edited by

                    @passuff
                    In Zeile 3 den Timer setzen

                    var timer = setTimeout(function() {}, 0);
                    
                    1 Reply Last reply Reply Quote 0
                    • P
                      passuff last edited by

                      Das ging schnell. Danke!

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

                        @passuff
                        Was macht das

                        setState("hm-rpc.0.OEQ1301523.1.LEVEL"/*HM-LC-Bl1PBU-FM OEQ1301523:1.LEVEL*/, 0);
                        

                        in dem Skript ?

                        P 1 Reply Last reply Reply Quote 0
                        • P
                          passuff @paul53 last edited by

                          @paul53 schloss das Dachfenster.
                          Gibt es jetzt aber nicht mehr. Es wird lediglich ein Logik DP geswitched welcher nun in einem externen Dachfensterlüftungsskript ausgewertet wird.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          490
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

                          3
                          23
                          1768
                          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