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. Nach 2h keine Bewegung im Raum schalten

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Nach 2h keine Bewegung im Raum schalten

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 9 Kommentatoren 1.4k 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.
  • B Offline
    B Offline
    Biboxx
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          pix
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • A Offline
            A Offline
            andyb
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • bahnuhrB Online
              bahnuhrB Online
              bahnuhr
              Forum Testing Most Active
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • rantanplanR Online
                rantanplanR Online
                rantanplan
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #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 - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Antwort Letzte Antwort
                  0
                  • htreckslerH Offline
                    htreckslerH Offline
                    htrecksler
                    Forum Testing
                    schrieb am zuletzt editiert von
                    #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 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

                    757

                    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