Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Frage: Verzögerung mit Timeout

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.6k

Frage: Verzögerung mit Timeout

Geplant Angeheftet Gesperrt Verschoben Blockly
8 Beiträge 4 Kommentatoren 723 Aufrufe 1 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.
  • surfer09S Offline
    surfer09S Offline
    surfer09
    schrieb am zuletzt editiert von
    #1

    Hallo,
    ich tue mich unheimlich schwer mit der Verwendung von Timeouts, daher hier einmal ein Beispiel für eine Steckdose, die ich bei Überschuss mit Verzögerung schalten möchte. Der Triggerwert ändert sich alle 10 Sekunden. Ist das ganze so korrekt verbaut?

    1dfef57a-c080-41df-9317-10053a8247ae-grafik.png

    <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="%K92xru3ntyl_mkO=0}|" x="138" y="-262">
      <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
      <field name="CONDITION">ne</field>
      <field name="ACK_CONDITION"></field>
      <value name="OID0">
        <shadow type="field_oid" id="QtmUbpCp%4g,I-U*QV/3">
          <field name="oid">smartmeter.0.1-0:16_7_0__255.value</field>
        </shadow>
      </value>
      <statement name="STATEMENT">
        <block type="controls_if" id="~liB{ho7G`{#WxYVTMeN">
          <mutation elseif="1"></mutation>
          <value name="IF0">
            <block type="logic_multi_and" id="6XL[C^+/rGQ3SbzfE|+z">
              <mutation xmlns="http://www.w3.org/1999/xhtml" items="4"></mutation>
              <value name="AND0">
                <block type="logic_negate" id="T=J#4)5uFuk;/tc0H]}T">
                  <value name="BOOL">
                    <block type="timeouts_gettimeout" id=":g@e%TV1y)e^uU)ZYZW+">
                      <field name="NAME">timeout-ein</field>
                    </block>
                  </value>
                </block>
              </value>
              <value name="AND1">
                <block type="logic_compare" id="$OLd^Yy$}*ZSRObp)bg7">
                  <field name="OP">LTE</field>
                  <value name="A">
                    <block type="get_value" id="%(k}jL_9al#gIGkar[$3">
                      <field name="ATTR">val</field>
                      <field name="OID">smartmeter.0.1-0:16_7_0__255.value</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="math_number" id="K_0~G={DPQJZLg(Fin8O">
                      <field name="NUM">-100</field>
                    </block>
                  </value>
                </block>
              </value>
              <value name="AND2">
                <block type="time_compare" id="4dj*yMM!=OC7heaj,W1G">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation>
                  <field name="OPTION">between</field>
                  <field name="START_TIME">8:00</field>
                  <field name="END_TIME">18:30</field>
                </block>
              </value>
              <value name="AND3">
                <block type="logic_compare" id="k/-V99kd:R(?;E@*KCCk">
                  <field name="OP">EQ</field>
                  <value name="A">
                    <block type="get_value" id="QZ4/TV[uCl0hZnyI`$xS">
                      <field name="ATTR">val</field>
                      <field name="OID">sonoff.0.Auflader-03.POWER</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_boolean" id="afDB#r4Jf-FfWm3uWoQ.">
                      <field name="BOOL">FALSE</field>
                    </block>
                  </value>
                </block>
              </value>
            </block>
          </value>
          <statement name="DO0">
            <block type="timeouts_cleartimeout" id="FEX|*~v-oVUqr+_BjB:(">
              <field name="NAME">timeout-ein</field>
              <next>
                <block type="timeouts_settimeout" id="9MJeS,]ZSh`+0i4B$oag">
                  <field name="NAME">timeout-ein</field>
                  <field name="DELAY">35</field>
                  <field name="UNIT">sec</field>
                  <statement name="STATEMENT">
                    <block type="control" id="tehh_3vIxn%5QFksuA+,">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">sonoff.0.Auflader-03.POWER</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="Wzd2ym(pHHKa.LM,}[-t">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                      <next>
                        <block type="debug" id="%BIdxq:MD.aC;osSej*^">
                          <field name="Severity">error</field>
                          <value name="TEXT">
                            <shadow type="text" id="AFh@,.a5P}5Yt_K}f+G3">
                              <field name="TEXT">eingeschaltet</field>
                            </shadow>
                          </value>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </statement>
          <value name="IF1">
            <block type="logic_operation" id="Bi,M;`^DhR00K*(r*3{O">
              <field name="OP">AND</field>
              <value name="A">
                <block type="logic_compare" id="@F^2~?*5(7bFwi_CQq~}">
                  <field name="OP">GTE</field>
                  <value name="A">
                    <block type="get_value" id="OLK+nY?8}7NL{Ge^whcA">
                      <field name="ATTR">val</field>
                      <field name="OID">smartmeter.0.1-0:16_7_0__255.value</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="math_number" id="wyzQ+0MZ0f2n=1xh!!rv">
                      <field name="NUM">0</field>
                    </block>
                  </value>
                </block>
              </value>
              <value name="B">
                <block type="logic_compare" id="V]wL$qe3Tw3K8$4iMTtn">
                  <field name="OP">EQ</field>
                  <value name="A">
                    <block type="get_value" id="||+4@8*{e8=?wVB0N)8T">
                      <field name="ATTR">val</field>
                      <field name="OID">sonoff.0.Auflader-03.POWER</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_boolean" id="/Q#;KJXZTA]2C+X67UKA">
                      <field name="BOOL">TRUE</field>
                    </block>
                  </value>
                </block>
              </value>
            </block>
          </value>
          <statement name="DO1">
            <block type="timeouts_cleartimeout" id="wkuLE#jnoLSca-WEJdw3">
              <field name="NAME">timeout-ein</field>
              <next>
                <block type="control" id="k/J^2|s/nU)Kr+~y#YXH">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">sonoff.0.Auflader-03.POWER</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="logic_boolean" id="#Ww/C]Id(T{M$8@j=fS3">
                      <field name="BOOL">FALSE</field>
                    </block>
                  </value>
                  <next>
                    <block type="debug" id="uDf$|{*Tnh~(FhVWFm;s">
                      <field name="Severity">error</field>
                      <value name="TEXT">
                        <shadow type="text" id="t8,7E;}bn]dvuFY3[%*z">
                          <field name="TEXT">ausgeschaltet</field>
                        </shadow>
                      </value>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </statement>
    </block>
    

    Danke!

    Gruß surfer ;-)

    IO-Broker Master/Slave auf Windows 11 64bit, NPM 10.9.4, Node 22.21.1 js-controller 7.0.7

    paul53P 1 Antwort Letzte Antwort
    0
    • surfer09S surfer09

      Hallo,
      ich tue mich unheimlich schwer mit der Verwendung von Timeouts, daher hier einmal ein Beispiel für eine Steckdose, die ich bei Überschuss mit Verzögerung schalten möchte. Der Triggerwert ändert sich alle 10 Sekunden. Ist das ganze so korrekt verbaut?

      1dfef57a-c080-41df-9317-10053a8247ae-grafik.png

      <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="%K92xru3ntyl_mkO=0}|" x="138" y="-262">
        <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow type="field_oid" id="QtmUbpCp%4g,I-U*QV/3">
            <field name="oid">smartmeter.0.1-0:16_7_0__255.value</field>
          </shadow>
        </value>
        <statement name="STATEMENT">
          <block type="controls_if" id="~liB{ho7G`{#WxYVTMeN">
            <mutation elseif="1"></mutation>
            <value name="IF0">
              <block type="logic_multi_and" id="6XL[C^+/rGQ3SbzfE|+z">
                <mutation xmlns="http://www.w3.org/1999/xhtml" items="4"></mutation>
                <value name="AND0">
                  <block type="logic_negate" id="T=J#4)5uFuk;/tc0H]}T">
                    <value name="BOOL">
                      <block type="timeouts_gettimeout" id=":g@e%TV1y)e^uU)ZYZW+">
                        <field name="NAME">timeout-ein</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="AND1">
                  <block type="logic_compare" id="$OLd^Yy$}*ZSRObp)bg7">
                    <field name="OP">LTE</field>
                    <value name="A">
                      <block type="get_value" id="%(k}jL_9al#gIGkar[$3">
                        <field name="ATTR">val</field>
                        <field name="OID">smartmeter.0.1-0:16_7_0__255.value</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number" id="K_0~G={DPQJZLg(Fin8O">
                        <field name="NUM">-100</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="AND2">
                  <block type="time_compare" id="4dj*yMM!=OC7heaj,W1G">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation>
                    <field name="OPTION">between</field>
                    <field name="START_TIME">8:00</field>
                    <field name="END_TIME">18:30</field>
                  </block>
                </value>
                <value name="AND3">
                  <block type="logic_compare" id="k/-V99kd:R(?;E@*KCCk">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="get_value" id="QZ4/TV[uCl0hZnyI`$xS">
                        <field name="ATTR">val</field>
                        <field name="OID">sonoff.0.Auflader-03.POWER</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id="afDB#r4Jf-FfWm3uWoQ.">
                        <field name="BOOL">FALSE</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="timeouts_cleartimeout" id="FEX|*~v-oVUqr+_BjB:(">
                <field name="NAME">timeout-ein</field>
                <next>
                  <block type="timeouts_settimeout" id="9MJeS,]ZSh`+0i4B$oag">
                    <field name="NAME">timeout-ein</field>
                    <field name="DELAY">35</field>
                    <field name="UNIT">sec</field>
                    <statement name="STATEMENT">
                      <block type="control" id="tehh_3vIxn%5QFksuA+,">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">sonoff.0.Auflader-03.POWER</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="Wzd2ym(pHHKa.LM,}[-t">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                        <next>
                          <block type="debug" id="%BIdxq:MD.aC;osSej*^">
                            <field name="Severity">error</field>
                            <value name="TEXT">
                              <shadow type="text" id="AFh@,.a5P}5Yt_K}f+G3">
                                <field name="TEXT">eingeschaltet</field>
                              </shadow>
                            </value>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                </next>
              </block>
            </statement>
            <value name="IF1">
              <block type="logic_operation" id="Bi,M;`^DhR00K*(r*3{O">
                <field name="OP">AND</field>
                <value name="A">
                  <block type="logic_compare" id="@F^2~?*5(7bFwi_CQq~}">
                    <field name="OP">GTE</field>
                    <value name="A">
                      <block type="get_value" id="OLK+nY?8}7NL{Ge^whcA">
                        <field name="ATTR">val</field>
                        <field name="OID">smartmeter.0.1-0:16_7_0__255.value</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number" id="wyzQ+0MZ0f2n=1xh!!rv">
                        <field name="NUM">0</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_compare" id="V]wL$qe3Tw3K8$4iMTtn">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="get_value" id="||+4@8*{e8=?wVB0N)8T">
                        <field name="ATTR">val</field>
                        <field name="OID">sonoff.0.Auflader-03.POWER</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id="/Q#;KJXZTA]2C+X67UKA">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO1">
              <block type="timeouts_cleartimeout" id="wkuLE#jnoLSca-WEJdw3">
                <field name="NAME">timeout-ein</field>
                <next>
                  <block type="control" id="k/J^2|s/nU)Kr+~y#YXH">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">sonoff.0.Auflader-03.POWER</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="logic_boolean" id="#Ww/C]Id(T{M$8@j=fS3">
                        <field name="BOOL">FALSE</field>
                      </block>
                    </value>
                    <next>
                      <block type="debug" id="uDf$|{*Tnh~(FhVWFm;s">
                        <field name="Severity">error</field>
                        <value name="TEXT">
                          <shadow type="text" id="t8,7E;}bn]dvuFY3[%*z">
                            <field name="TEXT">ausgeschaltet</field>
                          </shadow>
                        </value>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </statement>
      </block>
      

      Danke!

      Gruß surfer ;-)

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

      @surfer09 sagte: bei Überschuss mit Verzögerung schalten

      Dafür gibt es im Forum bereits etliche Beispiele. Prinzip:

      Blockly_temp.JPG

      Die Hysterese muss etwas größer sein, als die Leistungsaufnahme des zu schaltenden Verbrauchers.

      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

      surfer09S 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @surfer09 sagte: bei Überschuss mit Verzögerung schalten

        Dafür gibt es im Forum bereits etliche Beispiele. Prinzip:

        Blockly_temp.JPG

        Die Hysterese muss etwas größer sein, als die Leistungsaufnahme des zu schaltenden Verbrauchers.

        surfer09S Offline
        surfer09S Offline
        surfer09
        schrieb am zuletzt editiert von
        #3

        @paul53 : Ich hatte mir auch einige Beispiele schon angesehen und es versucht zu verstehen. Deswegen habe ich meine Variante so nachgebaut. Wäre der Aufbau denn so korrekt?

        IO-Broker Master/Slave auf Windows 11 64bit, NPM 10.9.4, Node 22.21.1 js-controller 7.0.7

        AsgothianA paul53P 2 Antworten Letzte Antwort
        0
        • surfer09S surfer09

          @paul53 : Ich hatte mir auch einige Beispiele schon angesehen und es versucht zu verstehen. Deswegen habe ich meine Variante so nachgebaut. Wäre der Aufbau denn so korrekt?

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

          @surfer09 sagte in Frage: Verzögerung mit Timeout:

          Wäre der Aufbau denn so korrekt?

          Prinzipiell ja. Ob das alles so geht wie du das willst hängt allerdings von den von @paul53 erwähnten Werten für die Hysterese ab.

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

          surfer09S 1 Antwort Letzte Antwort
          0
          • AsgothianA Asgothian

            @surfer09 sagte in Frage: Verzögerung mit Timeout:

            Wäre der Aufbau denn so korrekt?

            Prinzipiell ja. Ob das alles so geht wie du das willst hängt allerdings von den von @paul53 erwähnten Werten für die Hysterese ab.

            surfer09S Offline
            surfer09S Offline
            surfer09
            schrieb am zuletzt editiert von
            #5

            @asgothian Ja okay, das steht dann noch auf einem anderen Blatt. Mir geht es jetzt vordergründig um den Blockly Code.

            IO-Broker Master/Slave auf Windows 11 64bit, NPM 10.9.4, Node 22.21.1 js-controller 7.0.7

            1 Antwort Letzte Antwort
            0
            • surfer09S surfer09

              @paul53 : Ich hatte mir auch einige Beispiele schon angesehen und es versucht zu verstehen. Deswegen habe ich meine Variante so nachgebaut. Wäre der Aufbau denn so korrekt?

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

              @surfer09 sagte: Wäre der Aufbau denn so korrekt?

              Im Gegensatz zu der von mir gezeigten Lösung wird auch eingeschaltet, wenn nach kurzer Überschreitung des Ein-Grenzwertes der Überschuss in den Hysterese-Bereich zurück fällt. Folge: Es wird wahrscheinlich sofort wieder ausgeschaltet.

              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

              surfer09S 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @surfer09 sagte: Wäre der Aufbau denn so korrekt?

                Im Gegensatz zu der von mir gezeigten Lösung wird auch eingeschaltet, wenn nach kurzer Überschreitung des Ein-Grenzwertes der Überschuss in den Hysterese-Bereich zurück fällt. Folge: Es wird wahrscheinlich sofort wieder ausgeschaltet.

                surfer09S Offline
                surfer09S Offline
                surfer09
                schrieb am zuletzt editiert von
                #7

                @paul53 Verstehe mich bitte nicht falsch. Deine Lösung funktioniert mit Sicherheit sehr gut. Nur ich möchte verstehen, was dort abläuft. Deswegen habe ich das Ganze in meinem „Programmierstil“ nachgebaut. Ich möchte ungern Dinge kopieren und nachher keinen Plan davon haben, wie es funktioniert.

                IO-Broker Master/Slave auf Windows 11 64bit, NPM 10.9.4, Node 22.21.1 js-controller 7.0.7

                HomoranH 1 Antwort Letzte Antwort
                0
                • surfer09S surfer09

                  @paul53 Verstehe mich bitte nicht falsch. Deine Lösung funktioniert mit Sicherheit sehr gut. Nur ich möchte verstehen, was dort abläuft. Deswegen habe ich das Ganze in meinem „Programmierstil“ nachgebaut. Ich möchte ungern Dinge kopieren und nachher keinen Plan davon haben, wie es funktioniert.

                  HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von Homoran
                  #8

                  @surfer09 sagte in Frage: Verzögerung mit Timeout:

                  @paul53 Verstehe mich bitte nicht falsch. Deine Lösung funktioniert mit Sicherheit sehr gut. Nur ich möchte verstehen, was dort abläuft. Deswegen habe ich das Ganze in meinem „Programmierstil“ nachgebaut. Ich möchte ungern Dinge kopieren und nachher keinen Plan davon haben, wie es funktioniert.

                  Das ist eine gute Einstellung, aber @paul53 schreibt doch was du eben nicht mit umgesetzt hast.
                  Bei deiner Adaption

                  @paul53 sagte in Frage: Verzögerung mit Timeout:

                  wird auch eingeschaltet, wenn nach kurzer Überschreitung des Ein-Grenzwertes der Überschuss in den Hysterese-Bereich zurück fällt. Folge: Es wird wahrscheinlich sofort wieder ausgeschaltet.

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  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

                  500

                  Online

                  32.7k

                  Benutzer

                  82.4k

                  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