Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Schaltzustand Verzögern

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Schaltzustand Verzögern

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

      @paul53
      Mahlzeit, sag mal ist es möglich den Vliesfilter aus der Osmose Steuerung komplett raus zu nehmen und eine neue Blockly Steuerung für diesen zu erstellen wo das Vlies alle halbe Std. x ms eingeschaltet wird und aber auch nicht mehr als x ms am Tag !? Da das Vlies unten im Wasser an den umlenken Wellen kleben bleibt dreht der Motor das Vlies nicht weiter somit muss das Vlies kontinuierlich gedreht werden! Um zu verhindern das es fest klebt und ich es von Hand ständig lösen muss

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

        @Aphofis sagte:

        ist es möglich den Vliesfilter aus der Osmose Steuerung komplett raus zu nehmen und eine neue Blockly Steuerung für diesen zu erstellen wo das Vlies alle halbe Std. x ms eingeschaltet wird und aber auch nicht mehr als x ms am Tag !?

        Sicher ist es möglich. Erwarte aber bitte nicht von mir, dass ich noch weiß, was wir damals programmiert haben.

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

          @paul53 nein das auf keinen Fall!
          Ich poste dir mal das JavaScript und die dazugehörigen datenpunkte
          Wenn ich es mal schaffe zu Hause zu sein 😧

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

            @paul53

            So also Das hattest du programmiert, Da soll der Vliesfilter raus! Die Osmose soll so bleiben, die Osmose Steuerung läuft perfekt.
            Desweiteren, ist es möglich Osmose Restzeit ins Osmose System zu verlegen !?

            Aqua_Control.0.Osmose_System.Osmose.Restzeit
            

            bezügich des multiplikators fur das Vlies muss ich den Zettel suchen wo ich die berechnung drauf habe. Ich weiß leider nihct mehr was für eine Maßeinheit der multiplikator ist. Ich glaube das waren die ms pro mm bzw mm pro ms! ich weiß es nur nicht mehr genau.
            Der Vliesfilter soll dann alle 30 min einen Cm laufen. Tausche Heute die angerosteten Edelstahl Wellen für die Vlies Umlenkung gegen Kunstoff Wellen und dann sollte es klappen nur will ich trotzdem das dass Vlies regelmäßig läuft.
            In der Programmierung muss es aber so laufen das nur wenn Vliesfilter Schwimmer Normal true ist das nur dann Motor true sein kann weil die minus Leitung über diesen Schwimmer läuft.

            const idRestzeit = 'Osmose.Restzeit';
            const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join('');
            const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join('');
            
            createState(idRestzeit, 300, {type: 'number', unit: 's'});
            
            var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val;
            var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val;
            var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle;
            
            function Magnetventil_Ein() {
              if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) {
                Magnetventil_Kontrolle = setInterval(function () {
                  if (Restzeit > 0 && Schwimmer && Osmosefreigabe) {
                    Restzeit--;
                    setState(idRestzeit, 2 * Restzeit, true);
                  } else {
                    setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                    clearInterval(Magnetventil_Kontrolle); 
                    Magnetventil_Kontrolle = null;
                  }
                }, 2000);
                setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true);
              }
            }
            
            // Skripstart
            setTimeout(function() {
                Restzeit = getState(idRestzeit).val / 2;
                if(Schwimmer && Osmosefreigabe) Magnetventil_Ein();
                else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
            }, 200);
            var entprell = null;
            on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) {
              log('Schwimmer: ' + obj.state.val)
              if(entprell) {
                clearTimeout(entprell);
                entprell = null;
              }  
              entprell = setTimeout(function() {
                Schwimmer = obj.state.val;
                if(Schwimmer) Magnetventil_Ein();
                else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
              }, 2000); // 2 s 
            });
            
            schedule("0 0 * * *", function () {
              Restzeit = 150;
              setState(idRestzeit, 300, true);
              if(Schwimmer) Magnetventil_Ein();
            });
            
            on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) {
              if (obj.state.val) {
                timeout_aus = setTimeout(function () {
                  Osmosefreigabe = false;  
                  setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false);
                  setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                }, 5000);
                if (timeout_ein) {
                    clearTimeout(timeout_ein); 
                    timeout_ein = null;
                }
              } else {
                timeout_ein = setTimeout(function () {
                  Osmosefreigabe = true;
                  if(Schwimmer) Magnetventil_Ein();           
                  setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000);
                }, 10000);
                if (timeout_aus) {
                    clearTimeout(timeout_aus); 
                    timeout_aus = null;
                }
              }
            });
             
            on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) {
              var txt;  
              if (obj.state.val) txt = text_ein;   
              else txt = text_aus;   
              sendTo("telegram.0", "send", {
                text: txt
              });
              log(txt);
            });
            

            03.png 02.png 01.png

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

              @Aphofis sagte:

              Da soll der Vliesfilter raus!

              Ich kann in dem Script keine Vliesfilter-Steuerung finden.

              @Aphofis sagte in [gelöst] Schaltzustand Verzögern:

              ist es möglich Osmose Restzeit ins Osmose System zu verlegen !?

              Ja, dann muss die ID im Script geändert werden, das createState(idRestzeit) muss raus und der Datenpunkt muss manuell erzeugt werden.

              const idRestzeit = 'Aqua_Control.0.Osmose_System.Osmose.Restzeit';
              const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join('');
              const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join('');
               
              // createState(idRestzeit, 300, {type: 'number', unit: 's'}); // Muss manuell erstellt werden
              
              Aphofis 1 Reply Last reply Reply Quote 0
              • Aphofis
                Aphofis @paul53 last edited by Aphofis

                @paul53
                Das schon mal einfach!
                Hattenst du beim Programmieren nihct diese beiden Steuerungen zusammen gelegt!?
                Dann muss ich noch mal gucken und dann weiß ich vllt auch warum der Vliesfilter nicht läuft. Da keine Steuerung dafür aktiv ist.
                Dann ist das wohl die Vliesfilter Steuerung!
                Die war die ganze Zeit nihct aktiv! egal ich möchte trotzdem das die dann jede halbe stunde X ms läuft wenn schwimmer vlieafilter true sonst gehts eh nicht.

                <xml xmlns="https://developers.google.com/blockly/xml">
                  <variables>
                    <variable id="jelrI7)a+8oXZV(*|VPG">schwimmer</variable>
                    <variable id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</variable>
                    <variable id="9:SDRple|ege[7Ew8bgk">maxSchwimmer</variable>
                    <variable type="undefined" id="Intervall">Intervall</variable>
                    <variable type="timeout" id="timeout">timeout</variable>
                  </variables>
                  <block type="comment" id="5z}DP4%./aV[wt`Fx4$t" x="-2013" y="-787">
                    <field name="COMMENT">Vlies Schwimmer normal</field>
                    <next>
                      <block type="variables_set" id="q^$BreH*yiE%[?k6w~Cu">
                        <field name="VAR" id="jelrI7)a+8oXZV(*|VPG">schwimmer</field>
                        <value name="VALUE">
                          <block type="get_value" id="[z_,Lk{/T{ix%}b/^$WM">
                            <field name="ATTR">val</field>
                            <field name="OID">sonoff.0.Aqua_Float.POWER3</field>
                          </block>
                        </value>
                        <next>
                          <block type="variables_set" id="54%k%%U$jnaK1m1E.%SH">
                            <field name="VAR" id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</field>
                            <value name="VALUE">
                              <block type="math_arithmetic" id="@jS^)bBYfX#1dH:D1kdH">
                                <field name="OP">DIVIDE</field>
                                <value name="A">
                                  <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="q!^ViYZx3LnzVq1kp_Za">
                                    <field name="NUM">1</field>
                                  </shadow>
                                  <block type="get_value" id="q^Na^3~X:M*%vFn_~M82">
                                    <field name="ATTR">val</field>
                                    <field name="OID">Aqua_Control.0.Vliesfilter.Restzeit</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <shadow type="math_number" id="S7Sc+~JrKqP70}B!6YdK">
                                    <field name="NUM">2</field>
                                  </shadow>
                                </value>
                              </block>
                            </value>
                            <next>
                              <block type="on_ext" id=".C1d#(gWIO$3af%qZpd=">
                                <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="ao*zhM3bl`?#R.|56@u2">
                                    <field name="oid">sonoff.0.Aqua_Float.POWER3</field>
                                  </shadow>
                                </value>
                                <statement name="STATEMENT">
                                  <block type="timeouts_cleartimeout" id="JsI0fYRACRn|cg%P`lFp">
                                    <field name="NAME">schwimmer</field>
                                    <next>
                                      <block type="timeouts_settimeout" id="N#We))|a%fz}L[Q+Cx^q">
                                        <field name="NAME">timeout</field>
                                        <field name="DELAY">5</field>
                                        <field name="UNIT">sec</field>
                                        <statement name="STATEMENT">
                                          <block type="variables_set" id="DBP2g$aqWChGwu[v*4!%">
                                            <field name="VAR" id="jelrI7)a+8oXZV(*|VPG">schwimmer</field>
                                            <value name="VALUE">
                                              <block type="on_source" id="K11}(or[Z:OS!(#vxqHG">
                                                <field name="ATTR">state.val</field>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="procedures_callnoreturn" id="PS|Lsb]Ll|M)1A-*=;MW">
                                                <mutation name="Vliesmotor"></mutation>
                                              </block>
                                            </next>
                                          </block>
                                        </statement>
                                      </block>
                                    </next>
                                  </block>
                                </statement>
                                <next>
                                  <block type="schedule" id="(1I$6}V5IN*70(H;=,o%">
                                    <field name="SCHEDULE">0 0 * * *</field>
                                    <statement name="STATEMENT">
                                      <block type="variables_set" id="{)f?@KVtoNY|AFCWejAB">
                                        <field name="VAR" id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</field>
                                        <value name="VALUE">
                                          <block type="math_number" id="Rqh{,?m@M#5bO:hk2qxN">
                                            <field name="NUM">20</field>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="update" id="+r+/i.Ri,fl}QCeX@?61">
                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                            <field name="OID">Aqua_Control.0.Vliesfilter.Restzeit</field>
                                            <field name="WITH_DELAY">FALSE</field>
                                            <value name="VALUE">
                                              <block type="math_number" id="]lwb)]#RcLa^7jMqMB77">
                                                <field name="NUM">40</field>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="procedures_callnoreturn" id="4]}?^U%FVW-Xhma?(A5M">
                                                <mutation name="Vliesmotor"></mutation>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </statement>
                                    <next>
                                      <block type="variables_set" id=",QNrt-4CE4Oj^jIk#,;Y">
                                        <field name="VAR" id="9:SDRple|ege[7Ew8bgk">maxSchwimmer</field>
                                        <value name="VALUE">
                                          <block type="get_value" id=")/E%PW9T*{q`1g=Um8*F">
                                            <field name="ATTR">val</field>
                                            <field name="OID">sonoff.0.Aqua_Float.POWER5</field>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="comment" id="bHD/a9YVFg5@jtgL}RAZ">
                                            <field name="COMMENT">Vlies Schwimmer max</field>
                                            <next>
                                              <block type="on_ext" id="*GLxbq=Y5W/kt`Ec^_^8">
                                                <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=":`a*puT#US*_u;?L/x6J">
                                                    <field name="oid">sonoff.0.Aqua_Float.POWER5</field>
                                                  </shadow>
                                                </value>
                                                <statement name="STATEMENT">
                                                  <block type="variables_set" id="|?HCwmG:!WSA]G_SW,bk">
                                                    <field name="VAR" id="9:SDRple|ege[7Ew8bgk">maxSchwimmer</field>
                                                    <value name="VALUE">
                                                      <block type="on_source" id="2JAIjy|oUz(g|A5~5NZK">
                                                        <field name="ATTR">state.val</field>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="controls_if" id="_6.CXzT9uKZMv|AhD2pB">
                                                        <value name="IF0">
                                                          <block type="variables_get" id="bGVV|MyBeYczZ:[4nke5">
                                                            <field name="VAR" id="9:SDRple|ege[7Ew8bgk">maxSchwimmer</field>
                                                          </block>
                                                        </value>
                                                        <statement name="DO0">
                                                          <block type="control" id="V1h::i|*Z}0C,x,4n[h[">
                                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                            <field name="OID">sonoff.0.Aqua_Control.POWER2</field>
                                                            <field name="WITH_DELAY">FALSE</field>
                                                            <value name="VALUE">
                                                              <block type="logic_boolean" id="?1XtN^D4|o#2R(0I)]46">
                                                                <field name="BOOL">FALSE</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </statement>
                                                        <next>
                                                          <block type="procedures_callnoreturn" id="4SLh!G5#1BX1Fr=Gc:)G">
                                                            <mutation name="Vliesmotor"></mutation>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </statement>
                                                <next>
                                                  <block type="procedures_callnoreturn" id="SwYioD-vCN,({DQT,nlx">
                                                    <mutation name="Vliesmotor"></mutation>
                                                  </block>
                                                </next>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                  <block type="procedures_defnoreturn" id="~}wgr=#9IHto`oZ`1i[U" x="-1512" y="-687">
                    <field name="NAME">Vliesmotor</field>
                    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                    <statement name="STACK">
                      <block type="controls_if" id="qK^.hb={2:@M!ZVgr,,u">
                        <mutation elseif="1"></mutation>
                        <value name="IF0">
                          <block type="logic_operation" id="[P$,D8~!C1S-}Qc-W#F2">
                            <field name="OP">AND</field>
                            <value name="A">
                              <block type="variables_get" id="NzRA^q(PS(^dxlh?Hz=`">
                                <field name="VAR" id="jelrI7)a+8oXZV(*|VPG">schwimmer</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="logic_negate" id="l#n/c,qraF+Y1Tx?C@JA">
                                <value name="BOOL">
                                  <block type="variables_get" id="_M:.mt0cg%g*o6:2k*18">
                                    <field name="VAR" id="9:SDRple|ege[7Ew8bgk">maxSchwimmer</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block type="controls_if" id="QywEwMFYFf*jv=~RG:hi">
                            <value name="IF0">
                              <block type="logic_operation" id="xx=Q]8#5BOXA?;HAZ|/Q">
                                <field name="OP">AND</field>
                                <value name="A">
                                  <block type="logic_negate" id="_{hS@M9pcc_|dL-|wHIe">
                                    <value name="BOOL">
                                      <block type="variables_get" id="!lSD/;w.BC6Zye$P;+qB">
                                        <field name="VAR" id="Intervall" variabletype="undefined">Intervall</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="logic_compare" id="JbQbvT#3JW.9fVGJXtMe">
                                    <field name="OP">GTE</field>
                                    <value name="A">
                                      <block type="variables_get" id="qM,NQ2t^P6}UJ1c+OQ`P">
                                        <field name="VAR" id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="math_number" id="U=ZFPYpxi`%vn%M4zaBe">
                                        <field name="NUM">0</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <statement name="DO0">
                              <block type="control" id="S$_E~?+C|0xeaXoh_M8M">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">sonoff.0.Aqua_Control.POWER2</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="logic_boolean" id="%02%L=N?!^~efNZ}mSgv">
                                    <field name="BOOL">TRUE</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="timeouts_setinterval" id="54}UC3}t@D?RM1+Z792o">
                                    <field name="NAME">Intervall</field>
                                    <field name="INTERVAL">5</field>
                                    <field name="UNIT">sec</field>
                                    <statement name="STATEMENT">
                                      <block type="controls_if" id="(~Q|}=ic+sA#`@!Ma`~L">
                                        <mutation else="1"></mutation>
                                        <value name="IF0">
                                          <block type="logic_operation" id="A46f$uvOO-y~k${W6yj6">
                                            <field name="OP">AND</field>
                                            <value name="A">
                                              <block type="logic_compare" id="bpC5nI2I}O}Z#O{kySt_">
                                                <field name="OP">GT</field>
                                                <value name="A">
                                                  <block type="variables_get" id="xk]/(@DMWUBgU#z6:]qZ">
                                                    <field name="VAR" id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</field>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <block type="math_number" id="yO,,$wcKnI|3dJ-tuyV}">
                                                    <field name="NUM">0</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <block type="variables_get" id="BSK6e#C8r)693?3tm_%s">
                                                <field name="VAR" id="jelrI7)a+8oXZV(*|VPG">schwimmer</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <statement name="DO0">
                                          <block type="math_change" id="E`-ssA;X9+940MYh/jC~">
                                            <field name="VAR" id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</field>
                                            <value name="DELTA">
                                              <shadow type="math_number" id="|SPdtjyTRk*g7kpbX@yh">
                                                <field name="NUM">-1</field>
                                              </shadow>
                                            </value>
                                            <next>
                                              <block type="update" id="e?4*zw6JeufCUI_A$tWA">
                                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                <field name="OID">Aqua_Control.0.Vliesfilter.Restzeit</field>
                                                <field name="WITH_DELAY">FALSE</field>
                                                <value name="VALUE">
                                                  <block type="math_arithmetic" id="?(V0m_KR;zq]8QN4Nnt}">
                                                    <field name="OP">MULTIPLY</field>
                                                    <value name="A">
                                                      <shadow type="math_number" id="e-o]eN1KmMjXLGYbB5*-">
                                                        <field name="NUM">2</field>
                                                      </shadow>
                                                    </value>
                                                    <value name="B">
                                                      <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="Jab%cXU;kqAhB|kiv+HG">
                                                        <field name="NUM">1</field>
                                                      </shadow>
                                                      <block type="variables_get" id="x3#fOwJi8qvpU_aB}+Qo">
                                                        <field name="VAR" id="%t!mZ8PG#G[N~SK+`Kpf">restzeit</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                              </block>
                                            </next>
                                          </block>
                                        </statement>
                                        <statement name="ELSE">
                                          <block type="control" id=";ZPsI~I3!y;|Bll.nZi]">
                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                            <field name="OID">sonoff.0.Aqua_Control.POWER2</field>
                                            <field name="WITH_DELAY">FALSE</field>
                                            <value name="VALUE">
                                              <block type="logic_boolean" id="GV}0dox+Wzn)9/ho1)jJ">
                                                <field name="BOOL">FALSE</field>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="timeouts_clearinterval" id=".JS+sd^HrJ:7@PT?;b1@">
                                                <field name="NAME">Intervall</field>
                                              </block>
                                            </next>
                                          </block>
                                        </statement>
                                      </block>
                                    </statement>
                                  </block>
                                </next>
                              </block>
                            </statement>
                          </block>
                        </statement>
                        <value name="IF1">
                          <block type="get_value" id="#Hsff,HhVj3Er3x^t0d{">
                            <field name="ATTR">val</field>
                            <field name="OID">sonoff.0.Aqua_Control.POWER2</field>
                          </block>
                        </value>
                        <statement name="DO1">
                          <block type="control" id="4|Vz)`RbK!({%B#^yBT@">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">sonoff.0.Aqua_Control.POWER2</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="(F=#.PC)sS-H0v;,Jq$U">
                                <field name="BOOL">FALSE</field>
                              </block>
                            </value>
                          </block>
                        </statement>
                      </block>
                    </statement>
                  </block>
                </xml>
                
                Aphofis 1 Reply Last reply Reply Quote 0
                • Aphofis
                  Aphofis @Aphofis last edited by Aphofis

                  @paul53
                  Kannst du mir vllt noch mal mit dieser steuerung helfen!?
                  irgendwie will keine Osmose dosieren. Seid dem ich die neuen Stable Updates installiert hatte.
                  Hatte die Geräte manuell getestet das funktioniert.
                  Nur Schaltet die Steuerung nicht. Das wäre sehr nett.

                  const idRestzeit = 'Aqua_Control.0.Osmose_System.Restzeit.Osmose.Restzeit';
                  
                  const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join('');
                  
                  const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join('');
                  
                   
                  
                  createState(idRestzeit, 300, {type: 'number', unit: 's'});
                  
                   
                  
                  var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val;
                  
                  var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val;
                  
                  var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle;
                  
                   
                  
                  function Magnetventil_Ein() {
                  
                    if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) {
                  
                      Magnetventil_Kontrolle = setInterval(function () {
                  
                        if (Restzeit > 0 && Schwimmer && Osmosefreigabe) {
                  
                          Restzeit--;
                  
                          setState(idRestzeit, 2 * Restzeit, true);
                  
                        } else {
                  
                          setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                  
                          clearInterval(Magnetventil_Kontrolle); 
                  
                          Magnetventil_Kontrolle = null;
                  
                        }
                  
                      }, 2000);
                  
                      setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true);
                  
                    }
                  
                  }
                  
                   
                  
                  // Skripstart
                  
                  setTimeout(function() {
                  
                      Restzeit = getState(idRestzeit).val / 2;
                  
                      if(Schwimmer && Osmosefreigabe) Magnetventil_Ein();
                  
                      else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                  
                  }, 200);
                  
                  var entprell = null;
                  
                  on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) {
                  
                    log('Schwimmer: ' + obj.state.val)
                  
                    if(entprell) {
                  
                      clearTimeout(entprell);
                  
                      entprell = null;
                  
                    }  
                  
                    entprell = setTimeout(function() {
                  
                      Schwimmer = obj.state.val;
                  
                      if(Schwimmer) Magnetventil_Ein();
                  
                      else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                  
                    }, 2000); // 2 s 
                  
                  });
                  
                   
                  
                  schedule("0 0 * * *", function () {
                  
                    Restzeit = 150;
                  
                    setState(idRestzeit, 300, true);
                  
                    if(Schwimmer) Magnetventil_Ein();
                  
                  });
                  
                   
                  
                  on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) {
                  
                    if (obj.state.val) {
                  
                      timeout_aus = setTimeout(function () {
                  
                        Osmosefreigabe = false;  
                  
                        setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false);
                  
                        setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                  
                      }, 5000);
                  
                      if (timeout_ein) {
                  
                          clearTimeout(timeout_ein); 
                  
                          timeout_ein = null;
                  
                      }
                  
                    } else {
                  
                      timeout_ein = setTimeout(function () {
                  
                        Osmosefreigabe = true;
                  
                        if(Schwimmer) Magnetventil_Ein();           
                  
                        setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000);
                  
                      }, 10000);
                  
                      if (timeout_aus) {
                  
                          clearTimeout(timeout_aus); 
                  
                          timeout_aus = null;
                  
                      }
                  
                    }
                  
                  });
                  
                   
                  
                  on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) {
                  
                    var txt;  
                  
                    if (obj.state.val) txt = text_ein;   
                  
                    else txt = text_aus;   
                  
                    sendTo("telegram.4", "send", {
                  
                      text: txt
                  
                    });
                  
                    log(txt);
                  
                  });
                  
                  

                  und der Datenpunkt Aqua_Control.0.Osmose_System.Restzeit.Osmose.Restzeit
                  wird im Javascript Adapter ersetllt. wie muss der lauten, damit der im Root Verzeichnis
                  Aqua_Control erstellt wird!?

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

                    @aphofis sagte: der Datenpunkt Aqua_Control.0.Osmose_System.Restzeit.Osmose.Restzeit wird im Javascript Adapter ersetllt. wie muss der lauten, damit der im Root Verzeichnis Aqua_Control erstellt wird!?

                    Man kann keinen Datenpunkt unter "Aqua_Control.0" mit createState() erstellen.

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

                      @paul53
                      OK wieder auf standard gestellt.
                      Nur war das nihct der Grund warum die steuerung nicht mehr funktioniert.
                      Schwimmer steht auf true Restzeit steht auf 300 sekunden nur Magnetventil wird nicht geschaltet.
                      muss vielleicht irgendein Datenpunkt neu definiert werden !?

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

                        @aphofis sagte: muss vielleicht irgendein Datenpunkt neu definiert werden !?

                        Wie lautet jetzt die ID der Restzeit?
                        "sonoff.0.Aqua_Float.POWER4" ist auf false? (=Freigabe)

                        Aphofis 1 Reply Last reply Reply Quote 1
                        • Aphofis
                          Aphofis @paul53 last edited by Aphofis

                          @paul53
                          Der Wert wurde automatisch wieder in Javascript erstellt Pfad:

                          javascript.0.Osmose.Restzeit
                          

                          "sonoff.0.Aqua_Float.POWER4" ist der Filter Niveau Max und steht auf true !!! Muss ich mal testen ob der Schwimmer korrekt ist. da der Schwimmer unten auf false stehen sollte.

                          Aphofis 1 Reply Last reply Reply Quote 0
                          • Aphofis
                            Aphofis @Aphofis last edited by

                            OK Fehler gefunden, der Schwimmer Power4 war mal wieder in der falschen Stellung. kommt beim Neustart des NodeMCU alle Jubeljahre vor, das der Schwimmerzustand verkehrt ist

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            759
                            Online

                            32.0k
                            Users

                            80.4k
                            Topics

                            1.3m
                            Posts

                            4
                            262
                            16354
                            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