Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Poolsteuerung die xte

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Poolsteuerung die xte

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

      Bitte helft mir den Knoten zu lösen. Ich weiß nicht mal, wie ich es richtig beschreiben kann, aber ich versuchs mal:

      Ich messe am Pool den REDOX Wert, dieser soll z.B. zwischen 700 und 750 liegen.

      Wird der Wert 700 unterschritten, soll ein Gerät (Chlorinator) eingeschaltet werden.
      Ist der Wert 750 erreicht, soll das Gerät ausgeschaltet werden bis der Wert wieder unter 700 gefallen ist.

      Der Ein/Ausschalter des Geräts ist nur ein Taster, wird also gedrückt und wieder losgelassen zum einschalten und genauso zum ausschalten. Dieser hängt parallel an einem Shelly Relais mit Wischfunktion. D.h. zum Einschalten setze ich den Wert power auf true und nach einer Sekunde wird der Wert wieder zurückgesetzt auf false, das Gerät ist aber eingeschaltet.
      Genauso wird das Gerät auch ausgeschaltet, einmal kurz power auf true.
      Der shelly simuliert also den Taster.
      Ich kann daher den Status nicht wirklich abfragen, weil power ist ja immer auf false, auch wenn das Gerät läuft.

      Der Stromverbrauch im idle beträgt ca. 5-8W im Betrieb ca. 85W. Schalte ich das Gerät ein, dauert es aber ca. 30-60 Sekunden, bis das Gerät von 5W auf 85W springt.
      Ich kann also darüber auch nicht prüfen, ob das Gerät schon eingeschaltet wurde.

      Erschwerend kommt hinzu, dass ich das Gerät bei Bedarf auch manuell per script oder am Gerät einschalten möchte.

      Habt ihr einen Ansatz? Ich hab soviel versucht, aber am Ende hab ich immer den Taster im Dauerbetrieb betätigt sobald ich die automatische Steuerung über den Redox Wert integrieren wollte.

      mickym paul53 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @skinni last edited by mickym

        @skinni Ich nutze kein Blockly - aber mal unabhängig davon, wenn Du schon so viel versucht hast, wo ist denn Dein Problem?

        In meinen Augen hast Du einen Trigger, das ist der DP oder das Teil, das Deinen Chlorgehalt misst. Wenn dieser einen Wert unter 700 misst, soll das Gerät eingeschaltet werden, falls es noch nicht eingeschaltet ist. Da Du dies erst nach 60s gesichert feststellen kannst, prüfst Du nachdem der Trigger gelaufen ist mit 60s Verzögerung.
        Wer oder was das Gerät dann eingeschaltet hat ist völlig irrelevant, weil der Trigger immer der Chlormesser ist.

        Den Einschaltvorgang an sich kannst Du, wie Du schreibst nicht prüfen, nachdem Du erst nach 60 s ein Rückmeldung bekommst.
        Ich arbeite nicht mit Blockly - aber ich würde wohl 2 verschiedene nehmen. Ich gehe mal davon, dass Dir der Verbrauch ja trotzdem immer gemeldet wird.
        Was hast Du also versucht oder wo ist das Problem in der Logik?

        Um die Logik zu verdeutlichen - hier mal ein theoretischer NodeRed Flow - den Du in meinen Augen nur noch in Blockly abbilden musst. Eine Dauerschleife bleibt nur, wenn die Ermittlung des Gerätezustands nicht zuverlässig arbeitet, dann kann man ggf. zur Sicherheit noch einen Zähler einbauen:

        5a36e516-e824-4ee6-b249-3e34522749fa-image.png

        @skinni sagte in Poolsteuerung die xte:

        Ich kann also darüber auch nicht prüfen, ob das Gerät schon eingeschaltet wurde.

        Das ist mE falsch - das kannst Du prüfen halt nur mit zeitlicher Verzögerung. Aber @paul53 hat es Dir sicher schon umgesetzt, wie ich gerade sehe.

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

          @skinni sagte: Habt ihr einen Ansatz?

          Bild_2021-06-11_132859.png

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

            @mickym das "Problem" ist, er durchläuft das script ja bei jeder Änderung des Wertes, darf aber nur alle 60 sekunden reagieren, das bekomme ich nicht auf die Reihe.

            @paul53 Bei falls chlor != ein bin ich raus, chlor ist doch entweder wahr oder falsch 😕 Kann den Gedanken nicht nachvollziehen.

            Habs mal soweit nachgebaut, mit Lücken, dass man es hoffentlich verbessern kann. Wo genau verhindert wird, dass der Taster mehrfach betätigt wird hab ich nicht verstanden

            chloristeuerung.png

            paul53 mickym 2 Replies Last reply Reply Quote 0
            • paul53
              paul53 @skinni last edited by paul53

              @skinni sagte: darf aber nur alle 60 sekunden reagieren,

              Habe es um eine Sperre ergänzt:

              Blockly_temp.JPG

              <xml xmlns="https://developers.google.com/blockly/xml">
               <variables>
                 <variable id="w|ZnOmzB-Kc#z7%,.Zb:">chlor</variable>
                 <variable id="G5HL:t:B50zF?x%!n.H?">ein</variable>
                 <variable type="timeout" id="timeout">timeout</variable>
               </variables>
               <block type="on_ext" id="zNq+f*d*D@_%w(KJw]}m" x="88" y="38">
                 <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="[pM+iVzcV/v.Ave.2!YS">
                     <field name="oid">default</field>
                   </shadow>
                 </value>
                 <statement name="STATEMENT">
                   <block type="controls_if" id="zTc.CWjkc)QEaaZp[$t0">
                     <mutation elseif="1"></mutation>
                     <value name="IF0">
                       <block type="logic_compare" id=".[0Y+G}L;}TJFj9L+S(%">
                         <field name="OP">LTE</field>
                         <value name="A">
                           <block type="on_source" id="mf-pPS#``a.bNtn~#q$5">
                             <field name="ATTR">state.val</field>
                           </block>
                         </value>
                         <value name="B">
                           <block type="math_number" id="dUkj4QvwUv*@V1a6,XEk">
                             <field name="NUM">700</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <statement name="DO0">
                       <block type="variables_set" id="M7jFAt9-G}ZV=$NJl27O">
                         <field name="VAR" id="w|ZnOmzB-Kc#z7%,.Zb:">chlor</field>
                         <value name="VALUE">
                           <block type="logic_boolean" id="xOfMCa*In[Y?groj_AXI">
                             <field name="BOOL">TRUE</field>
                           </block>
                         </value>
                       </block>
                     </statement>
                     <value name="IF1">
                       <block type="logic_compare" id="D{]wih,Ge)VYyS_4CXJ,">
                         <field name="OP">GTE</field>
                         <value name="A">
                           <block type="on_source" id="/FIXsq50Ko_-NRMX6Y$$">
                             <field name="ATTR">state.val</field>
                           </block>
                         </value>
                         <value name="B">
                           <block type="math_number" id="TXz:(T2@BVWzbW{eY]E7">
                             <field name="NUM">750</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <statement name="DO1">
                       <block type="variables_set" id="l.Qk}tNolm*P4[w4%GJJ">
                         <field name="VAR" id="w|ZnOmzB-Kc#z7%,.Zb:">chlor</field>
                         <value name="VALUE">
                           <block type="logic_boolean" id="AD%-k{*~$xxH=N=G~M6i">
                             <field name="BOOL">FALSE</field>
                           </block>
                         </value>
                       </block>
                     </statement>
                     <next>
                       <block type="controls_if" id="4n8g*ZfvAZ:KBnU%T:ZX">
                         <value name="IF0">
                           <block type="logic_operation" id="R8e}dfsGC~/Vkn$DwL;=" inline="false">
                             <field name="OP">AND</field>
                             <value name="A">
                               <block type="logic_compare" id="ul7YfWxA]|,HBp/Iplo{">
                                 <field name="OP">NEQ</field>
                                 <value name="A">
                                   <block type="variables_get" id="%Z~+G}0}QW^6zUV~BQ+/">
                                     <field name="VAR" id="w|ZnOmzB-Kc#z7%,.Zb:">chlor</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="variables_get" id="|dmPn,(f`!N!!mtaO]{7">
                                     <field name="VAR" id="G5HL:t:B50zF?x%!n.H?">ein</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <value name="B">
                               <block type="logic_negate" id="ZWIWgSE+tRxrMoOs!7g_">
                                 <value name="BOOL">
                                   <block type="variables_get" id="h1:*_W%[!Eeif,w1j@hE">
                                     <field name="VAR" id="timeout" variabletype="timeout">timeout</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                           </block>
                         </value>
                         <statement name="DO0">
                           <block type="control" id="_%=skI?|cERi/[LnKE4-">
                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                             <field name="OID">Object ID</field>
                             <field name="WITH_DELAY">FALSE</field>
                             <value name="VALUE">
                               <block type="logic_boolean" id="caERRLzir]Q!skaFu#Ga">
                                 <field name="BOOL">TRUE</field>
                               </block>
                             </value>
                             <next>
                               <block type="timeouts_settimeout" id="#A8y2ujpyO7}B{s-BBDi">
                                 <field name="NAME">timeout</field>
                                 <field name="DELAY">60</field>
                                 <field name="UNIT">sec</field>
                                 <statement name="STATEMENT">
                                   <block type="variables_set" id="R_:v2.DUnDWe00Ir4upD">
                                     <field name="VAR" id="timeout" variabletype="timeout">timeout</field>
                                     <value name="VALUE">
                                       <block type="logic_null" id="7jf/B*L%XxjENy89,0@I"></block>
                                     </value>
                                   </block>
                                 </statement>
                               </block>
                             </next>
                           </block>
                         </statement>
                       </block>
                     </next>
                   </block>
                 </statement>
                 <next>
                   <block type="comment" id="u^W20cw;!erv9n-K*$a1">
                     <field name="COMMENT">Leistung</field>
                     <next>
                       <block type="on_ext" id="P@5@~k~nHw^Ah}p.Fz;S">
                         <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="z^@!jxn|iJQnIghDa9~o">
                             <field name="oid">default</field>
                           </shadow>
                         </value>
                         <statement name="STATEMENT">
                           <block type="variables_set" id="Rl5btr3%hYWq2zHaYQe~">
                             <field name="VAR" id="G5HL:t:B50zF?x%!n.H?">ein</field>
                             <value name="VALUE">
                               <block type="logic_compare" id="`RST0t3cQabC1C,T]Grq">
                                 <field name="OP">GT</field>
                                 <value name="A">
                                   <block type="on_source" id="z[-*k1gievOVrB`!Ft3U">
                                     <field name="ATTR">state.val</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="math_number" id="JYV_MIwpla6`JBFZfJMc">
                                     <field name="NUM">10</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                           </block>
                         </statement>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
              </xml>
              

              Der untere Trigger bezieht sich auf:
              @skinni sagte in Poolsteuerung die xte:

              Der Stromverbrauch im idle beträgt ca. 5-8W im Betrieb ca. 85W.

              @skinni sagte in Poolsteuerung die xte:

              Bei falls chlor != ein bin ich raus

              falls Sollzustand != Istzustand

              S 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @skinni last edited by mickym

                @skinni
                @paul53 hat es Dir eh schon implementiert. In meinem theoretischen Flow - wird deshalb auch nur 1 Nachricht pro Minute des Chlormessers durchgelassen. Außerdem werden dann alle Trigger zwischendrin ignoriert.

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

                  @paul53 Danke dafür! Euch beiden. Ich hab zwar deinen code immer noch nicht ganz durchschaut, aber daraus hab ich folgendes gebaut. Auf den ersten Blick scheint es zu funktionieren.

                  chlori2.png

                  <xml xmlns="https://developers.google.com/blockly/xml">
                   <variables>
                     <variable id="lIh3t+xCY,#WHGCT}aTp">Chlor</variable>
                     <variable type="timeout" id="timeout">timeout</variable>
                     <variable type="timeout" id="timeout2">timeout2</variable>
                     <variable id="ROl/m!,ZQuB=|(JQ17=;">timeout</variable>
                   </variables>
                   <block type="on_ext" id="%]eMX/7{=?l%xNsq4r=b" x="-644" y="-256">
                     <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="3.L.+Kh}m=JxHlQa+C~,">
                         <field name="oid">ph803w.0.2tqRa88FgaUS5AxgARVYug.redox.value</field>
                       </shadow>
                     </value>
                     <statement name="STATEMENT">
                       <block type="controls_if" id="8Se9yr`}E`f,nN^9[Bk#">
                         <mutation elseif="1"></mutation>
                         <value name="IF0">
                           <block type="logic_operation" id="`:@1fe`j5;c*%QXHdNI9">
                             <field name="OP">AND</field>
                             <value name="A">
                               <block type="logic_compare" id="5-Z3V/5mkjrPk7E=p/U0">
                                 <field name="OP">LTE</field>
                                 <value name="A">
                                   <block type="get_value" id="=:AL6kxMaD}eK[}ieqw-">
                                     <field name="ATTR">val</field>
                                     <field name="OID">ph803w.0.2tqRa88FgaUS5AxgARVYug.redox.value</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="math_number" id="Ti]LDqaczFGBjAds0[ZA">
                                     <field name="NUM">560</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <value name="B">
                               <block type="logic_compare" id="#`M7aP+K.bc{?veFMY#C">
                                 <field name="OP">LTE</field>
                                 <value name="A">
                                   <block type="get_value" id="A(W~~VKuQl:1YaDiJW[C">
                                     <field name="ATTR">val</field>
                                     <field name="OID">0_userdata.0.Chlorinator_Laufzeit</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="math_number" id="dVw/)c0Y7tBn2_+lj/`,">
                                     <field name="NUM">17200</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                           </block>
                         </value>
                         <statement name="DO0">
                           <block type="variables_set" id="_}:]Q~@,U/T{oeE$K}gN">
                             <field name="VAR" id="lIh3t+xCY,#WHGCT}aTp">Chlor</field>
                             <value name="VALUE">
                               <block type="logic_boolean" id="?4m@lB2g3xmF69:mA@gZ">
                                 <field name="BOOL">TRUE</field>
                               </block>
                             </value>
                           </block>
                         </statement>
                         <value name="IF1">
                           <block type="logic_compare" id="Hfz$1fO1:T963c;_j7=(">
                             <field name="OP">GTE</field>
                             <value name="A">
                               <block type="get_value" id="NmhX3Dy-@XCw]I_yfqp)">
                                 <field name="ATTR">val</field>
                                 <field name="OID">ph803w.0.2tqRa88FgaUS5AxgARVYug.redox.value</field>
                               </block>
                             </value>
                             <value name="B">
                               <block type="math_number" id="%y[V/N{x0feZgV$IT5bO">
                                 <field name="NUM">570</field>
                               </block>
                             </value>
                           </block>
                         </value>
                         <statement name="DO1">
                           <block type="variables_set" id="3`o%H[os2|FOGOhy,O{6">
                             <field name="VAR" id="lIh3t+xCY,#WHGCT}aTp">Chlor</field>
                             <value name="VALUE">
                               <block type="logic_boolean" id="sN4hlDdf]R0peWFdV?q:">
                                 <field name="BOOL">FALSE</field>
                               </block>
                             </value>
                           </block>
                         </statement>
                         <next>
                           <block type="controls_if" id="!VP?w(qQ6mWcri7!W5Z;">
                             <mutation elseif="1"></mutation>
                             <value name="IF0">
                               <block type="logic_operation" id="XN$wcMuX,Qa]]gw?A+wt" inline="false">
                                 <field name="OP">AND</field>
                                 <value name="A">
                                   <block type="logic_negate" id="cG/uN?1Xe@pd?X)r-nVw">
                                     <value name="BOOL">
                                       <block type="variables_get" id="(stR}xVTBOM[bkL_}C!d">
                                         <field name="VAR" id="ROl/m!,ZQuB=|(JQ17=;">timeout</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="logic_operation" id="?wvO}FWI6dj*t[$5|9.%" inline="false">
                                     <field name="OP">AND</field>
                                     <value name="A">
                                       <block type="logic_compare" id="L6Yt@6P}X*CKxRTaK)HZ">
                                         <field name="OP">EQ</field>
                                         <value name="A">
                                           <block type="variables_get" id=".djORK]^-}sHKH^rhz+.">
                                             <field name="VAR" id="lIh3t+xCY,#WHGCT}aTp">Chlor</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <block type="logic_boolean" id=")n={]XOXa$rr74+}ICqz">
                                             <field name="BOOL">TRUE</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <block type="logic_compare" id="ndWLo*2T|(CRY.iWQ?:+">
                                         <field name="OP">LTE</field>
                                         <value name="A">
                                           <block type="get_value" id="MQJ!rr_.4?g1|6RkF%2q">
                                             <field name="ATTR">val</field>
                                             <field name="OID">shelly.0.SHSW-25#00B630#1.Relay1.Power</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <block type="math_number" id="BjE/`z5csL`vVn6#36lG">
                                             <field name="NUM">10</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO0">
                               <block type="timeouts_settimeout" id="8jSUoYRtHobot2Y+O[Y0">
                                 <field name="NAME">timeout</field>
                                 <field name="DELAY">60</field>
                                 <field name="UNIT">sec</field>
                                 <statement name="STATEMENT">
                                   <block type="controls_if" id="uCVBhL`Mu/`Q0x@.Q=!E">
                                     <value name="IF0">
                                       <block type="logic_compare" id="I_{GM6#3XTJb`/^2GG)(">
                                         <field name="OP">LTE</field>
                                         <value name="A">
                                           <block type="get_value" id="Sx.n68KX-ju5R*wWh$Xf">
                                             <field name="ATTR">val</field>
                                             <field name="OID">shelly.0.SHSW-25#00B630#1.Relay1.Power</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <block type="math_number" id="c%g(TBAId,vN]9_mKB#R">
                                             <field name="NUM">10</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <statement name="DO0">
                                       <block type="control" id=";|ICx1a#N[Bl$1/(+[:G">
                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                         <field name="OID">shelly.0.SHSW-1#5B33F0#1.Relay0.Switch</field>
                                         <field name="WITH_DELAY">FALSE</field>
                                         <value name="VALUE">
                                           <block type="logic_boolean" id="8I9bG_1BAYvef,F7cnMB">
                                             <field name="BOOL">TRUE</field>
                                           </block>
                                         </value>
                                       </block>
                                     </statement>
                                     <next>
                                       <block type="variables_set" id="fFK.`i,@AXlf!2;5eQ0v">
                                         <field name="VAR" id="ROl/m!,ZQuB=|(JQ17=;">timeout</field>
                                         <value name="VALUE">
                                           <block type="logic_null" id="8x1?XF;7vWRy=O/OaIWp"></block>
                                         </value>
                                       </block>
                                     </next>
                                   </block>
                                 </statement>
                               </block>
                             </statement>
                             <value name="IF1">
                               <block type="logic_operation" id="y|i9}iXi75yVPIK71rMN" inline="false">
                                 <field name="OP">AND</field>
                                 <value name="A">
                                   <block type="logic_negate" id="Kq@%DTPKo=s-%T9NijTF">
                                     <value name="BOOL">
                                       <block type="variables_get" id=".UN`h^6KXbNq8,tw=?dx">
                                         <field name="VAR" id="ROl/m!,ZQuB=|(JQ17=;">timeout</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="logic_operation" id="tK+PNiI.kx%A074n=rT3" inline="false">
                                     <field name="OP">AND</field>
                                     <value name="A">
                                       <block type="logic_compare" id="RW!u^5Q-Bq%KRvc4$VIC">
                                         <field name="OP">EQ</field>
                                         <value name="A">
                                           <block type="variables_get" id="v,uzMq@31%OcqRp^jl}5">
                                             <field name="VAR" id="lIh3t+xCY,#WHGCT}aTp">Chlor</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <block type="logic_boolean" id="Q:KlhV!ZBT3U+7P#ARS3">
                                             <field name="BOOL">FALSE</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <block type="logic_compare" id="`$KA-%Z$jIB)FBnex%_y">
                                         <field name="OP">GTE</field>
                                         <value name="A">
                                           <block type="get_value" id="]16jf|IR*n=sVzl)hFZI">
                                             <field name="ATTR">val</field>
                                             <field name="OID">shelly.0.SHSW-25#00B630#1.Relay1.Power</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <block type="math_number" id="E9eXbW=_*UdK!*-vAJ^|">
                                             <field name="NUM">10</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO1">
                               <block type="timeouts_settimeout" id="O@iuR3r`{/.cX_1v+{f.">
                                 <field name="NAME">timeout2</field>
                                 <field name="DELAY">60</field>
                                 <field name="UNIT">sec</field>
                                 <statement name="STATEMENT">
                                   <block type="controls_if" id="nJBa(wJI?W$cxQM#Fs`i">
                                     <value name="IF0">
                                       <block type="logic_compare" id="20M-kn2G(Qw/p@_h)F9G">
                                         <field name="OP">GTE</field>
                                         <value name="A">
                                           <block type="get_value" id="xt(MYqd=,9*};CD`47{=">
                                             <field name="ATTR">val</field>
                                             <field name="OID">shelly.0.SHSW-25#00B630#1.Relay1.Power</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <block type="math_number" id="oUG%s(E64c33cc8#a/[H">
                                             <field name="NUM">10</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <statement name="DO0">
                                       <block type="control" id="3vqq{hVY@qK#.bYZ5EsK">
                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                         <field name="OID">shelly.0.SHSW-1#5B33F0#1.Relay0.Switch</field>
                                         <field name="WITH_DELAY">FALSE</field>
                                         <value name="VALUE">
                                           <block type="logic_boolean" id="otl;z-JLI`X]~IXDy4K(">
                                             <field name="BOOL">TRUE</field>
                                           </block>
                                         </value>
                                       </block>
                                     </statement>
                                     <next>
                                       <block type="variables_set" id=";MmTjZE;W.u~43Y(7D6$">
                                         <field name="VAR" id="timeout2" variabletype="timeout">timeout2</field>
                                         <value name="VALUE">
                                           <block type="logic_null" id="m]%g=GPR@$03C48.{Et,"></block>
                                         </value>
                                       </block>
                                     </next>
                                   </block>
                                 </statement>
                               </block>
                             </statement>
                           </block>
                         </next>
                       </block>
                     </statement>
                   </block>
                  </xml>
                  

                  Jetzt wo ich das hier sehe ist das mit dem timeout schlecht gelöst, ich sollte das in einem timeoutblock zusammenfassen...irgendwie...

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @skinni last edited by

                    @skinni
                    Grundsätzlich könntest Du ja auch aktiv über ein Zeitintervall alle Minuten den aktuellen Chlorgehalt abfragen. Dann machst Du Dich ebenfalls vom Chlormesser als Trigger unabhängig.

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      skinni @mickym last edited by skinni

                      @mickym Darüber muss ich nachdenken 🙂

                      Passt das so, oder hab ich jetzt nen Denkfehler:

                      chlori3.png

                      <xml xmlns="https://developers.google.com/blockly/xml">
                       <variables>
                         <variable id="lIh3t+xCY,#WHGCT}aTp">Chlor</variable>
                         <variable type="timeout" id="timeout">timeout</variable>
                         <variable id="ROl/m!,ZQuB=|(JQ17=;">timeout</variable>
                       </variables>
                       <block type="on_ext" id="%]eMX/7{=?l%xNsq4r=b" x="-644" y="-256">
                         <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="3.L.+Kh}m=JxHlQa+C~,">
                             <field name="oid">ph803w.0.2tqRa88FgaUS5AxgARVYug.redox.value</field>
                           </shadow>
                         </value>
                         <statement name="STATEMENT">
                           <block type="controls_if" id="8Se9yr`}E`f,nN^9[Bk#">
                             <mutation elseif="1"></mutation>
                             <value name="IF0">
                               <block type="logic_operation" id="`:@1fe`j5;c*%QXHdNI9">
                                 <field name="OP">AND</field>
                                 <value name="A">
                                   <block type="logic_compare" id="5-Z3V/5mkjrPk7E=p/U0">
                                     <field name="OP">LTE</field>
                                     <value name="A">
                                       <block type="get_value" id="=:AL6kxMaD}eK[}ieqw-">
                                         <field name="ATTR">val</field>
                                         <field name="OID">ph803w.0.2tqRa88FgaUS5AxgARVYug.redox.value</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <block type="math_number" id="Ti]LDqaczFGBjAds0[ZA">
                                         <field name="NUM">560</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="logic_compare" id="#`M7aP+K.bc{?veFMY#C">
                                     <field name="OP">LTE</field>
                                     <value name="A">
                                       <block type="get_value" id="A(W~~VKuQl:1YaDiJW[C">
                                         <field name="ATTR">val</field>
                                         <field name="OID">0_userdata.0.Chlorinator_Laufzeit</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <block type="math_number" id="dVw/)c0Y7tBn2_+lj/`,">
                                         <field name="NUM">17200</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO0">
                               <block type="variables_set" id="_}:]Q~@,U/T{oeE$K}gN">
                                 <field name="VAR" id="lIh3t+xCY,#WHGCT}aTp">Chlor</field>
                                 <value name="VALUE">
                                   <block type="logic_boolean" id="?4m@lB2g3xmF69:mA@gZ">
                                     <field name="BOOL">TRUE</field>
                                   </block>
                                 </value>
                               </block>
                             </statement>
                             <value name="IF1">
                               <block type="logic_compare" id="Hfz$1fO1:T963c;_j7=(">
                                 <field name="OP">GTE</field>
                                 <value name="A">
                                   <block type="get_value" id="NmhX3Dy-@XCw]I_yfqp)">
                                     <field name="ATTR">val</field>
                                     <field name="OID">ph803w.0.2tqRa88FgaUS5AxgARVYug.redox.value</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="math_number" id="%y[V/N{x0feZgV$IT5bO">
                                     <field name="NUM">570</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO1">
                               <block type="variables_set" id="3`o%H[os2|FOGOhy,O{6">
                                 <field name="VAR" id="lIh3t+xCY,#WHGCT}aTp">Chlor</field>
                                 <value name="VALUE">
                                   <block type="logic_boolean" id="sN4hlDdf]R0peWFdV?q:">
                                     <field name="BOOL">FALSE</field>
                                   </block>
                                 </value>
                               </block>
                             </statement>
                             <next>
                               <block type="controls_if" id="!VP?w(qQ6mWcri7!W5Z;">
                                 <value name="IF0">
                                   <block type="logic_negate" id="cG/uN?1Xe@pd?X)r-nVw">
                                     <value name="BOOL">
                                       <block type="variables_get" id="(stR}xVTBOM[bkL_}C!d">
                                         <field name="VAR" id="ROl/m!,ZQuB=|(JQ17=;">timeout</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <statement name="DO0">
                                   <block type="timeouts_settimeout" id="8jSUoYRtHobot2Y+O[Y0">
                                     <field name="NAME">timeout</field>
                                     <field name="DELAY">60</field>
                                     <field name="UNIT">sec</field>
                                     <statement name="STATEMENT">
                                       <block type="controls_if" id="uCVBhL`Mu/`Q0x@.Q=!E">
                                         <mutation elseif="1"></mutation>
                                         <value name="IF0">
                                           <block type="logic_operation" id="?wvO}FWI6dj*t[$5|9.%" inline="false">
                                             <field name="OP">AND</field>
                                             <value name="A">
                                               <block type="logic_compare" id="L6Yt@6P}X*CKxRTaK)HZ">
                                                 <field name="OP">EQ</field>
                                                 <value name="A">
                                                   <block type="variables_get" id=".djORK]^-}sHKH^rhz+.">
                                                     <field name="VAR" id="lIh3t+xCY,#WHGCT}aTp">Chlor</field>
                                                   </block>
                                                 </value>
                                                 <value name="B">
                                                   <block type="logic_boolean" id=")n={]XOXa$rr74+}ICqz">
                                                     <field name="BOOL">TRUE</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <block type="logic_compare" id="ndWLo*2T|(CRY.iWQ?:+">
                                                 <field name="OP">LTE</field>
                                                 <value name="A">
                                                   <block type="get_value" id="MQJ!rr_.4?g1|6RkF%2q">
                                                     <field name="ATTR">val</field>
                                                     <field name="OID">shelly.0.SHSW-25#00B630#1.Relay1.Power</field>
                                                   </block>
                                                 </value>
                                                 <value name="B">
                                                   <block type="math_number" id="BjE/`z5csL`vVn6#36lG">
                                                     <field name="NUM">10</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <statement name="DO0">
                                           <block type="control" id=";|ICx1a#N[Bl$1/(+[:G">
                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                             <field name="OID">shelly.0.SHSW-1#5B33F0#1.Relay0.Switch</field>
                                             <field name="WITH_DELAY">FALSE</field>
                                             <value name="VALUE">
                                               <block type="logic_boolean" id="8I9bG_1BAYvef,F7cnMB">
                                                 <field name="BOOL">TRUE</field>
                                               </block>
                                             </value>
                                           </block>
                                         </statement>
                                         <value name="IF1">
                                           <block type="logic_operation" id="tK+PNiI.kx%A074n=rT3" inline="false">
                                             <field name="OP">AND</field>
                                             <value name="A">
                                               <block type="logic_compare" id="RW!u^5Q-Bq%KRvc4$VIC">
                                                 <field name="OP">EQ</field>
                                                 <value name="A">
                                                   <block type="variables_get" id="v,uzMq@31%OcqRp^jl}5">
                                                     <field name="VAR" id="lIh3t+xCY,#WHGCT}aTp">Chlor</field>
                                                   </block>
                                                 </value>
                                                 <value name="B">
                                                   <block type="logic_boolean" id="Q:KlhV!ZBT3U+7P#ARS3">
                                                     <field name="BOOL">FALSE</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <block type="logic_compare" id="`$KA-%Z$jIB)FBnex%_y">
                                                 <field name="OP">GTE</field>
                                                 <value name="A">
                                                   <block type="get_value" id="]16jf|IR*n=sVzl)hFZI">
                                                     <field name="ATTR">val</field>
                                                     <field name="OID">shelly.0.SHSW-25#00B630#1.Relay1.Power</field>
                                                   </block>
                                                 </value>
                                                 <value name="B">
                                                   <block type="math_number" id="E9eXbW=_*UdK!*-vAJ^|">
                                                     <field name="NUM">10</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <statement name="DO1">
                                           <block type="control" id="3vqq{hVY@qK#.bYZ5EsK">
                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                             <field name="OID">shelly.0.SHSW-1#5B33F0#1.Relay0.Switch</field>
                                             <field name="WITH_DELAY">FALSE</field>
                                             <value name="VALUE">
                                               <block type="logic_boolean" id="otl;z-JLI`X]~IXDy4K(">
                                                 <field name="BOOL">TRUE</field>
                                               </block>
                                             </value>
                                           </block>
                                         </statement>
                                         <next>
                                           <block type="variables_set" id="fFK.`i,@AXlf!2;5eQ0v">
                                             <field name="VAR" id="ROl/m!,ZQuB=|(JQ17=;">timeout</field>
                                             <value name="VALUE">
                                               <block type="logic_null" id="8x1?XF;7vWRy=O/OaIWp"></block>
                                             </value>
                                           </block>
                                         </next>
                                       </block>
                                     </statement>
                                   </block>
                                 </statement>
                               </block>
                             </next>
                           </block>
                         </statement>
                       </block>
                      </xml>
                      

                      1 Reply Last reply Reply Quote 0
                      • S
                        skinni last edited by

                        chloristeuerung2.png

                        🤔

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        704
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        580
                        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