NEWS
UNSOLVED [Vorlage] Poolfilterpumpensteuerung
-
@fhepfussel also bei mir läuft das ganze ohne Neustart oder Reset der Zeiten ich weiß nicht was das bei dir ist...
Also du hast in deinem Skript diesen Baustein hinzugefügt (aktualisier "Meine_Geräte.0.test" mit "Timer 2" mit Verzögerung)?
Damit hättest du Theoretisch nur den "Variablen" Timer in einen "Objekt" Timer umgewandelt, wenn das geholfen hat ok aber sehr komisch.
Könntest du mir mal alles zukommen lassen was di für deinen Pool erstellt hast vielleicht liegt es an einem zusätzlichen Skript das diese Poolsteuer sich immer Neustartet?
-
Hallo tolle Vorlage, die ich dieses Jahr einsetzen möchte. Hattest Du Zeit einmal an einer Ph / Redox Regelung herum zu tüfteln? Ich habe selbst begonnen, dann aber bemerkt, dass eine Abstimmung auf die Zeiten in Deinem Blockly mein können übersteigen.
Grüsse aus Bern -
Ich wollte das Script auch mal importieren, allerdings erhalten ich immer die Fehlermeldung "Cannot extract Blockly code!"
Woran kann das liegen?
-
@bf0911 Zufällig bin ich auch da dran...
Du muss die Zip Datei über die drei Punkte Links oben importieren.
-
Exakt so habe ich es gemacht, allerdings mit dem Ergebnis, dass wenn ich auf das Programm klicke, die Fehlermeldung kommt
Problem, selbst gefunden! Die Meldung kam weil kein Telegram-Adapter installiert war!
-
Ich habe ein weitere Problem, wo ich aktuell nicht so die Lösung finde.
Und zwar ist sowohl die Laufzeit 1 als auch Laufzeit 2 auf 240 Minuten eingestellt.
Allerdings stoppt das Skript jeweils die Pumpe nach genau 120 Minuten.
Woran kann das liegen? Ich hab schon in den Objekten nachgesehen, dort sind bei den Variablen auch jeweils 240 eingetragen.
-
Hast du ne Lösung gefunden?
Wenn ich das jetzt so beobachte, kommt mir die Idee das er nur die hälfte der Zeit läuft.
Das deckt sich mit meinen Feststellungen.
gestern LZ1 150min LZ2 180min
lief fehlerfrei.Heute morgen habe ich LZ1 auf 180min setzen lassen Start 0800 LZ2 320min. Die Pumpe stoppte nach 90 min ....
Ich habe bei mir aber noch 2 Bausteine hinzugefügt. Baustein 1 errechnet mir alle 60min dem Mittelwert vom Pool und der zweite ändert dann jeh nach Temperatur die Laufzeit.
-
Nein, leider keine Lösung.
Ich weiß aber, dass das mal zuverlässich funktioniert hat.
Vielleicht liegt es an einem Adapter des "Javascript"-Adapters?!
-
@bf0911
Sorry hatte 3 Wochen Urlaub xD
schade. Ich habe aber jetzt als Timer gelöse. Nicht schön aber eine funktionierende Lösung.Wenn das Script mal sauber startet. Nach dem meine Rotzbeere neu startet startet er den CRON nicht. Dann änder ich die Startzeit und es geht, aber er startet dann 2x ( von 15:00 auf 15:30 dann wieder auf 15:00 gesetzt ) Irgendwie komisch das ganze etwas.
-
Hallo. Ich teste gerade dieses Script und freu mich riesig. Leider funktioniert es jedoch nicht. Manchmal funktioniert die Automatik (180min eingestellt), manchmal bleibt der Aktor nur 10min an und geht dann wieder aus. Ich kann das aber irgendwie nicht so reproduzieren. Hat wer das schon gehabt und ne Lösung parrat oder kann mir sagen was ich loggen soll, um das zu prüfen? Danke
-
Hallo zusammen,
@GeorgS scheint ja schon länger nicht mehr aktiv gewesen zu sein.
Ich bin aktuell auf der Suche nach einer Poolsteuerung und auf diesen Thread gestoßen.
Hat das schon jemand mit PH und Chlor Dosierungssteuerung realisiert? Evtl. auch mit zusätzlichem Script?
Kann dieses Script auch die Solarsteuerung übernehmen? -
das ist meine Wintersteurung:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="fY|a$gWyt(nK=4FWvBcK">Chlor</variable> </variables> <block type="procedures_defnoreturn" id="krpD%r,K:?XP^0}HpcxV" x="-912" y="-438"> <field name="NAME">Power</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="control" id="~1Dn1@*IDrzRDfXBx3Mh"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.2</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="NRl!=9l?+gJZs?1VOce="> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="uf/@PQ0t|#y)6WCyUw4T"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.1</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">500</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="(y@Er:?^Hc7[@.$q)vHf"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="[HooE]!@+#:[_q$%6*nP"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.3</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Ka_)m)ss-LPEznT|{3h#"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block type="schedule" id="{+bo?]JupI}xy(^0xS]O" x="-1113" y="-313"> <field name="SCHEDULE">30 9 * * *</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="d0O7j}@q3h8oO*[,AqK="> <mutation name="Winter Ein"></mutation> </block> </statement> <next> <block type="schedule" id="Fh=*5cu]a$[:yJ(KL,ve"> <field name="SCHEDULE">0 19 * * *</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="*?H^sH$n6*82HwE|%!2R"> <mutation name="Power"></mutation> </block> </statement> <next> <block type="schedule" id="5uK!5PN55##3#t?,,#ah"> <field name="SCHEDULE">0 20 * * *</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="@DY[c|7b{wdMx6aG!FAl"> <mutation name="Winter Ein"></mutation> </block> </statement> <next> <block type="comment" id="8_E*([YkOs$r.8,onj8p"> <field name="COMMENT">Pumpe Ein</field> <next> <block type="schedule" id="w#7):F;6N(giY,%`+r|("> <field name="SCHEDULE">30 9 * * *</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="}VcbiwGHX#Pu~PB8orgv" disabled="true"> <mutation name="sommer ein"></mutation> </block> </statement> <next> <block type="comment" id="m:[*]QErQlF?p8iK{b:!"> <field name="COMMENT">Pumpe Aus</field> <next> <block type="schedule" id="Nx(uN0@FAl@%=J21puJ?"> <field name="SCHEDULE">0 20 * * *</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="18zW(;#0/9sBq]19{)d}" disabled="true"> <mutation name="sommer aus"></mutation> </block> </statement> <next> <block type="comment" id="^TP4q#?0cVWJ#H~vc*fk"> <field name="COMMENT">Chlorgenerator</field> <next> <block type="on" id="zXT1JH!~UKCcwLrEJhpF"> <field name="OID">0_userdata.0.Pool.Chlor</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="}M;m*5M?9JY=7)V@X7(S"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="*]hzE,yI:DSm55wyCh8%" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="Fb-Jc6FBd)9(_MEAk*KH"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="_Dv7(B@G+jc;w`,}q;Sy"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="get_value" id="5Ff].YB:mE^PD?q6rhRt"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Pool.Chlor_Min</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="Mnz1rP8j5BZ}o:0F}w~."> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="FUEV2^)nV2c.M{_M}J{C"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-25#C46476#1.Relay1.Switch</field> </block> </value> <value name="B"> <block type="logic_boolean" id="nLu-w^;-YC`wp8*Dj|sV"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="@1AyOFRBxYqlgRN;o+{:"> <field name="VAR" id="fY|a$gWyt(nK=4FWvBcK">Chlor</field> <value name="VALUE"> <block type="logic_boolean" id="^1@#5:F+S,cqs#zz.i_4"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="ZGF#}xZe69K(7aT_eIpd"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="!c3D(6J[r(b3d4~9ieRl"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="get_value" id="*Q5{mZSdiAxmpejG-Vor"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Pool.Chlor_Max</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="0-Xy2fzz#X365Z]W!@n/"> <field name="VAR" id="fY|a$gWyt(nK=4FWvBcK">Chlor</field> <value name="VALUE"> <block type="logic_boolean" id="7I=GRKU*UFS,8HoV/-ZN"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="N#,gr`#,^dtI,D~Jv.y*"> <value name="IF0"> <block type="logic_compare" id="axFljj2y#RDtPl.xCKwd"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="Q];`2Ei$}!NtHiiB776u"> <field name="VAR" id="fY|a$gWyt(nK=4FWvBcK">Chlor</field> </block> </value> <value name="B"> <block type="get_value" id="}fdv=3G]Zf!Ny$sH,A9a"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-25#C46476#1.Relay1.Switch</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="n8iLAbI@sR?$mHAy;^e_"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#C46476#1.Relay1.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="WPIe;S9LxdS!).z4cY=N"> <field name="VAR" id="fY|a$gWyt(nK=4FWvBcK">Chlor</field> </block> </value> </block> </statement> <next> <block type="debug" id="f]{3goY3~yq7@K*240K}"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="1b8O7AuC`gw3N`VmpEYu"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="pY{c~iX+MWg5_48uOb~v"> <field name="VAR" id="fY|a$gWyt(nK=4FWvBcK">Chlor</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="RnNqePkHjN:vvE,EweE3"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">gt</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="mP9g^HP]%ns+6ch7ZhS#"> <field name="oid">shelly.0.SHSW-25#C46476#1.Relay1.Switch</field> </shadow> </value> <statement name="STATEMENT"> <block type="pushover" id="Y.@GGssym_|v3e}lg(vl"> <field name="INSTANCE"></field> <field name="SOUND"></field> <field name="PRIORITY">0</field> <field name="LOG"></field> <value name="MESSAGE"> <shadow type="text" id="pmX@O66|Ks.:}NJrPAmW"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="3E$HwLWFU]lV`?kb7D)d"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="2Y0b**WcLsz[Bo6SYqFr"> <field name="TEXT">Chlorinator wurde eingeschaltet </field> </block> </value> <value name="ADD1"> <block type="text_newline" id="9;vPyOERBTH%JO]}b)a#"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="7$VvEV.Rr{08Qo^-Rsz?"> <field name="TEXT">Der Redox-Wert beträgt </field> </block> </value> <value name="ADD3"> <block type="get_value" id="7tZaZ@rVd!W~-8nz#r.,"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Pool.Chlor</field> </block> </value> <value name="ADD4"> <block type="text" id="|_[K5?Xe@y4tE0%=09lD"> <field name="TEXT"> mV</field> </block> </value> </block> </value> <next> <block type="telegram" id="m5VLvz@y|6%`.Pr#K6n!" disabled="true"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="Q.ZRw,r#i`~@Msw/Jh-h"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="/s|c|{@4D`F#$)=_Dx$I"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="yjJ4#t1z}/h8B?DA=Q$p"> <field name="TEXT">Chlorinator wurde eingeschaltet </field> </block> </value> <value name="ADD1"> <block type="text_newline" id="741y3l*z2+Rf7{AK59q*"> <field name="Type">\n</field> </block> </value> <value name="ADD2"> <block type="text" id="KkaEY|LcUu5s!CcFp/Ib"> <field name="TEXT">Der Redox-Wert beträgt </field> </block> </value> <value name="ADD3"> <block type="get_value" id="^]:F5TG3HBpxb3yENGb@"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Pool.Chlor</field> </block> </value> <value name="ADD4"> <block type="text" id="0Wo{%jpK-N/9#?K2KNrh"> <field name="TEXT"> mV</field> </block> </value> </block> </value> <next> <block type="control" id="lSjgX^-xpn{vx|s+B8mw"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">shelly.0.SHSW-25#C46476#1.Relay1.Switch</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">70</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="FDVa5dhV}_;]M5k[bZkN"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="03m(MjWx#3hh**k}Qqfs" x="-937" y="-263"> <field name="NAME">sommer ein</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="control" id="2sNd(=:!XjyU^J{m|-{U"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="E+J|Y]-4rApqwPzOyX~H"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="tXM0rqU)N.d3D;IC[Bxo"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.1</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">500</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="qL-#PR1lSz1o)8pGWsWs"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="Kzd~{$(1o,UZ-N,383F)"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.3</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">700</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=";w6XAI$gy6q@S6x@$=yA"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="S.}O(bE+G][_HTP}!m0a" x="-787" y="-88"> <field name="NAME">sommer aus</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="control" id="4/UtwaU-]0(}~N0yWXMj"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="so*-~6}1Smz2c_TxW+Tq"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="mYP3*ZZQY^/r%7R4wQZ="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.2</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">500</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="bJLvv;gw(lUOB#Go*a^r"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="KL2[1:_G|Bu1Pd31ajDd"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.3</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">700</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="T]+4{ksJ#4mv_k?YeP,{"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="7Kn:jXR*IymU5rgDV0jF" x="-537" y="88"> <field name="NAME">Winter Ein</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="control" id="$_%MJ8fQW(c9?+VV=@L%"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="+g)4uyI4;i[lo=29^whv"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="{?sSNbBstd-OVl._B7~9"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.2</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">700</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="^mfW~$1q!4eadbw.BqdS"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id=",ipK?X0/,-~S`?G^7~GI"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.3</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">500</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]:z0tYf)!1`4+uHq*Al3"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="e7{UPVeV|T*)JiBN@Yo," x="-488" y="263"> <field name="NAME">Winter Aus</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="control" id="U4$jviMmVsTT+prMk8Cc"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Y[lP_C=JFHPa.K5h/,:0"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="Bv$Utyufuu`E8#47AeGI"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.1</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">500</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="s+J25%o@bV^!I{@Rr,3H"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="G5y`5IP9Ot-4prV(:f]a"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">tuya.0.bf0e611510167547eethsa.3</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">700</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="[#?CsK;|p#L:8i`.x%Wj"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </xml>
Ich hab einen variator für die Poolpumpe beim den ich über ein Tuja 4fach Relais (Tuya Wifi Smart Switch Modul 250/4ch AC DC 7-32V 85-V Jog ) die Geschwindigkeiten der Pumpe schalten kann, einen blueconnect salt für die automatischen werte, einen poollab für manuelle Messungen und einen Shelly für den Chlorinator um chlor zu steuern (ginge aber auch mit ner Dosipumpe)
Im Winter läuft die pumpe nur mit 65 Watt durch und einmal am Tag auf 2/3 Leistung zum Filtern
Bei der Chlordosierung habe ich Min und Maxwerte in je einem Datenpunkt. Wenn eine neue Messung erfolgt, wird geschaut ob einer der Werte unter- bzw überschritten ist und dann der Chlori eingeschaltet. Bei mir dauert es etwa 60-80 minuten bis die Werte wieder passen (erfahrung) daher wird nach 70 min ausgeschaltet und auf die nächste Messung gewartet.
Selbiges funktioniert analog mit PH heber oder senker, je nach bedarf.
Ich werd es die kommenden Tage mal in das große Script einarbeiten, im Winter brauch ichs aber nicht. da dann eh Lichtdicht abgedeckt ist.