Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. RF Lichtschalter per Bewegungsmelder und Broadlink schalten

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    RF Lichtschalter per Bewegungsmelder und Broadlink schalten

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

      Ich habe nun mal den Bewegungsmelder in der CCU auf "Wahl des Sendeabstandes" auf klassisch eingestellt.

      Das klappt nun.

      Ein Frage hätte ich noch, wie kann ich es per Script anstellen das: Falls der Bewegungsmelder keine Änderung für 10 Minuten erfasst, soll eine Variable auf True gesetzt werden

      Gruß

      Michael

      1 Reply Last reply Reply Quote 0
      • T
        tempestas last edited by

        So? weiß nicht, ob das so geht mit dem setTimeout direkt

        
        on({id: idBewegung, change: 'any'}, setTimeout(function (obj) {
        
        	if(obj.oldState.val === obj.State.val) setState(idVariable, true) else setState(idVariable, false)  ; 
        	}, 600000);
        });
        
        

        Idee: wenn der BWM eine Ändeurng meldet, testest du 10 Minuten später, ob der Wert immer noch auf dem gleichen Wert steht allerdings bin ich mir nicht sicher, ob das mit "true" funktioniert. Die BWM schalten ja meist "motion detected" nach einiger Zeit weider auf false, und falls sich dann jemand bewegt gleich wieder auf true, oder?

        1 Reply Last reply Reply Quote 0
        • M
          michihorn last edited by

          Guten Tag

          der BWM geht nach der Bewegungserfassung wieder auf false.

          In dem Moment soll ein Timer starten, sollte der BWM wieder Bewegung feststellen soll der Timer gestoppt werden. Erst wenn der Timer 10 Minuten ohne Unterbrechung läuft soll eine Variable auf True gesetzt werden.

          Leider sind meine Script Fähigkeiten sehr begrenzt, daher benötige ich Unterstützung

          Gruß

          Michael

          1 Reply Last reply Reply Quote 0
          • T
            tempestas last edited by

            so?

            var timer = null;
            
            on({id: idBewegung, change: 'ne'}, function (obj) {
                if(!obj){
                          timer = setTimeout(function() {                         
                               if(obj.oldState.val === obj.State.val) {setState(idVariable, true); }
                                    else {setState(idVariable, false); }  
                               timer = null;
                   }, 600000);
            } else if(timer) {
                    cleartimeout(timer);
                    timer = null
            }
            });
            
            1 Reply Last reply Reply Quote 0
            • M
              michihorn last edited by

              @tempestas:

              so?

              var timer = null;
              
              on({id: idBewegung, change: 'ne'}, function (obj) {
                  if(!obj){
                            timer = setTimeout(function() {                         
                                 if(obj.oldState.val === obj.State.val) {setState(idVariable, true); }
                                      else {setState(idVariable, false); }  
                                 timer = null;
                     }, 600000);
              } else if(timer) {
                      cleartimeout(timer);
                      timer = null
              }
              });
              ```` `  Dankeschön
              

              Gesendet von meinem RNE-L21 mit Tapatalk

              1 Reply Last reply Reply Quote 0
              • T
                tempestas last edited by

                probiers erstmal aus, bin nur Laie 🙂

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

                  @michihorn:

                  der BWM geht nach der Bewegungserfassung wieder auf false.

                  In dem Moment soll ein Timer starten, sollte der BWM wieder Bewegung feststellen soll der Timer gestoppt werden. Erst wenn der Timer 10 Minuten ohne Unterbrechung läuft soll eine Variable auf True gesetzt werden. `

                  var timer = null;
                  
                  on(idBewegung, function (obj) {
                     if(obj.state.val) {
                        clearTimeout(timer);
                        setState(idVariable, false);
                     } else {
                        timer = setTimeout(function() {                         
                           setState(idVariable, true);
                        }, 600000);
                     } 
                  });
                  
                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 last edited by

                    @tempestas

                        if(!obj){
                    

                    –>

                        if(!obj.state.val){
                    

                    und Groß-/Kleinschreibung beachten !

                    obj.State.val –> __obj.state.va__l oder obj.newState.val

                    1 Reply Last reply Reply Quote 0
                    • M
                      michihorn last edited by

                      @paul53:

                      @michihorn:

                      der BWM geht nach der Bewegungserfassung wieder auf false.

                      In dem Moment soll ein Timer starten, sollte der BWM wieder Bewegung feststellen soll der Timer gestoppt werden. Erst wenn der Timer 10 Minuten ohne Unterbrechung läuft soll eine Variable auf True gesetzt werden. `

                      var timer = null;
                      
                      on(idBewegung, function (obj) {
                         if(obj.state.val) {
                            clearTimeout(timer);
                            setState(idVariable, false);
                         } else {
                            timer = setTimeout(function() {                         
                               setState(idVariable, true);
                            }, 600000);
                         } 
                      });
                      ```` `  
                      

                      Hallo

                      Ich möchte gerne den Status vom "timer" in den Objekten sehen können.

                      Gruß Michael

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

                        @michihorn:

                        Ich möchte gerne den Status vom "timer" in den Objekten sehen können. `
                        Was erwartest Du da ?

                        Timer-Objekte lassen sich nicht als normale Objekte darstellen.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        736
                        Online

                        32.0k
                        Users

                        80.3k
                        Topics

                        1.3m
                        Posts

                        3
                        11
                        660
                        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