Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [gelöst] Präsenzmelder schaltet Zwischenstecker mit Abfragen

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    6
    1
    226

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    220

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    893

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

Scheduled Pinned Locked Moved Blockly
5 Posts 3 Posters 302 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • I Offline
    I Offline
    igniton
    wrote on last edited by igniton
    #1

    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>
    
    AsgothianA paul53P 2 Replies Last reply
    0
    • I 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>
      
      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      wrote on last edited by Asgothian
      #2

      @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.

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

      I 1 Reply Last reply
      0
      • AsgothianA 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 Offline
        I Offline
        igniton
        wrote on last edited by igniton
        #3

        @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
        0
        • I 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>
          
          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #4

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

          Versuche es mal so:

          Blockly_temp.JPG

          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

          I 1 Reply Last reply
          0
          • paul53P paul53

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

            Versuche es mal so:

            Blockly_temp.JPG

            I Offline
            I Offline
            igniton
            wrote on last edited by
            #5

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

            1 Reply Last reply
            0

            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

            With your input, this post could be even better 💗

            Register Login
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            Support us

            ioBroker
            Community Adapters
            Donate

            582

            Online

            32.8k

            Users

            82.8k

            Topics

            1.3m

            Posts
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Home
            • Recent
            • Tags
            • Unread 0
            • Categories
            • Unreplied
            • Popular
            • GitHub
            • Docu
            • Hilfe