NEWS
Charge Control und My-PV Elwa Heizstab?
-
Hallo zusammen,
in dem sehr langen und informativen Thread zu dem Charge Control Skript von @ArnoD passt das Thema nicht so recht, da es nicht nur um das Skript geht.
Hat jemand von Euch das Skript am Laufen und parallel einen regelbaren Heizstab wie dem My-PV Elwa im Einsatz? Ich versuche, die automatische Ansteuerung mit Überschuss zu realisieren ähnlich wie E3DC das selbst macht. Die E3DC-eigene Steuerung greift jedoch erst, wenn der Akku auf 100% ist - das ist durch Charge Control ja explizit nicht gewollt, also - Problem
Ich habe jetzt ein kleines Blockly-Skript gebaut, dass versucht, den aktuell einzuspeisenden Strom zu verwenden für den Heizstab. Regele ich da aber "so viel wie möglich" rein und komme dadurch unter 500W Überschuss, schaltet Charge Control ab. Bin ich nur noch knapp drüber, bekommt Charge Control zum Laden aber eigentlich zu wenig Strom. Daher versuche ich aktuell, erst über 1500W den Heizstab zu aktivieren, verschenke dadurch jedoch irgendwie Strom, den ich gerne im Heizstab nutzen würde.
Hat jemand das schon gelöst oder einen anderen Ansatz?
Hier meine bisherigen Versuche:
Als Export:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="f]UD^db_+niH#mx+kPHN">Leistung Abnehmer</variable> <variable id="Ee1nZB=]XVOmY/7iO/0^">Leistung PV abzgl. Reserve</variable> <variable id="Dfov8`VUz$1`OH}HS59(">Überschuss</variable> </variables> <block type="on_ext" id="H%Yr4JpU)V!4jhBBc|2y" x="108" y="-57"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="4"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="=ixuK2ZA^~{ct:=jwBz$"> <field name="oid">modbus.0.holdingRegisters.40068_PV_Leistung</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="u(Z#.p0|,w65Ddp=,!dV"> <field name="oid">modbus.0.holdingRegisters.40072_Hausverbrauch_Leistung</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="F.(aegyC%#CJJ~208R!@"> <field name="oid">modbus.0.holdingRegisters.40078_Wallbox_Leistung</field> </shadow> </value> <value name="OID3"> <shadow type="field_oid" id="z+#FS9Bfz2))?$G-VRyJ"> <field name="oid">modbus.0.holdingRegisters.40070_Batterie_Leistung</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="Xo)?K6$n_ByftPZ4o9$2"> <value name="IF0"> <block type="logic_operation" id=",LE1NJi=j[xi6D}ABkh3"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="]X+y$B2]H3i_LO-Qdrpb"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="sw}a_$S=1UV2E`9%|BZ4"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40083_Batterie_SOC</field> </block> </value> <value name="B"> <block type="get_value" id="xc4I^8q072K._gEW$^tQ"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Charge_Control.Parameter.Ladeschwelle_0</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="P;;Oi8T51P3N(QX*|_/7"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="zV`pklXIXvV%g[AlxC?k"> <field name="ATTR">val</field> <field name="OID">modbus.1.holdingRegisters.1001_Temp1</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="(ng5k;@zf*=0zz/URyiE"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="ccCyV2IF[+wZ?(4!u)Cs"> <field name="NUM">1</field> </shadow> <block type="get_value" id="iv^7{2g]H)g3|rJg;/4p"> <field name="ATTR">val</field> <field name="OID">modbus.1.holdingRegisters.1002_WW1_Temp_max</field> </block> </value> <value name="B"> <shadow type="math_number" id="Z@[Y,u`pnt`]gIYS]Rwx"> <field name="NUM">2</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="P(;!jaSP7Zg]nqMx`?4;"> <field name="VAR" id="f]UD^db_+niH#mx+kPHN">Leistung Abnehmer</field> <value name="VALUE"> <block type="math_arithmetic" id="F.;^5A)#zhr$)O+^3:,("> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="8B3O]}1_PMKskC!kZ!xY"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="qf3!m5DzM#8JNl+^uss!"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="zP:eA{34LPkgg!=H+a$F"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="bHw2yrJ@p%CTT/x)Np,e"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40072_Hausverbrauch_Leistung</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="f4`[nN--DN_0u7ex*jH5"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40078_Wallbox_Leistung</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="@sYp:S*Za0svB2CDs7)="> <field name="ATTR">val</field> <field name="OID">e3dc-rscp.0.EMS.SET_POWER_VALUE</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="=[_(Z(%nx~sze%,|ao8_"> <field name="NUM">1</field> </shadow> <block type="get_value" id="H*;S2]gP)cah_o*u:f?J"> <field name="ATTR">val</field> <field name="OID">modbus.1.holdingRegisters.1000_Power</field> </block> </value> </block> </value> <next> <block type="variables_set" id="+So^SK(*!^8.op`HBW-n"> <field name="VAR" id="Ee1nZB=]XVOmY/7iO/0^">Leistung PV abzgl. Reserve</field> <value name="VALUE"> <block type="math_arithmetic" id="k72oK;Ob0BglI!5B,gqO"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="mQGd^nicnwRQ)v+;f3t0"> <field name="NUM">1</field> </shadow> <block type="get_value" id="b/ZR{2@0NV/eK#$B;|le"> <field name="ATTR">val</field> <field name="OID">modbus.0.holdingRegisters.40068_PV_Leistung</field> </block> </value> <value name="B"> <shadow type="math_number" id="!FlQG{=!ws3i9_b5CvVO"> <field name="NUM">1500</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="B`!T7|#|FY|$k,I=N?g="> <field name="VAR" id="Dfov8`VUz$1`OH}HS59(">Überschuss</field> <value name="VALUE"> <block type="math_arithmetic" id="`7815^jImmMatsbrL=$/"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="qtR~tZhC/AP~gjzJ?3:?"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="z6AlHI/MA8Kx?ggeb*3G"> <field name="VAR" id="Ee1nZB=]XVOmY/7iO/0^">Leistung PV abzgl. Reserve</field> </block> </value> <value name="B"> <shadow type="math_number" id="`]v%Kht1mKIs4MfTIww0"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="X_#v4AqCeS(s*5lG,Rul"> <field name="VAR" id="f]UD^db_+niH#mx+kPHN">Leistung Abnehmer</field> </block> </value> </block> </value> <next> <block type="controls_if" id="O^yRvF0?m?]aC~GUVs[1"> <value name="IF0"> <block type="logic_compare" id="RkFl6OLC?4ub3H/+yT5D"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="2x:tvH19]K@o;)0o3:`C"> <field name="VAR" id="f]UD^db_+niH#mx+kPHN">Leistung Abnehmer</field> </block> </value> <value name="B"> <block type="variables_get" id="Rflt^I6/V7,iX$Tob6Z*"> <field name="VAR" id="Ee1nZB=]XVOmY/7iO/0^">Leistung PV abzgl. Reserve</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="Y)oIeEP6@GjI$Uk3Y%NV"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="sf:[*NHMw7tX%qUS188v"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="|ii/txs.@{x/C_^[|$%J"> <field name="VAR" id="Dfov8`VUz$1`OH}HS59(">Überschuss</field> </block> </value> <value name="B"> <block type="math_number" id="ry}n6l;%8F,Baf8fTryz"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="uQw=c7BQ22/D3,q5YS3."> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="[`[zo:hvQE7)yZ(:3$_Z"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="E`v9)B!QJw}2*8[%6T:k"> <field name="VAR" id="Dfov8`VUz$1`OH}HS59(">Überschuss</field> </block> </value> <value name="B"> <block type="math_number" id=";];4,Lp5bn1|R-dQ@63?"> <field name="NUM">3000</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="3|?_Gf8`T|HALdAF1(V["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">modbus.1.holdingRegisters.1000_Power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="NXG(@N@CiSGcV$D#xD)#"> <field name="VAR" id="Dfov8`VUz$1`OH}HS59(">Überschuss</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="control" id="$(vIOl1`JT8-vO9jjK@)"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">modbus.1.holdingRegisters.1000_Power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="EJDK:iv[BWPhwbb$A.4x"> <field name="NUM">3000</field> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="control" id="2tZ0;_!lcicR6UQPA$]I"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">modbus.1.holdingRegisters.1000_Power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="0`p{_XG~njXj=k;/`+!."> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
-
Ich habe leider keinen regelbaren Heizstab um das zu testen, aber du wirst es wahrscheinlich genauso machen müssen, wie ich das im Wallbox Script gelöst habe.
Ist eigentlich das gleiche Problem, dass ein zusätzlicher Verbraucher zugeschaltet wird und nur den Überschuss verwenden soll. Bei mir halt das E-Auto und bei dir der Heizstab.
Das Script findest du auf Github, vielleicht kannst du ja was davon verwenden. -
@arnod
Danke Dir - das Skript habe ich bereits runtergeladen für meine Wallbox, aber noch nicht aktiv. Ich schaue es mir an!