NEWS
Intervall Pumpensteuerung für Poolfilteranlage (gelöst)
-
@muckel ein regelmäßiges Intervall mit einem festen Duty-Cycle oder einen Zeitplan als Backup hinter der manuellen Bedienung aufstellen, ist doch vom Effekt her identisch ...
Wenn keiner eingreift, läuft die Pumpe über den Tag verteilt 1/3 und 2/3 der Zeit steht sie ...Noch eine Idee: Kann der Zigbee-Schalter auch die Leistung messen? wenn ja, wäre eine Trockenlauferkennung darüber möglich - die Stromaufnahme der Luft ziehenden Pumpe sollte deutlich niedriger liegen, als die beim Pumpen von Wasser ...
Vielleicht kann man sogar das notwendige Rückspülen daran erkennen, dass der Pumpenstrom auf einen Wert angestiegen ist, der deutlich oberhalb dessen liegt, was die Pumpe bei sauberem Filter braucht ... -
@martinp sagte in Intervall Pumpensteuerung für Poolfilteranlage:
Wenn keiner eingreift,
@muckel sagte in Intervall Pumpensteuerung für Poolfilteranlage:
würde die Pumpe trocken laufen.
deswegen überprüfe ich den Druck nach dem Anschalten
bleibt er zu lange zu niedrig schaltet die Pumpe dauerhaft aus.Bei reinem Timer geht das nicht
edit:
@MartinP
bitte keine langen Passagen ohne Kennzeichnung später hinzufügen!
Bereits geschriebene spätere Posts verlieten dadurch ihren Sinn -
@martinp
ja, da hast du recht.
Meine Pumpe läuft 8 Stunden am Tag.
Deine lt. Zeitplan 8,5 Stunden.Ich lasse den Poolroboter fahren und schalte in dieser zeit die Pumpe aus (ca. 2 Stunden).
Danach schalte ich sie wieder ein und das Programm startet wieder von dort, wo ich gestoppt habe. Was soll daran falsch sein? Somit ist gewährleistet, dass die Pumpe 8 Stunden am Tag läuft.Die Leistung messen ist ok. Könnte man so lösen. Trotzdem bin ich ein Befürworter von etwas menschlicher Kontrolle. Ich möchte ja auch noch einen Sinn haben.
-
@muckel auch wieder wahr. Aber z. B. über den Jahresurlaub, also etwas 2 Wochen unüberwacht soll die Anlage schon kommen ...
Vorher noch mal die Anlage durcharbeiten: Rückspülen, Wasser auffüllen, Werte messen und ggfs. korrigieren...
Wenn man da dann trotzdem gewisse Dinge automatisiert aus der Ferne vom Urlaubsort aus anschauen kann, beruhigt das schon ein wenig@Homoran Druckmesser ist natürlich verlässlicher, als der Stromaufnahme-Unterschied zwischen sauberem und verdreckten Filter ...
-
@martinp
für das gibts oma und opa. die füttern auch die katzen. -
Ich habe das Script jetzt seit 2 Tagen laufen. Heute wollte ich die von mir eingeschaltete Filterpumpe ausschalten. Ausschalten hat funktioniert, aber nach 1 Minute schaltet sie sich wieder ein.
Hab ich etwas falsch eingegeben? Kannst du dir das bitte nochmal ansehen.<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="nZ$BK)l@;[+rgUJ$FhO:">EDAus</variable> <variable id="xB7)L=eE^KUUHnTfj;se">lc</variable> <variable type="interval" id="IntervallEin">IntervallEin</variable> <variable type="interval" id="IntervallAus">IntervallAus</variable> <variable id="2hz8{tn:zt*=CQ`[Ese[">ED</variable> <variable id=";r4=GqL.S1la#OK}b6:V">AD</variable> </variables> <block type="variables_set" id="tYIvQYsA;3u*jSHq7EsY" x="-137" y="63"> <field name="VAR" id="nZ$BK)l@;[+rgUJ$FhO:">EDAus</field> <value name="VALUE"> <block type="get_value" id="kQr@%jsj1_vR:)Z)tVtd"> <field name="ATTR">val</field> <field name="OID">javascript.0.Filterpumpe_Einschaltdauer</field> </block> </value> <next> <block type="variables_set" id="lgPi+V4vG,/-A2,1fQL7"> <field name="VAR" id="xB7)L=eE^KUUHnTfj;se">lc</field> <value name="VALUE"> <block type="get_value" id="QsAah!Qi-kO}.ny-S`ul"> <field name="ATTR">lc</field> <field name="OID">deconz.0.Lights.23.on</field> </block> </value> <next> <block type="controls_if" id="c~2kU[Em-_:lIb~HYAsY"> <mutation else="1"></mutation> <value name="IF0"> <block type="get_value" id="IMP@N@zX_4nHZEqhuh0Q"> <field name="ATTR">val</field> <field name="OID">deconz.0.Lights.23.on</field> </block> </value> <statement name="DO0"> <block type="math_change" id="xs%avK{TM8aW}[OtP#3Q"> <field name="VAR" id="nZ$BK)l@;[+rgUJ$FhO:">EDAus</field> <value name="DELTA"> <shadow type="math_number" id="F6K*h9P=6Nnx@c%Nj?s@"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="l)x{BFYGYiv`=~68r%z^"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="B_X9B,SY2Dz/%,3:`]-3"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="jtT6tk;0RN8FT+`37~Tv"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="_t}z:eI/9wDD=ZP2:pK|"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="iDPPP/8,:t9cs!5M|d5d"> <field name="VAR" id="xB7)L=eE^KUUHnTfj;se">lc</field> </block> </value> <value name="B"> <shadow type="math_number" id="}2R64ENu1RwHDhJlo0g1"> <field name="NUM">1</field> </shadow> <block type="time_get" id="85E`aXy#3F.dlVO+Or6k"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="j9k^z9HrdchPQEiyg-PL"> <field name="NUM">60000</field> </shadow> </value> </block> </value> <next> <block type="procedures_callnoreturn" id="j|r@f32HC|9Ngk+eU@Rz"> <mutation name="Ein2h"> <arg name="lc"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id=")=e!)$QUHU/15dpPk9~T"> <field name="VAR" id="xB7)L=eE^KUUHnTfj;se">lc</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="math_change" id=";6h(,OYfI`IYg!zhc0z-"> <field name="VAR" id=";r4=GqL.S1la#OK}b6:V">AD</field> <value name="DELTA"> <shadow type="math_number" id="F6K*h9P=6Nnx@c%Nj?s@"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="M(5%?iKjg4yKqA*oeNZZ"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="B_X9B,SY2Dz/%,3:`]-3"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="(*#wN089^*c0k#$lLh}%"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="_t}z:eI/9wDD=ZP2:pK|"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="9eS5N}:%s-N=+qvRE}(`"> <field name="VAR" id="xB7)L=eE^KUUHnTfj;se">lc</field> </block> </value> <value name="B"> <shadow type="math_number" id="}2R64ENu1RwHDhJlo0g1"> <field name="NUM">1</field> </shadow> <block type="time_get" id="fr8+xNUTD-!Z+4|lQaS)"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="?@edo8EeHsGqR$C4cft%"> <field name="NUM">60000</field> </shadow> </value> </block> </value> <next> <block type="controls_if" id="oz)nUuG=|V@KIT._?!i|"> <value name="IF0"> <block type="logic_compare" id="6{b#.e1oXkogcK.%F)A-"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="Uw|X^T#V5|hU{Q|JO:ZW"> <field name="VAR" id=";r4=GqL.S1la#OK}b6:V">AD</field> </block> </value> <value name="B"> <block type="math_number" id="*_zXT`U9(etK:o[A%08#"> <field name="NUM">60</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="ny5=[Pc!NR}L1NIW@qj?"> <mutation name="Aus1h"></mutation> </block> </statement> </block> </next> </block> </statement> <next> <block type="schedule" id="~0j/7eBUjm#4Z@QH)Jmw"> <field name="SCHEDULE">3 3 * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="W7D+b87.SR.C?D6o{v0Z"> <field name="VAR" id="nZ$BK)l@;[+rgUJ$FhO:">EDAus</field> <value name="VALUE"> <block type="math_number" id="Vnc*#N!Fkiw-vBI.:9]D"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="~;u@/v*Sg(KxJX7WVoW#"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Filterpumpe_Einschaltdauer</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="l?A=)BlnCH=y^Gy~++0d"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> <next> <block type="on" id="(GM/k~L4/?cg,YO2NG?b"> <field name="OID">deconz.0.Lights.23.on</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id=";Jp[]e3].gjIb;{LhTII"> <mutation else="1"></mutation> <value name="IF0"> <block type="on_source" id="$KG9YWGjytRYxRBio`=j"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="-LyU[WO)_PBZdP)K!,3~"> <field name="NAME">IntervallAus</field> <next> <block type="procedures_callnoreturn" id=";r5|@SK`f@9,8Yu.kT.k"> <mutation name="Ein2h"> <arg name="lc"></arg> </mutation> <value name="ARG0"> <block type="on_source" id="Xq+w5h[4_Gy^coCi.0CS"> <field name="ATTR">state.lc</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_clearinterval" id="jM{}t!6~=a=o6e0;YX16"> <field name="NAME">IntervallEin</field> <next> <block type="math_change" id="VRq{1!j8/GgDk2:CSi5:"> <field name="VAR" id="nZ$BK)l@;[+rgUJ$FhO:">EDAus</field> <value name="DELTA"> <shadow type="math_number" id="F6K*h9P=6Nnx@c%Nj?s@"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="_pvFY$`3~3y*tMwahjLx"> <field name="VAR" id="2hz8{tn:zt*=CQ`[Ese[">ED</field> </block> </value> <next> <block type="controls_if" id="|_l7JRgRwAwA{~J!5wGS"> <value name="IF0"> <block type="logic_compare" id="fNfqOkPA;vDd#|n9GZ67"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="7E@.*X5I@y^Va~L0Q+CT"> <field name="VAR" id="nZ$BK)l@;[+rgUJ$FhO:">EDAus</field> </block> </value> <value name="B"> <block type="math_number" id="[[1fTEgjV!Ic(K*nx~am"> <field name="NUM">480</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="chcT#J:Wtc=.ZV+;qZ@B"> <mutation name="Aus1h"></mutation> </block> </statement> <next> <block type="update" id="U{f)FBI`;wbA5f7?JPf_"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Filterpumpe_Einschaltdauer</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_round" id="Dh`oZ=CGjZ(@uMr4{POn"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="2d[|.YRWtcWNMQ2V~)5?"> <field name="NUM">3.1</field> </shadow> <block type="variables_get" id="P;Kykj?^GvyzKPgy08`F"> <field name="VAR" id="nZ$BK)l@;[+rgUJ$FhO:">EDAus</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="@VaHuIf1Cg^c{MnGu?X_" x="563" y="62"> <mutation> <arg name="lc" varid="xB7)L=eE^KUUHnTfj;se"></arg> </mutation> <field name="NAME">Ein2h</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="timeouts_setinterval" id="r;(3Yr?#~gK!pcQj3!Fl"> <field name="NAME">IntervallEin</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="2;ka20hoE;0YJAlE(9qI"> <field name="VAR" id="2hz8{tn:zt*=CQ`[Ese[">ED</field> <value name="VALUE"> <block type="math_arithmetic" id="(j:_3r8j)7UV%INF.aK("> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="B_X9B,SY2Dz/%,3:`]-3"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="~D:Xl]1n;I#sp9@f:jZ{"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="_t}z:eI/9wDD=ZP2:pK|"> <field name="NUM">1</field> </shadow> <block type="time_get" id="C/UBqf%hU@98#O17}.Q("> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number" id="}2R64ENu1RwHDhJlo0g1"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="0|j]#mgl3tZ6+^[Y%w~R"> <field name="VAR" id="xB7)L=eE^KUUHnTfj;se">lc</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="s(lxK9jo*JUoJTi1`[Rw"> <field name="NUM">60000</field> </shadow> </value> </block> </value> <next> <block type="update" id="X{wgmB[ok.}LI,rN|qz6"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Filterpumpe_Einschaltdauer</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_round" id="YZu1MDy7W7m=#=_!D=jI"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="2d[|.YRWtcWNMQ2V~)5?"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="}Lg]w%fv%i7rut-DJ7=8"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="*Tv;3^(0^y4(lzlg3Apd"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="r`~JDmB0!Rjf+!e6~bWr"> <field name="VAR" id="nZ$BK)l@;[+rgUJ$FhO:">EDAus</field> </block> </value> <value name="B"> <shadow type="math_number" id="t67l:~UtT`r[_9Mhm,#%"> <field name="NUM">0</field> </shadow> <block type="variables_get" id="mtA!m)SmS(}hPlT-A/Q3"> <field name="VAR" id="2hz8{tn:zt*=CQ`[Ese[">ED</field> </block> </value> </block> </value> </block> </value> <next> <block type="controls_if" id="x54F`8hxA9oWA++uPtQu"> <value name="IF0"> <block type="logic_operation" id="1v5*OZdSs*,^E`nn$XFX" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="Td76.}*R_j/aqlWQiuAm"> <field name="OP">GTE</field> <value name="A"> <block type="math_arithmetic" id="DWNTHmcsHlZRiBaVH0#_"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="v5*.9Ro2U]l+7nCIF{6|"> <field name="NUM">1</field> </shadow> <block type="math_modulo" id="12!3JYl0#dVIJVC@V=3o"> <value name="DIVIDEND"> <shadow type="math_number" id="X8hVc}1$MYl/5V}({%qq"> <field name="NUM">64</field> </shadow> <block type="variables_get" id="2wG(,OT?j*A!MD)PujWH"> <field name="VAR" id="nZ$BK)l@;[+rgUJ$FhO:">EDAus</field> </block> </value> <value name="DIVISOR"> <shadow type="math_number" id="Tl[Ia(CXG!e|rI/HeRnI"> <field name="NUM">120</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number" id="G%}oE^rQy0aH6K,f?KN1"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="p8z*MZ7mQu;fqrCi]RVQ"> <field name="VAR" id="2hz8{tn:zt*=CQ`[Ese[">ED</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="-oHE|qc~!YQ1(08R|7/L"> <field name="NUM">120</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=")v$Z^|nl57L!NH;lDe/6"> <field name="OP">GTE</field> <value name="A"> <block type="math_arithmetic" id="?M=87[(b||G7f=wCFB5@"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="K=%/GR36?*eoYlbeB{Q9"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="j8Zsjm;$HP4:k{jD|mq9"> <field name="VAR" id="nZ$BK)l@;[+rgUJ$FhO:">EDAus</field> </block> </value> <value name="B"> <shadow type="math_number" id="Q484x6)kIg,c]2kLgA|X"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="i9Ip.Q7zn[52e.q;bN9A"> <field name="VAR" id="2hz8{tn:zt*=CQ`[Ese[">ED</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="nKl%#qu;B-FPWY^r_]MT"> <field name="NUM">480</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="2cSSYA/{h|{5E{Ct,pYx"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">deconz.0.Lights.23.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Ae8M=fSzjWOrj/~=fPJ^"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> <block type="procedures_defnoreturn" id="g/x1=4hsr.r;r0c-U-rv" x="562" y="437"> <field name="NAME">Aus1h</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="timeouts_setinterval" id="}K]pjpP{zY(vX$#KGv[{"> <field name="NAME">IntervallAus</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="math_change" id="sRH:o?)`m!JtD9d88-ib"> <field name="VAR" id=";r4=GqL.S1la#OK}b6:V">AD</field> <value name="DELTA"> <shadow type="math_number" id="v+|niKkGBUabYfF;N@OO"> <field name="NUM">1</field> </shadow> </value> <next> <block type="controls_if" id="T-nG=XDx}nn4y;bJ?:VK"> <value name="IF0"> <block type="logic_compare" id="b7`YqZ-);PiHN%Px;F6)"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="|9tr(gq9CH|FsFOUY0{L"> <field name="VAR" id=";r4=GqL.S1la#OK}b6:V">AD</field> </block> </value> <value name="B"> <block type="math_number" id="hTbDvY8^ctfS[wU/dx5k"> <field name="NUM">60</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="umhYmPId9YzSr!*11(**"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">deconz.0.Lights.23.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ZGv$u_{/9sfdzu?Sreyn"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </statement> </block> </xml>
-
@muckel sagte: nach 1 Minute schaltet sie sich wieder ein.
Das soll sie bei manuellem Ausschalten nicht? Dann muss man das detektieren, indem der
Ursprung
geprüft wird:Beim Skriptstart muss für
AD
"setze" verwendet werden.Außerdem sind "Aktuelle Zeit" und
lc
vertauscht (war mein Fehler).EDIT: Es fehlt das Rücksetzen von
AD
beim Ausschalten: -
@paul53
Danke.
Habs mal eingebaut und werde es testen.
Set und change hab ich übersehen.
Ich melde mich wieder. -
@paul53
Funktioniert perfekt.
Danke schön.
Ich stelle es auf "gelöst" -
Darf ich dich nochmals belästigen?
Ich habe einen Datenpunkt angelegt für die Minuten, welche die Pumpe in Betrieb ist
"Filterpumpe_Einschaltdauer" (Type: Number) Funktioniert natürlich.
Weil ich diese Minuten in SS:mm für eine Anzeige konvertieren möchte, habe ich einen zusätzlichen Datenpunkt angelegt. Diese Konvertierung funktioniert nicht.
"Filterpumpe_Einschaltdauer_Stunden_Minuten" (Type: string)Was mach ich falsch?
-
@muckel sagte: Was mach ich falsch?
Die Formatierungsfunktion benötigt ms und berücksichtigt die Zeitzone. Sie funktioniert daher nicht für Zeitdifferenzen (Dauer).
Vorschlag: -
@paul53
Jetzt passt es. Danke schön!