Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Poolsteuerung Shelly+ioBroker

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Poolsteuerung Shelly+ioBroker

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

      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:

      IMG_1235.JPG

      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
      Bildschirmfoto 2021-10-14 um 22.51.06.png
      Manuell mit Pumpe an
      Bildschirmfoto 2021-10-14 um 22.50.54.png
      Manuell alles aus
      Bildschirmfoto 2021-10-14 um 22.50.43.png

      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

      M 1 Reply Last reply Reply Quote 0
      • M
        Mirco737 @Mirco737 last edited by

        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="~o4Qc%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}|v65ju0W,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^noI: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(56wsZ7UjFG0">
        <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=")iM7P$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%AGIrezyC">
        <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="GYLXJyk$@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/5wUC0!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="7nR=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="o
        v(: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$+vI5aS_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`{yRh
        lhd0I7{~">
        <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>

        M 1 Reply Last reply Reply Quote 0
        • M
          Mirco737 @Mirco737 last edited by

          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="R72,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,[53
          FPY: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]4op158wezU">
          <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>

          1 Reply Last reply Reply Quote 0
          • D
            DrBest last edited by

            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

            M 1 Reply Last reply Reply Quote 0
            • M
              Mirco737 @DrBest last edited by

              @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.

              M 1 Reply Last reply Reply Quote 0
              • M
                martinschm @Mirco737 last edited by

                Coole Arbeit @mirco737. Welches Umschaltventil verwendest du ?

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

                Support us

                ioBroker
                Community Adapters
                Donate

                493
                Online

                31.6k
                Users

                79.5k
                Topics

                1.3m
                Posts

                3
                6
                3600
                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