- Home
- Deutsch
- Skripten / Logik
- Poolsteuerung Shelly+ioBroker
Poolsteuerung Shelly+ioBroker
-
Hallo,
nach vielem mitlesen hier, möchte ich auch mal ein kleines Projekt vorstellen (Auch wenn es schon mehrere Poolsteuerungen hier zu finden gibt). Ich habe dieses Jahr angefangen meine Poolsteuerung neu aufzubauen. Dazu verwendet:
- 1 Shelly2.5 -> Steuerung Umschaltventil, Steuerung Pumpe
- 1 Shelly1 -> 3 Temperaturfühler angeschlossen
- 1 Eltako Relais -> Umschalten für das Umschaltventil
Fertig sieht das im eigenen Case so aus:
Dazu habe ich mir noch ein kleines Blocky geschrieben:
Es berücksichtig eine mind Laufzeit der Poolpumpe abhängig der Wassertemperatur.
Ein Umschalten des 3Wegeventils um den großen Kreislauf über die Heizschleife freizugeben (Temperatur gesteuert).
Einen Alarm sollte der Pool zu heiß werden.Und dazu noch folgendes Vis:
Automatikmodus
Manuell mit Pumpe an
Manuell alles aus
Sollte jemand Lust und Spaß an diesem Projekt haben, dann viel Spaß beim nachbauen Das Blockly-Script lade ich später hoch...
Natürlich könnt ihr euch bei Fragen immer melden.
Grüße
-
und hier mein Blockly (1.Hälfte):
<xml xmlns="https://developers.google.com/blockly/xml">
<variables>
<variable type="interval" id="Pumpe">Pumpe</variable>
</variables>
<block type="timeouts_setinterval" id="#$pQ(tB$^9;b:c4Q-t#U" x="-1612" y="-2413">
<field name="NAME">Pumpe</field>
<field name="INTERVAL">1</field>
<field name="UNIT">min</field>
<statement name="STATEMENT">
<block type="comment" id="KPE+j(=Q6bs0[K465(g$">
<field name="COMMENT">Laufzeit Pumpe berechnen</field>
<next>
<block type="controls_if" id="wX#pA]NF-(vTB9jFg+,D">
<value name="IF0">
<block type="logic_compare" id="CD;Ww$xUTaE!RUaw^/G">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id=";8s3-_!/@.c;T8dc.NK"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-25#8CAAB54CXXXX#1.Relay0.Switch</field> </block> </value> <value name="B"> <block type="logic_boolean" id="@_fx;i}OZ0[[V|_bof^#"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id=":Ge.Pba@AT{0[-$Grf%s"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.Pool_Laufzeit_Pumpe_in_Minuten</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="qGuE%o?c7Q.{Kg/UZP{#"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="TuqdUj7qGAWzC0{^_uq)"> <field name="NUM">1</field> </shadow> <block type="get_value" id="z~
XZ2uC5O)f(s(z6)vd">
<field name="ATTR">val</field>
<field name="OID">javascript.0.variables.Pool_Laufzeit_Pumpe_in_Minuten</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="Lf-2[Us*$6Z6vfwO$aYv">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</value>
</block>
</statement>
<next>
<block type="controls_if" id="xeuWf9%2O-QaP%W:+$Q8">
<value name="IF0">
<block type="logic_compare" id="R$HXD6{M(|Ad4x4)UAm">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="z.zeTsh}P8h}KWvimQDe">
<field name="ATTR">val</field>
<field name="OID">javascript.0.variables.Pool_Laufzeit_Pumpe_in_Minuten</field>
</block>
</value>
<value name="B">
<block type="math_number" id="={FjH=zXQ:s-k_H8?x^">
<field name="NUM">60</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="update" id="K2|-J}IQwyxAAo$@#/^"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.Pool_Laufzeit_Pumpe_in_Stunden</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="(W8ShCEpq5NMWf$G=1C}"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="WT-3[~YS6*nmBQ3Gvs3L"> <field name="ATTR">val</field> <field name="OID">javascript.0.variables.Pool_Laufzeit_Pumpe_in_Stunden</field> </block> </value> <value name="B"> <shadow type="math_number" id="b/+R=S2UZB]zm:@MChkA"> <field name="NUM">1</field> </shadow> </value> </block> </value> <next> <block type="update" id="1-0$@l3;f$2N*dqC.nN|"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.Pool_Laufzeit_Pumpe_in_Minuten</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="~o
4Qc%5Yx3z#!jjjTAu">
<field name="NUM">0</field>
</block>
</value>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="schedule" id="w?|7x$KP(|9Y,WH^={"> <field name="SCHEDULE">59 23 * * *</field> <statement name="STATEMENT"> <block type="update" id="Rr][ud0vXz|j{7wFZF@."> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.Pool_Laufzeit_Pumpe_in_Minuten</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="+9:6}|v65j
u0W,f-$#"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="mO$ei}8!6*6wVl/036Fq"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.Pool_Laufzeit_Pumpe_in_Stunden</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="XOlE[5~tpBZ{6iz.ASa="> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="-ZXXa^n
oI:d_s!*wS(D">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">javascript.0.variables.Overtemp_Pool</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="w)U=FlkGDrDitM~bkh-">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="schedule" id="g.5Am2%O=h{[%XqkR=XO">
<field name="SCHEDULE">* * * * *</field>
<statement name="STATEMENT">
<block type="comment" id="/@Q0fB+D.C~b-IR)leC~">
<field name="COMMENT">Info Nachrichten</field>
<next>
<block type="on_ext" id="I!}UUDOVLh6sNu3$vPcj">
<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="{HUfH4hBQlcK^P4[%W8r">
<field name="oid">javascript.0.variables.Pool_auto_manu</field>
</shadow>
</value>
<statement name="STATEMENT">
<block type="controls_if" id="~|?ng{Qlo%i?;zPHpVcG">
<value name="IF0">
<block type="logic_compare" id="iD+.1tX1N|nEucv=gnn|">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="X@LwKI@N=YyT.mbL24k">
<field name="ATTR">val</field>
<field name="OID">javascript.0.variables.Pool_auto_manu</field>
</block>
</value>
<value name="B">
<block type="math_number" id="zomQaWM=,32i|HOL3^7z">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="on_ext" id="OU@ALx,hzpBsV%F8GLe6">
<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="dh@NetNE%%l.?u|nOw$S">
<field name="oid">default</field>
</shadow>
<block type="get_value" id="I@-31%CsT0)L3a]lZY6">
<field name="ATTR">val</field>
<field name="OID">javascript.0.variables.Pool_auto_manu</field>
</block>
</value>
<statement name="STATEMENT">
<block type="telegram" id="kN4~3CO0=.R0oKz[~PM_">
<field name="INSTANCE"></field>
<field name="LOG">log</field>
<field name="SILENT">FALSE</field>
<field name="PARSEMODE">default</field>
<value name="MESSAGE">
<shadow type="text" id="=3[s?bD|fnpzffcU|2k"> <field name="TEXT">Poolsteuerung auf Manuell</field> </shadow> </value> </block> </statement> </block> </statement> </block> </statement> <next> <block type="controls_if" id="2!ce;2a(56wsZ7
UjFG0">
<value name="IF0">
<block type="logic_operation" id="+CZBcU]HX+a/=(9C/q8" inline="false">
<field name="OP">AND</field>
<value name="A">
<block type="logic_compare" id="mvP1}WBKYzC]=:c|/$J"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="]c;^lBhnLlouDR/f5IC4"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#483FDAA0C822#1.ext.temperatureC1</field> </block> </value> <value name="B"> <block type="math_number" id="Y?*9JN/ENgnLzUw(ww4H"> <field name="NUM">30</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="5(lO[XHpZJyFxk):[s3?"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="|CA(Pg9[S0ooDAx#JBtb"> <field name="ATTR">val</field> <field name="OID">javascript.0.variables.Overtemp_Pool</field> </block> </value> <value name="B"> <block type="logic_boolean" id="S!C*Uh51g!_SlM=h9xe$"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id=")iM
7P$q7o;}llDlLt^"> <field name="INSTANCE"></field> <field name="LOG">warn</field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="JyRigK0P4kBN|;UFs4r|"> <field name="TEXT">Achtung Pool zu heiß! Über 30Grad erreicht</field> </shadow> </value> <next> <block type="update" id="*5]B|GM:@qHT*qU,6{u("> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.Overtemp_Pool</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=",.xWhL4EP9#H_W#8M#pn"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control_ex" id="5g-qN;_g?W%AGIrezy
C">
<field name="TYPE">false</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="OID">
<shadow type="field_oid" id="3cJ$.Y,AcmNvsB84hdWi">
<field name="oid">alexa2.0.Echo-Devices.G2A0XL070248XXXX.Commands.speak</field>
</shadow>
</value>
<value name="VALUE">
<shadow type="logic_boolean" id="P$nUEs)c!I}hxqzVn+q)">
<field name="BOOL">TRUE</field>
</shadow>
<block type="text" id=",#S0.F2JtZ7qs]nOZoX"> <field name="TEXT">Sehr geehrte Hausbewohner der Pool hat nun über 30 Grad erreicht bitte handeln</field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="jy:67*9ur@L=72~6bts7"> <field name="NUM">0</field> </shadow> </value> <next> <block type="timeouts_wait" id=")4xc#u?RRkSbI%xa#AUl"> <field name="DELAY">15</field> <field name="UNIT">min</field> <next> <block type="control_ex" id="o1aNnJvHQ|5?SGF0VB!$"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="Qa*^rd;kG2m+B4=6eQrA"> <field name="oid">alexa2.0.Echo-Devices.G2A0XL074876XXXX.Commands.speak</field> </shadow> </value> <value name="VALUE"> <shadow type="logic_boolean"> <field name="BOOL">TRUE</field> </shadow> <block type="text" id="2cT(69h^MU?fXj;[xB@G"> <field name="TEXT">ehm nochmal ich also wenn die verehrten Damen und Herren noch nix gemacht haben dann wäre jetzt der richtige Zeit wir haben immer noch über 30 grad Wassertemperatur </field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="m,:KcwaOdp!|[9H;i6Pj"> <field name="NUM">0</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="_0k|hh_$fx(lS[@?uSEn"> <field name="COMMENT">Laufzeit Pumpe Berechnen</field> <next> <block type="comment" id=";WqV4mBQ{u?9~fVj]Z!t"> <field name="COMMENT">Min Laufzeit 4h</field> <next> <block type="controls_if" id="^4SH!Mv[]zEVWg:#1x4V"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="}K~w5YbES{@~93a/xoFT" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="3hOpQj0qhL#a$RKu:wUc"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="+79%jZ{z!5CX(uf*BoJ("> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#483FDAA0C832#1.ext.temperatureC1</field> </block> </value> <value name="B"> <block type="math_number" id="
u1-q#^YR2x1wAhT1o~z">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="D|#0AVi4!du9a3Q.@Jf"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="=u/%LOYWIbtDU;0L=O,j"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#483FDAA0C832#1.ext.temperatureC1</field> </block> </value> <value name="B"> <block type="math_number" id="#$D(:Km,Gv1zPk4L*e^e"> <field name="NUM">60</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="K+xNs0_GseX.L?YE-Y;;"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.Pool_Endzeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="ZuL{O(JYJDML{#otZO)M"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="I_wOp:BRNJ4ZRVtIzKEY"> <field name="NUM">1</field> </shadow> <block type="convert_from_date" id="WZ!^tf?s6Cfb:6a+}e+u"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">h</field> <value name="VALUE"> <block type="get_value" id="4T%lH#:o.PTbIo17D;PT"> <field name="ATTR">val</field> <field name="OID">javascript.0.variables.Pool_Startzeit</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="N;LWudtVH?Ot4%pmA)ZV"> <field name="NUM">1</field> </shadow> <block type="math_round" id="vc[2!6^M.l)N91HjC5=b"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id=")M/xLZ;)?nG:[g;M.riz"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="GYLXJy
k$@mrkz$)(w(0">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="?+kV^pH0AZK)wBsbnJz"> <field name="NUM">2</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="PQ+JiD(hxF;1-X1X}6Us"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="d1CTA*yoD|^Z%K9=c4Lq"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="[LyMmoGv
|IFdnBen~p"> <field name="NUM">1</field> </shadow> <block type="get_value" id="DL~Lu2Gj*td=?#xf!4?c"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#483FDAA0C832#1.ext.temperatureC1</field> </block> </value> <value name="B"> <shadow type="math_number" id="=%FHG[1v(WK+i%@WQLe]"> <field name="NUM">7</field> </shadow> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </statement> <statement name="ELSE"> <block type="comment" id="O#FLbiOB.CJ4)E|YL-BP"> <field name="COMMENT">später Telegram einfügen, Nachricht Sensor fehlerhaft</field> <next> <block type="update" id=".pC@ODMC$DOJ8Q5M@Htg"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.Pool_Endzeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="|*qx_Z#a0FPaKp6Pk=vv"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="convert_from_date" id="J*8kfqq.o1Yh/[dK;!p="> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">h</field> <value name="VALUE"> <block type="get_value" id="}CQotd
}2LX/CCb/,s+">
<field name="ATTR">val</field>
<field name="OID">javascript.0.variables.Pool_Startzeit</field>
</block>
</value>
</block>
</value>
<value name="B">
<shadow type="math_number" id="S(G:TRlamlMy/i~_wPF"> <field name="NUM">2</field> </shadow> </value> </block> </value> </block> </next> </block> </statement> <next> <block type="comment" id="@enGP?l5f(q41Jqo?4Jw"> <field name="COMMENT">0 = Automatik betrieb</field> <next> <block type="controls_if" id="f^#?,m^IgeLYrPh2Aq/x"> <value name="IF0"> <block type="logic_compare" id="I@q[%2L(*aqqmg@N$PNW"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="LBjOG?GyMsqmHuyV*Ek^"> <field name="ATTR">val</field> <field name="OID">javascript.0.variables.Pool_auto_manu</field> </block> </value> <value name="B"> <block type="math_number" id="+5C1tTE1fTYM(i%M[AxL"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="vfL|:o^OgW}@,g+uGGSd"> <field name="COMMENT">Pumpe an/aus nach Zeit</field> <next> <block type="controls_if" id="sDC[X_e9vY*KoPdWcwpx"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="jO8/5w
UC0!r3nZCpZ5x">
<field name="OP">AND</field>
<value name="A">
<block type="logic_compare" id="85V?7.!0ne~-+-xdfL~"> <field name="OP">GTE</field> <value name="A"> <block type="time_get" id="tksy^yMDVmR{0N~{Ri?c"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">h</field> </block> </value> <value name="B"> <block type="convert_from_date" id="]L3p#%PUSRfy6kx*lLFV"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">h</field> <value name="VALUE"> <block type="get_value" id="o{Zmw+ObWFkjqdvGnqxY"> <field name="ATTR">val</field> <field name="OID">javascript.0.variables.Pool_Startzeit</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="9:]YDQGj(rh_:flIzr*p"> <field name="OP">LT</field> <value name="A"> <block type="time_get" id="l!oD#@H9jL!p4%cwN-@."> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">h</field> </block> </value> <value name="B"> <block type="get_value" id="V|i#_LAN%jJN6.G0INO0"> <field name="ATTR">val</field> <field name="OID">javascript.0.variables.Pool_Endzeit</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="!u:91=2d=)1B|[Z+wyzt"> <field name="COMMENT">Pumpe ein</field> <next> <block type="control" id="7
nR=0YZFt%6BG8]tR8~">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-25#8CAAB54CXXXX#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="ov(:Y-#C[dgXen@f~f">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</next>
</block>
</statement>
<statement name="ELSE">
<block type="controls_if" id="ZeZXR,sBW}x-HUVx.%ki">
<value name="IF0">
<block type="logic_operation" id="+?)%*lOnN~z#3+hpmBeq" inline="false">
<field name="OP">AND</field>
<value name="A">
<block type="logic_compare" id="q+(|DkU]i-NvX3}3;f:X">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="S6?66t1?=Hz4.pQpF#4p">
<field name="ATTR">val</field>
<field name="OID">javascript.0.variables.Pool_abkühlen</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="nD+73L.@QG]XwQJ(Wp{]">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="Vd,2cSSui5%:8ORG2$N">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id=":qwyjjFgIarz0_b|f/2X">
<field name="ATTR">val</field>
<field name="OID">javascript.0.variables.Pool_aufheizen</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="L8dE0H9x#[C5!D2Cb*[+">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="eR(mc~8Y?Z15^BZMkN^">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-25#8CAAB54CXXXX#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="yCW|/HA,|YmIycU*7Ka"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="comment" id="g4A7l41R],yurUJyQN,#"> <field name="COMMENT">Pool aufheizen über 3 Wegeventil</field> <next> <block type="comment" id="(l3Wl_#BK.vq:7KRsF%e"> <field name="COMMENT">Solartem muss 5Grad wärmer sein als Wassertemperatur</field> <next> <block type="controls_if" id="f_THb9gfuGN:0}V!%1kk"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="xNrwS(V3Q)^II]%u_v{7" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="lApN$f_HIY[|2SRML|FP" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=";%0E$+vI
5aS_R;5:z3"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="IHM:L4bwBx0jx8n/C.@
">
<field name="ATTR">val</field>
<field name="OID">shelly.0.SHSW-1#483FDAA0XXXX#1.ext.temperatureC3</field>
</block>
</value>
<value name="B">
<block type="math_arithmetic" id="dW6IZ@{-(UDoOG6nUpY"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="^S!Hk_H+=/Y2GFl075sp"> <field name="NUM">1</field> </shadow> <block type="get_value" id="7=+8w(!H.7Ejqx|ddbQ4"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#483FDAA0XXXX#1.ext.temperatureC1</field> </block> </value> <value name="B"> <shadow type="math_number" id="O!Cm*19(Le=ScSzV|RUV"> <field name="NUM">8</field> </shadow> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="|gx?K=d-U)ne+qZAqE4
">
<field name="OP">LTE</field>
<value name="A">
<block type="get_value" id="L^4ksm^m%uP_H0]d4M%j">
<field name="ATTR">val</field>
<field name="OID">shelly.0.SHSW-1#483FDAA0XXXX#1.ext.temperatureC1</field>
</block>
</value>
<value name="B">
<block type="math_number" id="7-IeOt`{yRhlhd0I7{~">
<field name="NUM">30</field>
</block>
</value>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="wOJxqs/=]qBB!rg}XDtO">
<field name="OP">LT</field>
<value name="A">
<block type="get_value" id="A(/JP$PSvTU%{)l{![B{">
<field name="ATTR">val</field>
<field name="OID">shelly.0.SHSW-1#483FDAA0XXXX#1.ext.temperatureC3</field>
</block>
</value>
<value name="B">
<block type="math_number" id="M40(r?M(I|48l[9*JD6N">
<field name="NUM">60</field>
</block>
</value>
</block>
</value>
</block>
</value> -
Blockly Teil 2:
<statement name="DO0">
<block type="comment" id="}bnA-b+?t?zseY,xyOpf">
<field name="COMMENT">Prüfe ob Pumpe schon an</field>
<next>
<block type="controls_if" id="xu}t-#]~/#l#%6NsjE/X">
<value name="IF0">
<block type="logic_compare" id="Y{9ldu3LH|#3j5**XiPy">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="G0R^bsgIjq.68Ba2Gsq">
<field name="ATTR">val</field>
<field name="OID">shelly.0.SHSW-25#8CAAB54CXXXX#1.Relay0.Switch</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="])(^?s1KO=Rl,+SXMcjq">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="X^:?,q=?JXg6yiczJxkH">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-25#8CAAB54CXXXX#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="w,#}1Yun.VE.rbkeBBc">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</statement>
<next>
<block type="comment" id="@f1KLIDu[MSWX:RS_(#{">
<field name="COMMENT">Solar an/ variable "heizen"=wahr</field>
<next>
<block type="control" id=";^=jk;xD1#1#EWh(ugqo">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-25#8CAAB54CXXXX#1.Relay1.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="tfX[{guKpJw0t!2~e[uL">
<field name="BOOL">TRUE</field>
</block>
</value>
<next>
<block type="control" id="N7z2i7LJV{8zd0E7epD"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.Pool_aufheizen</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]L;%7ETOVvOj?~I%a3CN"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="comment" id="lgrelv2!4L+4MyE{.7mh"> <field name="COMMENT">Wenn Solartemp kleiner Wassertemperatur dann</field> <next> <block type="comment" id="}it-pL^/XgIaBbZ1SV4G"> <field name="COMMENT">Solar aus/Variable "heizen=falsch</field> <next> <block type="controls_if" id="fE/uY3WrUV3[50wLd1#X"> <value name="IF0"> <block type="logic_compare" id="+_r[L7R;6m/_F)(om|g^"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="*{U.LLCRJffeRmtn~$zj"> <field name="ATTR">val</field> <field name="OID">javascript.0.variables.Pool_aufheizen</field> </block> </value> <value name="B"> <block type="logic_boolean" id="aNf@I+@|0Py@6}/meys~"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="N30!L#W8TG-x=47lEC^3"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#8CAAB54CXXXX#1.Relay1.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Bb1M;qHxmc)4c+
iR[tg">
<field name="BOOL">FALSE</field>
</block>
</value>
<next>
<block type="control" id="FC_!//{sO/5#S{W-YT:t">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">javascript.0.variables.Pool_aufheizen</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="XJ|uV#HXms|Hh@WTB0xn">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="comment" id="~zYfizw*0DvmW-s^EdX"> <field name="COMMENT">Abkühlen, Wassertemperatur größer 30grad</field> <next> <block type="controls_if" id="aY,HyMOL5Y;))i/buQE:"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="gl/.Q1*::nvzk+3!tCQL" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="~s;NvfumM8g)!/FBch@z" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="Q/[(.(y%5aY|W3knNpOJ"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="
OmvUbdcX7)lORRO{73">
<field name="ATTR">val</field>
<field name="OID">shelly.0.SHSW-1#483FDAA0XXXX#1.ext.temperatureC3</field>
</block>
</value>
<value name="B">
<block type="math_arithmetic" id="[iU=myB6yKQwVLS+P04]">
<field name="OP">MINUS</field>
<value name="A">
<shadow type="math_number" id="O|m~p/R*[%[x0
|3l$2">
<field name="NUM">1</field>
</shadow>
<block type="get_value" id="u|CS@a9s;6q(wVS(ONN{">
<field name="ATTR">val</field>
<field name="OID">shelly.0.SHSW-1#483FDAA0XXXX#1.ext.temperatureC1</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="=96c^E1vZ6j-+h_|y2dJ">
<field name="NUM">5</field>
</shadow>
</value>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="oh~0?t$50oxtc=mi2-TW">
<field name="OP">GT</field>
<value name="A">
<block type="get_value" id="gJ4C)ft)5fyLyF=vAtc=">
<field name="ATTR">val</field>
<field name="OID">shelly.0.SHSW-1#483FDAA0XXXX#1.ext.temperatureC1</field>
</block>
</value>
<value name="B">
<block type="math_number" id="61x-e50Oyv[D~MdD~PX"> <field name="NUM">31</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="Lj]5[+c:54BCb[eydyM)"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="l767V[#VO{#XG%~4RBFw"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#483FDAA0XXXX#1.ext.temperatureC1</field> </block> </value> <value name="B"> <block type="math_number" id="R
72,5NJ8VQ/AsU%ZS]|">
<field name="NUM">60</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="comment" id="Z=rG894#:u$1iWs+}Xt">
<field name="COMMENT">Prüfe ob Pumpe schon an</field>
<next>
<block type="controls_if" id="hd{{iHOq%P%YnH_;VtX">
<value name="IF0">
<block type="logic_compare" id="gN.!{!=M+JEH4hC$7Jmk">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="pjkgP:rDRMbb-x#D{u~o">
<field name="ATTR">val</field>
<field name="OID">shelly.0.SHSW-25#8CAAB54CXXXX#1.Relay0.Switch</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="A13y5?[E|s-016o$^@9i">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="uBUfiXYZ2B/~BtClyxB">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-25#8CAAB54CXXXX#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="WGAg,fRD/Bu]PjO7Y6h8">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</statement>
<next>
<block type="comment" id="nb1+c7}V]K-lDQCx4NS[">
<field name="COMMENT">Solar an/ variable "kühlen"=wahr</field>
<next>
<block type="control" id="or~@$lo4HuY#a9.oQ|F"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-25#8CAAB54CXXXX#1.Relay1.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="(
F[!%i2%HTp_L$n7=OU">
<field name="BOOL">TRUE</field>
</block>
</value>
<next>
<block type="control" id=".r,.A1tYUgNJN=46gKHR">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">javascript.0.variables.Pool_abkühlen</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="T@2o7?!13:x5zoEpLNVY">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
<statement name="ELSE">
<block type="comment" id="$R!CV+cQXaZ!~[(;Ak@Z">
<field name="COMMENT">Solar aus/Variable "kühlen"=falsch</field>
<next>
<block type="controls_if" id="[-5|3PH60NOZ0/9$i1lE">
<value name="IF0">
<block type="logic_operation" id="I5ryxqye/e,[53FPY:K" inline="false">
<field name="OP">AND</field>
<value name="A">
<block type="logic_compare" id="(UG%G$3xvU6t|nI~E}{-">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="aqn%)os,Mf/ae0+0uV."> <field name="ATTR">val</field> <field name="OID">javascript.0.variables.Pool_aufheizen</field> </block> </value> <value name="B"> <block type="logic_boolean" id="BpD[9$IA:q?X1Ra,m{Ly"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="K%/g*lyf{SL[^;0d:zhL"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="AV!*KfQQ.-C%~_Trreg|"> <field name="ATTR">val</field> <field name="OID">javascript.0.variables.Pool_abkühlen</field> </block> </value> <value name="B"> <block type="logic_boolean" id="(32ETE.0uZ;ab9Sfka^6"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="vySEjqQWN(@HcEQbx?4v"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.variables.Pool_abkühlen</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="~T,413SDn
/v]m6D#//f">
<field name="BOOL">FALSE</field>
</block>
</value>
<next>
<block type="control" id="#F.4Ujn,}U]M4(?GWXC">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-25#8CAAB54CXXXX#1.Relay1.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="6:uJ,vE=Fodb?/-hN28s">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="comment" id="n!vI_vXtrlI~p{nk#P#"> <field name="COMMENT">Variablen Poolpumpe setzen</field> <next> <block type="controls_if" id=",~#
*A.7xU@eJ3k-fI?3">
<mutation else="1"></mutation>
<value name="IF0">
<block type="logic_compare" id="6Z^51VB,/adUd|-e~O!"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="DGAdqad8Ss@;4}#]{jne"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-25#8CAAB54CD2D3#1.Relay0.Power</field> </block> </value> <value name="B"> <block type="math_number" id="Kn.HG?s6|yl{E7f]IRei"> <field name="NUM">20</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="gn)5!o1D]4op
158wezU">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">javascript.0.variables.Poolpumpe</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="|)y(@O#[Cp:U;:cv%3zy">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</statement>
<statement name="ELSE">
<block type="control" id="]2ogq7`RC_IM(]pMxGxo">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">javascript.0.variables.Poolpumpe</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="_z-)Y1Nn}f^#G33!HeKz">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</xml>
-
saubere Arbeit!!!! sieht echt gut aus!
überlege ob ich das für nen Whirlpool adaptieren könnte, Zweck wäre eigentlich nur das Teil aus der Ferne + Zeitgesteuert herunterkühlen oder aufheitzen zu lassen um bisschen Energie zu sparen....bin aber unsicher ob es rentiert, weil wenn man rein will, will man ja nicht erst 2-12h warten bis er aufgeheitzt hat -
@drbest Danke!
hmm... gut die frage ist wie weit du es abkühlen lassen willst.... Wenn der Whirlpool normalerweise 35Grad hat (keine Ahnung ob das sinnig ist), dann würde ich niemals unter 25Grad gehen beim abkühlen.....10 Grad kannste immer "schnell" aufheizen und du sparst Energie fürs warmhalten.
Lässt ihn mehr abkühlen ist der Energie aufwand (und auch die Zeit) wahrscheinlich nicht mehr praktikable und wirtschaftlich. -
Coole Arbeit @mirco737. Welches Umschaltventil verwendest du ?