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 paul53

      @passuff sagte in "entprellen" eines States:

      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);

      Was soll das für Code sein ? Javascript ist es nicht.

      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);
      
      1 Reply Last reply Reply Quote 0
      • P
        passuff last edited by passuff

        @paul53 sagte in "entprellen" eines States:

        Was soll das für Code sein ? Javascript ist es nicht.

        ja, da kannst du recht haben. Ich hatte es auch so wie du proiert, doch dann bekam ich einen Fehler beim compile:

        javascript.0 script.js.common.Sonstige.Überwachung_Rainyman_Kopieren compile failed:
         at script.js.common.Sonstige.Überwachung_Rainyman_Kopieren:8
        
        


        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);
        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;
        }, 5601000);
        });

        paul53 1 Reply Last reply Reply Quote 0
        • 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

                              887
                              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