Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Präsenzmelder schaltet Zwischenstecker mit Abfragen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Präsenzmelder schaltet Zwischenstecker mit Abfragen

    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      igniton last edited by igniton

      Hallo zusammen .
      Ich brauche mal Hilfe bei einem Script - es macht nicht Das, was es soll und ich hab scheinbar Scheuklappen auf und finde den Fehler nicht .

      Es geht um ein Blockly-Script für den Fernseher meiner Tochter .
      Sie macht häufig den Fernseher an, verlässt dan ndas Zimmer und die Kiste läuft und läuft und läuft.

      Im Kinderzimmer befindet sich (unter anderem) ein Echo, ein Zwischenstecker für den TV und ein Aqara Präsenzsensor FP1E .

      Der Gedanke hinter dem Script :
      Wenn das Kind das Zimmer verlässt, soll der TV ausgehen .
      Das wäre ja noch einfach zu realisieren - allerdings kann es ja auch sein, daß sie nur mal schnell aufs Klo geht oder SO im Bett liegt, daß der FP1E sie einfach nicht wahrnimmt.
      Bedeutet : der TV soll nicht sofort ausgehen, wenn sie geht, sondern erst nach Ablauf einer bestimmten Zeit.
      Außerdem (um das „nicht wahrnehmen“ abzufangen) soll vor dem Aussachalten ein Hinweis auf dem Echo ausgegeben werden “ Wenn Du da bist und nicht schläfst …“
      Weiterhin soll das ganze überhaupt erst abgearbeitet werden, wenn der TV eingeschaltet ist - also Strom verbraucht .

      Im Detail :
      Wenn der Zustand des Präsenzmelders sich ändert
      Falls er falsch ist und der TV Strom verbaucht
      Warte 10 Minuten (Timeout2)
      Falls der Präsenzmelder immer noch nichts wahrnimmt und der Tv immer noch Strom verbaucht, gebe auf dem Echo den Hinweis aus, daß das Kind sich bewegen soll.
      Warte 2 Minuten (Timeout1)
      Falls der Präsenzmelder immer noch nichts wahrnimmt und der Tv immer noch Strom verbaucht,
      schalte zwischenstecker aus
      Falls der Präsenzmelder eine Anwesenheit feststellt oder der Tv kein Strom mehr verbraucht
      Stoppe die Tinmeouts
      Falls der TV kein Strom mehr verbraucht
      Stoppe die Tinmeouts

      Die Fehler :
      Nach Ablauf des ersten Timeouts quatscht der Echo, aber egal ob man winkt oder nicht, er schaltet den TV aus . Und das von da an in unregelmäßigen (kurzen - wir redenvon 1-4 minuten) Abständen, egal ob jemand vor dem Präsenzmelder Lambada tanzt oder nicht .

      Ich hoffe, jemand kann auf Anhieb erkennen, wo mein Fehler liegt .

      Fernseher.jpg

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable type="timeout" id="timeout2">timeout2</variable>
          <variable type="timeout" id="timeout1">timeout1</variable>
        </variables>
        <block type="on" id="Q,4|Ku`gzFaIm7bXu}ZT" x="-413" y="-437">
          <field name="OID">zigbee.0.54ef441000df293a.presence</field>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
            <block type="controls_if" id="*pXamh^3@X~fx_i#I!8D">
              <value name="IF0">
                <block type="logic_operation" id="6t5hLFI,DafAHI[jIX2%" inline="false">
                  <field name="OP">AND</field>
                  <value name="A">
                    <block type="logic_compare" id="GDb[uR2Y?Z|=Q{x(,~-%">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="i5:S?Paf8xZwF53gw@H!">
                          <field name="ATTR">val</field>
                          <field name="OID">zigbee.0.54ef441000df293a.presence</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_boolean" id=";P#[zd=zXbycNKune%v%">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_compare" id="o/.749y/XesoDP~yY{hK">
                      <field name="OP">GT</field>
                      <value name="A">
                        <block type="get_value" id="%NGO.mzGA`zKsA~~/{3A">
                          <field name="ATTR">val</field>
                          <field name="OID">sonoff.0.Isabellsfernseher.SENSOR.ENERGY.Power</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="math_number" id="BHnOd1X*KkdM/7kc#8ow">
                          <field name="NUM">35</field>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="timeouts_settimeout" id="rQ:c],j|b`:D=_#NX|ZR">
                  <field name="NAME">timeout2</field>
                  <field name="DELAY">10</field>
                  <field name="UNIT">min</field>
                  <statement name="STATEMENT">
                    <block type="controls_if" id="{nP8iax9;EY75*OCi1Ml">
                      <value name="IF0">
                        <block type="logic_operation" id="O$k0D5]fwo|*7/X3FG@G" inline="false">
                          <field name="OP">AND</field>
                          <value name="A">
                            <block type="logic_compare" id="DP@S0FAEH,[5GaI7!W@/">
                              <field name="OP">EQ</field>
                              <value name="A">
                                <block type="get_value" id="{ehfWk(M]bIEW9R)S0(J">
                                  <field name="ATTR">val</field>
                                  <field name="OID">zigbee.0.54ef441000df293a.presence</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="logic_boolean" id="1-BCYd-$v[t,3OFp)BaW">
                                  <field name="BOOL">FALSE</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_compare" id="4nZM/qb3gU079VjHpQJ#">
                              <field name="OP">GT</field>
                              <value name="A">
                                <block type="get_value" id="G9:ZL:%ea|9d8MIlBl;X">
                                  <field name="ATTR">val</field>
                                  <field name="OID">sonoff.0.Isabellsfernseher.SENSOR.ENERGY.Power</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="math_number" id="BOy!u]3YF?sk|6$FU}X5">
                                  <field name="NUM">35</field>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                      <statement name="DO0">
                        <block type="control_ex" id="RF7G);CHDzm1P0fk4~OE">
                          <field name="TYPE">true</field>
                          <field name="CLEAR_RUNNING">FALSE</field>
                          <value name="OID">
                            <shadow type="field_oid" id="Q]|LlI24T9q^Wg3dZ6PT">
                              <field name="oid">alexa2.0.Echo-Devices.G090XG1002460CV0.Preferences.notificationVolume</field>
                            </shadow>
                          </value>
                          <value name="VALUE">
                            <shadow type="logic_boolean" id="1lld,=0)Hq^k2TiEAu`p">
                              <field name="BOOL">TRUE</field>
                            </shadow>
                            <block type="math_number" id="^ID!v~sl:gElEpPfi7vM">
                              <field name="NUM">20</field>
                            </block>
                          </value>
                          <value name="DELAY_MS">
                            <shadow type="math_number" id="A-p[vTAfCTB]etg^)l8W">
                              <field name="NUM">0</field>
                            </shadow>
                          </value>
                          <next>
                            <block type="control_ex" id="@](tmkO)G{XSAsMEi?CM">
                              <field name="TYPE">false</field>
                              <field name="CLEAR_RUNNING">FALSE</field>
                              <value name="OID">
                                <shadow type="field_oid" id="j3~RsN-+ji3?c[X_v0Hn">
                                  <field name="oid">alexa2.0.Echo-Devices.G090XG1002460CV0.Commands.speak</field>
                                </shadow>
                              </value>
                              <value name="VALUE">
                                <shadow type="logic_boolean" id="?`|5zcg6a$g^}Bcy[dc}">
                                  <field name="BOOL">TRUE</field>
                                </shadow>
                                <block type="text" id="})fvG]n7SB/[*D%YC@zn">
                                  <field name="TEXT">Wenn Du daaa bist, und nicht schläfst, winke bitte mal</field>
                                </block>
                              </value>
                              <value name="DELAY_MS">
                                <shadow type="math_number" id="18`~V?iMD50o1w%FNttK">
                                  <field name="NUM">0</field>
                                </shadow>
                              </value>
                            </block>
                          </next>
                        </block>
                      </statement>
                    </block>
                  </statement>
                  <next>
                    <block type="comment" id="Gs9(yWnJWJK8a$g!!_4M">
                      <field name="COMMENT">Kommentar</field>
                      <next>
                        <block type="timeouts_settimeout" id="G*HnW^CQV*8#I/R~iFHQ">
                          <field name="NAME">timeout1</field>
                          <field name="DELAY">2</field>
                          <field name="UNIT">min</field>
                          <statement name="STATEMENT">
                            <block type="controls_if" id="y6VSf8P0MTWTDaoNI,Z2">
                              <value name="IF0">
                                <block type="logic_operation" id="N2^SQvFVf-$UUJ(3Aojt" inline="false">
                                  <field name="OP">AND</field>
                                  <value name="A">
                                    <block type="logic_compare" id="I~uMCY^eI`f#}}-UJkug">
                                      <field name="OP">EQ</field>
                                      <value name="A">
                                        <block type="get_value" id="#x.u8x^0!1AU}JRG3(Q;">
                                          <field name="ATTR">val</field>
                                          <field name="OID">zigbee.0.54ef441000df293a.presence</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="logic_boolean" id=".Q51+J0Q:;t@s%p:03x@">
                                          <field name="BOOL">FALSE</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="logic_compare" id="y!X$bNyspX?6BBA6yS@7">
                                      <field name="OP">GT</field>
                                      <value name="A">
                                        <block type="get_value" id=")U~b/OZQLdWaF0PFBTd8">
                                          <field name="ATTR">val</field>
                                          <field name="OID">sonoff.0.Isabellsfernseher.SENSOR.ENERGY.Power</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="math_number" id="lCmoXMEU9%PZs@{;n4$J">
                                          <field name="NUM">35</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO0">
                                <block type="control" id="HE]T6r,M5,4ZO1hC1l?r">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">sonoff.0.Isabellsfernseher.POWER</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="logic_boolean" id="N)EUsV0I-M9ZAx[QfQOo">
                                      <field name="BOOL">FALSE</field>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                            </block>
                          </statement>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
              <next>
                <block type="controls_if" id="=Ht(%!PxJ4-X+*}de:Ax">
                  <value name="IF0">
                    <block type="logic_multi_or" id="9o#x=|_jw-PD!`?00$?W">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                      <value name="OR0">
                        <block type="logic_compare" id="Yfl|WCJm#{}T5sSy{nb^">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="~/*xvz9QOsv#3e$pURDk">
                              <field name="ATTR">val</field>
                              <field name="OID">zigbee.0.54ef441000df293a.presence</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_boolean" id="{L8S)DD/.Y%KjecUXJw)">
                              <field name="BOOL">TRUE</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="OR1">
                        <block type="logic_compare" id="TM~B$9bvIof!Xn;{3GVo">
                          <field name="OP">LTE</field>
                          <value name="A">
                            <block type="get_value" id="B!}3.Y0b|%:c8#.jhg,)">
                              <field name="ATTR">val</field>
                              <field name="OID">sonoff.0.Isabellsfernseher.SENSOR.ENERGY.Power</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="p!/G5l}}]j(yyoS.3qj.">
                              <field name="NUM">5</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="comment" id="v{1-b)@mOPAvPy{cVZkC">
                      <field name="COMMENT">Kommentar</field>
                      <next>
                        <block type="timeouts_cleartimeout" id="M%9`tUQ!Kcw.p(`;ML84">
                          <field name="NAME">timeout1</field>
                          <next>
                            <block type="timeouts_cleartimeout" id="~niNR(W@]$MM@#.2XUXQ">
                              <field name="NAME">timeout2</field>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                  <next>
                    <block type="controls_if" id=":3YadwIN2ggz`d0O~*8f">
                      <value name="IF0">
                        <block type="logic_compare" id="b]WA(qOD*SXN-i`4:94S">
                          <field name="OP">LTE</field>
                          <value name="A">
                            <block type="get_value" id="Zj9tO(OWZj(LCYJp.7Ug">
                              <field name="ATTR">val</field>
                              <field name="OID">sonoff.0.Isabellsfernseher.SENSOR.ENERGY.Power</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="YZJgX%CcYT9RplS-!u:U">
                              <field name="NUM">5</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <statement name="DO0">
                        <block type="comment" id="*lR@sPh]]B;:{zdpH7cR">
                          <field name="COMMENT">Kommentar</field>
                          <next>
                            <block type="timeouts_cleartimeout" id="ALm0)T`EN/bU.EJPOl$(">
                              <field name="NAME">timeout1</field>
                              <next>
                                <block type="timeouts_cleartimeout" id="og!IJh%(mf}$Oho[8UDp">
                                  <field name="NAME">timeout2</field>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </statement>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </xml>
      
      Asgothian paul53 2 Replies Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @igniton last edited by Asgothian

        @igniton du musst den timeout 2 Block samt Inhalt als letztes innerhalb des timeout Blocks platzieren, sonst werden beide timeouts gleichzeitig ‘registriert’. (Alternativ dazu - den timeout2 mit 12 Minuten starten.

        A.

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

          @asgothian Jo, das klingt schon mal ZIEMLICH plausibel. Kam mir gar nicht in den Sinn. Ich habs umgesetzt, werde es testen und berichten.
          Vielen Dank !

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

            @igniton sagte: egal ob man winkt oder nicht, er schaltet den TV aus .

            Versuche es mal so:

            Blockly_temp.JPG

            I 1 Reply Last reply Reply Quote 0
            • I
              igniton @paul53 last edited by

              @paul53 Krass ! Dein Script ist um so vieles kürzer und macht trotzdem genau, was ich will ! Vielen vielen Dank !!!

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

              Support us

              ioBroker
              Community Adapters
              Donate

              899
              Online

              31.7k
              Users

              79.7k
              Topics

              1.3m
              Posts

              3
              5
              207
              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