@homoran said in Steuerung der Wärmepumpe anhand PV-Einspeisung:
ich verstehe das so, dass auch mehrfach max. 3h laufen dürfen
Ja richtig.
@homoran said in Steuerung der Wärmepumpe anhand PV-Einspeisung:
ich verstehe das so, dass auch mehrfach max. 3h laufen dürfen
Ja richtig.
@paul53 said in Steuerung der Wärmepumpe anhand PV-Einspeisung:
Wenn die WP zwischen 11 und 14 Uhr zwecks Warmwasser eingeschaltet ist, sind die max. 3 h bereits erreicht, so dass die anderen Bedingungen obsolet sind.
Vollkommen richtig, jedoch wird die Warmwassererzeugung 13 Uhr spätestens wieder beendet. Das hatte ich vergessen zu erwähnen.
@homoran said in Steuerung der Wärmepumpe anhand PV-Einspeisung:
warum nicht?
mit dem Code kann ich am Handy nichts anfangen.
Anfängerfrage: Wie kann ich das Bild exportieren ohne es Ausschneiden zu müssen? Dann wird es nämlich winzig und nicht lesbar.
Guten Abend werte iO-Community,
seit geraumer Zeit bin ich dabei mein Einfamilienhaus smarter zu machen. Vor kurzem habe ich unter anderem meinen zweiten Zähler für die Wärmepumpe ausbauen lassen, um meinen erzeugten Solarstrom noch mehr nutzen zu können (bisher war nur das Hausnetz mit PV-Strom versorgt).
Um die Wärmepumpe zu steuern habe ich nunmehr das vom EVU zurückgelassene Schütz mitsamt aller Komponenten genutzt, einen Shelly 1 als Relais vorgebaut und kann damit die EVU-Sperre meiner Wärmepumpe (Stiebel Eltron LWZ 8CS Premium) regeln.
Nun zur eigentlichen Herausforderung: mein Blockly-Skript funktioniert leider nicht so, wie ich mir das vorstelle. Auch wenn ich seit kurzem auch versuche im Debug-Mode die Fehler auszumerzen, scheint es mir so, dass ich das ganze nur verschlimmbessere und unnötig aufblähe.
Ich möchte gerne, dass das Relais zur Steuerung zwischen 6-17 Uhr schaltet und waltet. Die ersten Bedingungen beziehen sich auf die Batteriekapazität bzw. das Wetter. Wenn die Kapazität unter 25% ist, soll das Relais ausschalten. Wenn jedoch eine prognostizierte Tagesleistung von 10kWh unterschritten wird, soll das Relais anbleiben, da ich an einem bewölkten Tag nicht frieren möchte. Des Weiteren soll das Relais, falls es aus ist, bei einer solaren Eisnpeisung von 1.500 W wieder einschalten, um das Haus wieder zu heizen.
Um 11 Uhr soll das Relais zwingend an sein, um Warmwasser zu produzieren.
Ab 14 Uhr soll das Relais unter den oben genannten Bedingungen auch noch mal an sein.
Das Relais soll maximal 3h am Stück an sein.
Ich hoffe, ich konnte mein Vorhaben ausreichend erklären. Anbei, mein Blockly Skript als Code, da ich es als Bild nicht darstellen konnte. Es ist meine erste aufwändigere Automatisierung.
<xml xmlns="https://developers.google.com/blockly/xml">
<variables>
<variable type="timeout" id="timeout3">timeout3</variable>
<variable type="timeout" id="delayOff">delayOff</variable>
<variable type="timeout" id="delayOn">delayOn</variable>
<variable type="timeout" id="timeout1">timeout1</variable>
<variable type="timeout" id="delayOn4">delayOn4</variable>
<variable type="timeout" id="delayOn2">delayOn2</variable>
<variable type="timeout" id="delayOff2">delayOff2</variable>
<variable type="timeout" id="timeout2">timeout2</variable>
<variable type="timeout" id="delayOn3">delayOn3</variable>
</variables>
<block type="schedule" id="VI1@ILG]ldmnXsXfHpeB" x="138" y="263">
<field name="SCHEDULE">* 6-16 * * *</field>
<statement name="STATEMENT">
<block type="controls_if" id="H5vWbdDJ`HUzx_i}X5~*">
<mutation elseif="1"></mutation>
<value name="IF0">
<block type="time_compare" id="J/Z}|^~MURgD5dwT8!y`">
<mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation>
<field name="OPTION">between</field>
<field name="START_TIME">06:00</field>
<field name="END_TIME">17:00</field>
</block>
</value>
<statement name="DO0">
<block type="controls_if" id="$97Uow_-f@EJbWL7sp6A">
<value name="IF0">
<block type="logic_compare" id="3=ksUIQp8_2[V[`W4kdB">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="L)sW(1~CFt)s%z[Mrpq~">
<field name="ATTR">val</field>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id=",b)+WA*)dd]vjFvw=Y`r">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="yR4Ddy,7vHjR8J~-/xb1">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="cbrSp}*Ed{1M],W(!]4|">
<field name="BOOL">TRUE</field>
</block>
</value>
<next>
<block type="debug" id="`3[-doD@-O1-pWwkd(ak">
<field name="Severity">error</field>
<value name="TEXT">
<shadow type="text" id="MnnB:m|[o0iP?Awc{j@%">
<field name="TEXT">Wärmepumpe einschalten</field>
</shadow>
</value>
<next>
<block type="timeouts_settimeout" id="ibb}/,Ty:GXfWcurZ*Qh">
<field name="NAME">timeout3</field>
<field name="DELAY">180</field>
<field name="UNIT">min</field>
<statement name="STATEMENT">
<block type="control" id="24dCf}Hs8PV}]XwGv!AL">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="[7~XRSOGk7K_y!PbTXGo">
<field name="BOOL">FALSE</field>
</block>
</value>
<next>
<block type="debug" id=")awd0i{q5vl?lU(GxjBv">
<field name="Severity">error</field>
<value name="TEXT">
<shadow type="text" id="R]?3qN5X6Yi9dy68qUG5">
<field name="TEXT">nach 3h Energie sparen</field>
</shadow>
</value>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="controls_if" id="R7FCDKO5?.#o+1siiEA9">
<mutation elseif="1"></mutation>
<value name="IF0">
<block type="logic_compare" id="30oQ^M;0[m6ZU3(~s3)N">
<field name="OP">LTE</field>
<value name="A">
<block type="get_value" id="wls@,D}YS#o3I;/n_1[/">
<field name="ATTR">val</field>
<field name="OID">e3dc-rscp.0.EMS.BAT_SOC</field>
</block>
</value>
<value name="B">
<block type="text" id="joW!:%vT$26!l*iItMBS">
<field name="TEXT">25</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="timeouts_cleartimeout" id="*|VXlQ0VZfKY3eAhy%S1">
<field name="NAME">timeout3</field>
<next>
<block type="timeouts_settimeout" id="pD26Va@~2!B!L=w^Uh49">
<field name="NAME">delayOff</field>
<field name="DELAY">3</field>
<field name="UNIT">min</field>
<statement name="STATEMENT">
<block type="control" id=":_Dx/7W_?6g.r2M%WLS!">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="H0ZV;crjW;29DnJtk_M*">
<field name="BOOL">FALSE</field>
</block>
</value>
<next>
<block type="debug" id="sl_YI]jW7-?KHquGsUZD">
<field name="Severity">error</field>
<value name="TEXT">
<shadow type="text" id="{OCBf-VzlY^R]LD1sfa!">
<field name="TEXT">Batteriesparen</field>
</shadow>
</value>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</statement>
<value name="IF1">
<block type="logic_compare" id="zR2qhd{{q+i/[AZUDSQF">
<field name="OP">GTE</field>
<value name="A">
<block type="get_value" id="60l_SMKuzdTzFoQkV,Uk">
<field name="ATTR">val</field>
<field name="OID">e3dc-rscp.0.EMS.POWER_ADD</field>
</block>
</value>
<value name="B">
<block type="text" id="dkMn{p~p0%.Ztg96GWkF">
<field name="TEXT">1500</field>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="timeouts_cleartimeout" id="UPyB6/JA`hC9V!:9l|GP">
<field name="NAME">delayOff</field>
<next>
<block type="timeouts_settimeout" id="=F)UE1mc{{T7{yw9ybE~">
<field name="NAME">delayOn</field>
<field name="DELAY">5</field>
<field name="UNIT">min</field>
<statement name="STATEMENT">
<block type="control" id="e1]+O]y^/3=^7mF,Hc~`">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="b6ZeVsZFcw,THWq73yIA">
<field name="BOOL">TRUE</field>
</block>
</value>
<next>
<block type="debug" id="q#a8fGtq(}XAINoyxg$v">
<field name="Severity">error</field>
<value name="TEXT">
<shadow type="text" id="dOVP%/z?-kp!{S1=Jx*G">
<field name="TEXT">Wiedereinschaltung WP</field>
</shadow>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="timeouts_cleartimeout" id="A`#;$GSY6:DP`9s2L-s.">
<field name="NAME">delayOn</field>
<next>
<block type="timeouts_settimeout" id="XL/r=WX[kxXOn1b2kqv9">
<field name="NAME">timeout1</field>
<field name="DELAY">180</field>
<field name="UNIT">min</field>
<statement name="STATEMENT">
<block type="controls_if" id="y^XwPd)RweNLYT,8K6H[">
<value name="IF0">
<block type="logic_compare" id="V?ZV7?;AGpZ@1w7InK1I">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id=";3wj7`)?Rd*.15TOXzA=">
<field name="ATTR">val</field>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="E4IwO?I4{41-Qxk`:f.C">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id=",-)?W-9_tL}N[416]BjW">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="mkNh^hIMPjQ5UU[jc6L?">
<field name="BOOL">FALSE</field>
</block>
</value>
<next>
<block type="debug" id="}8M-aj.9o?Avzw6+`Qwb">
<field name="Severity">error</field>
<value name="TEXT">
<shadow type="text" id="]1bDMDurVzqqZqlp~3o=">
<field name="TEXT">Abschaltung 3h</field>
</shadow>
</value>
</block>
</next>
</block>
</statement>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="controls_if" id="+U24nzKNqbSp%#PmI-^s">
<value name="IF0">
<block type="logic_compare" id="AYnD;^l2iexS^o^Xc,(o">
<field name="OP">LTE</field>
<value name="A">
<block type="get_value" id="-u(8TmH-ez-f4q9}g+J4">
<field name="ATTR">val</field>
<field name="OID">pvforecast.0.plants.pv.energy.today</field>
</block>
</value>
<value name="B">
<block type="text" id="ct$15Am(m1LdF,c6e{1I">
<field name="TEXT">10</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="timeouts_cleartimeout" id="?ApCdw$oB}9V]LIw91O|">
<field name="NAME">delayOn</field>
<next>
<block type="timeouts_cleartimeout" id="tc^E1_^`xC`+b7MmH]t4">
<field name="NAME">timeout1</field>
<next>
<block type="timeouts_settimeout" id="qp$|+U}rXIfWK:rU7[}]">
<field name="NAME">delayOn4</field>
<field name="DELAY">5</field>
<field name="UNIT">min</field>
<statement name="STATEMENT">
<block type="control" id="na14yl]X$4*0?d+T@PKQ">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="YoSogsqRYx4gvJ[8^/6a">
<field name="BOOL">TRUE</field>
</block>
</value>
<next>
<block type="debug" id="w%}%l6gGD%g#D8PTE0[P">
<field name="Severity">error</field>
<value name="TEXT">
<shadow type="text" id="GL6?;:X]p/gAox8ywgm=">
<field name="TEXT">Wiedereinschaltung WP</field>
</shadow>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="timeouts_cleartimeout" id="lU;H-m_|%a3kE3U3Zd4;">
<field name="NAME">delayOn4</field>
<next>
<block type="timeouts_settimeout" id="J6syj41BNpvxl03mpbTt">
<field name="NAME">timeout2</field>
<field name="DELAY">180</field>
<field name="UNIT">min</field>
<statement name="STATEMENT">
<block type="controls_if" id="(pI~8a%1YOP`ui6uqt6J">
<value name="IF0">
<block type="logic_compare" id="g[sPR=!N7%t!2fAYDGRH">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="%8~4L+-g:cVeQ[0(}bzW">
<field name="ATTR">val</field>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="G2)rG-tDZehYu}O,Qhl{">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="RJX=+EplS{gjjIYmXc!Q">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="75uFMbFJFK8vSu8@3Rl{">
<field name="BOOL">FALSE</field>
</block>
</value>
<next>
<block type="debug" id="_4;2u8eR*,iS0T!eu{`-">
<field name="Severity">error</field>
<value name="TEXT">
<shadow type="text" id="]c*b[T}{4vIQStQT(hE|">
<field name="TEXT">Abschaltung 3h</field>
</shadow>
</value>
</block>
</next>
</block>
</statement>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="controls_if" id="5FQ|m8kkoBA5fIg!R]]H">
<mutation elseif="1"></mutation>
<value name="IF0">
<block type="time_compare" id="h)jT#^untn7@Ae{`Y,zW">
<mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation>
<field name="OPTION">between</field>
<field name="START_TIME">11:00</field>
<field name="END_TIME">13:00</field>
</block>
</value>
<statement name="DO0">
<block type="timeouts_cleartimeout" id="]Nld|1a_Fa0lWYzR,L!l">
<field name="NAME">timeout3</field>
<next>
<block type="timeouts_settimeout" id="E)grIMZ:8ib/f=$#DD^I">
<field name="NAME">delayOn2</field>
<field name="DELAY">2</field>
<field name="UNIT">min</field>
<statement name="STATEMENT">
<block type="control" id="E2rdry{0Fd$zB!Pa+,?I">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="k9b1AtrXHp]-(d2B).@5">
<field name="BOOL">TRUE</field>
</block>
</value>
<next>
<block type="debug" id="ePaT}R6s@f_{Z2SF?g/M">
<field name="Severity">error</field>
<value name="TEXT">
<shadow type="text" id="ADQ{XTw_{uadWabEZp]L">
<field name="TEXT">Warmwassererzeugung</field>
</shadow>
</value>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</statement>
<value name="IF1">
<block type="logic_operation" id="tZ,9xL.d+w9DESd}]T;g" inline="false">
<field name="OP">AND</field>
<value name="A">
<block type="time_compare" id="^Xd;2^fRdpLV,H.Z4$E`">
<mutation xmlns="http://www.w3.org/1999/xhtml" end_time="false"></mutation>
<field name="OPTION">==</field>
<field name="START_TIME">13:00</field>
</block>
</value>
<value name="B">
<block type="logic_compare" id="y?WbNNW`K;UcAVT/2CXX">
<field name="OP">LTE</field>
<value name="A">
<block type="get_value" id="Wk%c?uCPb1{`FSj4g(Q;">
<field name="ATTR">val</field>
<field name="OID">shelly.0.SHEM-3#349454719429#1.Emeter0.Power</field>
</block>
</value>
<value name="B">
<block type="text" id="1GnEP*wc}`3Sm0oxf5-1">
<field name="TEXT">1000</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="timeouts_cleartimeout" id="Pe+4FdVGg#p*~zU^7SwK">
<field name="NAME">delayOn2</field>
<next>
<block type="timeouts_settimeout" id="-CVTml!4kHIAsB717BN/">
<field name="NAME">delayOff2</field>
<field name="DELAY">3</field>
<field name="UNIT">min</field>
<statement name="STATEMENT">
<block type="control" id="1s|aVT)Y~?PueUF8?ju(">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="c@4IZMh;v`2Yq7QTIB=m">
<field name="BOOL">FALSE</field>
</block>
</value>
<next>
<block type="debug" id="wqB*.H!s|Vh#pwgS[(Iy">
<field name="Severity">error</field>
<value name="TEXT">
<shadow type="text" id="w^?=-0EXOmxP*$z8xNe2">
<field name="TEXT">Warmwasser erzeugt</field>
</shadow>
</value>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</statement>
<next>
<block type="controls_if" id="rLmaV[A[Qd.G{f8Mpjj6">
<value name="IF0">
<block type="logic_operation" id="6/W4T1bt!WUs^iFR#BL@" inline="false">
<field name="OP">AND</field>
<value name="A">
<block type="time_compare" id="#U4[$hos7w!$a*bPA8n^">
<mutation xmlns="http://www.w3.org/1999/xhtml" end_time="false"></mutation>
<field name="OPTION">>=</field>
<field name="START_TIME">14:00</field>
</block>
</value>
<value name="B">
<block type="logic_compare" id="+XmXLNpN2=rng[y[f7sa">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="1RkB9:7R3z3#.}aNKxwL">
<field name="ATTR">val</field>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="+:AnaYWS)`dFmRDzUx;i">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="timeouts_cleartimeout" id="fiv_{RL_3{/p5GyDmDy^">
<field name="NAME">timeout3</field>
<next>
<block type="timeouts_cleartimeout" id="|a}L:]mE^Weob=bFYjYk">
<field name="NAME">delayOff2</field>
<next>
<block type="timeouts_settimeout" id="7ROmSx%-1Q2ymt;A$=E:">
<field name="NAME">delayOn3</field>
<field name="DELAY">2</field>
<field name="UNIT">min</field>
<statement name="STATEMENT">
<block type="control" id="+v8%]Wt@Za{Fc$ny6qye">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="x{8Qt-pOWZ$uHieg.?+I">
<field name="BOOL">TRUE</field>
</block>
</value>
<next>
<block type="debug" id="_)mrPT^.|4DT(l=hXY+v">
<field name="Severity">error</field>
<value name="TEXT">
<shadow type="text" id="~?1dG,k4/oU.=p1j`L,^">
<field name="TEXT">Nochmal heizen</field>
</shadow>
</value>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
<value name="IF1">
<block type="time_compare" id="czvWU*|q`V.zZSkQ{prK">
<mutation xmlns="http://www.w3.org/1999/xhtml" end_time="false"></mutation>
<field name="OPTION">>=</field>
<field name="START_TIME">17:00</field>
</block>
</value>
<statement name="DO1">
<block type="control" id="+.6aR-.T#`FbJhBK4`z:">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">shelly.0.SHSW-1#E8DB84D73F6F#1.Relay0.Switch</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="_kY86[Il1MuC$lIQlSi;">
<field name="BOOL">FALSE</field>
</block>
</value>
<next>
<block type="debug" id="S^}zoapyRCo%3{qHTpBr">
<field name="Severity">error</field>
<value name="TEXT">
<shadow type="text" id="`A[vE=h)*=G0$e#s[saD">
<field name="TEXT">Wärmepumpe ausschalten</field>
</shadow>
</value>
</block>
</next>
</block>
</statement>
</block>
</statement>
</block>
</xml>