Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Frage: Verzögerung mit Timeout

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Frage: Verzögerung mit Timeout

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

      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 😉

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @surfer09 last edited by 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.

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

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

          Asgothian paul53 2 Replies Last reply Reply Quote 0
          • Asgothian
            Asgothian Developer @surfer09 last edited by

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

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

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

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @surfer09 last edited by 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.

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

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

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @surfer09 last edited by Homoran

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

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    586
                    Online

                    32.0k
                    Users

                    80.4k
                    Topics

                    1.3m
                    Posts

                    4
                    8
                    399
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo