Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. dataeasy

    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

    D
    • Profile
    • Following 0
    • Followers 0
    • Topics 10
    • Posts 58
    • Best 1
    • Groups 1

    dataeasy

    @dataeasy

    Starter

    1
    Reputation
    15
    Profile views
    58
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    dataeasy Follow
    Starter

    Best posts made by dataeasy

    • E3DC Hauskraftwerk via Tibber laden

      Hallo in die Runde ich hoffe das Schript passt hier rein.

      Das Script wurde mit Unterstüzung div Forenmitglieder optimiert großer Dank geht an @Paul53 @Homoran

      Es kann genutzt werden von allen; die ein E3DC Hauskraftwerk ihr eigen nennen.
      Mit diesem einfachen Script könnt Ihr euer Hauskraft werk in Abhänigkeit vom Tibberstrompreis aus dem Netz nachladen.

      welche IOBroker Plugins werden zusätzlich benötigt

      E3DC-rscp

      3b4bb836-315c-48d5-940d-4398eebdea0b-grafik.png

      und ein Tibber Adapter (egal welcher es müssen nur die entsprechnden Werte genutzt werden.

      716f5082-4bce-4cdd-ae58-7c113944458c-grafik.png

      Ziel für mich war, wenn Strom günstig ist und der Akku einen zu geringen Ladestand ausweist, diesen einfach bis zu einem gewissen % Satz nachzuladen ( Die lade Endadeverluste muss man natürlich einbeziehen.)

      Ich habe mich extra gegen eine komplizierte Steuerung (wie z.b PV Wettervorhersage etc) entschieden.
      Das Script besteht bei mir aus zwei Teilen.

      Erster Teil bezieht sich auf die reine Ladung des Akkus bei entsprechend günstigem Strompreis.

      82a61abc-22ea-43b3-87d8-2cc4b99fd815-grafik.png

      Der zweite Teil setzt beim E3DC die Entladesperrzeiten auf "true"

      1de5d1bb-fdb6-4c9e-bd2b-9aaca25d7a11-grafik.png

      Hintergrund diser Steuerung in meinen Fall:
      Wenn der Strom günstig ist, möchte ich natürlich auch mein Auto laden, das aber rein nur aus dem Netz und nicht aus dem Akku ! In meinen Fall mit einen Go E-Charger!

      f3003f7b-78c1-4736-bb46-b06bb8a0e18d-grafik.png

      code_text
      // Beschreibe diese Funktion …
      async function Ladeschaltung() {
        Modus = compareTime('00:00', '23:59', 'between') && laden && getState('tibber.0.priceInfo.current.total').val <= (getState('tibber.0.priceInfo.current.total').val <= 0.175) ? 4 : 0;
        if (Modus != getState('e3dc-rscp.0.EMS.SET_POWER_MODE').val) {
          setState('e3dc-rscp.0.EMS.SET_POWER_MODE' /* Lademodus (gesendet) */, Modus);
          setStateDelayed('e3dc-rscp.0.EMS.SET_POWER_VALUE' /* Eingestellte Ladeleistung (gesendet) */, 9000, 5000, false);
        }
      }
      
      // Beschreibe diese Funktion …
      async function Endladesperre() {
        Modus2 = getState('go-e.1.car').val == 2 ? true : false;
        if (Modus2 != getState('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.00-Monday.IDLE_PERIOD_ACTIVE').val) {
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.00-Monday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 1000, false);
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.01-Tuesday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 2000, false);
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.02-Wednesday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 3000, false);
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.03-Thursday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 4000, false);
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.04-Friday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 5000, false);
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.05-Saturday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 6000, false);
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.06-Sunday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 7000, false);
        }
      }
      
      
      // Akku Kappa prüfen
      laden = getState('modbus.0.holdingRegisters.40083_Batterie_SOC').val < 90;
      on({ id: 'modbus.0.holdingRegisters.40083_Batterie_SOC' /* Batterie-SOC in Prozent */, change: 'ne' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        if ((obj.state ? obj.state.val : "") >= 90) {
          laden = false;
        } else if ((obj.state ? obj.state.val : "") < 50) {
          laden = true;
        }
        await Ladeschaltung();
      });
      on({ id: 'tibber.0.priceInfo.current.total' /* total */, change: 'ne' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        await Ladeschaltung();
      });
      
      // Entladesperrzeiten setzten
      on({ id: 'go-e.1.car' /* PWM Signalisierung (car) */, change: 'ne' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        await Endladesperre();
      });
      
      

      Viel Spass bei ausprobieren !!!

      posted in Blockly
      D
      dataeasy

    Latest posts made by dataeasy

    • RE: E3DC Hauskraftwerk steuern

      @arnod ne musste ich bis dato nicht... hat alles geklappt ohne den 4 SEC Trigger ... Ich setzte bei Objekt SET_POWER_MODE entwender "0" für Normal bzw. "4" für Grid_Charge udn dann noch die Ladeleistung "z.b 9000 Watt mehr nicht.
      Wobei es jetzt wieder läuft nachdem ich E3DC_rscp und mein Blocky wieder neu installiert habe sehr komisch.. Ich hatte im Zuge des ausprobierens deines Scriptes auch die Abfrageintervallwerte angepasst nach deinen Vorgaben ggf war das das Problem.... Danke trotzdem.. wie gesagt bei mir klappt das ohne den 4 SEC Trigger schon seid über einem Jahr !!! frag mich aber bitte nicht warum.

      Hatte dazu ja auch mal eine Anleitung hier ins Forum gepostet ....
      E3DC Hauskraftwerk via Tibber laden

      posted in JavaScript
      D
      dataeasy
    • RE: E3DC Hauskraftwerk steuern

      Hi in die Runde ich verzeifel gerade ein wenig.. bis dato klappte das LAden via selbst gebautem Skript gesteuert via Tibber preis immer in die ich die s.u. Datenpunkte des E3Dc via e3dc-escp getriggert habe ohne Probleme... Jetzt wollte ich mal E3DC Controll ausprobieren und seid dem klappt mein einfaches Script nicht mehr wo ist mein Ich habe die E3dc Controll Programmanteile alle deaktiviert aber es geht nicht mehr !!! dann alles gelöscht klappt auch nicht !!

      Folgende Trigger setze ich... den Set_POWER_MODE auf Grid_Charge (4)
      2f58319e-38eb-4793-b86a-947bccc03cdf-grafik.png

      mit folgenden Programmzeilen !

      2b91d720-ce3d-4d67-8194-1f0d0d2f20fb-grafik.png

      bis dato klappe immer alles jetzt leider nicht mehr hat einer ggf eine Tip ?

      Wie ist das aktuelle Verhalten..... er fängt kurz an zu laden aus dem Netz hört dann aber wieder auf...

      Danke und Grüße

      posted in JavaScript
      D
      dataeasy
    • RE: E3DC Hauskraftwerk via Tibber laden

      @ronniboy Hi ich nutze das Script noch genau so und den Trigger auf Powervalue setzte ich doch

      fdbd3af8-db5e-4d7b-b292-75763075cc7c-grafik.png

      posted in Blockly
      D
      dataeasy
    • RE: E3DC Hauskraftwerk via Tibber laden

      @robbi12 mhhh was meinst du genau du musst das Script natürlich noch auf dein System anpassen (DatenPunkte etc) wenn du Evcc nutzt dann wäre das z.b der erste Punkt den du abändern musst .. ich Nutze z.b openWB)

      hie rnoch mal das Script ohne die deaktivten Teilen die im letzten noch drin waren

      <block xmlns="https://developers.google.com/blockly/xml" type="procedures_defnoreturn" id="5/;3|HSfY1DAjxt5?Boe" x="-1312" y="262.4">
        <field name="NAME">Ladeschaltung</field>
        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        <statement name="STACK">
          <block type="variables_set" id="}Fqs{clkugC%PJw|,#%x">
            <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field>
            <value name="VALUE">
              <block type="logic_ternary" id="[.r)hU4YsaqlemuDNLsW" inline="false">
                <value name="IF">
                  <block type="logic_operation" id="H*{$FtGE0%O3m5jr4c21" inline="false">
                    <field name="OP">AND</field>
                    <value name="A">
                      <block type="time_compare" id="wZye_u#FX4S:_:^FGt5M">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation>
                        <field name="OPTION">between</field>
                        <field name="START_TIME">00:00</field>
                        <field name="END_TIME">23:59</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_operation" id="ER[=B#TFc_ndUaaaTNRt" inline="false">
                        <field name="OP">AND</field>
                        <value name="A">
                          <block type="variables_get" id="!*+rWx@,]$AW+i93=Mn*">
                            <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_compare" id="=8#@vo)?z[cBMw:{FplF">
                            <field name="OP">LTE</field>
                            <value name="A">
                              <block type="get_value" id="E@n3z2oC/LJYxONikYzn">
                                <field name="ATTR">val</field>
                                <field name="OID">tibberlink.0.Homes.344a4436-7f96-4251-9a15-1dda22b8cbe3.CurrentPrice.total</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_arithmetic" id="GWdA~Yt7%EBIt:MB7mUx">
                                <field name="OP">DIVIDE</field>
                                <value name="A">
                                  <shadow type="math_number" id="XFc}i=E5`-sQo,q=EB3s">
                                    <field name="NUM">1</field>
                                  </shadow>
                                  <block type="get_value" id="Mg4(^8mm2m1m-!KR:KNU">
                                    <field name="ATTR">val</field>
                                    <field name="OID">mqtt.0.openWB.global.awattar.MaxPriceForCharging</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <shadow type="math_number" id="b|b]G0E|N?lfzh|zDNi0">
                                    <field name="NUM">100</field>
                                  </shadow>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="THEN">
                  <block type="math_number" id="o#}VxYa6c$I+LFI1+swW">
                    <field name="NUM">4</field>
                  </block>
                </value>
                <value name="ELSE">
                  <block type="math_number" id="-Ex~STFr^1*sZg6W]l9t">
                    <field name="NUM">0</field>
                  </block>
                </value>
              </block>
            </value>
            <next>
              <block type="controls_if" id=":;ok#KZ[]ZEu0T|P=kkc">
                <value name="IF0">
                  <block type="logic_compare" id="Et5%B.C)v{VpjEE{Uu:m">
                    <field name="OP">NEQ</field>
                    <value name="A">
                      <block type="variables_get" id="#_L2|M#CMg$RtVppuO;i">
                        <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="get_value" id="%_p_e*RYch*Ordw=@WAO">
                        <field name="ATTR">val</field>
                        <field name="OID">e3dc-rscp.0.EMS.SET_POWER_MODE</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="control" id="/N-q:7/s~*M1MC``1^c,">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">e3dc-rscp.0.EMS.SET_POWER_MODE</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="variables_get" id="88O=,bjBm3i_+(?W{@lF">
                        <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field>
                      </block>
                    </value>
                    <next>
                      <block type="control" id="#s@xa/|zj!h~d)F5W#i_">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                        <field name="OID">e3dc-rscp.0.EMS.SET_POWER_VALUE</field>
                        <field name="WITH_DELAY">TRUE</field>
                        <field name="DELAY_MS">5</field>
                        <field name="UNIT">sec</field>
                        <field name="CLEAR_RUNNING">FALSE</field>
                        <value name="VALUE">
                          <block type="math_number" id="7SgL{z$d[1n.T^;9?W0X">
                            <field name="NUM">9000</field>
                          </block>
                        </value>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </next>
          </block>
        </statement>
      </block>
      
      posted in Blockly
      D
      dataeasy
    • RE: E3DC Hauskraftwerk via Tibber laden

      @funzel

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="0Y=so_Zpfh)R*xO_xNNF">laden</variable>
          <variable id="sna]-E(|pedUs57eb$2`">Modus</variable>
          <variable id=":HUM}NcSr6pr)*_tZ%K~">Modus2</variable>
        </variables>
        <block type="comment" id="wYGKOV@m;DSPr+gVMqP?" x="-1737" y="13">
          <field name="COMMENT">Akku Kappa prüfen </field>
        </block>
        <block type="on" id="KFi=aS{@Kx{roq-j!Xe7" disabled="true" x="-1037" y="38">
          <field name="OID">modbus.0.holdingRegisters.40083_Batterie_SOC</field>
          <field name="CONDITION">any</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
            <block type="controls_if" id="9N6u3).GRGvc)1gm;X|!">
              <mutation elseif="1"></mutation>
              <value name="IF0">
                <block type="logic_compare" id="QWTMu`{ISH)Q+@B6L/%v">
                  <field name="OP">GTE</field>
                  <value name="A">
                    <block type="on_source" id="T;.A|P5(O7jN0G*;H~!m">
                      <field name="ATTR">state.val</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="math_number" id="]I19$BZjvJ!+)um^!_HI">
                      <field name="NUM">90</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="variables_set" id="ssF!(q$ucIV!^0/gI.DE">
                  <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field>
                  <value name="VALUE">
                    <block type="logic_boolean" id="!-5fe:)bt2D^o55`~V6e">
                      <field name="BOOL">FALSE</field>
                    </block>
                  </value>
                </block>
              </statement>
              <value name="IF1">
                <block type="logic_compare" id="vM=KXc6DPa*}Pr$Te~L4">
                  <field name="OP">LT</field>
                  <value name="A">
                    <block type="on_source" id="W{$9=T9Riae0N%gbqi:f">
                      <field name="ATTR">state.val</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="math_number" id="/sBQS6(EU]m?-Y-d0IOy">
                      <field name="NUM">60</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO1">
                <block type="variables_set" id="=Q8){LXrePz%dE.!$~N0">
                  <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field>
                  <value name="VALUE">
                    <block type="logic_boolean" id="[N(Y1gE!ZR0xnH[0xv6C">
                      <field name="BOOL">TRUE</field>
                    </block>
                  </value>
                </block>
              </statement>
              <next>
                <block type="procedures_callnoreturn" id="Yhrcf/j6f8Y~(@|y8Io|">
                  <mutation name="Ladeschaltung"></mutation>
                </block>
              </next>
            </block>
          </statement>
        </block>
        <block type="variables_set" id="x9m5V3x?MUQf?=|sIA)O" x="-1701" y="103">
          <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field>
          <value name="VALUE">
            <block type="logic_compare" id="!y@{Jc}M%Bx)@xDEF[e6">
              <field name="OP">LT</field>
              <value name="A">
                <block type="get_value" id="tLKe{e977sRsinM3RlD2">
                  <field name="ATTR">val</field>
                  <field name="OID">modbus.0.holdingRegisters.40083_Batterie_SOC</field>
                </block>
              </value>
              <value name="B">
                <block type="math_number" id="0G.cUP$cs(uN^d_e0)`e">
                  <field name="NUM">90</field>
                </block>
              </value>
            </block>
          </value>
          <next>
            <block type="on_ext" id="i[kzA$?k0Au)PSJj3NUX">
              <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
              <field name="CONDITION">ne</field>
              <field name="ACK_CONDITION"></field>
              <value name="OID0">
                <shadow type="field_oid" id="W+V%)[~WW^AK@Ec{McC:">
                  <field name="oid">tibberlink.0.Homes.344a4436-7f96-4251-9a15-1dda22b8cbe3.CurrentPrice.total</field>
                </shadow>
              </value>
              <value name="OID1">
                <shadow type="field_oid" id="[H;K_$kk#fvdMgmVK,H/">
                  <field name="oid">e3dc-rscp.0.EMS.BAT_SOC</field>
                </shadow>
              </value>
              <statement name="STATEMENT">
                <block type="controls_if" id="UmNudO+,rEct.^!V?j5b">
                  <mutation elseif="1"></mutation>
                  <value name="IF0">
                    <block type="logic_compare" id="AKgs?gRA*]lIT5e*HvC+">
                      <field name="OP">GTE</field>
                      <value name="A">
                        <block type="on_source" id="$?3+?crUY.`!=+a2kY!;">
                          <field name="ATTR">state.val</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="math_number" id="~$z+Ztl$p~8dlt{5`M5W">
                          <field name="NUM">90</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="variables_set" id="sC?yyd#svq#4)f^QMN(d">
                      <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="Lk_)ggA/}P[lL1Y+iyGT">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                  <value name="IF1">
                    <block type="logic_compare" id="hoS~CwMU$B(3;8*@;w?C">
                      <field name="OP">LT</field>
                      <value name="A">
                        <block type="on_source" id="6,~f[|=t71GEEl9]YdEU">
                          <field name="ATTR">state.val</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="math_number" id="Xz9JLpxA+K`5Vh:tlc$n">
                          <field name="NUM">60</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO1">
                    <block type="variables_set" id="ocdHdKy}TTE*!BBxZ5Gl">
                      <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="x-2MJ)({x}%|.E3G~8nt">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                  <next>
                    <block type="procedures_callnoreturn" id="Wzv?*kolrctW9wZ!.uI@">
                      <mutation name="Ladeschaltung"></mutation>
                    </block>
                  </next>
                </block>
              </statement>
              <next>
                <block type="on" id=":2,QS4x0YvzuIG??Qk{6">
                  <field name="OID">tibberlink.0.Homes.344a4436-7f96-4251-9a15-1dda22b8cbe3.CurrentPrice.total</field>
                  <field name="CONDITION">ne</field>
                  <field name="ACK_CONDITION"></field>
                  <statement name="STATEMENT">
                    <block type="procedures_callnoreturn" id="kECB%]i[JX!ln^uC{3KS">
                      <mutation name="Ladeschaltung"></mutation>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </next>
        </block>
        <block type="procedures_defnoreturn" id="5/;3|HSfY1DAjxt5?Boe" x="-1312" y="313">
          <field name="NAME">Ladeschaltung</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          <statement name="STACK">
            <block type="variables_set" id="}Fqs{clkugC%PJw|,#%x">
              <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field>
              <value name="VALUE">
                <block type="logic_ternary" id="[.r)hU4YsaqlemuDNLsW" inline="false">
                  <value name="IF">
                    <block type="logic_operation" id="H*{$FtGE0%O3m5jr4c21" inline="false">
                      <field name="OP">AND</field>
                      <value name="A">
                        <block type="time_compare" id="wZye_u#FX4S:_:^FGt5M">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation>
                          <field name="OPTION">between</field>
                          <field name="START_TIME">00:00</field>
                          <field name="END_TIME">23:59</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_operation" id="ER[=B#TFc_ndUaaaTNRt" inline="false">
                          <field name="OP">AND</field>
                          <value name="A">
                            <block type="variables_get" id="!*+rWx@,]$AW+i93=Mn*">
                              <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_compare" id="=8#@vo)?z[cBMw:{FplF">
                              <field name="OP">LTE</field>
                              <value name="A">
                                <block type="get_value" id="E@n3z2oC/LJYxONikYzn">
                                  <field name="ATTR">val</field>
                                  <field name="OID">tibberlink.0.Homes.344a4436-7f96-4251-9a15-1dda22b8cbe3.CurrentPrice.total</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="math_arithmetic" id="GWdA~Yt7%EBIt:MB7mUx">
                                  <field name="OP">DIVIDE</field>
                                  <value name="A">
                                    <shadow type="math_number" id="XFc}i=E5`-sQo,q=EB3s">
                                      <field name="NUM">1</field>
                                    </shadow>
                                    <block type="get_value" id="Mg4(^8mm2m1m-!KR:KNU">
                                      <field name="ATTR">val</field>
                                      <field name="OID">mqtt.0.openWB.global.awattar.MaxPriceForCharging</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <shadow type="math_number" id="b|b]G0E|N?lfzh|zDNi0">
                                      <field name="NUM">100</field>
                                    </shadow>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="THEN">
                    <block type="math_number" id="o#}VxYa6c$I+LFI1+swW">
                      <field name="NUM">4</field>
                    </block>
                  </value>
                  <value name="ELSE">
                    <block type="math_number" id="-Ex~STFr^1*sZg6W]l9t">
                      <field name="NUM">0</field>
                    </block>
                  </value>
                </block>
              </value>
              <next>
                <block type="controls_if" id=":;ok#KZ[]ZEu0T|P=kkc">
                  <value name="IF0">
                    <block type="logic_compare" id="Et5%B.C)v{VpjEE{Uu:m">
                      <field name="OP">NEQ</field>
                      <value name="A">
                        <block type="variables_get" id="#_L2|M#CMg$RtVppuO;i">
                          <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="get_value" id="%_p_e*RYch*Ordw=@WAO">
                          <field name="ATTR">val</field>
                          <field name="OID">e3dc-rscp.0.EMS.SET_POWER_MODE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="control" id="/N-q:7/s~*M1MC``1^c,">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">e3dc-rscp.0.EMS.SET_POWER_MODE</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="variables_get" id="88O=,bjBm3i_+(?W{@lF">
                          <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field>
                        </block>
                      </value>
                      <next>
                        <block type="control" id="#s@xa/|zj!h~d)F5W#i_">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                          <field name="OID">e3dc-rscp.0.EMS.SET_POWER_VALUE</field>
                          <field name="WITH_DELAY">TRUE</field>
                          <field name="DELAY_MS">5</field>
                          <field name="UNIT">sec</field>
                          <field name="CLEAR_RUNNING">FALSE</field>
                          <value name="VALUE">
                            <block type="math_number" id="7SgL{z$d[1n.T^;9?W0X">
                              <field name="NUM">9000</field>
                            </block>
                          </value>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </statement>
        </block>
        <block type="logic_compare" id="wF64?Si9r?dwKy]_EDI," disabled="true" x="-412" y="338">
          <field name="OP">LTE</field>
          <value name="A">
            <block type="get_value" id="SeKBpiJu(74N$cpJcunB">
              <field name="ATTR">val</field>
              <field name="OID">tibber.0.priceInfo.current.total</field>
            </block>
          </value>
          <value name="B">
            <block type="math_number" id="G8B$puW6XG_@^WC4)xou">
              <field name="NUM">0.175</field>
            </block>
          </value>
        </block>
        <block type="comment" id="Ti|wD85x|9vJ|jQkdkC." x="-1512" y="763">
          <field name="COMMENT">Entladesperrzeiten setzten </field>
          <next>
            <block type="on" id="IIm+KjOL:(hXR[e|*WE{">
              <field name="OID">go-e.1.car</field>
              <field name="CONDITION">ne</field>
              <field name="ACK_CONDITION"></field>
              <statement name="STATEMENT">
                <block type="procedures_callnoreturn" id="7h}sCENa/zpk*Nt~ZBVc">
                  <mutation name="Endladesperre"></mutation>
                </block>
              </statement>
            </block>
          </next>
        </block>
        <block type="procedures_defnoreturn" id="wZzT|Qsccu:rd|,.;1Z-" x="-1512" y="938">
          <field name="NAME">Endladesperre</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          <statement name="STACK">
            <block type="variables_set" id="5*C{VGE_Dxz}J=P657-P">
              <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
              <value name="VALUE">
                <block type="logic_ternary" id="fq`!8q%cl%)d=Ixn1_Hl">
                  <value name="IF">
                    <block type="logic_operation" id="E]@LMsU2],iqOI4VcarV">
                      <field name="OP">AND</field>
                      <value name="A">
                        <block type="logic_compare" id="sqp/G2tE45TP4w64%Hx,">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="s[Mrpp-{OnFlKb{`Qr7|">
                              <field name="ATTR">val</field>
                              <field name="OID">go-e.1.car</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id=":3T$q[mhTuRd2gtv@Q=a">
                              <field name="NUM">2</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_compare" id="0*6%m8W!.RY8k~PXGF@0">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="vcPnw^PDiIlR``5H4SHJ">
                              <field name="ATTR">val</field>
                              <field name="OID">mqtt.0.openWB.global.ChargeMode</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="J0dUc^1a%dpvJZn:~h|6">
                              <field name="NUM">0</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="THEN">
                    <block type="logic_boolean" id="?/u~qD1:Nk{[YN}VPcJZ">
                      <field name="BOOL">TRUE</field>
                    </block>
                  </value>
                  <value name="ELSE">
                    <block type="logic_boolean" id=",x??(^xPFEaGr(CV)yt}">
                      <field name="BOOL">FALSE</field>
                    </block>
                  </value>
                </block>
              </value>
              <next>
                <block type="controls_if" id="VXEP_o7e$E$G%i4UeHf9">
                  <value name="IF0">
                    <block type="logic_compare" id="x}#J]4N8U:kxEu[z2C_1">
                      <field name="OP">NEQ</field>
                      <value name="A">
                        <block type="variables_get" id="t@o(k7Y_cK5@;br)n1!f">
                          <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="get_value" id="JeuFg+eo_?g(5fZ|?KDM">
                          <field name="ATTR">val</field>
                          <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.00-Monday.IDLE_PERIOD_ACTIVE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="control" id=",v4{PWtN7j=IbT,{?9wu">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                      <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.00-Monday.IDLE_PERIOD_ACTIVE</field>
                      <field name="WITH_DELAY">TRUE</field>
                      <field name="DELAY_MS">1</field>
                      <field name="UNIT">sec</field>
                      <field name="CLEAR_RUNNING">FALSE</field>
                      <value name="VALUE">
                        <block type="variables_get" id="C-UAIh|@3K@q4FbUsZY6">
                          <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                        </block>
                      </value>
                      <next>
                        <block type="control" id=";bo#Od1yavuvBA0M7MPB">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                          <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.01-Tuesday.IDLE_PERIOD_ACTIVE</field>
                          <field name="WITH_DELAY">TRUE</field>
                          <field name="DELAY_MS">2</field>
                          <field name="UNIT">sec</field>
                          <field name="CLEAR_RUNNING">FALSE</field>
                          <value name="VALUE">
                            <block type="variables_get" id="fm2`{!(Wvx1^zTh}k1?}">
                              <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                            </block>
                          </value>
                          <next>
                            <block type="control" id=";KkLypI!01qn~g%gPOJu">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                              <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.02-Wednesday.IDLE_PERIOD_ACTIVE</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">3</field>
                              <field name="UNIT">sec</field>
                              <field name="CLEAR_RUNNING">FALSE</field>
                              <value name="VALUE">
                                <block type="variables_get" id="+sPa([CU]vgKBmHNq+:-">
                                  <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                                </block>
                              </value>
                              <next>
                                <block type="control" id="v8QU_)qgLDHjau}SpUMd">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                  <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.03-Thursday.IDLE_PERIOD_ACTIVE</field>
                                  <field name="WITH_DELAY">TRUE</field>
                                  <field name="DELAY_MS">4</field>
                                  <field name="UNIT">sec</field>
                                  <field name="CLEAR_RUNNING">FALSE</field>
                                  <value name="VALUE">
                                    <block type="variables_get" id="#0OV]H%qAXHD.x*iMrdL">
                                      <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="control" id="9h}O1NWT4D]+,lWk!0sj">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                      <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.04-Friday.IDLE_PERIOD_ACTIVE</field>
                                      <field name="WITH_DELAY">TRUE</field>
                                      <field name="DELAY_MS">5</field>
                                      <field name="UNIT">sec</field>
                                      <field name="CLEAR_RUNNING">FALSE</field>
                                      <value name="VALUE">
                                        <block type="variables_get" id="].%%C*600cCsr/FuC_S|">
                                          <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="control" id=".nyo-LMoZbB4G7bY|8QU">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                          <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.05-Saturday.IDLE_PERIOD_ACTIVE</field>
                                          <field name="WITH_DELAY">TRUE</field>
                                          <field name="DELAY_MS">6</field>
                                          <field name="UNIT">sec</field>
                                          <field name="CLEAR_RUNNING">FALSE</field>
                                          <value name="VALUE">
                                            <block type="variables_get" id="u8X-iz3T{bt,0MHrap:X">
                                              <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="control" id="DB_AQFx-Ijot);%W#^@g">
                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                              <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.06-Sunday.IDLE_PERIOD_ACTIVE</field>
                                              <field name="WITH_DELAY">TRUE</field>
                                              <field name="DELAY_MS">7</field>
                                              <field name="UNIT">sec</field>
                                              <field name="CLEAR_RUNNING">FALSE</field>
                                              <value name="VALUE">
                                                <block type="variables_get" id="*E+#K/MUZjz*lZWg%slf">
                                                  <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                                                </block>
                                              </value>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </xml>
      
      posted in Blockly
      D
      dataeasy
    • "please delete this Post" Im Anhang nochmal das Blocky

      Re: E3DC Hauskraftwerk via Tibber laden

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="0Y=so_Zpfh)R*xO_xNNF">laden</variable>
          <variable id="sna]-E(|pedUs57eb$2`">Modus</variable>
          <variable id=":HUM}NcSr6pr)*_tZ%K~">Modus2</variable>
        </variables>
        <block type="comment" id="wYGKOV@m;DSPr+gVMqP?" x="-1737" y="13">
          <field name="COMMENT">Akku Kappa prüfen </field>
        </block>
        <block type="on" id="KFi=aS{@Kx{roq-j!Xe7" disabled="true" x="-1037" y="38">
          <field name="OID">modbus.0.holdingRegisters.40083_Batterie_SOC</field>
          <field name="CONDITION">any</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
            <block type="controls_if" id="9N6u3).GRGvc)1gm;X|!">
              <mutation elseif="1"></mutation>
              <value name="IF0">
                <block type="logic_compare" id="QWTMu`{ISH)Q+@B6L/%v">
                  <field name="OP">GTE</field>
                  <value name="A">
                    <block type="on_source" id="T;.A|P5(O7jN0G*;H~!m">
                      <field name="ATTR">state.val</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="math_number" id="]I19$BZjvJ!+)um^!_HI">
                      <field name="NUM">90</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="variables_set" id="ssF!(q$ucIV!^0/gI.DE">
                  <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field>
                  <value name="VALUE">
                    <block type="logic_boolean" id="!-5fe:)bt2D^o55`~V6e">
                      <field name="BOOL">FALSE</field>
                    </block>
                  </value>
                </block>
              </statement>
              <value name="IF1">
                <block type="logic_compare" id="vM=KXc6DPa*}Pr$Te~L4">
                  <field name="OP">LT</field>
                  <value name="A">
                    <block type="on_source" id="W{$9=T9Riae0N%gbqi:f">
                      <field name="ATTR">state.val</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="math_number" id="/sBQS6(EU]m?-Y-d0IOy">
                      <field name="NUM">60</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO1">
                <block type="variables_set" id="=Q8){LXrePz%dE.!$~N0">
                  <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field>
                  <value name="VALUE">
                    <block type="logic_boolean" id="[N(Y1gE!ZR0xnH[0xv6C">
                      <field name="BOOL">TRUE</field>
                    </block>
                  </value>
                </block>
              </statement>
              <next>
                <block type="procedures_callnoreturn" id="Yhrcf/j6f8Y~(@|y8Io|">
                  <mutation name="Ladeschaltung"></mutation>
                </block>
              </next>
            </block>
          </statement>
        </block>
        <block type="variables_set" id="x9m5V3x?MUQf?=|sIA)O" x="-1701" y="103">
          <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field>
          <value name="VALUE">
            <block type="logic_compare" id="!y@{Jc}M%Bx)@xDEF[e6">
              <field name="OP">LT</field>
              <value name="A">
                <block type="get_value" id="tLKe{e977sRsinM3RlD2">
                  <field name="ATTR">val</field>
                  <field name="OID">modbus.0.holdingRegisters.40083_Batterie_SOC</field>
                </block>
              </value>
              <value name="B">
                <block type="math_number" id="0G.cUP$cs(uN^d_e0)`e">
                  <field name="NUM">90</field>
                </block>
              </value>
            </block>
          </value>
          <next>
            <block type="on_ext" id="i[kzA$?k0Au)PSJj3NUX">
              <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
              <field name="CONDITION">ne</field>
              <field name="ACK_CONDITION"></field>
              <value name="OID0">
                <shadow type="field_oid" id="W+V%)[~WW^AK@Ec{McC:">
                  <field name="oid">tibberlink.0.Homes.344a4436-7f96-4251-9a15-1dda22b8cbe3.CurrentPrice.total</field>
                </shadow>
              </value>
              <value name="OID1">
                <shadow type="field_oid" id="[H;K_$kk#fvdMgmVK,H/">
                  <field name="oid">e3dc-rscp.0.EMS.BAT_SOC</field>
                </shadow>
              </value>
              <statement name="STATEMENT">
                <block type="controls_if" id="UmNudO+,rEct.^!V?j5b">
                  <mutation elseif="1"></mutation>
                  <value name="IF0">
                    <block type="logic_compare" id="AKgs?gRA*]lIT5e*HvC+">
                      <field name="OP">GTE</field>
                      <value name="A">
                        <block type="on_source" id="$?3+?crUY.`!=+a2kY!;">
                          <field name="ATTR">state.val</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="math_number" id="~$z+Ztl$p~8dlt{5`M5W">
                          <field name="NUM">90</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="variables_set" id="sC?yyd#svq#4)f^QMN(d">
                      <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="Lk_)ggA/}P[lL1Y+iyGT">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                  <value name="IF1">
                    <block type="logic_compare" id="hoS~CwMU$B(3;8*@;w?C">
                      <field name="OP">LT</field>
                      <value name="A">
                        <block type="on_source" id="6,~f[|=t71GEEl9]YdEU">
                          <field name="ATTR">state.val</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="math_number" id="Xz9JLpxA+K`5Vh:tlc$n">
                          <field name="NUM">60</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO1">
                    <block type="variables_set" id="ocdHdKy}TTE*!BBxZ5Gl">
                      <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="x-2MJ)({x}%|.E3G~8nt">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                  <next>
                    <block type="procedures_callnoreturn" id="Wzv?*kolrctW9wZ!.uI@">
                      <mutation name="Ladeschaltung"></mutation>
                    </block>
                  </next>
                </block>
              </statement>
              <next>
                <block type="on" id=":2,QS4x0YvzuIG??Qk{6">
                  <field name="OID">tibberlink.0.Homes.344a4436-7f96-4251-9a15-1dda22b8cbe3.CurrentPrice.total</field>
                  <field name="CONDITION">ne</field>
                  <field name="ACK_CONDITION"></field>
                  <statement name="STATEMENT">
                    <block type="procedures_callnoreturn" id="kECB%]i[JX!ln^uC{3KS">
                      <mutation name="Ladeschaltung"></mutation>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </next>
        </block>
        <block type="procedures_defnoreturn" id="5/;3|HSfY1DAjxt5?Boe" x="-1312" y="313">
          <field name="NAME">Ladeschaltung</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          <statement name="STACK">
            <block type="variables_set" id="}Fqs{clkugC%PJw|,#%x">
              <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field>
              <value name="VALUE">
                <block type="logic_ternary" id="[.r)hU4YsaqlemuDNLsW" inline="false">
                  <value name="IF">
                    <block type="logic_operation" id="H*{$FtGE0%O3m5jr4c21" inline="false">
                      <field name="OP">AND</field>
                      <value name="A">
                        <block type="time_compare" id="wZye_u#FX4S:_:^FGt5M">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation>
                          <field name="OPTION">between</field>
                          <field name="START_TIME">00:00</field>
                          <field name="END_TIME">23:59</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_operation" id="ER[=B#TFc_ndUaaaTNRt" inline="false">
                          <field name="OP">AND</field>
                          <value name="A">
                            <block type="variables_get" id="!*+rWx@,]$AW+i93=Mn*">
                              <field name="VAR" id="0Y=so_Zpfh)R*xO_xNNF">laden</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_compare" id="=8#@vo)?z[cBMw:{FplF">
                              <field name="OP">LTE</field>
                              <value name="A">
                                <block type="get_value" id="E@n3z2oC/LJYxONikYzn">
                                  <field name="ATTR">val</field>
                                  <field name="OID">tibberlink.0.Homes.344a4436-7f96-4251-9a15-1dda22b8cbe3.CurrentPrice.total</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="math_arithmetic" id="GWdA~Yt7%EBIt:MB7mUx">
                                  <field name="OP">DIVIDE</field>
                                  <value name="A">
                                    <shadow type="math_number" id="XFc}i=E5`-sQo,q=EB3s">
                                      <field name="NUM">1</field>
                                    </shadow>
                                    <block type="get_value" id="Mg4(^8mm2m1m-!KR:KNU">
                                      <field name="ATTR">val</field>
                                      <field name="OID">mqtt.0.openWB.global.awattar.MaxPriceForCharging</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <shadow type="math_number" id="b|b]G0E|N?lfzh|zDNi0">
                                      <field name="NUM">100</field>
                                    </shadow>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="THEN">
                    <block type="math_number" id="o#}VxYa6c$I+LFI1+swW">
                      <field name="NUM">4</field>
                    </block>
                  </value>
                  <value name="ELSE">
                    <block type="math_number" id="-Ex~STFr^1*sZg6W]l9t">
                      <field name="NUM">0</field>
                    </block>
                  </value>
                </block>
              </value>
              <next>
                <block type="controls_if" id=":;ok#KZ[]ZEu0T|P=kkc">
                  <value name="IF0">
                    <block type="logic_compare" id="Et5%B.C)v{VpjEE{Uu:m">
                      <field name="OP">NEQ</field>
                      <value name="A">
                        <block type="variables_get" id="#_L2|M#CMg$RtVppuO;i">
                          <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="get_value" id="%_p_e*RYch*Ordw=@WAO">
                          <field name="ATTR">val</field>
                          <field name="OID">e3dc-rscp.0.EMS.SET_POWER_MODE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="control" id="/N-q:7/s~*M1MC``1^c,">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">e3dc-rscp.0.EMS.SET_POWER_MODE</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="variables_get" id="88O=,bjBm3i_+(?W{@lF">
                          <field name="VAR" id="sna]-E(|pedUs57eb$2`">Modus</field>
                        </block>
                      </value>
                      <next>
                        <block type="control" id="#s@xa/|zj!h~d)F5W#i_">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                          <field name="OID">e3dc-rscp.0.EMS.SET_POWER_VALUE</field>
                          <field name="WITH_DELAY">TRUE</field>
                          <field name="DELAY_MS">5</field>
                          <field name="UNIT">sec</field>
                          <field name="CLEAR_RUNNING">FALSE</field>
                          <value name="VALUE">
                            <block type="math_number" id="7SgL{z$d[1n.T^;9?W0X">
                              <field name="NUM">9000</field>
                            </block>
                          </value>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </statement>
        </block>
        <block type="logic_compare" id="wF64?Si9r?dwKy]_EDI," disabled="true" x="-412" y="338">
          <field name="OP">LTE</field>
          <value name="A">
            <block type="get_value" id="SeKBpiJu(74N$cpJcunB">
              <field name="ATTR">val</field>
              <field name="OID">tibber.0.priceInfo.current.total</field>
            </block>
          </value>
          <value name="B">
            <block type="math_number" id="G8B$puW6XG_@^WC4)xou">
              <field name="NUM">0.175</field>
            </block>
          </value>
        </block>
        <block type="comment" id="Ti|wD85x|9vJ|jQkdkC." x="-1512" y="763">
          <field name="COMMENT">Entladesperrzeiten setzten </field>
          <next>
            <block type="on" id="IIm+KjOL:(hXR[e|*WE{">
              <field name="OID">go-e.1.car</field>
              <field name="CONDITION">ne</field>
              <field name="ACK_CONDITION"></field>
              <statement name="STATEMENT">
                <block type="procedures_callnoreturn" id="7h}sCENa/zpk*Nt~ZBVc">
                  <mutation name="Endladesperre"></mutation>
                </block>
              </statement>
            </block>
          </next>
        </block>
        <block type="procedures_defnoreturn" id="wZzT|Qsccu:rd|,.;1Z-" x="-1512" y="938">
          <field name="NAME">Endladesperre</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          <statement name="STACK">
            <block type="variables_set" id="5*C{VGE_Dxz}J=P657-P">
              <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
              <value name="VALUE">
                <block type="logic_ternary" id="fq`!8q%cl%)d=Ixn1_Hl">
                  <value name="IF">
                    <block type="logic_operation" id="E]@LMsU2],iqOI4VcarV">
                      <field name="OP">AND</field>
                      <value name="A">
                        <block type="logic_compare" id="sqp/G2tE45TP4w64%Hx,">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="s[Mrpp-{OnFlKb{`Qr7|">
                              <field name="ATTR">val</field>
                              <field name="OID">go-e.1.car</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id=":3T$q[mhTuRd2gtv@Q=a">
                              <field name="NUM">2</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_compare" id="0*6%m8W!.RY8k~PXGF@0">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="vcPnw^PDiIlR``5H4SHJ">
                              <field name="ATTR">val</field>
                              <field name="OID">mqtt.0.openWB.global.ChargeMode</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="J0dUc^1a%dpvJZn:~h|6">
                              <field name="NUM">0</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="THEN">
                    <block type="logic_boolean" id="?/u~qD1:Nk{[YN}VPcJZ">
                      <field name="BOOL">TRUE</field>
                    </block>
                  </value>
                  <value name="ELSE">
                    <block type="logic_boolean" id=",x??(^xPFEaGr(CV)yt}">
                      <field name="BOOL">FALSE</field>
                    </block>
                  </value>
                </block>
              </value>
              <next>
                <block type="controls_if" id="VXEP_o7e$E$G%i4UeHf9">
                  <value name="IF0">
                    <block type="logic_compare" id="x}#J]4N8U:kxEu[z2C_1">
                      <field name="OP">NEQ</field>
                      <value name="A">
                        <block type="variables_get" id="t@o(k7Y_cK5@;br)n1!f">
                          <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="get_value" id="JeuFg+eo_?g(5fZ|?KDM">
                          <field name="ATTR">val</field>
                          <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.00-Monday.IDLE_PERIOD_ACTIVE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="control" id=",v4{PWtN7j=IbT,{?9wu">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                      <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.00-Monday.IDLE_PERIOD_ACTIVE</field>
                      <field name="WITH_DELAY">TRUE</field>
                      <field name="DELAY_MS">1</field>
                      <field name="UNIT">sec</field>
                      <field name="CLEAR_RUNNING">FALSE</field>
                      <value name="VALUE">
                        <block type="variables_get" id="C-UAIh|@3K@q4FbUsZY6">
                          <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                        </block>
                      </value>
                      <next>
                        <block type="control" id=";bo#Od1yavuvBA0M7MPB">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                          <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.01-Tuesday.IDLE_PERIOD_ACTIVE</field>
                          <field name="WITH_DELAY">TRUE</field>
                          <field name="DELAY_MS">2</field>
                          <field name="UNIT">sec</field>
                          <field name="CLEAR_RUNNING">FALSE</field>
                          <value name="VALUE">
                            <block type="variables_get" id="fm2`{!(Wvx1^zTh}k1?}">
                              <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                            </block>
                          </value>
                          <next>
                            <block type="control" id=";KkLypI!01qn~g%gPOJu">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                              <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.02-Wednesday.IDLE_PERIOD_ACTIVE</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">3</field>
                              <field name="UNIT">sec</field>
                              <field name="CLEAR_RUNNING">FALSE</field>
                              <value name="VALUE">
                                <block type="variables_get" id="+sPa([CU]vgKBmHNq+:-">
                                  <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                                </block>
                              </value>
                              <next>
                                <block type="control" id="v8QU_)qgLDHjau}SpUMd">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                  <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.03-Thursday.IDLE_PERIOD_ACTIVE</field>
                                  <field name="WITH_DELAY">TRUE</field>
                                  <field name="DELAY_MS">4</field>
                                  <field name="UNIT">sec</field>
                                  <field name="CLEAR_RUNNING">FALSE</field>
                                  <value name="VALUE">
                                    <block type="variables_get" id="#0OV]H%qAXHD.x*iMrdL">
                                      <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="control" id="9h}O1NWT4D]+,lWk!0sj">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                      <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.04-Friday.IDLE_PERIOD_ACTIVE</field>
                                      <field name="WITH_DELAY">TRUE</field>
                                      <field name="DELAY_MS">5</field>
                                      <field name="UNIT">sec</field>
                                      <field name="CLEAR_RUNNING">FALSE</field>
                                      <value name="VALUE">
                                        <block type="variables_get" id="].%%C*600cCsr/FuC_S|">
                                          <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="control" id=".nyo-LMoZbB4G7bY|8QU">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                          <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.05-Saturday.IDLE_PERIOD_ACTIVE</field>
                                          <field name="WITH_DELAY">TRUE</field>
                                          <field name="DELAY_MS">6</field>
                                          <field name="UNIT">sec</field>
                                          <field name="CLEAR_RUNNING">FALSE</field>
                                          <value name="VALUE">
                                            <block type="variables_get" id="u8X-iz3T{bt,0MHrap:X">
                                              <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="control" id="DB_AQFx-Ijot);%W#^@g">
                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                              <field name="OID">e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.06-Sunday.IDLE_PERIOD_ACTIVE</field>
                                              <field name="WITH_DELAY">TRUE</field>
                                              <field name="DELAY_MS">7</field>
                                              <field name="UNIT">sec</field>
                                              <field name="CLEAR_RUNNING">FALSE</field>
                                              <value name="VALUE">
                                                <block type="variables_get" id="*E+#K/MUZjz*lZWg%slf">
                                                  <field name="VAR" id=":HUM}NcSr6pr)*_tZ%K~">Modus2</field>
                                                </block>
                                              </value>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </xml>
      
      posted in Blockly
      D
      dataeasy
    • E3DC Hauskraftwerk via Tibber laden

      Hallo in die Runde ich hoffe das Schript passt hier rein.

      Das Script wurde mit Unterstüzung div Forenmitglieder optimiert großer Dank geht an @Paul53 @Homoran

      Es kann genutzt werden von allen; die ein E3DC Hauskraftwerk ihr eigen nennen.
      Mit diesem einfachen Script könnt Ihr euer Hauskraft werk in Abhänigkeit vom Tibberstrompreis aus dem Netz nachladen.

      welche IOBroker Plugins werden zusätzlich benötigt

      E3DC-rscp

      3b4bb836-315c-48d5-940d-4398eebdea0b-grafik.png

      und ein Tibber Adapter (egal welcher es müssen nur die entsprechnden Werte genutzt werden.

      716f5082-4bce-4cdd-ae58-7c113944458c-grafik.png

      Ziel für mich war, wenn Strom günstig ist und der Akku einen zu geringen Ladestand ausweist, diesen einfach bis zu einem gewissen % Satz nachzuladen ( Die lade Endadeverluste muss man natürlich einbeziehen.)

      Ich habe mich extra gegen eine komplizierte Steuerung (wie z.b PV Wettervorhersage etc) entschieden.
      Das Script besteht bei mir aus zwei Teilen.

      Erster Teil bezieht sich auf die reine Ladung des Akkus bei entsprechend günstigem Strompreis.

      82a61abc-22ea-43b3-87d8-2cc4b99fd815-grafik.png

      Der zweite Teil setzt beim E3DC die Entladesperrzeiten auf "true"

      1de5d1bb-fdb6-4c9e-bd2b-9aaca25d7a11-grafik.png

      Hintergrund diser Steuerung in meinen Fall:
      Wenn der Strom günstig ist, möchte ich natürlich auch mein Auto laden, das aber rein nur aus dem Netz und nicht aus dem Akku ! In meinen Fall mit einen Go E-Charger!

      f3003f7b-78c1-4736-bb46-b06bb8a0e18d-grafik.png

      code_text
      // Beschreibe diese Funktion …
      async function Ladeschaltung() {
        Modus = compareTime('00:00', '23:59', 'between') && laden && getState('tibber.0.priceInfo.current.total').val <= (getState('tibber.0.priceInfo.current.total').val <= 0.175) ? 4 : 0;
        if (Modus != getState('e3dc-rscp.0.EMS.SET_POWER_MODE').val) {
          setState('e3dc-rscp.0.EMS.SET_POWER_MODE' /* Lademodus (gesendet) */, Modus);
          setStateDelayed('e3dc-rscp.0.EMS.SET_POWER_VALUE' /* Eingestellte Ladeleistung (gesendet) */, 9000, 5000, false);
        }
      }
      
      // Beschreibe diese Funktion …
      async function Endladesperre() {
        Modus2 = getState('go-e.1.car').val == 2 ? true : false;
        if (Modus2 != getState('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.00-Monday.IDLE_PERIOD_ACTIVE').val) {
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.00-Monday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 1000, false);
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.01-Tuesday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 2000, false);
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.02-Wednesday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 3000, false);
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.03-Thursday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 4000, false);
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.04-Friday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 5000, false);
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.05-Saturday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 6000, false);
          setStateDelayed('e3dc-rscp.0.EMS.IDLE_PERIODS_DISCHARGE.06-Sunday.IDLE_PERIOD_ACTIVE' /* Ruhezeit aktiv */, Modus2, 7000, false);
        }
      }
      
      
      // Akku Kappa prüfen
      laden = getState('modbus.0.holdingRegisters.40083_Batterie_SOC').val < 90;
      on({ id: 'modbus.0.holdingRegisters.40083_Batterie_SOC' /* Batterie-SOC in Prozent */, change: 'ne' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        if ((obj.state ? obj.state.val : "") >= 90) {
          laden = false;
        } else if ((obj.state ? obj.state.val : "") < 50) {
          laden = true;
        }
        await Ladeschaltung();
      });
      on({ id: 'tibber.0.priceInfo.current.total' /* total */, change: 'ne' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        await Ladeschaltung();
      });
      
      // Entladesperrzeiten setzten
      on({ id: 'go-e.1.car' /* PWM Signalisierung (car) */, change: 'ne' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        await Endladesperre();
      });
      
      

      Viel Spass bei ausprobieren !!!

      posted in Blockly
      D
      dataeasy
    • RE: ... gelöst ...Probleme mit Blocky Script bei Trigger setzen

      @homoran anstatt Loading als Trigger zu nehmen war die Lösung der Einmfache Wert 😉 also "2" Danke natürlich auch an dich ...

      posted in Blockly
      D
      dataeasy
    • RE: ... gelöst ...Probleme mit Blocky Script bei Trigger setzen

      @paul53 ahhhh.... bin ich blöd warum mache ich eigendlich immer den gleichen Fehler 😵

      Dankeschööönnn

      posted in Blockly
      D
      dataeasy
    • RE: ... gelöst ...Probleme mit Blocky Script bei Trigger setzen

      @codierknecht danke für den Tip wird abe rnicht klappen.

      der Datenpunkt sollte auf Basis des Triggers entwerder True oder false werden.

      was habe ich genau vor..

      wenn der Triggerdatenpunkt PWN auf = "Ladung" steht

      soll der "Idle Period Active" Datenpunkt auf "true" stehen

      Wenn Triggerdatenpunkt PWN auf ≠ "Ladung"" steht

      soll der "Idle Period Active" Datenpunkt auf "false" stehen

      posted in Blockly
      D
      dataeasy
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo