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. Bewegungsmelder Script Blockly

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Bewegungsmelder Script Blockly

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
8 Beiträge 5 Kommentatoren 3.6k Aufrufe 4 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.
  • B Offline
    B Offline
    Basti131
    schrieb am zuletzt editiert von
    #1

    Hallo Community,

    ich habe zwar schon die Suche bemüht aber so richtig weis ich nicht, wonach ich eigentlich suchen muss. :|

    Folgendes habe ich vor:

    Wenn Bewegung –-> Licht einschalten für X Minuten.

    Nach X Minuten --> Licht auf 50% dimmen

    Nach weiteren Y Minuten, Licht auf 10% dimmen

    nach weiteren z Minuten, Licht aus.

    Und so sieht mein Blockly- Script dazu aus:

    13941_bildschirmfoto_2018-12-29_um_17.12.16.png

    Das funktioniert soweit auch einwandfrei, doch es gibt ein Problem:

    Sobald Bewegungsmelder presence von true auf false geht, dimmt das Licht richtig runter. Wenn jetzt eine neue Bewegung kommt, dann dimmt er das Licht auch wieder richtig hoch aber im Hintergrund läuft der falls- Trigger vom ersten false- Ereignis einfach weiter und schaltet das Licht dann aus, anstatt, dass das erneute Triggern einer Bewegung das ganze script einfach resettet.

    Ich habe diesen Reset versucht mit dem timeout zu erzwingen aber das funktioniert auch nicht.

    Wie bekomme ich es hin, dass er die "Shutdown- Phase" sofort abbricht, sobald Bewegungsmelder presence erneut auf true springt?

    Vielen Dank im Voraus für eure Zeit!

    1 Antwort Letzte Antwort
    0
    • J Offline
      J Offline
      J Riemann
      schrieb am zuletzt editiert von
      #2

      Du arbeitest innerhalb des Timeout mit Verzögerungen, diese verursachen das Problem. Ist Timeout abgelaufen werden die enthaltenen Aktionen abgearbeitet, dann hilft das „stop timeout“ nicht mehr.

      Setze bei der Verzögerung der Geräteaktion den Haken bei „Lösche wenn läuft“ und zusätzlich musst Du oben im „falls“ auch bei jedem Aktor minimale Verzögerungen (z.B. 100 ms) und den Haken setzen.

      Alternativ müsstest Du im „sonst falls“ für jeden Aktor ein eigenes Timeout statt der normalen Verzögerung verwenden.

      ****Viele Grüße!

      Jörg****

      1 Antwort Letzte Antwort
      0
      • B Offline
        B Offline
        Basti131
        schrieb am zuletzt editiert von
        #3

        Okay, das funktioniert, vielen Dank! ;)

        Aber leider verstehe ich noch nicht so ganz die Logik dahinter. Sind die Verzögerungen dasselbe wie timeouts? also werden diese auch durch den Befehl stop timeout gestoppt? Und warum braucht es die Verzögerungen beim Einschalten des Lichts, damit es funktioniert?

        1 Antwort Letzte Antwort
        0
        • J Offline
          J Offline
          J Riemann
          schrieb am zuletzt editiert von
          #4

          @Basti131:

          Sind die Verzögerungen dasselbe wie timeouts? also werden diese auch durch den Befehl stop timeout gestoppt? Und warum braucht es die Verzögerungen beim Einschalten des Lichts, damit es funktioniert? `
          Timeout pausiert praktisch die Abarbeitung der darin enthaltenen Aktionen.

          Die „Verzögerung“ gilt jeweils nur für diese eine Aktion bei der sie gesetzt wurde.

          Es läuft pratisch sofort ein interner Timer und nach Ablauf wird die Aktion ausgeführt.

          Wenn der Haken bei „löschen wenn läuft“ gesetzt ist kann diese Verzögerung durch einen neuen Befehl für dieses Objekt abgebrochen werden.

          Du brichst also die Ausschaltverzögerung durch den Einschaltbefehl ab.

          Bei einschalten wäre normal keine Verzögerung nötig, aber um den Haken setzen zu können muss zumindest eine winzige Verzögerung gesetzt werden.

          Bei Deiner Umsetzung sind die Haken beim einschalten entscheidend, beim ausschalten sind sie unwichtig weil das einschalten „sofort“ passiert und nicht abgebrochen werden muss.

          ****Viele Grüße!

          Jörg****

          1 Antwort Letzte Antwort
          0
          • dslraserD Offline
            dslraserD Offline
            dslraser
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #5

            Wenn Du langsam runter dimmen möchtest könnte auch dieser Befehl für Dich interessant sein.

            Je größer die Zahl, desto langsamer wird gedimmt, geht auch beim einschalten. Leider weiß ich den Umrechnungsfaktor dafür nicht mehr aus dem Kopf. Das dimmen führt dann die Bridge selbst aus und nicht mehr das Script.

            runter dimmen

            {"on":false,"transitiontime":70}

            hoch dimmen

            {"on":true,"transitiontime":70}

            ![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201812 ... 8f4ad2.jpg">https://uploads.tapatalk-cdn.com/20181230/f47643e65455a87d80148787678f4ad2.jpg</link_text>" />

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              ahfreezer
              schrieb am zuletzt editiert von
              #6

              Hi,

              ich möchte gerne das Thema auch noch einmal aufgreifen.
              Mein Bewegungsmelder im Flur arbeitet auch noch nicht so, wie ich es möchte.

              Der Melder von Homematic ist so in der CCU2 eingestellt, dass er alle 2 Minuten eine potentielle Bewegung meldet.
              Das Licht soll bei Bewegung mindestens 5min an bleiben. Erkennt der Bewegungsmelder innerhalb dieser Zeit wieder eine Bewegung, soll das Licht nicht ausgeschaltet werden.

              Aktuell ist es aber so, dass nach 5min. das Licht immer ausgeschaltet wird, obwohl Bewegung im Flur ist.
              Ich vermute ebenfalls ein Problem mit der Nutzung des Timeouts.

              Habt ihr eine Vermutung an welcher Stelle bei Blockly nicht korrekt aufgesetzt ist?

              Anmerkung 2019-02-25 080957.jpg

              ```
              var timeout;

              on({id: 'hm-rpc.2.00091709ABFF5D.1.MOTION', change: "any"}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              // Hier nog den wert Bewegung rein
              // Hier nog den wert Bewegung rein
              if (getState("hm-rpc.2.00091709ABFF5D.1.MOTION").val == true && getState("hm-rpc.2.00091709ABFF5D.1.ILLUMINATION").val < 3) {
              (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
              setStateDelayed("hm-rpc.2.000858A9AB5F2F.4.STATE"/HmIP-BSM 000858A9AB5F2F:4.STATE/, true, 100, true);
              } else if (getState("hm-rpc.2.00091709ABFF5D.1.MOTION").val == false) {
              (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
              timeout = setTimeout(function () {
              setStateDelayed("hm-rpc.2.000858A9AB5F2F.4.STATE"/HmIP-BSM 000858A9AB5F2F:4.STATE/, false, 100, true);
              }, 300000);
              }
              });

              AsgothianA 1 Antwort Letzte Antwort
              0
              • A ahfreezer

                Hi,

                ich möchte gerne das Thema auch noch einmal aufgreifen.
                Mein Bewegungsmelder im Flur arbeitet auch noch nicht so, wie ich es möchte.

                Der Melder von Homematic ist so in der CCU2 eingestellt, dass er alle 2 Minuten eine potentielle Bewegung meldet.
                Das Licht soll bei Bewegung mindestens 5min an bleiben. Erkennt der Bewegungsmelder innerhalb dieser Zeit wieder eine Bewegung, soll das Licht nicht ausgeschaltet werden.

                Aktuell ist es aber so, dass nach 5min. das Licht immer ausgeschaltet wird, obwohl Bewegung im Flur ist.
                Ich vermute ebenfalls ein Problem mit der Nutzung des Timeouts.

                Habt ihr eine Vermutung an welcher Stelle bei Blockly nicht korrekt aufgesetzt ist?

                Anmerkung 2019-02-25 080957.jpg

                ```
                var timeout;

                on({id: 'hm-rpc.2.00091709ABFF5D.1.MOTION', change: "any"}, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                // Hier nog den wert Bewegung rein
                // Hier nog den wert Bewegung rein
                if (getState("hm-rpc.2.00091709ABFF5D.1.MOTION").val == true && getState("hm-rpc.2.00091709ABFF5D.1.ILLUMINATION").val < 3) {
                (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
                setStateDelayed("hm-rpc.2.000858A9AB5F2F.4.STATE"/HmIP-BSM 000858A9AB5F2F:4.STATE/, true, 100, true);
                } else if (getState("hm-rpc.2.00091709ABFF5D.1.MOTION").val == false) {
                (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
                timeout = setTimeout(function () {
                setStateDelayed("hm-rpc.2.000858A9AB5F2F.4.STATE"/HmIP-BSM 000858A9AB5F2F:4.STATE/, false, 100, true);
                }, 300000);
                }
                });

                AsgothianA Offline
                AsgothianA Offline
                Asgothian
                Developer
                schrieb am zuletzt editiert von
                #7

                @ahfreezer

                Ich denke der Fehler ist das du den timeout nur dann löscht wenn eine Bewegung erkannt wird UND es dunkel ist. Wenn das Licht an ist ist es aber wahrscheinlich nicht dunkel

                Setz doch den stop timeout mal global vor den falls Block - dann müsste es gehen.

                A.

                ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  ahfreezer
                  schrieb am zuletzt editiert von
                  #8

                  Unfassbar....es kann so einfach sein....aber wie immer...man sieht den Wald vor lauter Bäumen nicht. :grimacing:
                  Danke dir für die schnelle Rückmeldung.

                  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

                  718

                  Online

                  32.6k

                  Benutzer

                  82.1k

                  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