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. Gelöst: Bewegungsmelder

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Gelöst: Bewegungsmelder

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
9 Beiträge 3 Kommentatoren 694 Aufrufe 2 Watching
  • Ä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.
  • M Offline
    M Offline
    michihorn
    schrieb am zuletzt editiert von michihorn
    #1

    Hallo ich habe einen Präsenzmelder, der soll eine Lampe einschalten, die geht nach einer in setStateDelelayed eingestellten Zeit wieder aus. Ich möchte nun aber evtl. das Licht auch vorher mittels des Tuya Tasters wieder auschalten können. Solange aber der setStateDelayed noch tickert, schaltet der Präsenzmelder keine neue Bewegung. Mein einfaches Script sieht so aus:

    const idmotion = 'hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE'
    var motion = getState(idmotion).val; 
    on({id: "hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE", change: "any"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      log("Bewegung: " + motion);
      if (getState("hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE").val == true) {
        setState('tuya.0.3065444498f4abb7e5eb.1', true);
      } else if (getState("hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE").val == false) {
        setStateDelayed('tuya.0.3065444498f4abb7e5eb.1', false, 600000, false);
      }
    });
    

    Da ich noch keine Erfahrung mit Timern habe, frage ich nach einer Lösung hier an.
    Gruß
    Michael

    paul53P 1 Antwort Letzte Antwort
    0
    • M michihorn

      Hallo ich habe einen Präsenzmelder, der soll eine Lampe einschalten, die geht nach einer in setStateDelelayed eingestellten Zeit wieder aus. Ich möchte nun aber evtl. das Licht auch vorher mittels des Tuya Tasters wieder auschalten können. Solange aber der setStateDelayed noch tickert, schaltet der Präsenzmelder keine neue Bewegung. Mein einfaches Script sieht so aus:

      const idmotion = 'hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE'
      var motion = getState(idmotion).val; 
      on({id: "hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE", change: "any"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        log("Bewegung: " + motion);
        if (getState("hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE").val == true) {
          setState('tuya.0.3065444498f4abb7e5eb.1', true);
        } else if (getState("hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE").val == false) {
          setStateDelayed('tuya.0.3065444498f4abb7e5eb.1', false, 600000, false);
        }
      });
      

      Da ich noch keine Erfahrung mit Timern habe, frage ich nach einer Lösung hier an.
      Gruß
      Michael

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @michihorn sagte:

      das Licht auch vorher mittels des Tuya Tasters wieder auschalten können.

      Datenpunkt-ID ?

      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
      • M Offline
        M Offline
        michihorn
        schrieb am zuletzt editiert von michihorn
        #3

        Ich habe den Tuya Schalter "tuya.0.3065444498f4abb7e5eb.1" der wird von dem Präsenzmelder geschaltet. In den Objekten ist der dann auf "true". Ich möchte den aber ach mal manuell ausschalten, dann ist er in den Objekten auf "false". Das setStateDelayed läuft aber noch, daher müsste ich mit dem "false" des Tuya-Tasters, dieses setStateDelayed unterbrechen können. Das klappt aber wohl nur über einen Timer?!

        Das Tuya Objekt sieht so aus:

        {
          "type": "state",
          "common": {
            "def": false,
            "type": "boolean",
            "read": true,
            "write": true,
            "name": "switch_1",
            "role": "switch"
          },
          "native": {},
          "from": "system.adapter.tuya.0",
          "user": "system.user.admin",
          "ts": 1580235170357,
          "_id": "tuya.0.3065444498f4abb7e5eb.1",
          "acl": {
            "object": 1638,
            "state": 1638
          }
        }
        
        paul53P 1 Antwort Letzte Antwort
        0
        • M michihorn

          Ich habe den Tuya Schalter "tuya.0.3065444498f4abb7e5eb.1" der wird von dem Präsenzmelder geschaltet. In den Objekten ist der dann auf "true". Ich möchte den aber ach mal manuell ausschalten, dann ist er in den Objekten auf "false". Das setStateDelayed läuft aber noch, daher müsste ich mit dem "false" des Tuya-Tasters, dieses setStateDelayed unterbrechen können. Das klappt aber wohl nur über einen Timer?!

          Das Tuya Objekt sieht so aus:

          {
            "type": "state",
            "common": {
              "def": false,
              "type": "boolean",
              "read": true,
              "write": true,
              "name": "switch_1",
              "role": "switch"
            },
            "native": {},
            "from": "system.adapter.tuya.0",
            "user": "system.user.admin",
            "ts": 1580235170357,
            "_id": "tuya.0.3065444498f4abb7e5eb.1",
            "acl": {
              "object": 1638,
              "state": 1638
            }
          }
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @michihorn sagte:

          Solange aber der setStateDelayed noch tickert, schaltet der Präsenzmelder keine neue Bewegung.

          const idmotion = 'hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE';
          const idLicht = 'tuya.0.3065444498f4abb7e5eb.1';
          var timer = null;
          
          on(idmotion, function (obj) {
            log("Bewegung: " + obj.state.val);
            if (obj.state.val) {
              if(timer) clearTimeout(timer);
              setState(idLicht, true);
            } else {
              timer = setTimeout(function() {
                setState(idLicht, false);
              }, 600000);
            }
          });
          

          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

          M 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @michihorn sagte:

            Solange aber der setStateDelayed noch tickert, schaltet der Präsenzmelder keine neue Bewegung.

            const idmotion = 'hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE';
            const idLicht = 'tuya.0.3065444498f4abb7e5eb.1';
            var timer = null;
            
            on(idmotion, function (obj) {
              log("Bewegung: " + obj.state.val);
              if (obj.state.val) {
                if(timer) clearTimeout(timer);
                setState(idLicht, true);
              } else {
                timer = setTimeout(function() {
                  setState(idLicht, false);
                }, 600000);
              }
            });
            
            M Offline
            M Offline
            michihorn
            schrieb am zuletzt editiert von
            #5

            @paul53 sagte in Bewegungsmelder:

            const idmotion = 'hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE'; const idLicht = 'tuya.0.3065444498f4abb7e5eb.1'; var timer = null; on(idmotion, function (obj) { log("Bewegung: " + obj.state.val); if (obj.state.val) { if(timer) clearTimeout(timer); setState(idLicht, true); } else { timer = setTimeout(function() { setState(idLicht, false); }, 600000); } });

            Guten Morgen, ich kann jetzt nicht erkennen wie ich mit idLicht den Timer unterbreche
            Gruß
            Michael

            T 1 Antwort Letzte Antwort
            0
            • M michihorn

              @paul53 sagte in Bewegungsmelder:

              const idmotion = 'hm-rpc.2.000C1A4998B44C.1.PRESENCE_DETECTION_STATE'; const idLicht = 'tuya.0.3065444498f4abb7e5eb.1'; var timer = null; on(idmotion, function (obj) { log("Bewegung: " + obj.state.val); if (obj.state.val) { if(timer) clearTimeout(timer); setState(idLicht, true); } else { timer = setTimeout(function() { setState(idLicht, false); }, 600000); } });

              Guten Morgen, ich kann jetzt nicht erkennen wie ich mit idLicht den Timer unterbreche
              Gruß
              Michael

              T Offline
              T Offline
              ticaki
              schrieb am zuletzt editiert von ticaki
              #6

              @michihorn

              Dann füge folgendes noch hinzu:

              on(idLicht, function (obj) {
                if (!obj.state.val) {
                  if(timer) clearTimeout(timer);
                }
              });
              

              Wobei ich das Problem nicht ganz verstehen, der Bewegungsmelder hat nichts mit dem Timeout zu tun und sollte, ob der Timeout läuft oder nicht, Bewegungen melden. Meine Bewegungsmelderscripts sind ähnlich dem von Paul53 aufgebaut und ich beende den Timeout ausschließlich, wenn eine neue Bewegung angezeigt wird.

              EDIT: ist es vielleicht möglich das der Bewegungmelder eine Art delay hat? Meiner hat:

              deconz.0.Sensors.5.delay
              

              und in dem Zeitraum in dem der Delay dort intern läuft werden keine neue Bewegungen angezeigt.

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              M 1 Antwort Letzte Antwort
              0
              • T ticaki

                @michihorn

                Dann füge folgendes noch hinzu:

                on(idLicht, function (obj) {
                  if (!obj.state.val) {
                    if(timer) clearTimeout(timer);
                  }
                });
                

                Wobei ich das Problem nicht ganz verstehen, der Bewegungsmelder hat nichts mit dem Timeout zu tun und sollte, ob der Timeout läuft oder nicht, Bewegungen melden. Meine Bewegungsmelderscripts sind ähnlich dem von Paul53 aufgebaut und ich beende den Timeout ausschließlich, wenn eine neue Bewegung angezeigt wird.

                EDIT: ist es vielleicht möglich das der Bewegungmelder eine Art delay hat? Meiner hat:

                deconz.0.Sensors.5.delay
                

                und in dem Zeitraum in dem der Delay dort intern läuft werden keine neue Bewegungen angezeigt.

                M Offline
                M Offline
                michihorn
                schrieb am zuletzt editiert von
                #7

                @ticaki Nöö habe kein Delay. Der BWM schaltet für eine gewisse Zeit den Tuya. Ich möchte aber evtl. die Leuchtzeit verkürzen, indem ich den Tuya-Taster drücke. Licht geht aus. Ich möchte nun direkt das Licht wieder per BWM einschalten lassen und ganau das klappt nicht.

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

                  Wer schaltet jetzt die Lampe ein? Das Skript oder hat der BWM noch einen andere Verbindung mit der Lampe? Wenn es das Skript ist, liegt das nicht funktionieren daran, dass der BWM entweder nicht auf false geht oder das er nicht mehr auf true geht für eine gewisse Zeit.

                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                  Spenden

                  M 1 Antwort Letzte Antwort
                  0
                  • T ticaki

                    Wer schaltet jetzt die Lampe ein? Das Skript oder hat der BWM noch einen andere Verbindung mit der Lampe? Wenn es das Skript ist, liegt das nicht funktionieren daran, dass der BWM entweder nicht auf false geht oder das er nicht mehr auf true geht für eine gewisse Zeit.

                    M Offline
                    M Offline
                    michihorn
                    schrieb am zuletzt editiert von
                    #9

                    @ticaki Hallo
                    ja hab ich auch gerade Festgestellt, in der Geräte-Konfig in der CCU kann ich die Schaltabstände des BMW einstellen. Danke

                    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

                    409

                    Online

                    32.7k

                    Benutzer

                    82.4k

                    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