Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Bewegungsmelder schaltet Licht an für bestimmt Zeit

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Bewegungsmelder schaltet Licht an für bestimmt Zeit

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jensven @paul53 last edited by

      @paul53 said
      Ich würde allerdings nicht auf die Idee kommen, einen booleschen Wert, der nur false oder true liefert, auf true zu prüfen.

      Weil ?

      paul53 1 Reply Last reply Reply Quote 0
      • P
        ParaChris82 @xadox last edited by

        @xadox Wie lange hast du gewartet? Der Sensor muss zuerst False melden , das kann bei manchen Sensoren schon etwas dauern. Dauer nicht wundern wenn statt 30 Sek mal 60 Sek werden. Teste es doch mal mit einem kleineren Wert. Geh komplett aus den Raum und warte

        xadox 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @jensven last edited by paul53

          @jensven sagte:

          Weil ?

          Weil das Ergebnis eines jeden Vergleiches true oder false ist. Das liefert der boolesche Wert bereits.

          Blockly_temp.JPG

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

            Würde sowas ebenfalls funktionieren:
            aade017b-4fca-4bd1-90a1-37b25cdba204-image.png
            Falls Schalter auf True prüfe ob Bewegung vorhanden ist und schalte Schalter off falls nicht.

            Asgothian 1 Reply Last reply Reply Quote 0
            • Asgothian
              Asgothian Developer @xadox last edited by

              @xadox

              Nein.

              Screenshot 2020-12-01 at 14.42.13.png

              Dieser Teil wird NIE so funktionieren wie du das erwartest.

              Innerhalb eines Bausteins aus dem "Trigger" Bereich ist generell KEIN weiterer "Falls Objekt" Baustein aus dem Trigger Bereich sinnvoll.

              Du kannst statt dessen einfach einen weiteren "falls" Baustein aus dem Logik Bereich nehmen, und darin den Baustein "wert von Objekt" aus dem System Bereich abfragen.

              A.

              xadox 1 Reply Last reply Reply Quote 0
              • xadox
                xadox @Asgothian last edited by

                @Asgothian Also eher so:
                eac9b3ef-5a33-44b9-a281-a6b5f881071d-image.png

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

                  Leider funktioniert das Script so auch nicht.
                  Das Licht bleibt dauerhaft an. Auch nach 15 Minuten.

                  Asgothian 1 Reply Last reply Reply Quote 0
                  • Asgothian
                    Asgothian Developer @xadox last edited by

                    @xadox das ist durchaus logisch.

                    Was Du machst:

                    Du triggerst die Lampe. Wann immer der Schalter in der Küche auf aus geht (Wert ist falsch) wartest Du 6 Minuten und dann machst Du die Lampe aus.
                    Wenn der Schalter auf an geht (wert ist wahr) schaust du nach ob der BWM an ist, wenn ja dann stoppst du einen timeout.

                    Was du willst:

                    • Einen Trigger auf den Schalter - der soll die Lampe immer an und aus schalten.
                    • Einen Trigger auf den BWM - der soll die Lampe ausschalten wenn keiner mehr in der Küche ist.

                    Wie das genau aussehen kann ist so ohne weiteres nicht zu sagen, da nicht klar ist

                    • was sich hinter der Objekt ID "Power" versteckt
                    • was sich hinter der Objekt ID "Switch" versteckt
                    • Welche Werte der DP "EG IR (Alarm Status)" annehmen kann.
                    • Wie der Schalter funktioniert. (Ist das ein Schalter, der 2 Zustände annehmen kann, oder ein Taster der bei jeder Betätigung einmal kurz auf einen Wert springt wird.

                    Jeder Vorschlag im Blockly ist jetzt stochern im dunkeln. Entscheidend ist das du die Events voneinander getrennt behandelst, und lokal angelegte Variablen dazu benutzt Informationen auszutauschen.

                    Das kann Z.Bsp. so aussehen:
                    In der Variablen "LampWasSwitchedOn" wird geschaut ob jemand die Lampe mit dem Taster explizit ein geschaltet hat. Wenn das der Fall ist, dann ist der BWM ohne Funktion.
                    Ansonsten steuert der BWM die Lampe (an wenn jemand erkannt wird, aus 30 Sekunden nachdem niemand mehr erkannt wurde.

                    Screen Shot 2020-12-02 at 12.26.08 .png

                    A.

                    1 Reply Last reply Reply Quote 0
                    • xadox
                      xadox @ParaChris82 last edited by

                      @ParaChris82 Auch nach 30 Minuten, ohne das der Bewegungsmelder auslöst, geht das licht leider nicht aus.

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

                        Ich habe nun etwas umorganisiert. Ich nutzte nicht mehr die Bewegungsmelder meiner Alarmanlage sondern einen separaten Xiaomi Bewegungssensor der über RaspBee 2 & deConz Adapter angesteuert wird.

                        Hier das angepasste Script:
                        f1243c2b-82ec-40e3-9548-d7dd4f318331-image.png

                        var timeout;
                        on({id: 'deconz.0.Sensors.3.presence', change: "ne"}, function (obj) {
                          var value = obj.state.val;
                          var oldValue = obj.oldState.val;
                          if ((obj.state ? obj.state.val : "") && compareTime("15:00", "9:00", "between")) {
                            (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
                            setState("shelly.0.SHSW-25#483FDA828AE1#1.Relay0.Switch"/*Switch*/, true);
                          } else {
                            timeout = setTimeout(function () {
                              setState("shelly.0.SHSW-25#483FDA828AE1#1.Relay0.Switch"/*Switch*/, false);
                              setState("shelly.0.SHSW-25#483FDA828AE1#1.Relay1.Switch"/*Switch*/, false);
                            }, 10000);
                          }
                        });
                        

                        Das Script funktioniert. Ich frage mich nur ob es so richtig ist oder ggf. optimiert werden sollte?

                        Wie bekomme ich es des Weiteren hin, dass es nur zwischen Sonnenuntergang und Sonnenaufgang auslöst?
                        Wenn ich meine Momentane Zeit austausche durch folgendes funktioniert es nicht:
                        d4d0fae2-9857-4e44-a03d-f9b356c8d686-image.png

                        Edit:
                        Funktioniert so wohl nicht da dies unterschiedliche Tage sind.
                        Ich habe es nun mal auf folgendes umgeändert und schaue nach Sonnenuntergang ob es funktioniert:
                        a4ca0b22-ac79-4e9c-963e-5361b0d48f46-image.png

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        892
                        Online

                        32.0k
                        Users

                        80.4k
                        Topics

                        1.3m
                        Posts

                        6
                        26
                        1433
                        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