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.
    • P
      passuff last edited by

      Sorry, mein Fehler. Funktioniert tadellos.

      Danke dafür!

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

        Ich bekomme im Schnitt alle 2-3 Tage eine "wieder erreichbar" Meldung. Laut Aufzeichnung kannn ich aber nicht erkennen, dass sich am PingStatus etwas geändert hat.
        Jemand eine Idee?

        Code:


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

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

                                  672
                                  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