Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly Ladelimit

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly Ladelimit

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

      Ein Problem mit der API von PSA zwingt mich momentan zu einer Anpassung meines dashboards inkl Script.
      Da keine SoC ausgewertet werden kann, möchte ich 10 bzw 20 kWh nachladen.
      Dies wird über Radiobuttons realsiert, die auch den Lademodus (off,pv,minpv und now) steuern.
      Das angehängte Script schreibt einen user DP (ladelimit 10 oder 20) mit True , damit der Radiobutton aktiv seiner Farbe ändert. Dazu überwacht es die geladen Menge an Strom . Das klappt soweit prima die Box stoppt auch bei 9800Wh....
      Was nicht klappt.. das Script soll den Modus der Wallbox zum Schluß , also bei erreichen des Ladelimits auf "off" setzen, damit der entsprechende radiobutton auch auf OFF springt...
      Wenn ich das "setze" Blockly aus dem Script per Zeittrigger ausführen lassen, dann klappt auch dies, aber warum nicht in diesem Script? Wo hab ich es evt falsch hingebogen?

      <xml xmlns="https://developers.google.com/blockly/xml">
        <block type="on_ext" id=";@O!lW.q*L+[7:}ca4P;" x="-5" y="-815">
          <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="%k_Ohz.onv_.WMeRYSPZ">
              <field name="oid">0_userdata.0.PV.Ladelimit_10_KW</field>
            </shadow>
          </value>
          <value name="OID1">
            <shadow type="field_oid" id="ejE.[;(lnzj17+u2U#Qi">
              <field name="oid">mqtt.0.evcc.loadpoints.1.sessionEnergy</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="controls_if" id="a5`TEi5i|4@*5KUcegoV">
              <value name="IF0">
                <block type="logic_operation" id="X%@tVy{rko]*bp^Vne+r" inline="false">
                  <field name="OP">AND</field>
                  <value name="A">
                    <block type="logic_compare" id="|k,7ot]52X5AdU~~6s,.">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="?OVXQ_q71Y3p/J%Hs5U9">
                          <field name="ATTR">val</field>
                          <field name="OID">0_userdata.0.PV.Ladelimit_10_KW</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="text" id="*+q1juG$A5`@^ON5Tg=c">
                          <field name="TEXT">True</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_compare" id="~ea-!OM@lT:ihS[%@@ZP">
                      <field name="OP">LT</field>
                      <value name="A">
                        <block type="get_value" id="(~op2zL:xFOr:^$eqV%$">
                          <field name="ATTR">val</field>
                          <field name="OID">mqtt.0.evcc.loadpoints.1.sessionEnergy</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="math_number" id="?ou@Jikgu%ayGN/?T9n=">
                          <field name="NUM">9800</field>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="control" id="j8dz-:5nQj%C={Qj.xnJ">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">0_userdata.0.PV.Ladelimit_20KW</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="text" id="/%OZ5xNw(3dQF,|O^Yw]">
                      <field name="TEXT">false</field>
                    </block>
                  </value>
                </block>
              </statement>
              <next>
                <block type="controls_if" id="^}}#z$L+d5y#{r{TV^y4">
                  <value name="IF0">
                    <block type="logic_operation" id="wg6tP$KllEC*~g4!O[{a" inline="false">
                      <field name="OP">AND</field>
                      <value name="A">
                        <block type="logic_compare" id="G`7d4pLpcCAqz+DP{AYC">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="M1k`Xm,/Uv2]I)_+(`}:">
                              <field name="ATTR">val</field>
                              <field name="OID">0_userdata.0.PV.Ladelimit_10_KW</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="text" id="A7VFY7VTi=O-o_DGQBFt">
                              <field name="TEXT">True</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_compare" id="D`V854p(YHrSx:[CL%-q">
                          <field name="OP">GTE</field>
                          <value name="A">
                            <block type="get_value" id="xvE2R4(kVHudk.w=*n$m">
                              <field name="ATTR">val</field>
                              <field name="OID">mqtt.0.evcc.loadpoints.1.sessionEnergy</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="SyOXa1zDQ~qrb*OMt9Q`">
                              <field name="NUM">9800</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="control" id="oF9YiPm!mT5ya`Nm2o$a">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">mqtt.0.evcc.loadpoints.1.mode.set</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="text" id="R*s.[RXzR3yhtMx2lX[2">
                          <field name="TEXT">off</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </statement>
          <next>
            <block type="on_ext" id="2,ZG|rc|~0NcWbAG%GrH">
              <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="=0%V}q:{,BMvtwQp4S=O">
                  <field name="oid">0_userdata.0.PV.Ladelimit_20KW</field>
                </shadow>
              </value>
              <value name="OID1">
                <shadow type="field_oid" id="IWYX)DpbTg-n/B?q*`GI">
                  <field name="oid">mqtt.0.evcc.loadpoints.1.sessionEnergy</field>
                </shadow>
              </value>
              <statement name="STATEMENT">
                <block type="controls_if" id="4m^2#fi59w`jR~gHYMw3">
                  <value name="IF0">
                    <block type="logic_operation" id="VAZXe,%J;(?fDJ}#S]Ir" inline="false">
                      <field name="OP">AND</field>
                      <value name="A">
                        <block type="logic_compare" id="PuW`2=FH=lM`i)ht}Z2[">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="$Lj!;2bAMwm1KA,DiQZu">
                              <field name="ATTR">val</field>
                              <field name="OID">0_userdata.0.PV.Ladelimit_20KW</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="text" id="W,TK.!FViv=2$Q=r@9;B">
                              <field name="TEXT">True</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_compare" id="@%xfD$%C:4=%8A_.03wC">
                          <field name="OP">LT</field>
                          <value name="A">
                            <block type="get_value" id="k79C|7BvV:?,853T%F/W">
                              <field name="ATTR">val</field>
                              <field name="OID">mqtt.0.evcc.loadpoints.1.sessionEnergy</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="X8E;sMrBlG;5qu}{)N6@">
                              <field name="NUM">19800</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="control" id="Z5Q#V;2PB~+.|LB%a$%G">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">0_userdata.0.PV.Ladelimit_10_KW</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="text" id="qy{Iy;G`olys,._E,ys(">
                          <field name="TEXT">false</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                  <next>
                    <block type="controls_if" id="uQXO%`_A4.eeH5U`R/aj">
                      <value name="IF0">
                        <block type="logic_operation" id="OZ?YnjLUf;Z|=]_fzC[I" inline="false">
                          <field name="OP">AND</field>
                          <value name="A">
                            <block type="logic_compare" id="k#5AC3v)%h=kObC!Y,k7">
                              <field name="OP">EQ</field>
                              <value name="A">
                                <block type="get_value" id="^G,Bi7iCF.[({Z0_G%[r">
                                  <field name="ATTR">val</field>
                                  <field name="OID">0_userdata.0.PV.Ladelimit_20KW</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="text" id="q$|ol#ej.gyLM.n(?So!">
                                  <field name="TEXT">True</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_compare" id="n#?Omh68[~k+*`$DqNDj">
                              <field name="OP">GTE</field>
                              <value name="A">
                                <block type="get_value" id="--w`g{+j=FPElO;TdPZ|">
                                  <field name="ATTR">val</field>
                                  <field name="OID">mqtt.0.evcc.loadpoints.1.sessionEnergy</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="math_number" id="6w}j}62mukrq}(Q8-@L_">
                                  <field name="NUM">19800</field>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                      <statement name="DO0">
                        <block type="control" id="?7*Vp,Wo$.m//%Pau#sC">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">mqtt.0.evcc.loadpoints.1.mode.set</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="text" id="fpCxi5bCB_YI[L%e_*_z">
                              <field name="TEXT">off</field>
                            </block>
                          </value>
                        </block>
                      </statement>
                    </block>
                  </next>
                </block>
              </statement>
              <next>
                <block type="on" id="Q8Q_]jP%$[h}RG_j0c.v">
                  <field name="OID">mqtt.0.evcc.loadpoints.1.mode</field>
                  <field name="CONDITION">ne</field>
                  <field name="ACK_CONDITION"></field>
                  <statement name="STATEMENT">
                    <block type="controls_if" id="$}(VdS,!I,WD:=v9{CJ]">
                      <value name="IF0">
                        <block type="logic_compare" id="a5[T[IQ]Z*bsXM`Dv}qF">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="on_source" id="^DYc{d0~0$!nIce+xAk.">
                              <field name="ATTR">state.val</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="text" id="U)MjWF0(Tj-G$AZ`Q`b}">
                              <field name="TEXT">off</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <statement name="DO0">
                        <block type="control" id="?#h6J1+tV!)+fbFUTi1X">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">0_userdata.0.PV.Ladelimit_10_KW</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="text" id="eVJyEr|1+sIW-qOZAl+6">
                              <field name="TEXT">false</field>
                            </block>
                          </value>
                          <next>
                            <block type="control" id="m6{IIUP=B?,5H,rNr/Jh">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">0_userdata.0.PV.Ladelimit_20KW</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="text" id="3l60H.Ci|p%rz]){;/Rh">
                                  <field name="TEXT">false</field>
                                </block>
                              </value>
                            </block>
                          </next>
                        </block>
                      </statement>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </next>
        </block>
      </xml>
      
      DJMarc75 1 Reply Last reply Reply Quote 0
      • DJMarc75
        DJMarc75 @docsnyder7 last edited by

        @docsnyder7
        und wie immer auch bitte einen Screenshot vom Blockly zeigen.

        D 1 Reply Last reply Reply Quote 0
        • D
          docsnyder7 @DJMarc75 last edited by docsnyder7

          @djmarc75

          blockly.jpg

          sorry vergessen...

          Für den modus benutzte ich ja einen Alias, da schreiben und lesen 2 verschieden DP sind... sollte ich den steuere evt auf den Alias legen, statt den DP direkt zu nehmen

          D 1 Reply Last reply Reply Quote 0
          • D
            docsnyder7 @docsnyder7 last edited by

            So ich habs gelöst... hab alles nochmal durchgedacht, wer wie was machen muss und hab das Blockly umgestrickt

            ladelimit.jpg

            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @docsnyder7 last edited by paul53

              @docsnyder7 sagte: Blockly umgestrickt

              Sind die Ladelimit-DP vom Typ "string"?
              Gibt es zu den MQTT-DP nicht auch einen Alias vom Typ "boolean"? Wenn ja, sollte man den Alias verwenden.

              EDIT: Vorschlag mit Ladelimit-DP vom Typ "boolean"

              Blockly_temp.JPG

              D 3 Replies Last reply Reply Quote 0
              • D
                docsnyder7 @paul53 last edited by docsnyder7

                @paul53

                Ja.. die Ladelimit DP sind string
                der DP zum MQTT Dp (Limitenergy) ist eine Zahl und zum MQTT DP (Mode) ist ein String... bei verwendung des alias fürs setzen des Mode klappt es...

                die gelbe Zeile mit den Alias muss ich noch ergänzen...
                den beiden letzten steuere Blöcke besser durch aktualisiere ersetzen?

                ach ja und ich muss irgendwo noch den Wert 10 bzw 20 schreiben... damit der Wert entsprechend gesetzt wird und die Wallbox nicht mehr wie bis zu diesem Limit läd...

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @docsnyder7 last edited by

                  @docsnyder7 sagte: die gelbe Zeile mit den Alias muss ich noch ergänzen...

                  Den MQTT-DP durch den Alias ersetzen!

                  @docsnyder7 sagte in Blockly Ladelimit:

                  die Ladelimit DP sind string

                  Die sollten in "boolean" geändert werden.

                  @docsnyder7 sagte in Blockly Ladelimit:

                  ich muss irgendwo noch den Wert 10 bzw 20 schreiben... damit der Wert entsprechend gesetzt wird und die Wallbox nicht mehr wie bis zu diesem Limit läd...

                  ??

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    docsnyder7 @paul53 last edited by docsnyder7

                    @paul53 said in Blockly Ladelimit:

                    @docsnyder7 sagte in Blockly Ladelimit:

                    ich muss irgendwo noch den Wert 10 bzw 20 schreiben... damit der Wert entsprechend gesetzt wird und die Wallbox nicht mehr wie bis zu diesem Limit läd...

                    ??

                    ladelimit.jpg

                    die oberen Radiobuttons setzen im alias den Modus, welchen der alias wiederum in den MQTT DP schreibt.. alias, weil lese und schreib DP verschieden sind

                    die beiden 10 und 20kwh Buttons schreiben den Wert 10 oder eben 20 in den Ladelimit alias, der wiederum schreibt den Wert in den MQTT limitenergy DP... hier brauch ich den alias, weil der Button sich verändert wenn der Wert noch aktiv ist, dass klappt mit dem MQTT DP nicht, weil dieser auch nach dem schreiben wieder auf NULL geht und das ergebniss in einem anderen DP anzulesen ist
                    ladelimit1.jpg

                    1 Reply Last reply Reply Quote 0
                    • D
                      docsnyder7 @paul53 last edited by

                      @paul53 said in Blockly Ladelimit:

                      @docsnyder7 sagte: Blockly umgestrickt

                      Sind die Ladelimit-DP vom Typ "string"?
                      Gibt es zu den MQTT-DP nicht auch einen Alias vom Typ "boolean"? Wenn ja, sollte man den Alias verwenden.

                      EDIT: Vorschlag mit Ladelimit-DP vom Typ "boolean"

                      Blockly_temp.JPG

                      der Alias muss aber auch 4 verschieden werte annehmen.. (off,pv,minpv und now) somit wird "falsch" nicht funktionieren..oder

                      ladelimit.jpg

                      hab es jetzt nochmal zusammengerafft... funktioniert.. die Werte werden gesetzt, die Buttons reagieren und ändern entsprechend farbe und Bezeichnung

                      Danke für die Hilfe @paul53

                      1 Reply Last reply Reply Quote 0
                      • D
                        docsnyder7 @paul53 last edited by docsnyder7

                        @paul53 said in Blockly Ladelimit:

                        @docsnyder7 sagte: Blockly umgestrickt

                        Sind die Ladelimit-DP vom Typ "string"?
                        Gibt es zu den MQTT-DP nicht auch einen Alias vom Typ "boolean"? Wenn ja, sollte man den Alias verwenden.

                        EDIT: Vorschlag mit Ladelimit-DP vom Typ "boolean"

                        Blockly_temp.JPG

                        oder meinst du mit Alias hier gelb... den Alias der true/false steht also der 10 oder 20KW alias?
                        dann hab ich deinen Vorschlag nicht korrekt gelesen.. entschuldige Bitte
                        Aber kann der Radiobutton auch True/False setzen, wenn Boolean?
                        Denn den Wert 10 oder 20 muss noch in den MQTT DP für limitenergy...

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        823
                        Online

                        32.0k
                        Users

                        80.4k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        401
                        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