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. Timeout richtig verwenden

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    241

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

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

Timeout richtig verwenden

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

    Servus!

    Irgendwie stehe ich bisschen auf dem Schlauch: Ich möchte in mein Skript eine Abfrage einbauen, die mir mitteilt, wenn die Tauchpumpe länger, als 20 Sekunden läuft. Schon klar, daß das irgendwie mit einem Timeout geht, aber ich komme nicht drauf.
    Anbei mein Skript:

    <xml xmlns="https://developers.google.com/blockly/xml">
      <variables>
        <variable id="EP`a-qu0Mi)#+F^5KaM)">Tauchpumpe_aktiv?</variable>
      </variables>
      <block type="variables_set" id="vB%/(%QK-.|VB8olH+F+" x="-62" y="-137">
        <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Tauchpumpe_aktiv?</field>
        <value name="VALUE">
          <block type="logic_boolean" id="Zt3N#kbH0XjK+}5)pbJ^">
            <field name="BOOL">FALSE</field>
          </block>
        </value>
        <next>
          <block type="on" id="?*7pS-cANelnRStH5fpi">
            <field name="OID">sonoff.0.Tauchpumpe.ENERGY_Power</field>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <statement name="STATEMENT">
              <block type="controls_if" id="*bOx]47]yxIByA#qqt3J">
                <mutation elseif="1"></mutation>
                <value name="IF0">
                  <block type="logic_operation" id="Z=d#73]O`zyDGC~L|Jn/" inline="false">
                    <field name="OP">AND</field>
                    <value name="A">
                      <block type="logic_compare" id=".(cUpb9mFzXnI.u`/RGu">
                        <field name="OP">GTE</field>
                        <value name="A">
                          <block type="on_source" id="+L|D9(N^L/_9p**AC4Y#">
                            <field name="ATTR">state.val</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number" id="IRXiQ:Tf}.:}u-F;(J?|">
                            <field name="NUM">3</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_compare" id="!+aTX:f8zpg?koPwXqU9">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="variables_get" id="~^+uLCVDphEA1T3csQ;4">
                            <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Tauchpumpe_aktiv?</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="m9)+OzK@16j;{0FErZe_">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="variables_set" id="yj^]v8#=,-=xs,C$1:0m">
                    <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Tauchpumpe_aktiv?</field>
                    <value name="VALUE">
                      <block type="logic_boolean" id="c%J}.8a#0L-%7wEqRPVF">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                    <next>
                      <block type="telegram" id=")43X.^NP$KHLnE,ZJK[m">
                        <field name="INSTANCE"></field>
                        <field name="LOG"></field>
                        <field name="SILENT">FALSE</field>
                        <field name="PARSEMODE">default</field>
                        <value name="MESSAGE">
                          <shadow type="text" id="B`kyTY5/jBuR@[lQA^oW">
                            <field name="TEXT">Tauchpumpe läuft</field>
                          </shadow>
                        </value>
                      </block>
                    </next>
                  </block>
                </statement>
                <value name="IF1">
                  <block type="logic_operation" id="ypsA%)wGaJm%m/NKb;=i" inline="false">
                    <field name="OP">AND</field>
                    <value name="A">
                      <block type="logic_operation" id="BJcJfH;;~Zs!Cb;|si9H">
                        <field name="OP">AND</field>
                        <value name="A">
                          <block type="logic_compare" id="`of^ix$+JJ:q+jB]LuGW">
                            <field name="OP">LT</field>
                            <value name="A">
                              <block type="on_source" id="%%:?,%fLZ^rP#abOHUuC">
                                <field name="ATTR">state.val</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id="}xv`$j.L]mt%:X1mr]{E">
                                <field name="NUM">3</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_compare" id="RAy_B|_N=),^/yP4_=go">
                            <field name="OP">GT</field>
                            <value name="A">
                              <block type="on_source" id="iz,6l+`khcZXn548=_mG">
                                <field name="ATTR">state.val</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id="6g$-XC4nL#:SQe2k#6MS">
                                <field name="NUM">0</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_compare" id="Q+6~nu9t9);pkS12`.AL">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="variables_get" id="cpnf;Gi35/{P3:nPjq[W">
                            <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Tauchpumpe_aktiv?</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="J57c)XE#PG(Da`u;jg#,">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO1">
                  <block type="variables_set" id=":eS4G4/zu.ky;:[2FzJN">
                    <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Tauchpumpe_aktiv?</field>
                    <value name="VALUE">
                      <block type="logic_boolean" id="ly}z},:j05vr{-G[6+~L">
                        <field name="BOOL">FALSE</field>
                      </block>
                    </value>
                    <next>
                      <block type="telegram" id="9?I2K.J*.|N*=,2aN+V_">
                        <field name="INSTANCE"></field>
                        <field name="LOG"></field>
                        <field name="SILENT">FALSE</field>
                        <field name="PARSEMODE">default</field>
                        <value name="MESSAGE">
                          <shadow type="text" id="m0]cKJ`QA.tao?AAm`!P">
                            <field name="TEXT">Tauchpumpe fertig</field>
                          </shadow>
                        </value>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
        </next>
      </block>
    </xml>
    

    Danke Euch!

    K 1 Antwort Letzte Antwort
    0
    • I invidianer

      Servus!

      Irgendwie stehe ich bisschen auf dem Schlauch: Ich möchte in mein Skript eine Abfrage einbauen, die mir mitteilt, wenn die Tauchpumpe länger, als 20 Sekunden läuft. Schon klar, daß das irgendwie mit einem Timeout geht, aber ich komme nicht drauf.
      Anbei mein Skript:

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="EP`a-qu0Mi)#+F^5KaM)">Tauchpumpe_aktiv?</variable>
        </variables>
        <block type="variables_set" id="vB%/(%QK-.|VB8olH+F+" x="-62" y="-137">
          <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Tauchpumpe_aktiv?</field>
          <value name="VALUE">
            <block type="logic_boolean" id="Zt3N#kbH0XjK+}5)pbJ^">
              <field name="BOOL">FALSE</field>
            </block>
          </value>
          <next>
            <block type="on" id="?*7pS-cANelnRStH5fpi">
              <field name="OID">sonoff.0.Tauchpumpe.ENERGY_Power</field>
              <field name="CONDITION">ne</field>
              <field name="ACK_CONDITION"></field>
              <statement name="STATEMENT">
                <block type="controls_if" id="*bOx]47]yxIByA#qqt3J">
                  <mutation elseif="1"></mutation>
                  <value name="IF0">
                    <block type="logic_operation" id="Z=d#73]O`zyDGC~L|Jn/" inline="false">
                      <field name="OP">AND</field>
                      <value name="A">
                        <block type="logic_compare" id=".(cUpb9mFzXnI.u`/RGu">
                          <field name="OP">GTE</field>
                          <value name="A">
                            <block type="on_source" id="+L|D9(N^L/_9p**AC4Y#">
                              <field name="ATTR">state.val</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="IRXiQ:Tf}.:}u-F;(J?|">
                              <field name="NUM">3</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_compare" id="!+aTX:f8zpg?koPwXqU9">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="variables_get" id="~^+uLCVDphEA1T3csQ;4">
                              <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Tauchpumpe_aktiv?</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_boolean" id="m9)+OzK@16j;{0FErZe_">
                              <field name="BOOL">FALSE</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="variables_set" id="yj^]v8#=,-=xs,C$1:0m">
                      <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Tauchpumpe_aktiv?</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="c%J}.8a#0L-%7wEqRPVF">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                      <next>
                        <block type="telegram" id=")43X.^NP$KHLnE,ZJK[m">
                          <field name="INSTANCE"></field>
                          <field name="LOG"></field>
                          <field name="SILENT">FALSE</field>
                          <field name="PARSEMODE">default</field>
                          <value name="MESSAGE">
                            <shadow type="text" id="B`kyTY5/jBuR@[lQA^oW">
                              <field name="TEXT">Tauchpumpe läuft</field>
                            </shadow>
                          </value>
                        </block>
                      </next>
                    </block>
                  </statement>
                  <value name="IF1">
                    <block type="logic_operation" id="ypsA%)wGaJm%m/NKb;=i" inline="false">
                      <field name="OP">AND</field>
                      <value name="A">
                        <block type="logic_operation" id="BJcJfH;;~Zs!Cb;|si9H">
                          <field name="OP">AND</field>
                          <value name="A">
                            <block type="logic_compare" id="`of^ix$+JJ:q+jB]LuGW">
                              <field name="OP">LT</field>
                              <value name="A">
                                <block type="on_source" id="%%:?,%fLZ^rP#abOHUuC">
                                  <field name="ATTR">state.val</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="math_number" id="}xv`$j.L]mt%:X1mr]{E">
                                  <field name="NUM">3</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_compare" id="RAy_B|_N=),^/yP4_=go">
                              <field name="OP">GT</field>
                              <value name="A">
                                <block type="on_source" id="iz,6l+`khcZXn548=_mG">
                                  <field name="ATTR">state.val</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="math_number" id="6g$-XC4nL#:SQe2k#6MS">
                                  <field name="NUM">0</field>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_compare" id="Q+6~nu9t9);pkS12`.AL">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="variables_get" id="cpnf;Gi35/{P3:nPjq[W">
                              <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Tauchpumpe_aktiv?</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_boolean" id="J57c)XE#PG(Da`u;jg#,">
                              <field name="BOOL">TRUE</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO1">
                    <block type="variables_set" id=":eS4G4/zu.ky;:[2FzJN">
                      <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Tauchpumpe_aktiv?</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="ly}z},:j05vr{-G[6+~L">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                      <next>
                        <block type="telegram" id="9?I2K.J*.|N*=,2aN+V_">
                          <field name="INSTANCE"></field>
                          <field name="LOG"></field>
                          <field name="SILENT">FALSE</field>
                          <field name="PARSEMODE">default</field>
                          <value name="MESSAGE">
                            <shadow type="text" id="m0]cKJ`QA.tao?AAm`!P">
                              <field name="TEXT">Tauchpumpe fertig</field>
                            </shadow>
                          </value>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </statement>
            </block>
          </next>
        </block>
      </xml>
      

      Danke Euch!

      K Offline
      K Offline
      klassisch
      Most Active
      schrieb am zuletzt editiert von
      #2

      @invidianer schau mal, dort https://forum.iobroker.net/post/110978 ist das für Jscript beschrieben. Das was innerhalb der function steht, wird nach Ablauf der Zeit ausgeführt. Ist etwas ungewöhnlich, weil das dann vor der timeout-Zeit steht und nicht danach.

      I 1 Antwort Letzte Antwort
      0
      • K klassisch

        @invidianer schau mal, dort https://forum.iobroker.net/post/110978 ist das für Jscript beschrieben. Das was innerhalb der function steht, wird nach Ablauf der Zeit ausgeführt. Ist etwas ungewöhnlich, weil das dann vor der timeout-Zeit steht und nicht danach.

        I Offline
        I Offline
        invidianer
        schrieb am zuletzt editiert von
        #3

        @klassisch
        Danke! Das ist je bestimmt geil, wenn man es versteht :dog:
        Kann man das in Blockly denn gar nicht machen? Wofür gibt es in Blockly dann diese olivefarbenen "timeout"-Dinger?

        K 1 Antwort Letzte Antwort
        0
        • I invidianer

          @klassisch
          Danke! Das ist je bestimmt geil, wenn man es versteht :dog:
          Kann man das in Blockly denn gar nicht machen? Wofür gibt es in Blockly dann diese olivefarbenen "timeout"-Dinger?

          K Offline
          K Offline
          klassisch
          Most Active
          schrieb am zuletzt editiert von klassisch
          #4

          @invidianer vielleicht so; Mein erstes Blockly.
          4901238b-8b91-46dd-ae88-0f1b82fd0303-image.png

          schickt nach 5 Sekunden eine Mail. Führt nach 5 Sekunden das aus, was innerhalb der "Zange" ist,

          1 Antwort Letzte Antwort
          0
          • I Offline
            I Offline
            invidianer
            schrieb am zuletzt editiert von invidianer
            #5

            Hilft mir leider nicht weiter.
            Hier mein Blockly als Bild.

            Bildschirmfoto 2021-02-02 um 20.03.59.jpg

            Im erstren "mache"-Bereich muß geprüft werden, ob die Pumpe länger, als 20 Sekunden läiuft.

            paul53P 2 Antworten Letzte Antwort
            0
            • I invidianer

              Hilft mir leider nicht weiter.
              Hier mein Blockly als Bild.

              Bildschirmfoto 2021-02-02 um 20.03.59.jpg

              Im erstren "mache"-Bereich muß geprüft werden, ob die Pumpe länger, als 20 Sekunden läiuft.

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @invidianer sagte: Im erstren "mache"-Bereich muß geprüft werden, ob die Pumpe länger, als 20 Sekunden läiuft.

              Bild_2021-02-02_200739.png

              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

              1 Antwort Letzte Antwort
              0
              • I invidianer

                Hilft mir leider nicht weiter.
                Hier mein Blockly als Bild.

                Bildschirmfoto 2021-02-02 um 20.03.59.jpg

                Im erstren "mache"-Bereich muß geprüft werden, ob die Pumpe länger, als 20 Sekunden läiuft.

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #7

                @invidianer
                Durch Prüfung der Variable timeout lässt es sich vereinfachen.

                Bild_2021-02-02_202228.png

                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 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @invidianer
                  Durch Prüfung der Variable timeout lässt es sich vereinfachen.

                  Bild_2021-02-02_202228.png

                  I Offline
                  I Offline
                  invidianer
                  schrieb am zuletzt editiert von
                  #8

                  @paul53

                  Cool, danke!!

                  Wen wir nochmal MEINE Version (der Einfachheit) nehmen:
                  Dann ist es also so, daß der aktuelle "Durchlauf" innerhalb der "mache"-Zange (Tauchpumpe aktiv) unterbrochen wird, sobald sich der Stromverbrauch wieder unter 3 Watt befindet und dann die "mache"-Zange für Tauchpumpe inaktiv abgearbeitet wird?
                  Ich war davon ausgegangen, daß die "mache"-Zange (Tauchpumpe aktiv) auf jeden Fall zuerst mal komplett ausgeführt wird, also auch der Timeout unabhängig davon, ob sich der Stromverbrauch mittlerweile geändert hat. Dem ist also nicht so?

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • I invidianer

                    @paul53

                    Cool, danke!!

                    Wen wir nochmal MEINE Version (der Einfachheit) nehmen:
                    Dann ist es also so, daß der aktuelle "Durchlauf" innerhalb der "mache"-Zange (Tauchpumpe aktiv) unterbrochen wird, sobald sich der Stromverbrauch wieder unter 3 Watt befindet und dann die "mache"-Zange für Tauchpumpe inaktiv abgearbeitet wird?
                    Ich war davon ausgegangen, daß die "mache"-Zange (Tauchpumpe aktiv) auf jeden Fall zuerst mal komplett ausgeführt wird, also auch der Timeout unabhängig davon, ob sich der Stromverbrauch mittlerweile geändert hat. Dem ist also nicht so?

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    @invidianer sagte: der aktuelle "Durchlauf" innerhalb der "mache"-Zange (Tauchpumpe aktiv) unterbrochen wird, sobald sich der Stromverbrauch wieder unter 3 Watt befindet

                    Nein, es wird nichts unterbrochen: Der Timeout läuft weiter, wenn er nicht im sonst-Zweig gestoppt wird.

                    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 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @invidianer sagte: der aktuelle "Durchlauf" innerhalb der "mache"-Zange (Tauchpumpe aktiv) unterbrochen wird, sobald sich der Stromverbrauch wieder unter 3 Watt befindet

                      Nein, es wird nichts unterbrochen: Der Timeout läuft weiter, wenn er nicht im sonst-Zweig gestoppt wird.

                      I Offline
                      I Offline
                      invidianer
                      schrieb am zuletzt editiert von
                      #10

                      @paul53
                      Hmm, das bedeutet, auch, wenn die Pumpe nach 5 Sekunden längst fertig ist, wartet er erst insgesamt 20 Sekunden und meldet erst dann, daß sie fertig ist?

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • I invidianer

                        @paul53
                        Hmm, das bedeutet, auch, wenn die Pumpe nach 5 Sekunden längst fertig ist, wartet er erst insgesamt 20 Sekunden und meldet erst dann, daß sie fertig ist?

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #11

                        @invidianer sagte: wenn die Pumpe nach 5 Sekunden längst fertig ist, wartet er erst insgesamt 20 Sekunden und meldet erst dann, daß sie fertig ist?

                        Nein, die Verzögerung wirkt nur auf die Meldung, dass die Pumpe seit 20 s läuft.

                        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

                        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

                        575

                        Online

                        32.7k

                        Benutzer

                        82.5k

                        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