Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Nach 2h keine Bewegung im Raum schalten

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    818

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

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

Nach 2h keine Bewegung im Raum schalten

Scheduled Pinned Locked Moved Skripten / Logik
9 Posts 9 Posters 1.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    Biboxx
    wrote on last edited by
    #1

    Hallo zusammen,

    Ich suche wieder ewig herum, ich frag nun einfach, vielleicht kann ja jemand schnell helfen.

    Aufgabenstellung ist, dass nach einer Zeit, ca.2h das Licht in einem Raum ausgeschaltet werden soll wenn keine Bewegung über den Bewegungsmelder festgestellt wurde. Wie mache ich das in JavaScript?

    Wie kann ich den Zeitpunkt des Schaltens bzw. der Zeitpunkt der letzten Bewegung in eine Variable schreiben?

    Gruss

    Biboxx

    1 Reply Last reply
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      wrote on last edited by
      #2

      @Biboxx:

      Hallo zusammen,

      Ich suche wieder ewig herum, ich frag nun einfach, vielleicht kann ja jemand schnell helfen.

      Aufgabenstellung ist, dass nach einer Zeit, ca.2h das Licht in einem Raum ausgeschaltet werden soll wenn keine Bewegung über den Bewegungsmelder festgestellt wurde. Wie mache ich das in JavaScript?

      Wie kann ich den Zeitpunkt des Schaltens bzw. der Zeitpunkt der letzten Bewegung in eine Variable schreiben?

      Gruss

      Biboxx `

      bin gerade am uerblegen wie die beste logic dafuer waere, ist ein timer mit "reset" wen bewegung nicht sinvoller ?

      Ansonsten musst du ja alle x sec oder min die variable abfragen und vergleichen (oder mach ich jetzt wieder schwachsinn)

      So mal auf die schnelle…

      wen bewegung = reset timer und setzte variable, nach 2 stunden variable zuruck. Wen wieder bewegung muesster der timer hiermit eine reset bekommen:

      on({id: 'default', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        (function () {if () {clearInterval();  = null;}})();
        Bewegung = true;
        timeout = setTimeout(function () {
          Bewegung = false;
        }, 720000);
      });
      

      Ist aus dem bauch raus geschrieben…. (ungetestet)

      1 Reply Last reply
      0
      • paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by
        #3

        Vorschlag (nicht getestet):

        var timer = null;
        
        on({id: 'idBewegung', val: true}, function () {
          setState(idLicht, true);
          if(timer) clearTimeout(timer);
          timer = setTimeout(function () {
            setState(idLicht, false);
          }, 7200000);
        });
        

        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 Reply Last reply
        0
        • P Offline
          P Offline
          pix
          wrote on last edited by
          #4

          Hallo,

          ich denke, Paul53's Lösung funktioniert. Ich nutze so etwas für die Fenster. Wenn sie geöffnet werden, bekomme ich nach X Zeit eine Meldung, wenn sie nicht vorher wieder geschlossen wurden (dann clearTimout).

          Wenn es sich um einen Homematic-Aktor handelt, kannst du aber einfach beim Setzen die Einschaltdauer mitgeben und das den Aktor machen lassen.

          var idLicht = 'hm-rpc.0.1234567:1.STATE';
          var idLichtDauer = 'hm-rpc.0.1234567:1.ON_TIME';
          on({id: 'idBewegung', val: true}, function () {
              setState(idLichtDauer, 60 * 60 * 2);
              setState(idLicht, true);
          }
          
          ````Es gilt, wie in der HM-WebUI, erst die Einschaltdauer setzen, dann einschalten. Eine Szene im Scenes-Adapter eignet sich auch sehr gut dafür. So kann man auch noch eine Rampenzeit setzen (Langsam ausdimmen zum Beispiel).
          
          Wenn es kein Homematic Aktor ist, bleibe lieber bei Pauls Variante. :P
          
          Gruß
          
          Pix

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Reply Last reply
          0
          • A Offline
            A Offline
            andyb
            wrote on last edited by
            #5

            Der Homematic Bewegungsmelder hat einen timestamp für motion.

            Kann man den nicht abfragen?

            Wäre auch im Vis schön.

            <channel name="BewegungsmelderG:1" ise_id="xxxx" visible="true" operate="true"><datapoint name="BidCos-RF.xxxx:1.BRIGHTNESS" type="BRIGHTNESS" ise_id="3796" value="65" valuetype="16" valueunit/timestamp="1487051307" operations="5"><datapoint name="BidCos-RF.xxxx:1.MOTION" type="MOTION" ise_id="3798" value="false" valuetype="2" valueunit/timestamp="1487049923" operations="5"></datapoint></datapoint></channel>

            1 Reply Last reply
            0
            • bahnuhrB Online
              bahnuhrB Online
              bahnuhr
              Forum Testing Most Active
              wrote on last edited by
              #6

              @paul53:

              Vorschlag (nicht getestet):

              var timer = null;
              
              on({id: 'idBewegung', val: true}, function () {
                setState(idLicht, true);
                if(timer) clearTimeout(timer);
                timer = setTimeout(function () {
                  setState(idLicht, false);
                }, 7200000);
              });
              ```` `  
              

              Mal ne Nachfrage zu pauls53 Vorschlag.

              1. wenn on Bewegung ist true, dann

              • mache Licht an

              • wenn noch ein Timer vorhanden, dann clear und setze einen neuen Timer

              Hab ich verstanden soweit.

              Müsste/sollte man nicht zusätzlich noch.

              2. wenn on Bewegung ist false, dann

              • setze Timer clear

              Oder sagt man sich, wenn das Licht schon aus ist und der Timer kommt dann und macht das Licht nochmal aus, dann ist dies ja nicht so schlimm, man hat halt nur einen sendebefehl zu viel.

              Richtig so?

              Mit freundlichen Grüßen

              Dieter


              Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
              Danke.
              gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
              ScreenToGif :https://www.screentogif.com/downloads.html

              1 Reply Last reply
              0
              • rantanplanR Online
                rantanplanR Online
                rantanplan
                wrote on last edited by
                #7

                Hallo

                Genau für dieses Problem gibt es das "Badewannen-Prinzip"

                http://forum.iobroker.net/viewtopic.php … 654#p45130

                Grüße

                Rantanplan

                CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                1 Reply Last reply
                0
                • HomoranH Do not disturb
                  HomoranH Do not disturb
                  Homoran
                  Global Moderator Administrators
                  wrote on last edited by
                  #8

                  @Biboxx:

                  das Licht in einem Raum ausgeschaltet werden soll wenn keine Bewegung über den Bewegungsmelder festgestellt wurde. `

                  Aber wehe du sitzst ganz ruhig vor dem Fernseher :lol:

                  Das war dann der Punkt wo ich mir den wiffi gekauft habe. Der lauscht auch noch, ob der TV läuft.

                  Gruß

                  Rainer

                  kein Support per PN! - Fragen im Forum stellen -
                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                  Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Reply Last reply
                  0
                  • htreckslerH Offline
                    htreckslerH Offline
                    htrecksler
                    Forum Testing
                    wrote on last edited by
                    #9
                    var idFensterAuf = "hm-rpc.0.NEQ11000000.1.STATE";
                    var timer    = null;
                    subscribe(idFensterAuf, function (obj) {
                       if (obj.newState.val) {
                          // Starte timer für 2 Minuten
                          if (!timer) {
                             timer = setTimeout(function () {
                                timer = null;
                                log("Fenster im Bad länger als 2 Minuten auf");
                             }, 120000);
                          }
                       } else {
                          // Fenster zugemacht. Falls timer läuft = stopp
                          log('Fenster im Bad geschlossen!');
                          if (timer) {
                             clearTimeout(timer);
                             timer = null;
                          }
                       }
                    
                    });
                    
                    

                    so funktioniert es bei mir mit einem Fenster. (Ist nur für einen Test auf 2 Minuten gesetzt :-))

                    Gruss Hermann

                    ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

                    1 Reply Last reply
                    0

                    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                    With your input, this post could be even better 💗

                    Register Login
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    573

                    Online

                    32.8k

                    Users

                    82.7k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Home
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe