Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Poolheizung- Steuerung und Effizienz

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Poolheizung- Steuerung und Effizienz

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

      Hallo Gemeinde,

      hier zeige ich mal kurz wie ich meine Poolheizung steure, überwache und auch versuche die Effektivität der Heizung zu ermitteln.

      Meine Heizung ist relativ simpel aufgebaut. Es liegen 6 Kreise a ca. 80m Gartenschlauch (1/2“) parallelverschaltet auf dem Garagendach. Eine separate Pumpe fördert das Poolwasser durch diesen „Absorber“. Somit bin ich unabhängig von Filterlaufzeiten und muss die existierender Verrohrung des Filters nicht ändern.

      An Sensoren gibt es einen Homematic Differenztemperatursensor der die Pool und die Rücklauftemperatur vom Absorber misst. Dazu einen Sonnensensor ebenfalls basierend auf dem Homematic Differenztemperatursensor.

      Ein Blockly schaltet die Heizpumpe ein, wenn

      Sonne scheint

      Pooltemp < 24,8C

      Differenz Pool/Absorber > 1K

      Elevation Sonne > 10

      Und aus, wenn

      Pooltemp > 25°C oder

      Differenz Pool/Absorber < 1K

      Soweit, so simpel. Die grosse Frage ist: Bringt das was?

      Dazu bedarf es erstmal einer Info wie stark scheint die Sonne. Ich habe glücklicherweise ca. 5-10km Luftlinie von meinem Pool eine Mess Station gefunden die den Wert der Globalstrahlung in [W/m²] auf einer Website darstellt.

      Das nächste was wir brauchen ist die Wasseroberfläche des Pools in [m²] und die Fläche des Absorbers in [m²].

      Jetzt fehlt noch die Fördermenge der Heizungspumpe in [l/min] und die Masse des Poolwassers in [kg].

      Berechnungen:

      1. Sonnenenergie die das Poolwasser direkt aufheizt.

      Energie [kWh] = Globalstrahlung x Poolfläche x Messzeit

      Das ganze macht ein Blockly alle 15 minuten

      1. Sonnenenergie die den Absorber aufheizt.

      Energie [kWh] = Globalstrahlung x Absorberfläche x Messzeit

      Das macht das gleiche Blockly alle 15 minuten

      1. In das Poolwasser verbrachte Energie vom Absorber

      Energie [kWh] = m x c x delta t

      m = Wassermasse die den Absorber in der Messzeit (15 minuten) durchströmt

      c = spezifische Wäremkonstante Wasser (1,163 Wh/kgK)

      delta t = Temperaturdifferent Poolwasser / Absorber Rücklauf.

      1. Wirkungsgrad des Absorbers

      eta = Ergebnis aus 2 / Ergebnis aus 3

      1. Anteil des Absorbers an der Aufheizung des Pools

      prozentualer Anteil = Ergebnis aus 2 / (Ergebnis aus 1 + Ergebnis aus 2) *100

      Hier das Blockly das alles bis auf Punkt 5 macht.

      ! ````
      <xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="oydV|(K_vtXNJ2L]b7P" x="112" y="-32"><field name="COMMENT">Berechnung der durch die Sonne erzielte Energie im Pool</field> <next><block type="schedule" id="TPz.~u#rq~J9u#ozY9qk"><field name="SCHEDULE">*/15 * * * *</field> <statement name="STATEMENT"><block type="comment" id="zo^0#vhbgEfZs6);=Mk*"><field name="COMMENT">20.2 ist die Poolfläche im m²</field> <next><block type="comment" id="ifS6_rN}8M;t;59T@k8w"><field name="COMMENT">0.25 ist der Zeitfaktorda das Script alle 15 minuten läuft</field> <next><block type="variables_set" id="Zzfvr(uBQ3y,RuOX5VOn"><field name="VAR">Energie_pro_15min</field> <value name="VALUE"><block type="math_arithmetic" id="CoV]2gyc75LCjnLf@nV" inline="false"><field name="OP">MULTIPLY</field>
      <value name="A"><shadow type="math_number" id="yg=a^!%@cs}W5K-VYIM"><field name="NUM">1</field></shadow>
      <block type="get_value" id="cZ:zNBM@eJx5%PeWr#2o"><field name="ATTR">val</field>
      <field name="OID">parser.0.Globalstrahlung_1h</field></block></value>
      <value name="B"><shadow type="math_number" id="f]JkGvM3%{[~Fp_rx#7K"><field name="NUM">1</field></shadow>
      <block type="math_arithmetic" id="m3ts0FQ^X3ScMe4tp%~V" inline="false"><field name="OP">MULTIPLY</field>
      <value name="A"><shadow type="math_number" id="NtNqm92j!Mk+D*0R+@Yl"><field name="NUM">1</field></shadow>
      <block type="math_number" id="/fYK9gE=M47Y;VtM@WaN"><field name="NUM">20.2</field></block></value>
      <value name="B"><shadow type="math_number" id=";tqWo(^Y:
      :L*NT9g]0"><field name="NUM">1</field></shadow> <block type="math_number" id="?h]3YOb*XERtQf_%J5%"><field name="NUM">0.25</field></block></value></block></value></block></value>
      <next><block type="update" id="Oi%MKWXH*(:G)09r3Zd;"><mutation delay_input="false"></mutation>
      <field name="OID">javascript.0.Pool.Solareinstrahlung_Pool</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE"><block type="math_arithmetic" id="5!11L!YlAa2H+U9S/-U{" inline="false"><field name="OP">ADD</field>
      <value name="A"><shadow type="math_number" id="HGr19Y%q8Yy(6WUyI:i0"><field name="NUM">1</field></shadow>
      <block type="get_value" id="i/^hwY85kKk-SZvRH!"><field name="ATTR">val</field>
      <field name="OID">javascript.0.Pool.Solareinstrahlung_Pool</field></block></value>
      <value name="B"><shadow type="math_number" id="#X7vgA)Mn)QtHb)llf3i"><field name="NUM">1</field></shadow>
      <block type="variables_get" id="l2m57X(4Es~;;^,zrbBu"><field name="VAR">Energie_pro_15min</field></block></value></block></value>
      <next><block type="comment" id="Q0]01WebJ?0iRlN.%cG|"><field name="COMMENT">8 ist die Kollektorfläche im m²</field>
      <next><block type="comment" id="q%J23o?2v[%tLrw-NT~S"><field name="COMMENT">0.25 ist der Zeitfaktorda das Script alle 15 minuten läuft</field>
      <next><block type="variables_set" id="os_o:v.khCWOw,@:w[w"><field name="VAR">Energie2_pro_15min</field>
      <value name="VALUE"><block type="math_arithmetic" id="eglU+)NqQd)Y}#h3MGU!" inline="false"><field name="OP">MULTIPLY</field>
      <value name="A"><shadow type="math_number" id="yg=a^_!%@cs}W5K-VYIM"><field name="NUM">1</field></shadow>
      <block type="get_value" id="m4NooAxT0_koiG:STWtD"><field name="ATTR">val</field>
      <field name="OID">parser.0.Globalstrahlung_1h</field></block></value>
      <value name="B"><shadow type="math_number" id="f]JkGvM3%{[~Fp_rx#7K"><field name="NUM">1</field></shadow>
      <block type="math_arithmetic" id=";w/j%6qGd]^{BM+IL#kH" inline="false"><field name="OP">MULTIPLY</field>
      <value name="A"><shadow type="math_number" id="NtNqm92j!Mk+D
      0R+@Yl"><field name="NUM">1</field></shadow>
      <block type="math_number" id="^DP+1t+|l_OhyF+q#dI%"><field name="NUM">8</field></block></value>
      <value name="B"><shadow type="math_number" id=";tqWo(^Y:_:L*NT9g]0"><field name="NUM">1</field></shadow> <block type="math_number" id="zt}[9S0lXm1PvXD^{K-l"><field name="NUM">0.25</field></block></value></block></value></block></value> <next><block type="update" id="dFqs;fl03C}H/TDYM)c!"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pool.Solareinstrahlung_Kollektor</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_arithmetic" id="dwec_8z.iLtoaa+Vbuc" inline="false"><field name="OP">ADD</field>
      <value name="A"><shadow type="math_number" id="HGr19Y%q8Yy(6WUyI:i0"><field name="NUM">1</field></shadow>
      <block type="get_value" id="lt?uOAj(AZI.t!mA!pd"><field name="ATTR">val</field> <field name="OID">javascript.0.Pool.Solareinstrahlung_Kollektor</field></block></value> <value name="B"><shadow type="math_number" id="#X7vgA)Mn)QtHb)llf3i"><field name="NUM">1</field></shadow> <block type="variables_get" id="rZ_@Ak|YaK}rc^y:)Muq"><field name="VAR">Energie2_pro_15min</field></block></value></block></value> <next><block type="controls_if" id="rJHmEw*%Vi#,d}xK3w+"><value name="IF0"><block type="logic_compare" id="!,e:])(~-XtG:MnpM2mf"><field name="OP">EQ</field>
      <value name="A"><block type="get_value" id=";l[m49w5|Q.Zfp2N,US"><field name="ATTR">val</field>
      <field name="OID">hm-rpc.2.MEQ0023494.2.STATE</field></block></value>
      <value name="B"><block type="logic_boolean" id="ARDAss3|lS+9_B}oo7.L"><field name="BOOL">TRUE</field></block></value></block></value>
      <statement name="DO0"><block type="comment" id="ohk;IVmGWy,@YD;V^cMz"><field name="COMMENT">Fördermenge Heizpumpe in 15 min =187.5l</field>
      <next><block type="comment" id="Zi#is+O);SH/9q(/5vlt"><field name="COMMENT">spez. Wärmekonstante c=1,163 Wh/kgK</field>
      <next><block type="variables_set" id="X{(m[Vk+9(*K;!%l}|m"><field name="VAR">DeltaT</field> <value name="VALUE"><block type="get_value" id="#4zbBIs8qnerRPo{08M"><field name="ATTR">val</field>
      <field name="OID">hm-rpc.2.LEQ0773808.3.TEMPERATURE</field></block></value>
      <next><block type="variables_set" id="gWGlZYkbF_U9Jt^@8Wsh"><field name="VAR">DeltaT</field>
      <value name="VALUE"><block type="math_number" id="TJC/O]my@kl3R1skLQeh"><field name="NUM">3</field></block></value>
      <next><block type="variables_set" id="#{VW/yg%1Z0u{Sk?KFQV"><field name="VAR">Abgegebene_Arbeit</field>
      <value name="VALUE"><block type="math_arithmetic" id="T/@EK[oAc?VP/Ya%XL+c" inline="false"><field name="OP">MULTIPLY</field>
      <value name="A"><shadow type="math_number" id="e{%qPrY=C(T)aU}X)i+r"><field name="NUM">1</field></shadow>
      <block type="math_number" id="iI+nban![~Ab1Yo%95V^"><field name="NUM">187.5</field></block></value>
      <value name="B"><shadow type="math_number" id="MhZ8IyN!h!=+mG{TC?r{"><field name="NUM">1</field></shadow>
      <block type="math_arithmetic" id="qh=5oI%rJ:D,VgW(h38}" inline="false"><field name="OP">MULTIPLY</field>
      <value name="A"><shadow type="math_number" id="_KoNMysI
      :v5%,w3,EN4"><field name="NUM">1</field></shadow>
      <block type="math_number" id="?b4K?xqNhtMOldd+]*C"><field name="NUM">1.163</field></block></value> <value name="B"><shadow type="math_number" id="y7bXedJ|6y|?.dZzUWd@"><field name="NUM">1</field></shadow> <block type="variables_get" id="{73+o)gZQ}Q*MeBZCU-m"><field name="VAR">DeltaT</field></block></value></block></value></block></value> <next><block type="update" id="@b4z,SvXw}*C,oq@o51{"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Pool.Energie_Poolheizung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="}rs334/_RMF8C|lx)32k"><field name="VAR">Abgegebene_Arbeit</field></block></value> <next><block type="update" id="H;^0VDq-53?oTFGT@^#"><mutation delay_input="false"></mutation>
      <field name="OID">javascript.0.Pool.Wirkungsgrad_Poolheizung</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE"><block type="math_arithmetic" id="B%3?o8YJ%!Y9XZx#D99" inline="false"><field name="OP">DIVIDE</field> <value name="A"><shadow type="math_number" id="tsWa:(_PPmL9dF#]Tjb"><field name="NUM">1</field></shadow>
      <block type="variables_get" id="O5N;dA?obdIF(@{m?@vB"><field name="VAR">Abgegebene_Arbeit</field></block></value>
      <value name="B"><shadow type="math_number" id="[S){f8|}/at6H7p,st^R"><field name="NUM">1</field></shadow>
      <block type="variables_get" id="eCA!uUT-8E#W(hLCV0d}"><field name="VAR">Energie2_pro_15min</field></block></value></block></value></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></xml>

      Das Ganze ist natürlich mit einer gewissen Unschärfe verbunden. Einfallswinkel der Sonne, temporäre Beschattung, Aufheizung der Wandung des Pools… Aber als grobe Abschätzung schon OK. Wenn ich abends rückrechne wieviel Energie notwendig war, um die Temperatursteigerung des Tages zu erzielen, bin ich schon ziemlich nahe dran an meinen Ergebnissen.
      
      Mas schauen was ich da noch optimieren kann.
      
      hier noch 2 View´s mit denen ich das ganze visualisiere:
       ![1564_2018-07-25.png](/assets/uploads/files/1564_2018-07-25.png) 
       ![1564_2018-07-25__1_.png](/assets/uploads/files/1564_2018-07-25__1_.png) 
      1 Reply Last reply Reply Quote 0
      • SmarthomeMF
        SmarthomeMF last edited by

        Gefällt mir sehr gut.

        Werde ich mal ausprobieren

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

        Support us

        ioBroker
        Community Adapters
        Donate

        472
        Online

        31.7k
        Users

        79.8k
        Topics

        1.3m
        Posts

        2
        2
        1297
        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