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. Blockly: Garagentor automatisch schließen lassen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    201

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

Blockly: Garagentor automatisch schließen lassen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
11 Beiträge 3 Kommentatoren 786 Aufrufe 3 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.
  • L Offline
    L Offline
    LastActionHero
    schrieb am zuletzt editiert von LastActionHero
    #1

    Hallo!

    Ich steige gerade erst wieder in ioBroker ein und versuche mich an einem Blockly Script welches mein Garagentor nach einer Zeit X schließt, wenn man (Frau) es selbst vergessen hat.

    Hierzu habe ich einen Homematic Garagentorantrieb mit Lichtschranke und einen Bewegungsmelder. Meine bisherige Logik war wie folgt: Sobald eine Statusänderung am Bewegungsmelder erfolgt wird geprüft: 1. Ist der Dummyschalter für die Schließautomatik an, 2. Ist das Garagentor nicht geschlossen, 3. Ist in der Garage keiner anwesend (keine Bewegung).

    Wenn das eintritt und sich binnen 4 Minuten nichts ändert, soll das Tor geschlossen werden.

    Jetzt ist es aber so, dass wenn alle Bedingungen erfüllt sind zwar der Impuls kommt das Tor zu schließen. Wenn allerdings innerhalb dieser 4 Minuten doch jemand wieder die Garage betritt, wird der Timer nicht zurück gesetzt sondern trotzdem das Tor runtergefahren, zumindest für 10% und stoppt dann.
    Wo ist mein Fehler? Danke euch vorab!!

    <xml xmlns="https://developers.google.com/blockly/xml">
      <variables>
        <variable type="timeout" id="timeout">timeout</variable>
      </variables>
      <block type="on_ext" id="Rc,RDdc5.6wG*^S365kb" x="63" y="213">
        <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
        <field name="CONDITION">any</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow type="field_oid" id="8hnUfm/?(yNLdqZYZioq">
            <field name="oid">hm-rpc.1.000920C99B440F.1.MOTION</field>
          </shadow>
        </value>
        <statement name="STATEMENT">
          <block type="controls_if" id="Mn:.=S/[gc[Thv5A|uXj">
            <value name="IF0">
              <block type="logic_multi_and" id="bfL7b$l[:-;i~hIrK|wL">
                <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation>
                <value name="AND0">
                  <block type="logic_compare" id="*W{+nK5#|V!oF:.8L*s+">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="get_value" id="[r~|BdaEIVXhiu6{JM5X">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.Garage_Autoclose</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id="q=1%9$-8B}Z0U8%28k#)">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="AND1">
                  <block type="logic_compare" id="Qq5B,Q|db2el8:aKjBWq">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="get_value" id="nx62AQcvUCmy#c@$Asax">
                        <field name="ATTR">val</field>
                        <field name="OID">hm-rpc.1.000920C99B440F.1.MOTION</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id="e1x]U3dj#0ZIAq`Xk+Gd">
                        <field name="BOOL">FALSE</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="AND2">
                  <block type="logic_compare" id="_7d#`#s};ypO29N9upu6">
                    <field name="OP">NEQ</field>
                    <value name="A">
                      <block type="get_value" id="mS]!-(O0uD9,u}`A#`td">
                        <field name="ATTR">val</field>
                        <field name="OID">hm-rpc.1.002420C995C575.1.DOOR_STATE</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number" id="BV9G(8uj+VE?A.^me=a5">
                        <field name="NUM">0</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="comment" id="JQ!5`+_8gzc?@iT^Mi|C">
                <field name="COMMENT">Nach 6 min ohne Bewegung automatisch schließen</field>
                <next>
                  <block type="comment" id="BP05f8xMWyF:n[eD!g7H">
                    <field name="COMMENT">2 min davon vorgegeben vom Bewegungsmelder</field>
                    <next>
                      <block type="timeouts_settimeout" id="w?3#}$|H,rD_$OA}6lO=">
                        <field name="NAME">timeout</field>
                        <field name="DELAY">4</field>
                        <field name="UNIT">min</field>
                        <statement name="STATEMENT">
                          <block type="control" id="eyPVpw@h|Otg_5=%p_iG">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">hm-rpc.1.002420C995C575.1.DOOR_COMMAND</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="math_number" id="5O?]J$QiwJydKxtg5!`Q">
                                <field name="NUM">3</field>
                              </block>
                            </value>
                          </block>
                        </statement>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </statement>
      </block>
      <block type="logic_multi_and" id="maR8$Fi].Y#DT)cpqr?b" x="261" y="396">
        <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
      </block>
    </xml>
    

    Bildschirmfoto 2024-07-10 um 20.40.30.png

    Hier der aktuelle Link zum fertigen Script

    DJMarc75D BananaJoeB 2 Antworten Letzte Antwort
    0
    • L LastActionHero

      Hallo!

      Ich steige gerade erst wieder in ioBroker ein und versuche mich an einem Blockly Script welches mein Garagentor nach einer Zeit X schließt, wenn man (Frau) es selbst vergessen hat.

      Hierzu habe ich einen Homematic Garagentorantrieb mit Lichtschranke und einen Bewegungsmelder. Meine bisherige Logik war wie folgt: Sobald eine Statusänderung am Bewegungsmelder erfolgt wird geprüft: 1. Ist der Dummyschalter für die Schließautomatik an, 2. Ist das Garagentor nicht geschlossen, 3. Ist in der Garage keiner anwesend (keine Bewegung).

      Wenn das eintritt und sich binnen 4 Minuten nichts ändert, soll das Tor geschlossen werden.

      Jetzt ist es aber so, dass wenn alle Bedingungen erfüllt sind zwar der Impuls kommt das Tor zu schließen. Wenn allerdings innerhalb dieser 4 Minuten doch jemand wieder die Garage betritt, wird der Timer nicht zurück gesetzt sondern trotzdem das Tor runtergefahren, zumindest für 10% und stoppt dann.
      Wo ist mein Fehler? Danke euch vorab!!

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable type="timeout" id="timeout">timeout</variable>
        </variables>
        <block type="on_ext" id="Rc,RDdc5.6wG*^S365kb" x="63" y="213">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
          <field name="CONDITION">any</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="8hnUfm/?(yNLdqZYZioq">
              <field name="oid">hm-rpc.1.000920C99B440F.1.MOTION</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="controls_if" id="Mn:.=S/[gc[Thv5A|uXj">
              <value name="IF0">
                <block type="logic_multi_and" id="bfL7b$l[:-;i~hIrK|wL">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation>
                  <value name="AND0">
                    <block type="logic_compare" id="*W{+nK5#|V!oF:.8L*s+">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="[r~|BdaEIVXhiu6{JM5X">
                          <field name="ATTR">val</field>
                          <field name="OID">0_userdata.0.Garage_Autoclose</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_boolean" id="q=1%9$-8B}Z0U8%28k#)">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="AND1">
                    <block type="logic_compare" id="Qq5B,Q|db2el8:aKjBWq">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="nx62AQcvUCmy#c@$Asax">
                          <field name="ATTR">val</field>
                          <field name="OID">hm-rpc.1.000920C99B440F.1.MOTION</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_boolean" id="e1x]U3dj#0ZIAq`Xk+Gd">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="AND2">
                    <block type="logic_compare" id="_7d#`#s};ypO29N9upu6">
                      <field name="OP">NEQ</field>
                      <value name="A">
                        <block type="get_value" id="mS]!-(O0uD9,u}`A#`td">
                          <field name="ATTR">val</field>
                          <field name="OID">hm-rpc.1.002420C995C575.1.DOOR_STATE</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="math_number" id="BV9G(8uj+VE?A.^me=a5">
                          <field name="NUM">0</field>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="comment" id="JQ!5`+_8gzc?@iT^Mi|C">
                  <field name="COMMENT">Nach 6 min ohne Bewegung automatisch schließen</field>
                  <next>
                    <block type="comment" id="BP05f8xMWyF:n[eD!g7H">
                      <field name="COMMENT">2 min davon vorgegeben vom Bewegungsmelder</field>
                      <next>
                        <block type="timeouts_settimeout" id="w?3#}$|H,rD_$OA}6lO=">
                          <field name="NAME">timeout</field>
                          <field name="DELAY">4</field>
                          <field name="UNIT">min</field>
                          <statement name="STATEMENT">
                            <block type="control" id="eyPVpw@h|Otg_5=%p_iG">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">hm-rpc.1.002420C995C575.1.DOOR_COMMAND</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="math_number" id="5O?]J$QiwJydKxtg5!`Q">
                                  <field name="NUM">3</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
            </block>
          </statement>
        </block>
        <block type="logic_multi_and" id="maR8$Fi].Y#DT)cpqr?b" x="261" y="396">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
        </block>
      </xml>
      

      Bildschirmfoto 2024-07-10 um 20.40.30.png

      Hier der aktuelle Link zum fertigen Script

      DJMarc75D Offline
      DJMarc75D Offline
      DJMarc75
      schrieb am zuletzt editiert von
      #2

      @lastactionhero mach mal in Deinem Blockly diesen Block bitte weg

      Screenshot 2024-07-10 204328.png

      Lehrling seit 1975 !!!
      Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
      https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

      1 Antwort Letzte Antwort
      0
      • L LastActionHero

        Hallo!

        Ich steige gerade erst wieder in ioBroker ein und versuche mich an einem Blockly Script welches mein Garagentor nach einer Zeit X schließt, wenn man (Frau) es selbst vergessen hat.

        Hierzu habe ich einen Homematic Garagentorantrieb mit Lichtschranke und einen Bewegungsmelder. Meine bisherige Logik war wie folgt: Sobald eine Statusänderung am Bewegungsmelder erfolgt wird geprüft: 1. Ist der Dummyschalter für die Schließautomatik an, 2. Ist das Garagentor nicht geschlossen, 3. Ist in der Garage keiner anwesend (keine Bewegung).

        Wenn das eintritt und sich binnen 4 Minuten nichts ändert, soll das Tor geschlossen werden.

        Jetzt ist es aber so, dass wenn alle Bedingungen erfüllt sind zwar der Impuls kommt das Tor zu schließen. Wenn allerdings innerhalb dieser 4 Minuten doch jemand wieder die Garage betritt, wird der Timer nicht zurück gesetzt sondern trotzdem das Tor runtergefahren, zumindest für 10% und stoppt dann.
        Wo ist mein Fehler? Danke euch vorab!!

        <xml xmlns="https://developers.google.com/blockly/xml">
          <variables>
            <variable type="timeout" id="timeout">timeout</variable>
          </variables>
          <block type="on_ext" id="Rc,RDdc5.6wG*^S365kb" x="63" y="213">
            <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
            <field name="CONDITION">any</field>
            <field name="ACK_CONDITION"></field>
            <value name="OID0">
              <shadow type="field_oid" id="8hnUfm/?(yNLdqZYZioq">
                <field name="oid">hm-rpc.1.000920C99B440F.1.MOTION</field>
              </shadow>
            </value>
            <statement name="STATEMENT">
              <block type="controls_if" id="Mn:.=S/[gc[Thv5A|uXj">
                <value name="IF0">
                  <block type="logic_multi_and" id="bfL7b$l[:-;i~hIrK|wL">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation>
                    <value name="AND0">
                      <block type="logic_compare" id="*W{+nK5#|V!oF:.8L*s+">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="[r~|BdaEIVXhiu6{JM5X">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.Garage_Autoclose</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="q=1%9$-8B}Z0U8%28k#)">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="AND1">
                      <block type="logic_compare" id="Qq5B,Q|db2el8:aKjBWq">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="nx62AQcvUCmy#c@$Asax">
                            <field name="ATTR">val</field>
                            <field name="OID">hm-rpc.1.000920C99B440F.1.MOTION</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="e1x]U3dj#0ZIAq`Xk+Gd">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="AND2">
                      <block type="logic_compare" id="_7d#`#s};ypO29N9upu6">
                        <field name="OP">NEQ</field>
                        <value name="A">
                          <block type="get_value" id="mS]!-(O0uD9,u}`A#`td">
                            <field name="ATTR">val</field>
                            <field name="OID">hm-rpc.1.002420C995C575.1.DOOR_STATE</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number" id="BV9G(8uj+VE?A.^me=a5">
                            <field name="NUM">0</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="comment" id="JQ!5`+_8gzc?@iT^Mi|C">
                    <field name="COMMENT">Nach 6 min ohne Bewegung automatisch schließen</field>
                    <next>
                      <block type="comment" id="BP05f8xMWyF:n[eD!g7H">
                        <field name="COMMENT">2 min davon vorgegeben vom Bewegungsmelder</field>
                        <next>
                          <block type="timeouts_settimeout" id="w?3#}$|H,rD_$OA}6lO=">
                            <field name="NAME">timeout</field>
                            <field name="DELAY">4</field>
                            <field name="UNIT">min</field>
                            <statement name="STATEMENT">
                              <block type="control" id="eyPVpw@h|Otg_5=%p_iG">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">hm-rpc.1.002420C995C575.1.DOOR_COMMAND</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="math_number" id="5O?]J$QiwJydKxtg5!`Q">
                                    <field name="NUM">3</field>
                                  </block>
                                </value>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
          <block type="logic_multi_and" id="maR8$Fi].Y#DT)cpqr?b" x="261" y="396">
            <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
          </block>
        </xml>
        

        Bildschirmfoto 2024-07-10 um 20.40.30.png

        Hier der aktuelle Link zum fertigen Script

        BananaJoeB Online
        BananaJoeB Online
        BananaJoe
        Most Active
        schrieb am zuletzt editiert von
        #3

        @lastactionhero und du müsstest eine "stop timeout" Zeile einbauen bevor du den Timeout auslöst
        Wird das ganze dann noch mal angetriggert, kann es so den zuvor gestarteten , ja noch laufenden timeout beenden.

        Ich nehme hoffentlich richtig an das dieser dann nicht ausgeführt wird

        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

        L 1 Antwort Letzte Antwort
        0
        • BananaJoeB BananaJoe

          @lastactionhero und du müsstest eine "stop timeout" Zeile einbauen bevor du den Timeout auslöst
          Wird das ganze dann noch mal angetriggert, kann es so den zuvor gestarteten , ja noch laufenden timeout beenden.

          Ich nehme hoffentlich richtig an das dieser dann nicht ausgeführt wird

          L Offline
          L Offline
          LastActionHero
          schrieb am zuletzt editiert von LastActionHero
          #4

          Hab ich gemacht, danke schonmal für den wertvollen Input! Jetzt passiert nichtsmehr. Tor geht garnicht mehr runter...

          Bildschirmfoto 2024-07-10 um 21.38.50.png

          wobei ich grade sehe, dass der stop timeout VOR den anderen muss. Das muss ich aber morgen weiter testen...

          BananaJoeB 1 Antwort Letzte Antwort
          0
          • L LastActionHero

            Hab ich gemacht, danke schonmal für den wertvollen Input! Jetzt passiert nichtsmehr. Tor geht garnicht mehr runter...

            Bildschirmfoto 2024-07-10 um 21.38.50.png

            wobei ich grade sehe, dass der stop timeout VOR den anderen muss. Das muss ich aber morgen weiter testen...

            BananaJoeB Online
            BananaJoeB Online
            BananaJoe
            Most Active
            schrieb am zuletzt editiert von
            #5

            @lastactionhero den stop timeout_garagentor direkt über Ausführen timeout .. setzen, nicht in den sonst zweig

            ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

            L 1 Antwort Letzte Antwort
            0
            • BananaJoeB BananaJoe

              @lastactionhero den stop timeout_garagentor direkt über Ausführen timeout .. setzen, nicht in den sonst zweig

              L Offline
              L Offline
              LastActionHero
              schrieb am zuletzt editiert von LastActionHero
              #6

              hab ich eben auch schon festgestellt, allerdings, was passiert damit, wenn nun der timeout schon ausgelöst wurde, und wieder einer in die Garage rennt? Die Bedingung für den Stop-Timeout sind damit ja nicht erfüllt (Dummy ist an, Garage ist nicht zu, aber motion true) damit kommt es nicht zum stop-timeout.
              Bildschirmfoto 2024-07-10 um 21.47.53.png

              Heißt man müsste noch eine zweite Falls Verknüpfung machen mit Motion True und auch einen Stop-Timeout da rein packen?

              BananaJoeB 1 Antwort Letzte Antwort
              0
              • L LastActionHero

                hab ich eben auch schon festgestellt, allerdings, was passiert damit, wenn nun der timeout schon ausgelöst wurde, und wieder einer in die Garage rennt? Die Bedingung für den Stop-Timeout sind damit ja nicht erfüllt (Dummy ist an, Garage ist nicht zu, aber motion true) damit kommt es nicht zum stop-timeout.
                Bildschirmfoto 2024-07-10 um 21.47.53.png

                Heißt man müsste noch eine zweite Falls Verknüpfung machen mit Motion True und auch einen Stop-Timeout da rein packen?

                BananaJoeB Online
                BananaJoeB Online
                BananaJoe
                Most Active
                schrieb am zuletzt editiert von
                #7

                @lastactionhero sagte in Blockly: Garagentor automatisch schließen lassen:

                Heißt man müsste noch eine zweite Falls Verknüpfung machen mit Motion True und auch einen Stop-Timeout da rein packen?

                ich denke ja. Dann müsste man aber noch mal über den Auslöser nachdenken. Hat der Bewegungsmelder einen Status "Bewegung erkannt" und "Jetzt ist wieder ruhig" ? Sieht so aus als wäre das wahr und falsch

                Dann einfach in den sonst-zweig.
                Besser wäre "wenn falsch dann Timer anlaufen lassen" und "wenn wahr, timer stoppen"

                ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                L 1 Antwort Letzte Antwort
                0
                • BananaJoeB BananaJoe

                  @lastactionhero sagte in Blockly: Garagentor automatisch schließen lassen:

                  Heißt man müsste noch eine zweite Falls Verknüpfung machen mit Motion True und auch einen Stop-Timeout da rein packen?

                  ich denke ja. Dann müsste man aber noch mal über den Auslöser nachdenken. Hat der Bewegungsmelder einen Status "Bewegung erkannt" und "Jetzt ist wieder ruhig" ? Sieht so aus als wäre das wahr und falsch

                  Dann einfach in den sonst-zweig.
                  Besser wäre "wenn falsch dann Timer anlaufen lassen" und "wenn wahr, timer stoppen"

                  L Offline
                  L Offline
                  LastActionHero
                  schrieb am zuletzt editiert von
                  #8

                  Ja, der Melder hat nur Motion: true/false
                  Aber, müsste es nicht auch so gehen?
                  Sobald der Melder seinen Status ändert, in was auch immer, wird der Timer gestoppt. Solange Bewegung oder eben keine Bewegung erkannt wird, bleibt der Status identisch. Ist Motion true wird keine Bedingung für einen neuen Timer erfüllt, aber der alte in jedem Fall gestoppt. Ist Motion dann false, sind alle 3 Bedingungen erfüllt und ein neuer Timer wird gestartet, der dann auch durchläuft, wenn Motion false bleibt und sich nicht ändert? Teste ich morgen früh!

                  Bildschirmfoto 2024-07-10 um 22.28.19.png

                  BananaJoeB 1 Antwort Letzte Antwort
                  0
                  • L LastActionHero

                    Ja, der Melder hat nur Motion: true/false
                    Aber, müsste es nicht auch so gehen?
                    Sobald der Melder seinen Status ändert, in was auch immer, wird der Timer gestoppt. Solange Bewegung oder eben keine Bewegung erkannt wird, bleibt der Status identisch. Ist Motion true wird keine Bedingung für einen neuen Timer erfüllt, aber der alte in jedem Fall gestoppt. Ist Motion dann false, sind alle 3 Bedingungen erfüllt und ein neuer Timer wird gestartet, der dann auch durchläuft, wenn Motion false bleibt und sich nicht ändert? Teste ich morgen früh!

                    Bildschirmfoto 2024-07-10 um 22.28.19.png

                    BananaJoeB Online
                    BananaJoeB Online
                    BananaJoe
                    Most Active
                    schrieb am zuletzt editiert von
                    #9

                    @lastactionhero genau, probiere einfach aus.
                    Ansonsten bau die Debug-Meldungen ein, dann kannst du im Log sehen was dein Skript macht, wo es steht.

                    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                    L 1 Antwort Letzte Antwort
                    0
                    • BananaJoeB BananaJoe

                      @lastactionhero genau, probiere einfach aus.
                      Ansonsten bau die Debug-Meldungen ein, dann kannst du im Log sehen was dein Skript macht, wo es steht.

                      L Offline
                      L Offline
                      LastActionHero
                      schrieb am zuletzt editiert von
                      #10

                      @bananajoe scheint nun zu funktionieren, danke für die Hilfe! Ich beobachte das Verhalten nun noch ein paar Tage, dann kann ich den Export noch oben reinstellen für diejenigen, die auch nach sowas suchen! Danke!

                      L 1 Antwort Letzte Antwort
                      0
                      • L LastActionHero

                        @bananajoe scheint nun zu funktionieren, danke für die Hilfe! Ich beobachte das Verhalten nun noch ein paar Tage, dann kann ich den Export noch oben reinstellen für diejenigen, die auch nach sowas suchen! Danke!

                        L Offline
                        L Offline
                        LastActionHero
                        schrieb am zuletzt editiert von
                        #11

                        @lastactionhero

                        nach nun 2 Wochen testen habe ich das Script noch um den Fall erweitert, dass bspw. bei Dunkelheit oder Dämmerung der Bewegungssensor gar keine Bewegung bei Öffnung des Tores erkannt hat. Damit funktioniert das Script ziemlich gut! Für alle, die es kopieren wollen, hier der Export:

                        <xml xmlns="https://developers.google.com/blockly/xml">
                          <variables>
                            <variable type="timeout" id="timeout_garagentor">timeout_garagentor</variable>
                          </variables>
                          <block type="on_ext" id="Rc,RDdc5.6wG*^S365kb" x="63" y="213">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                            <field name="CONDITION">any</field>
                            <field name="ACK_CONDITION"></field>
                            <value name="OID0">
                              <shadow type="field_oid" id="8hnUfm/?(yNLdqZYZioq">
                                <field name="oid">hm-rpc.1.000920C99B440F.1.MOTION</field>
                              </shadow>
                            </value>
                            <value name="OID1">
                              <shadow type="field_oid" id="8AnIbRH(B2Z0mq*E[{%[">
                                <field name="oid">hm-rpc.1.002420C995C575.1.DOOR_STATE</field>
                              </shadow>
                            </value>
                            <statement name="STATEMENT">
                              <block type="timeouts_cleartimeout" id="T?qf2^:iUp,w(UT*ZQz;">
                                <field name="NAME">timeout_garagentor</field>
                                <next>
                                  <block type="controls_if" id="Mn:.=S/[gc[Thv5A|uXj">
                                    <value name="IF0">
                                      <block type="logic_multi_and" id="bfL7b$l[:-;i~hIrK|wL">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation>
                                        <value name="AND0">
                                          <block type="logic_compare" id="*W{+nK5#|V!oF:.8L*s+">
                                            <field name="OP">EQ</field>
                                            <value name="A">
                                              <block type="get_value" id="[r~|BdaEIVXhiu6{JM5X">
                                                <field name="ATTR">val</field>
                                                <field name="OID">0_userdata.0.Garage_Autoclose</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <block type="logic_boolean" id="q=1%9$-8B}Z0U8%28k#)">
                                                <field name="BOOL">TRUE</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <value name="AND1">
                                          <block type="logic_compare" id="Qq5B,Q|db2el8:aKjBWq">
                                            <field name="OP">EQ</field>
                                            <value name="A">
                                              <block type="get_value" id="nx62AQcvUCmy#c@$Asax">
                                                <field name="ATTR">val</field>
                                                <field name="OID">hm-rpc.1.000920C99B440F.1.MOTION</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <block type="logic_boolean" id="e1x]U3dj#0ZIAq`Xk+Gd">
                                                <field name="BOOL">FALSE</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <value name="AND2">
                                          <block type="logic_compare" id="_7d#`#s};ypO29N9upu6">
                                            <field name="OP">NEQ</field>
                                            <value name="A">
                                              <block type="get_value" id="mS]!-(O0uD9,u}`A#`td">
                                                <field name="ATTR">val</field>
                                                <field name="OID">hm-rpc.1.002420C995C575.1.DOOR_STATE</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <block type="math_number" id="BV9G(8uj+VE?A.^me=a5">
                                                <field name="NUM">0</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <statement name="DO0">
                                      <block type="comment" id="JQ!5`+_8gzc?@iT^Mi|C">
                                        <field name="COMMENT">Nach 5 min ohne Bewegung automatisch schließen</field>
                                        <next>
                                          <block type="comment" id="BP05f8xMWyF:n[eD!g7H">
                                            <field name="COMMENT">2 min davon vorgegeben vom Bewegungsmelder</field>
                                            <next>
                                              <block type="timeouts_settimeout" id="w?3#}$|H,rD_$OA}6lO=">
                                                <field name="NAME">timeout_garagentor</field>
                                                <field name="DELAY">3</field>
                                                <field name="UNIT">min</field>
                                                <statement name="STATEMENT">
                                                  <block type="control" id="eyPVpw@h|Otg_5=%p_iG">
                                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                    <field name="OID">hm-rpc.1.002420C995C575.1.DOOR_COMMAND</field>
                                                    <field name="WITH_DELAY">FALSE</field>
                                                    <value name="VALUE">
                                                      <block type="math_number" id="5O?]J$QiwJydKxtg5!`Q">
                                                        <field name="NUM">3</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </statement>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </statement>
                                  </block>
                                </next>
                              </block>
                            </statement>
                          </block>
                        </xml>
                        
                        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

                        974

                        Online

                        32.5k

                        Benutzer

                        81.8k

                        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