Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Charge Control und My-PV Elwa Heizstab?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Charge Control und My-PV Elwa Heizstab?

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

      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:

      39e2a392-38ad-4a4e-bc16-b80b1a848819-image.png

      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>
      
      A 1 Reply Last reply Reply Quote 0
      • A
        ArnoD @jans_ios last edited by

        @jans_ios

        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.

        J 1 Reply Last reply Reply Quote 0
        • J
          jans_ios @ArnoD last edited by

          @arnod
          Danke Dir - das Skript habe ich bereits runtergeladen für meine Wallbox, aber noch nicht aktiv. Ich schaue es mir an!

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

          Support us

          ioBroker
          Community Adapters
          Donate

          660
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          176
          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