Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]Position für Timeout ?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    SOLVED [gelöst]Position für Timeout ?

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

      Hallo Kollegen, also irgendwie habe ich wohl einen Denkfehler in meinem Blockly Skript...
      Ich möchte gerne eine Verweilzeit / Timeout an der markierten Stelle einbauen, so das für z.B. 5 Sek. geprüft
      wird, ob der Spannungswert in dem vorgegebenen Bereich ist, und dann soll erst geschaltet werden...

      blockly2.png

      Aber wenn ich an besagter Stelle einen Timeout einbaue bekomme ich immer eine Fehlermeldung in dem Skript ? 😕
      Wo mache ich denn den Fehler ??

      BBTown 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @MartinK. last edited by paul53

        @MartinK sagte in Zeile 8:

        Wartezeit für Spannungsbereich

        Der Variablenbezeichner enthält unzulässige Zeichen: Leerzeichen. Siehe Unterschied zu Zeile 1. Ändere den Bezeichner in Wartezeit_fuer_Spannungsbereich.

        MartinK. 1 Reply Last reply Reply Quote 0
        • BBTown
          BBTown @MartinK. last edited by

          @MartinK stell bitte das Blockly selbst hier auch rein, dann ist es leichter dich zu unterstützen

          MartinK. 1 Reply Last reply Reply Quote 0
          • MartinK.
            MartinK. @BBTown last edited by

            @BBTown Alles klar 😉 kein Problem...

            blockly3.png

            <xml xmlns="http://www.w3.org/1999/xhtml">
              <block type="on_ext" id="Xdgfq1%=t4?7-[dkN{9n" x="37" y="113">
                <mutation items="1"></mutation>
                <field name="CONDITION">ne</field>
                <field name="ACK_CONDITION">true</field>
                <comment pinned="false" h="80" w="160">Shelly Waschmaschine</comment>
                <value name="OID0">
                  <shadow type="field_oid" id="akQsOKjeEHC1,d^?2^.H">
                    <field name="oid">shelly.0.SHPLG-S#04160D#1.Relay0.Power</field>
                  </shadow>
                </value>
                <statement name="STATEMENT">
                  <block type="comment" id="R$cKI$`~w+G)hF?n2_O4">
                    <field name="COMMENT">Spannungsbereich  **Waschmaschine läuft!** - ON</field>
                    <next>
                      <block type="controls_if" id="]m~.6j3B1{XW=gp?gdk^">
                        <value name="IF0">
                          <block type="logic_compare" id="vq)){?1BUz)#dcgeBm7S">
                            <field name="OP">GT</field>
                            <value name="A">
                              <block type="get_value" id="E2c}57phdFnXyT+1lM`)">
                                <field name="ATTR">val</field>
                                <field name="OID">shelly.0.SHPLG-S#04160D#1.Relay0.Power</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id="rd@RJ5@;=:0K+45-Sd?^">
                                <field name="NUM">10</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block type="control" id="};_LwjFGmKzLlL%XdMfe">
                            <mutation delay_input="false"></mutation>
                            <field name="OID">waschmaschine.0.Waschmaschine-Läuft!</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id=")f.dxuD;q`e!`eZ)5[.U">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                            <next>
                              <block type="control" id="HVbQB(7%}W7w4a@c$FJq">
                                <mutation delay_input="true"></mutation>
                                <field name="OID">waschmaschine.0.Waschmaschine_FERTIG!-Schalter</field>
                                <field name="WITH_DELAY">TRUE</field>
                                <field name="DELAY_MS">1</field>
                                <field name="UNIT">sec</field>
                                <field name="CLEAR_RUNNING">FALSE</field>
                                <value name="VALUE">
                                  <block type="logic_boolean" id="[@ZR/bgVtvXYT@K*(Pkd">
                                    <field name="BOOL">FALSE</field>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </statement>
                        <next>
                          <block type="comment" id="#Ll``wDrt;lB}o(-{J`$">
                            <field name="COMMENT">Spannungsbereich  **Waschmaschine Fertig!** - ON</field>
                            <next>
                              <block type="controls_if" id="Y+tAM}-dcs/}/s1Pw4[.">
                                <value name="IF0">
                                  <block type="logic_operation" id="6a,u*{3.*]CJv`d_mg~O">
                                    <field name="OP">AND</field>
                                    <value name="A">
                                      <block type="logic_compare" id="|qFYwQFn@OCZ8_`0_x3E">
                                        <field name="OP">GT</field>
                                        <value name="A">
                                          <block type="get_value" id="4hD^48P;$cK3$[BeGG[w">
                                            <field name="ATTR">val</field>
                                            <field name="OID">shelly.0.SHPLG-S#04160D#1.Relay0.Power</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="math_number" id="=6)V*2~6ZXYUnR`_hp/4">
                                            <field name="NUM">2</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="logic_compare" id="w%99=#+^i}lR3`hXn]LN">
                                        <field name="OP">LT</field>
                                        <value name="A">
                                          <block type="get_value" id="_{*wE,7^zUb~;ve6{~/D">
                                            <field name="ATTR">val</field>
                                            <field name="OID">shelly.0.SHPLG-S#04160D#1.Relay0.Power</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="math_number" id="0/!EJs?d#^Cs`SQNU)g/">
                                            <field name="NUM">6</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <statement name="DO0">
                                  <block type="control" id="{4s,,vTW2_RdeH#r4QiG">
                                    <mutation delay_input="false"></mutation>
                                    <field name="OID">waschmaschine.0.Waschmaschine-Läuft!</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="logic_boolean" id=";.cJHr.!ti0HSIeTh,k@">
                                        <field name="BOOL">FALSE</field>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="control" id="IE6y#M+CajI*~DjJS}ft">
                                        <mutation delay_input="true"></mutation>
                                        <field name="OID">waschmaschine.0.Waschmaschine_FERTIG!-Schalter</field>
                                        <field name="WITH_DELAY">TRUE</field>
                                        <field name="DELAY_MS">1</field>
                                        <field name="UNIT">sec</field>
                                        <field name="CLEAR_RUNNING">FALSE</field>
                                        <value name="VALUE">
                                          <block type="logic_boolean" id="dI{4ezz77{U:4GxKb_ge">
                                            <field name="BOOL">TRUE</field>
                                          </block>
                                        </value>
                                      </block>
                                    </next>
                                  </block>
                                </statement>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
                <next>
                  <block type="on_ext" id="dn`dcSp_:Cv^U`tHV;%n">
                    <mutation items="1"></mutation>
                    <field name="CONDITION">ne</field>
                    <field name="ACK_CONDITION"></field>
                    <value name="OID0">
                      <shadow type="field_oid" id="x$~IyL/opau[^n3owx1+">
                        <field name="oid">waschmaschine.0.Waschmaschine-Läuft!</field>
                      </shadow>
                    </value>
                    <statement name="STATEMENT">
                      <block type="controls_if" id="IIr%-Cww6AxN$,B?@naw">
                        <value name="IF0">
                          <block type="logic_compare" id="8xAz}TZRZ45,ACac0H/,">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="get_value" id="]`-e-tPv1S{,$$;bp{7B">
                                <field name="ATTR">val</field>
                                <field name="OID">waschmaschine.0.Waschmaschine-Läuft!</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="logic_boolean" id="zd+4F{Wf)_L7IYT(5Ip$">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block type="telegram" id="u?Gy~b,2*{c.e6E=2E~s">
                            <field name="INSTANCE"></field>
                            <field name="LOG">warn</field>
                            <field name="SILENT">FALSE</field>
                            <field name="PARSEMODE">default</field>
                            <value name="MESSAGE">
                              <shadow type="text" id="q,9w0T^mFW(]kOsr%oks">
                                <field name="TEXT">Waschmaschine wurde gestartet...!</field>
                              </shadow>
                            </value>
                          </block>
                        </statement>
                      </block>
                    </statement>
                    <next>
                      <block type="on_ext" id="`gqeB2i|TC2K=lRs2el-">
                        <mutation items="1"></mutation>
                        <field name="CONDITION">ne</field>
                        <field name="ACK_CONDITION"></field>
                        <value name="OID0">
                          <shadow type="field_oid" id="rSgV1ejA0;$`]++Wzvf|">
                            <field name="oid">waschmaschine.0.Waschmaschine_FERTIG!-Schalter</field>
                          </shadow>
                        </value>
                        <statement name="STATEMENT">
                          <block type="controls_if" id="x),^#TeB~9ErD!xYaNhn">
                            <value name="IF0">
                              <block type="logic_compare" id="R8p]CMfv$jx53c?+nY,q">
                                <field name="OP">EQ</field>
                                <value name="A">
                                  <block type="get_value" id="`@Fh8!B|uR9E;5P~0PUR">
                                    <field name="ATTR">val</field>
                                    <field name="OID">waschmaschine.0.Waschmaschine_FERTIG!-Schalter</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="logic_boolean" id="Px-MH!.~qa,4@l*REX}{">
                                    <field name="BOOL">TRUE</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <statement name="DO0">
                              <block type="telegram" id=":r7FME#d3tNf+xSec1fY">
                                <field name="INSTANCE"></field>
                                <field name="LOG">warn</field>
                                <field name="SILENT">FALSE</field>
                                <field name="PARSEMODE">default</field>
                                <value name="MESSAGE">
                                  <shadow type="text" id="1;fR%fVv,%81ec1OCg#X">
                                    <field name="TEXT">Waschmaschine fertig!</field>
                                  </shadow>
                                </value>
                                <next>
                                  <block type="control" id="-5HcJrX?ie@pQRKdT=FM">
                                    <mutation delay_input="false"></mutation>
                                    <field name="OID">alexa2.0.Echo-Devices.G090LF11825724VF.Commands.speak-volume</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="math_number" id="^df^{;E+v/AuoIKe0Z)=">
                                        <field name="NUM">40</field>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="control" id="CfivdkKk(PI))l4~ta5O">
                                        <mutation delay_input="false"></mutation>
                                        <field name="OID">alexa2.0.Echo-Devices.G2A0U2048507004D.Commands.speak-volume</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE">
                                          <block type="math_number" id="*;laa]+SS).3Vm#d|uSw">
                                            <field name="NUM">40</field>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="control" id="k/UC/tTYGWGS+5Pm2E1-">
                                            <mutation delay_input="true"></mutation>
                                            <field name="OID">alexa2.0.Echo-Devices.G090LF11825724VF.Commands.speak</field>
                                            <field name="WITH_DELAY">TRUE</field>
                                            <field name="DELAY_MS">10</field>
                                            <field name="UNIT">sec</field>
                                            <field name="CLEAR_RUNNING">FALSE</field>
                                            <comment pinned="false" h="32" w="79">Echo Küche</comment>
                                            <value name="VALUE">
                                              <block type="text" id="xd26jTj^)2k4m/9)MF;e">
                                                <field name="TEXT">Die Waschmaschine ist jetzt Fertig!</field>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="control" id="%Y71nM6:mF2QuW[Fycyv">
                                                <mutation delay_input="false"></mutation>
                                                <field name="OID">alexa2.0.Echo-Devices.G2A0U2048507004D.Commands.speak</field>
                                                <field name="WITH_DELAY">FALSE</field>
                                                <comment pinned="false" h="41" w="81">Echo Wohnzmmer</comment>
                                                <value name="VALUE">
                                                  <block type="text" id="f3#AA=mc^.Zb9Zn]EP|A">
                                                    <field name="TEXT">Die Waschmaschine ist jetzt Fertig!</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </statement>
                          </block>
                        </statement>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </xml>
            
            BBTown 1 Reply Last reply Reply Quote 0
            • BBTown
              BBTown @MartinK. last edited by

              @MartinK
              Wenn ich deine Fragestellung richtig verstanden habe, dann sollte die Lösung so aussehen
              c9dfc818-1f42-42ac-939d-fee4b37bc875-grafik.png

              BBTown MartinK. 2 Replies Last reply Reply Quote 0
              • BBTown
                BBTown @BBTown last edited by BBTown

                Eine Sache hast Du hiermit aber noch nicht gelöst .... es wird noch nicht abgefangen, wenn es zwar eine Änderung von "Power" gibt, diese aber innerhalb von 2 - 6 stattfindet während der timer läuft, dann würde der Timer erneut gestartet.

                MartinK. 1 Reply Last reply Reply Quote 0
                • MartinK.
                  MartinK. @BBTown last edited by

                  @BBTown Ja, mir geht es nur darum, das über einen Zeitraum von 5 oder 10 Sek geschaut wird, ob sich der Spannungswert im beschriebenen Bereich aufhält, und wenn das 5-10 Sek gegeben ist, soll erst die "steuere" Funktion aktiviert werden.... Ist das so mit deinem ergänzten Timeout möglich ? 😉

                  1 Reply Last reply Reply Quote 0
                  • MartinK.
                    MartinK. @BBTown last edited by

                    @BBTown sagte in Position für Timeout ?:

                    @MartinK
                    Wenn ich deine Fragestellung richtig verstanden habe, dann sollte die Lösung so aussehen
                    c9dfc818-1f42-42ac-939d-fee4b37bc875-grafik.png

                    Das Problem ist, wenn ich den Timeout so einbaue bekomme ich immer wieder den Fehler in dem Skript angezeigt 😉
                    error.png

                    BBTown 1 Reply Last reply Reply Quote 0
                    • BBTown
                      BBTown @MartinK. last edited by

                      @MartinK
                      das kann ich nicht nachvollziehen ...

                      und ohne die beiden Timer Einträge kommt kein Fehler?
                      Was ist wenn Du die beiden anderen Trigger mal aus dem Script raus nummst, so dass Du dich auf einen Anwendungsfall konzentrieren kannst?

                      Macht es einen Unterschied, wenn Du oben im Trigger anstelle von "Update" dort "egal" auswählst? (kann ich mir aber eigentlich nicht vorstellen)

                      MartinK. 1 Reply Last reply Reply Quote 0
                      • MartinK.
                        MartinK. @BBTown last edited by

                        @BBTown Auch ohne die beiden unteren Anwendungsfälle erscheint der Fehler, und eine Änderung der Trigger Einstellung auf "egal" macht auch keinen unterschied... 😕 ohne den Timeout läuft das Skript super.... ??

                        error4.png

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

                          @MartinK
                          Was steht im generierten Javascript-Code (Zeile 8 ) ?

                          MartinK. 2 Replies Last reply Reply Quote 0
                          • MartinK.
                            MartinK. @paul53 last edited by MartinK.

                            @paul53 Leider bin ich noch nicht so der Nerd in Sachen Blockly & Co... 😉 Welcher Javaskript -code (Zeile 8 ) ist denn gemeint??? Der Fehler der im LOG steht in der Zeile 8 nach dem ausführen des Skriptes ?

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

                              @paul53 Da ist der Fehler in Zeile 8 😉

                              err1.png

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

                                @MartinK sagte:

                                Welcher Javaskript -code (Zeile 8 ) ist denn gemeint???

                                Im Blockly-Editor kann man rechts oben (links neben dem Schraubenschlüssel) in die Javascript-Ansicht umschalten, in der der aus Blockly erzeugte JS-Code mit Zeilennummer angezeigt wird. Diesen Code poste bitte ohne die letzte Zeile in Code tags (copy & paste).

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

                                  @paul53 Hier ist der Code 😉

                                  var Wartezeit_f_C3_BCr_Spannungsbereich;
                                  
                                  
                                  // Shelly Waschmaschine
                                  on({id: 'shelly.0.SHPLG-S#04160D#1.Relay0.Power', change: "ne"}, function (obj) {
                                    var value = obj.state.val;
                                    var oldValue = obj.oldState.val;
                                    (function () {if (Wartezeit für Spannungsbereich) {clearTimeout(Wartezeit für Spannungsbereich); Wartezeit für Spannungsbereich = null;}})();
                                    // Spannungsbereich  **Waschmaschine läuft!** - ON
                                    if (getState("shelly.0.SHPLG-S#04160D#1.Relay0.Power").val > 10) {
                                      setState("waschmaschine.0.Waschmaschine-Läuft!"/*waschmaschine.0.Waschmaschine-Läuft!*/, true);
                                      setStateDelayed("waschmaschine.0.Waschmaschine_FERTIG!-Schalter"/*Waschmaschine_FERTIG!-Schalter*/, false, 1000, false);
                                    }
                                    // Spannungsbereich  **Waschmaschine Fertig!** - ON
                                    if (getState("shelly.0.SHPLG-S#04160D#1.Relay0.Power").val > 2 && getState("shelly.0.SHPLG-S#04160D#1.Relay0.Power").val < 6) {
                                      Wartezeit für Spannungsbereich = setTimeout(function () {
                                        setState("waschmaschine.0.Waschmaschine-Läuft!"/*waschmaschine.0.Waschmaschine-Läuft!*/, false);
                                        setState("waschmaschine.0.Waschmaschine_FERTIG!-Schalter"/*Waschmaschine_FERTIG!-Schalter*/, true);
                                      }, 10000);
                                    }
                                  });
                                  
                                  paul53 1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @MartinK. last edited by paul53

                                    @MartinK sagte in Zeile 8:

                                    Wartezeit für Spannungsbereich

                                    Der Variablenbezeichner enthält unzulässige Zeichen: Leerzeichen. Siehe Unterschied zu Zeile 1. Ändere den Bezeichner in Wartezeit_fuer_Spannungsbereich.

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

                                      @paul53 Alles klar !!! Vielen Dank ! Das war der Fehler ! 🙂

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      688
                                      Online

                                      31.8k
                                      Users

                                      80.0k
                                      Topics

                                      1.3m
                                      Posts

                                      blockly
                                      3
                                      16
                                      434
                                      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