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. Wertänderung im Zeitraum überwachen und Aktion ausführen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Wertänderung im Zeitraum überwachen und Aktion ausführen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 3 Kommentatoren 1.1k 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.
  • 0 Offline
    0 Offline
    0018
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich bin auf der Suche nach einer Lösung für mein Vorhaben.

    aktuell habe ich Verbindungsabrüche mit meinem WLAN AP.

    Zu Testzwecken probiere ich nun dieses Workaround. Ich pinge über den Adapter "ping" meinen Router über meinen WLAN AP an.

    Wenn diese Verbindung abbricht möchte ich gerne meinen WLAN AP über den TR-064 neustarten. Dieses soll aber nur durchgeführt werden wenn der Ping über den Zeitraum von 5 min auf false steht. Kommt der Ping innerhalb der Zeit wieder zurück, ist kein Reboot notwendig.

    Einzige Idee die ich hatte war über setTimeout zu gehen, allerdings wird dieser immer ausgeführt, auch wenn sich der Wert im Zeitraum wieder ändert.

    Zur Vereinfachung mein Testscript:

    var test = "hm-rega.0.6370"/*Testschalter*/;
    
    on(test, function (obj) {
    current_state = getState(state).val;
    if (current_state == "1") { 
        log ('Wert = true' );
        setTimeout(function() {
        log ('Timeout ausgeführt');
    }, 10000);
    }
    
    else if (current_state == "0") {
        log ("Werte = false");
    }
    });
    
    

    Kann mir jemand einen Tipp geben, wie es funktionieren könnte?

    Mfg

    Mfg
    0018

    1 Antwort Letzte Antwort
    0
    • arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      badewannenprinzip

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #3

        Versuche es mal so:

        var test = "hm-rega.0.6370"/*Testschalter*/;
        var timer = null;
        
        on(test, function (obj) {
           if (obj.state.val == "1") {
              log ('Wert = true' );
              timer = setTimeout(function() {
                 log ('Timeout ausgeführt');
              }, 10000);
           } else {
              log ("Wert = false");
              if (timer) clearTimeout(timer);
           }
        });
        
        

        Liefert die SV "Testschalter" wirklich eine Zeichenkette mit den Inhalten "0" und "1" ?

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • 0 Offline
          0 Offline
          0018
          schrieb am zuletzt editiert von
          #4

          @paul53:

          Liefert die SV "Testschalter" wirklich eine Zeichenkette mit den Inhalten "0" und "1" ? `

          Nein, Werte sind true und false.

          Woran kann erkennen um was es sich handelt und was liefert der ping-adapter?

          mfg

          Mfg
          0018

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            @0018:

            Woran kann erkennen um was es sich handelt und was liefert der ping-adapter? `
            Man kann den Typ abfragen:

            log('SV Typ: ' + typeof getState("hm-rega.0.6370").val);
            

            @0018:

            Werte sind true und false `
            Dann ändert sich die Abfrage in Zeile 5:

               if (obj.state.val) {
            
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            0
            • 0 Offline
              0 Offline
              0018
              schrieb am zuletzt editiert von
              #6

              @paul53:

                 if (obj.state.val) {
              
              ```` `  
              

              Das bedeutet also beim Typ boolean wird es immer ausgeführt wenn der Wert auf true geht?

              Wie müsste es dann aussehen wenn es nur bei false starten soll?

              Und warum funktioniert es dann trotzdem mit der alten Variante?

              if (obj.state.val == "1") {
              
              

              Mfg
              0018

              1 Antwort Letzte Antwort
              0
              • paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #7

                @0018:

                Wie müsste es dann aussehen wenn es nur bei false starten soll? `

                   if (!obj.state.val) {
                

                oder

                   if (obj.state.val === false) {
                

                @0018:

                Und warum funktioniert es dann trotzdem mit der alten Variante?

                if (obj.state.val == "1") {
                ```` `  
                

                Keine Ahnung :? Ist es wirklich so ?

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Antwort Letzte Antwort
                0
                • 0 Offline
                  0 Offline
                  0018
                  schrieb am zuletzt editiert von
                  #8

                  @paul53:

                  Keine Ahnung :? Ist es wirklich so ? `

                  laut meinem Versuch und dem Log dazu schon.

                  ! 1620_test1.png

                  Ich werde jetzt

                  if (obj.state.val === true) {
                  

                  verwenden, lässt sich leichter merken und ist auch nachhaltig leicht herbeizuführen. Kann dann auch leicht auf false umstellen, ohne nachlesen zu müssen.

                  Auf jeden Fall passt das Script soweit und funktioniert so wie es soll.

                  Danke + Mfg

                  Mfg
                  0018

                  1 Antwort Letzte Antwort
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    @0018:

                    Und warum funktioniert es dann trotzdem mit der alten Variante? `
                    Javascript nimmt eine implizite Typwandlung vor:

                    "0" bzw. 0 –> false

                    "1" bzw. 1 --> true

                    Bei der Verwendung von === muss der Typ dagegen übereinstimmen.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Antwort Letzte Antwort
                    0
                    • 0 Offline
                      0 Offline
                      0018
                      schrieb am zuletzt editiert von
                      #10

                      OK, danke für die Erklärung. Dann verwende ich jetzt true, dann ist es auch gleich dem state.

                      Mfg
                      0018

                      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

                      718

                      Online

                      32.6k

                      Benutzer

                      82.2k

                      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