Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. [Frage] Realisierung Adapter UDP Keba Wallbox

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

[Frage] Realisierung Adapter UDP Keba Wallbox

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
1.3k Beiträge 70 Kommentatoren 445.9k Aufrufe 54 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Sneak-L8

    @tminimax Vielen Dank fürs Testen und Deine Rückmeldung.
    Du hast eingestellt, dass an Deinem HÜP (Stromanschluss) nur eine maximale Leistung von 23kW gezogen werden darf.
    Auch wenn die PV-Automatik aus ist, sorgt das dafür, dass die Wallbox die Leistung so begrenzt, dass Dein Hausanschluss max. 23kW aus dem Netz bezieht. Das wird permanent geregelt (dadurch, dass sich andere Verbraucher im Netz mehr oder weniger Leistung genehmigen). Daher auch der Hinweis (maxPower) hinter jedem Eintrag.
    Warum er die 16A nicht erkennt? Kann es sein, dass das nur software-seitig bei Keba eingestellt ist und nicht über die DIP-Switches? Ich lese die max. Stromstärke direkt aus der Wallbox gem. der DIP-Switches aus.
    Einen beendeten Ladevorgang bekommt die Wallbox nur durch Änderung des States "state" mit. Der dürfte da auch 5 springen. Das wird aber im Log nicht vermerkt.

    G Offline
    G Offline
    gto
    schrieb am zuletzt editiert von gto
    #1125

    @sneak-l8 Hallo Sneak, ich habe eine Frage zur Gesamtstromlimitierung.
    Es gibt 3 Felder zur Eingabe von Zählerzuständen. Sind hierbei die 3 Phasen gemeint? Welche Einheit (A, VA,W, kW)? Wird dann beim Gesamtstrom das Maximum einer Phase eingetragen oder der Gesamtstrom und berechnest dann das Phasenmaximum?

    Ich nutze nämlich 2 Wallboxen, die P30x, geregelt mit dem Adapter, die P30c passiv zum Auslesen der Daten. Limitierung auf 24kW (35A-Sicherung pro Phase) am Einspeisepunkt.
    An der passiven Box hängt ein Hybrid der nur einphasig laden kann. Wenn dieser lädt (16A) und an der zweiten Box dreiphasig (25A) geladen wird, liegt der Gesamtstrom (20,9kW) unter dem Limit, die erste Phase ist aber mit 41A überlastet.

    LG
    Thomas

    S 1 Antwort Letzte Antwort
    0
    • S Sneak-L8

      @tminimax Vielen Dank fürs Testen und Deine Rückmeldung.
      Du hast eingestellt, dass an Deinem HÜP (Stromanschluss) nur eine maximale Leistung von 23kW gezogen werden darf.
      Auch wenn die PV-Automatik aus ist, sorgt das dafür, dass die Wallbox die Leistung so begrenzt, dass Dein Hausanschluss max. 23kW aus dem Netz bezieht. Das wird permanent geregelt (dadurch, dass sich andere Verbraucher im Netz mehr oder weniger Leistung genehmigen). Daher auch der Hinweis (maxPower) hinter jedem Eintrag.
      Warum er die 16A nicht erkennt? Kann es sein, dass das nur software-seitig bei Keba eingestellt ist und nicht über die DIP-Switches? Ich lese die max. Stromstärke direkt aus der Wallbox gem. der DIP-Switches aus.
      Einen beendeten Ladevorgang bekommt die Wallbox nur durch Änderung des States "state" mit. Der dürfte da auch 5 springen. Das wird aber im Log nicht vermerkt.

      T Offline
      T Offline
      tminimax
      schrieb am zuletzt editiert von
      #1126

      @sneak-l8 ist nur in der "software" hinterlegt, physisch via dip ist 32a eingestellt, da ich eben dachte, da man es in der keba software einstellen kann, das die wallbox heranzieht....

      S 1 Antwort Letzte Antwort
      0
      • T tminimax

        @sneak-l8 ist nur in der "software" hinterlegt, physisch via dip ist 32a eingestellt, da ich eben dachte, da man es in der keba software einstellen kann, das die wallbox heranzieht....

        S Offline
        S Offline
        Sneak-L8
        schrieb am zuletzt editiert von
        #1127

        @tminimax Ok, das erklärt es. Dann müsstest Du es in der Hardware (DIP-Switches) einstellen.

        T 1 Antwort Letzte Antwort
        0
        • G gto

          @sneak-l8 Hallo Sneak, ich habe eine Frage zur Gesamtstromlimitierung.
          Es gibt 3 Felder zur Eingabe von Zählerzuständen. Sind hierbei die 3 Phasen gemeint? Welche Einheit (A, VA,W, kW)? Wird dann beim Gesamtstrom das Maximum einer Phase eingetragen oder der Gesamtstrom und berechnest dann das Phasenmaximum?

          Ich nutze nämlich 2 Wallboxen, die P30x, geregelt mit dem Adapter, die P30c passiv zum Auslesen der Daten. Limitierung auf 24kW (35A-Sicherung pro Phase) am Einspeisepunkt.
          An der passiven Box hängt ein Hybrid der nur einphasig laden kann. Wenn dieser lädt (16A) und an der zweiten Box dreiphasig (25A) geladen wird, liegt der Gesamtstrom (20,9kW) unter dem Limit, die erste Phase ist aber mit 41A überlastet.

          LG
          Thomas

          S Offline
          S Offline
          Sneak-L8
          schrieb am zuletzt editiert von
          #1128

          @gto Hm, eine Notwendigkeit, die beiden Wallboxen dafür zu verknüpfen sehe ich nicht unbedingt.
          Aber die Ladestrombegrenzung müsste von Gesamtsumme auf die einzelnen Phasen heruntergebrochen werden.
          Allerdings geht das nur für die Messung. Es werden immer alle drei Phasen zusammen geregelt.
          außerdem muss man sicherstellen, dass die Nummerierung der Phasen sowohl bei beiden Wallboxen las auch beim Energy-Meter am Zählerpunkt übereinstimmen. Das muss man erstmal prüfen, da ich Zweifel habe, dass ein Elektriker da explizit darauf achtet.
          Ich sehe das daher erst mal eher als einen Spezialfall und würde hier empfehlen, diesen Fall mit einem kleine Skript abzudecken (lese die Ladewerte der 2. Wallbox und setze ggf. den State kecontact.0.automatic.limitCurrent bei der 1. Wallbox.

          G 1 Antwort Letzte Antwort
          0
          • S Sneak-L8

            @gto Hm, eine Notwendigkeit, die beiden Wallboxen dafür zu verknüpfen sehe ich nicht unbedingt.
            Aber die Ladestrombegrenzung müsste von Gesamtsumme auf die einzelnen Phasen heruntergebrochen werden.
            Allerdings geht das nur für die Messung. Es werden immer alle drei Phasen zusammen geregelt.
            außerdem muss man sicherstellen, dass die Nummerierung der Phasen sowohl bei beiden Wallboxen las auch beim Energy-Meter am Zählerpunkt übereinstimmen. Das muss man erstmal prüfen, da ich Zweifel habe, dass ein Elektriker da explizit darauf achtet.
            Ich sehe das daher erst mal eher als einen Spezialfall und würde hier empfehlen, diesen Fall mit einem kleine Skript abzudecken (lese die Ladewerte der 2. Wallbox und setze ggf. den State kecontact.0.automatic.limitCurrent bei der 1. Wallbox.

            G Offline
            G Offline
            gto
            schrieb am zuletzt editiert von gto
            #1129

            @sneak-l8 Die Phasenlage habe ich heute überprüft, sie ist bei beiden Boxen und beim Zähler ident.
            Ich denke aber dass eine Programmierung gar kein so großer Aufwand ist und auch allgemein funktioniert. Die Idee kam mir von den Einstellmöglichkeiten der P30x. Diese könnte ja die Last regeln, allerdings wird kein Akku wie in deinem Adapter unterstützt, weshalb das nicht nutzbar ist.
            Bei der Keba gibt man als Limit die Ampere der Hauptzählersicherung/Phase an. Vom Wechselrichter kommen die Phasenwerte, diese kann ich mit dem Froniusadapter auch auslesen und als State im Adapter einbinden. Das wären dann die 3 Zählerwerte aus denen sich die Absenkung der Ladeleistung durch den Adapter ergäbe.
            Ich kann mich natürlich auch an einem Script versuchen.

            Blockly ist fertig, falls es jemand benötigt
            Ich rechne von der Phasenlast die geregelte Wallbox weg, ermittle die stärkst belastete Phase und setze die noch möglichen mA ins Current Limit

            <xml xmlns="https://developers.google.com/blockly/xml">
              <variables>
                <variable id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</variable>
                <variable id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</variable>
                <variable id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</variable>
                <variable id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</variable>
                <variable id="14Q~A%n3eqx=_.wh9IJo">Phase max A</variable>
                <variable id=".vhe63pLski-nVvGA3*.">Phase max mA</variable>
              </variables>
              <block type="variables_set" id="E*Vu$_+fuxrGm/d:dGi#" x="265" y="-408">
                <field name="VAR" id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</field>
                <value name="VALUE">
                  <block type="math_number" id="gqLBcLSd@@Snb8KlaVTx">
                    <field name="NUM">32</field>
                  </block>
                </value>
                <next>
                  <block type="on_ext" id="2s[RmVP})1RW}8|l/6pN">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                    <field name="CONDITION">ne</field>
                    <field name="ACK_CONDITION"></field>
                    <value name="OID0">
                      <shadow type="field_oid" id="$s?)jmdJ!-uBN2*Q%ez]">
                        <field name="oid">fronius.1.meter.0.Current_AC_Sum</field>
                      </shadow>
                    </value>
                    <statement name="STATEMENT">
                      <block type="comment" id="xrjTG/oCpXmHLZ2_%Xek">
                        <field name="COMMENT">Phasenlast ohne Wallbox</field>
                        <next>
                          <block type="variables_set" id="2UprYF$bz9vpLCV#O;W}">
                            <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                            <value name="VALUE">
                              <block type="math_arithmetic" id="/6Na./,HDWbDa%UzOC1v">
                                <field name="OP">MINUS</field>
                                <value name="A">
                                  <shadow type="math_number" id="l?cH+*JFd_5keBns9P{y">
                                    <field name="NUM">1</field>
                                  </shadow>
                                  <block type="get_value" id="ow$Xn02]:Vt{wT;tLX%$">
                                    <field name="ATTR">val</field>
                                    <field name="OID">fronius.1.meter.0.Current_AC_Phase_1</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <shadow type="math_number" id="$V4TOE]`|(kA]v;^+:rO">
                                    <field name="NUM">3</field>
                                  </shadow>
                                  <block type="math_arithmetic" id="~Q0)S2hCNGGR@VhsGa#Q">
                                    <field name="OP">DIVIDE</field>
                                    <value name="A">
                                      <shadow type="math_number" id="#Wt81FmAbdWGGZ~D/@}_">
                                        <field name="NUM">1</field>
                                      </shadow>
                                      <block type="get_value" id="R#(k#VwX{#hy;i{0)]Aw">
                                        <field name="ATTR">val</field>
                                        <field name="OID">kecontact.0.i1</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <shadow type="math_number" id="gKnZ{b*!^n~1k.9~12fk">
                                        <field name="NUM">1000</field>
                                      </shadow>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <next>
                              <block type="variables_set" id="D.i|*TV`Y/6lhWWx^UFo">
                                <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                <value name="VALUE">
                                  <block type="math_arithmetic" id="+0nK1=4Hs^BJTJX`)p^s">
                                    <field name="OP">MINUS</field>
                                    <value name="A">
                                      <shadow type="math_number" id="l?cH+*JFd_5keBns9P{y">
                                        <field name="NUM">1</field>
                                      </shadow>
                                      <block type="get_value" id="=bdn8.dOaSZs.tZ]bWRk">
                                        <field name="ATTR">val</field>
                                        <field name="OID">fronius.1.meter.0.Current_AC_Phase_2</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <shadow type="math_number" id="Conwu{[UvbZ_o?[ZFzA0">
                                        <field name="NUM">3</field>
                                      </shadow>
                                      <block type="math_arithmetic" id="KsyRcEjnv~D,aT.AaO(5">
                                        <field name="OP">DIVIDE</field>
                                        <value name="A">
                                          <shadow type="math_number" id="#Wt81FmAbdWGGZ~D/@}_">
                                            <field name="NUM">1</field>
                                          </shadow>
                                          <block type="get_value" id="[cc,kYI6Si:@4GdT$acO">
                                            <field name="ATTR">val</field>
                                            <field name="OID">kecontact.0.i2</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <shadow type="math_number" id="YH/lJN3,!RZM+Lk~RJ6+">
                                            <field name="NUM">1000</field>
                                          </shadow>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <next>
                                  <block type="variables_set" id="iIiN8[BO)GhwT=D#4r8h">
                                    <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                    <value name="VALUE">
                                      <block type="math_arithmetic" id="OL[0m(n6SBGsa@jf|#wv">
                                        <field name="OP">MINUS</field>
                                        <value name="A">
                                          <shadow type="math_number" id="l?cH+*JFd_5keBns9P{y">
                                            <field name="NUM">1</field>
                                          </shadow>
                                          <block type="get_value" id="p5he[kz$J=zaKte5tC}:">
                                            <field name="ATTR">val</field>
                                            <field name="OID">fronius.1.meter.0.Current_AC_Phase_3</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <shadow type="math_number" id="#OBc2iu6EB0f-6h,DIF^">
                                            <field name="NUM">3</field>
                                          </shadow>
                                          <block type="math_arithmetic" id="a$t$272mdh,L.a:xV.5C">
                                            <field name="OP">DIVIDE</field>
                                            <value name="A">
                                              <shadow type="math_number" id="#Wt81FmAbdWGGZ~D/@}_">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="get_value" id="fmfn5=3Y64QnYFXSwwKG">
                                                <field name="ATTR">val</field>
                                                <field name="OID">kecontact.0.i3</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <shadow type="math_number" id="gXLT*%!OJ=zY2~r=hu1}">
                                                <field name="NUM">1000</field>
                                              </shadow>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="comment" id="nW_R=QRFZ^Yqw==W)Z{M">
                                        <field name="COMMENT">stärkste Phase ermitteln</field>
                                        <next>
                                          <block type="controls_if" id="/^G/xAzqu$TM:N!uV/n[">
                                            <mutation elseif="2"></mutation>
                                            <value name="IF0">
                                              <block type="logic_operation" id="wSICv[-Q?lNdhP4dG-Q$">
                                                <field name="OP">AND</field>
                                                <value name="A">
                                                  <block type="logic_compare" id="]GG#?||_/xhy^fdtD1C{">
                                                    <field name="OP">GTE</field>
                                                    <value name="A">
                                                      <block type="variables_get" id="b(0n;E,_%o1^t:kg]e4|">
                                                        <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <block type="variables_get" id="[WOHI2)^!J^WiQx0`I+I">
                                                        <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <block type="logic_compare" id="AS*pUWjhc6leZXY5q5-%">
                                                    <field name="OP">GTE</field>
                                                    <value name="A">
                                                      <block type="variables_get" id="o#g6zHc*Mh._(wi1SLBy">
                                                        <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <block type="variables_get" id="i.*he3j0ou:r^j|6Poj!">
                                                        <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <statement name="DO0">
                                              <block type="variables_set" id="%_OdKx+xAv*}-*3}U:|4">
                                                <field name="VAR" id="14Q~A%n3eqx=_.wh9IJo">Phase max A</field>
                                                <value name="VALUE">
                                                  <block type="variables_get" id="0q|:3|_E+D;{pnf@x5R=">
                                                    <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </statement>
                                            <value name="IF1">
                                              <block type="logic_operation" id="U7`L+VlDzN*;51c_6$7l">
                                                <field name="OP">AND</field>
                                                <value name="A">
                                                  <block type="logic_compare" id="hU_%X:nvg-0OJ|SeFB+E">
                                                    <field name="OP">GTE</field>
                                                    <value name="A">
                                                      <block type="variables_get" id=".qDGa`*fN{5.k?]p^r~m">
                                                        <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <block type="variables_get" id="vuUI(Qt?{f_3v-R_(c)#">
                                                        <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <block type="logic_compare" id="WO^.MTn*u:FU?}Y6b~h(">
                                                    <field name="OP">GTE</field>
                                                    <value name="A">
                                                      <block type="variables_get" id="VLac$(8TaK3oZYU!2lgJ">
                                                        <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <block type="variables_get" id="/Aa0GKiIMG6J(ZP{]ix=">
                                                        <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <statement name="DO1">
                                              <block type="variables_set" id=":8h6-wJ5|KIR.C25w/UI">
                                                <field name="VAR" id="14Q~A%n3eqx=_.wh9IJo">Phase max A</field>
                                                <value name="VALUE">
                                                  <block type="variables_get" id="{/)M;fr,$]$Dhqk0;.1L">
                                                    <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </statement>
                                            <value name="IF2">
                                              <block type="logic_operation" id="/14}1=0y+?`9kmTKzYdv">
                                                <field name="OP">AND</field>
                                                <value name="A">
                                                  <block type="logic_compare" id="Kr~e.)tYz1zg[08):aG7">
                                                    <field name="OP">GTE</field>
                                                    <value name="A">
                                                      <block type="variables_get" id="^Z/?3/X]YpJ[rMFA=w:e">
                                                        <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <block type="variables_get" id="TaU==ET,NVhb]qiW?-o|">
                                                        <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <block type="logic_compare" id="Z6=EoG0]ojqj$4SMUbO|">
                                                    <field name="OP">GTE</field>
                                                    <value name="A">
                                                      <block type="variables_get" id="ru,1qkev|]W7{/;HCdNO">
                                                        <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <block type="variables_get" id="OTSF];r%4ufAlNa((gk*">
                                                        <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <statement name="DO2">
                                              <block type="variables_set" id="xPyPJ6N_Om]iYL3FQ!!?">
                                                <field name="VAR" id="14Q~A%n3eqx=_.wh9IJo">Phase max A</field>
                                                <value name="VALUE">
                                                  <block type="variables_get" id="_xtu8qP#ax*0rD43u%0)">
                                                    <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </statement>
                                            <next>
                                              <block type="comment" id="BL#hsp^[T3;nI?SD$Crj">
                                                <field name="COMMENT">Berechnen, Runden und Umrechnen</field>
                                                <next>
                                                  <block type="variables_set" id=";.-OFI4XTL:1(cUJ2Rop">
                                                    <field name="VAR" id=".vhe63pLski-nVvGA3*.">Phase max mA</field>
                                                    <value name="VALUE">
                                                      <block type="math_arithmetic" id="J6Nk{J9=+uJ%]s.koila">
                                                        <field name="OP">MULTIPLY</field>
                                                        <value name="A">
                                                          <shadow type="math_number" id="Z{Vk|*~/(O0zyg;T@0-q">
                                                            <field name="NUM">1</field>
                                                          </shadow>
                                                          <block type="math_arithmetic" id="xlV)uzos74*Z54_`_vpH">
                                                            <field name="OP">MINUS</field>
                                                            <value name="A">
                                                              <shadow type="math_number" id="F4``i@tO{@ZsVDVEkX^s">
                                                                <field name="NUM">1</field>
                                                              </shadow>
                                                              <block type="variables_get" id="?,G]_}j/2XK.{I/:SV(x">
                                                                <field name="VAR" id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</field>
                                                              </block>
                                                            </value>
                                                            <value name="B">
                                                              <shadow type="math_number" id=",l%4P_9nAUjj2mNGH[h2">
                                                                <field name="NUM">1</field>
                                                              </shadow>
                                                              <block type="math_round" id="~[yGWn[1a|N5Vd]OFBYo">
                                                                <field name="OP">ROUND</field>
                                                                <value name="NUM">
                                                                  <shadow type="math_number" id="{wV8`R=q|7O=$|[gI6_t">
                                                                    <field name="NUM">3.1</field>
                                                                  </shadow>
                                                                  <block type="variables_get" id="bKt:q{5Optbt)`$ca{As">
                                                                    <field name="VAR" id="14Q~A%n3eqx=_.wh9IJo">Phase max A</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                        <value name="B">
                                                          <shadow type="math_number" id=".0n_l9PyIGr}lG[(RN7+">
                                                            <field name="NUM">1000</field>
                                                          </shadow>
                                                        </value>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="comment" id="U4sh$]P1ZTIA(#c;KHG*">
                                                        <field name="COMMENT">Ladelimit setzen</field>
                                                        <next>
                                                          <block type="control" id="T~q1?/]SMOxLPmZ?_S7T">
                                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                            <field name="OID">kecontact.0.automatic.limitCurrent</field>
                                                            <field name="WITH_DELAY">FALSE</field>
                                                            <value name="VALUE">
                                                              <block type="variables_get" id="U79EJpWJZC^s%^co:P|}">
                                                                <field name="VAR" id=".vhe63pLski-nVvGA3*.">Phase max mA</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                </next>
              </block>
            </xml>
            

            und als Javasctript

            var Phasenlimit_in_A, Phase_1_ohne_Wallbox, Phase_2_ohne_Wallbox, Phase_3_ohne_Wallbox, Phase_max_A, Phase_max_mA;
            
            
            Phasenlimit_in_A = 32;
            on({ id: [].concat(['fronius.1.meter.0.Current_AC_Sum']), change: 'ne' }, async (obj) => {
              let value = obj.state.val;
              let oldValue = obj.oldState.val;
              // Phasenlast ohne Wallbox
              Phase_1_ohne_Wallbox = getState('fronius.1.meter.0.Current_AC_Phase_1').val - getState('kecontact.0.i1').val / 1000;
              Phase_2_ohne_Wallbox = getState('fronius.1.meter.0.Current_AC_Phase_2').val - getState('kecontact.0.i2').val / 1000;
              Phase_3_ohne_Wallbox = getState('fronius.1.meter.0.Current_AC_Phase_3').val - getState('kecontact.0.i3').val / 1000;
              // stärkste Phase ermitteln
              if (Phase_1_ohne_Wallbox >= Phase_2_ohne_Wallbox && Phase_1_ohne_Wallbox >= Phase_3_ohne_Wallbox) {
                Phase_max_A = Phase_1_ohne_Wallbox;
              } else if (Phase_2_ohne_Wallbox >= Phase_1_ohne_Wallbox && Phase_2_ohne_Wallbox >= Phase_3_ohne_Wallbox) {
                Phase_max_A = Phase_2_ohne_Wallbox;
              } else if (Phase_3_ohne_Wallbox >= Phase_1_ohne_Wallbox && Phase_3_ohne_Wallbox >= Phase_2_ohne_Wallbox) {
                Phase_max_A = Phase_3_ohne_Wallbox;
              }
              // Berechnen, Runden und Umrechnen
              Phase_max_mA = (Phasenlimit_in_A - Math.round(Phase_max_A)) * 1000;
              // Ladelimit setzen
              setState('kecontact.0.automatic.limitCurrent' /* limit dynamic charging to this value of amperage (0 = no limitation) */, Phase_max_mA);
            });
            

            Vielleicht kannst du nochmals darüber nachdenken, deine Ladelimitierung auf diese Art umzubauen. bei deiner Variante benötigt man ja auch einen Zähler, es sind also keine weiteren Komponenten nötig und somit allgemein verwendbar. Die Berechnung mit der Phasenlast ist aber wesentlich genauer.
            LG Thomas

            S 1 Antwort Letzte Antwort
            0
            • S Sneak-L8

              @tminimax Ok, das erklärt es. Dann müsstest Du es in der Hardware (DIP-Switches) einstellen.

              T Offline
              T Offline
              tminimax
              schrieb am zuletzt editiert von
              #1130

              @sneak-l8 ok das verstehe ich; nichts desto trotz könnte man die Regulate Wallbox Eintrage nach dem beenden der Ladung reduzieren, indem eine Abfrage mit eingebaut werden würde, die nur Regulate Wallbox sendet, wenn eine Ladung aktiv ist? Wäre das eine Möglichkeit? Danke

              S 1 Antwort Letzte Antwort
              0
              • G gto

                @sneak-l8 Die Phasenlage habe ich heute überprüft, sie ist bei beiden Boxen und beim Zähler ident.
                Ich denke aber dass eine Programmierung gar kein so großer Aufwand ist und auch allgemein funktioniert. Die Idee kam mir von den Einstellmöglichkeiten der P30x. Diese könnte ja die Last regeln, allerdings wird kein Akku wie in deinem Adapter unterstützt, weshalb das nicht nutzbar ist.
                Bei der Keba gibt man als Limit die Ampere der Hauptzählersicherung/Phase an. Vom Wechselrichter kommen die Phasenwerte, diese kann ich mit dem Froniusadapter auch auslesen und als State im Adapter einbinden. Das wären dann die 3 Zählerwerte aus denen sich die Absenkung der Ladeleistung durch den Adapter ergäbe.
                Ich kann mich natürlich auch an einem Script versuchen.

                Blockly ist fertig, falls es jemand benötigt
                Ich rechne von der Phasenlast die geregelte Wallbox weg, ermittle die stärkst belastete Phase und setze die noch möglichen mA ins Current Limit

                <xml xmlns="https://developers.google.com/blockly/xml">
                  <variables>
                    <variable id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</variable>
                    <variable id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</variable>
                    <variable id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</variable>
                    <variable id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</variable>
                    <variable id="14Q~A%n3eqx=_.wh9IJo">Phase max A</variable>
                    <variable id=".vhe63pLski-nVvGA3*.">Phase max mA</variable>
                  </variables>
                  <block type="variables_set" id="E*Vu$_+fuxrGm/d:dGi#" x="265" y="-408">
                    <field name="VAR" id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</field>
                    <value name="VALUE">
                      <block type="math_number" id="gqLBcLSd@@Snb8KlaVTx">
                        <field name="NUM">32</field>
                      </block>
                    </value>
                    <next>
                      <block type="on_ext" id="2s[RmVP})1RW}8|l/6pN">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                        <field name="CONDITION">ne</field>
                        <field name="ACK_CONDITION"></field>
                        <value name="OID0">
                          <shadow type="field_oid" id="$s?)jmdJ!-uBN2*Q%ez]">
                            <field name="oid">fronius.1.meter.0.Current_AC_Sum</field>
                          </shadow>
                        </value>
                        <statement name="STATEMENT">
                          <block type="comment" id="xrjTG/oCpXmHLZ2_%Xek">
                            <field name="COMMENT">Phasenlast ohne Wallbox</field>
                            <next>
                              <block type="variables_set" id="2UprYF$bz9vpLCV#O;W}">
                                <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                <value name="VALUE">
                                  <block type="math_arithmetic" id="/6Na./,HDWbDa%UzOC1v">
                                    <field name="OP">MINUS</field>
                                    <value name="A">
                                      <shadow type="math_number" id="l?cH+*JFd_5keBns9P{y">
                                        <field name="NUM">1</field>
                                      </shadow>
                                      <block type="get_value" id="ow$Xn02]:Vt{wT;tLX%$">
                                        <field name="ATTR">val</field>
                                        <field name="OID">fronius.1.meter.0.Current_AC_Phase_1</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <shadow type="math_number" id="$V4TOE]`|(kA]v;^+:rO">
                                        <field name="NUM">3</field>
                                      </shadow>
                                      <block type="math_arithmetic" id="~Q0)S2hCNGGR@VhsGa#Q">
                                        <field name="OP">DIVIDE</field>
                                        <value name="A">
                                          <shadow type="math_number" id="#Wt81FmAbdWGGZ~D/@}_">
                                            <field name="NUM">1</field>
                                          </shadow>
                                          <block type="get_value" id="R#(k#VwX{#hy;i{0)]Aw">
                                            <field name="ATTR">val</field>
                                            <field name="OID">kecontact.0.i1</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <shadow type="math_number" id="gKnZ{b*!^n~1k.9~12fk">
                                            <field name="NUM">1000</field>
                                          </shadow>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <next>
                                  <block type="variables_set" id="D.i|*TV`Y/6lhWWx^UFo">
                                    <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                    <value name="VALUE">
                                      <block type="math_arithmetic" id="+0nK1=4Hs^BJTJX`)p^s">
                                        <field name="OP">MINUS</field>
                                        <value name="A">
                                          <shadow type="math_number" id="l?cH+*JFd_5keBns9P{y">
                                            <field name="NUM">1</field>
                                          </shadow>
                                          <block type="get_value" id="=bdn8.dOaSZs.tZ]bWRk">
                                            <field name="ATTR">val</field>
                                            <field name="OID">fronius.1.meter.0.Current_AC_Phase_2</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <shadow type="math_number" id="Conwu{[UvbZ_o?[ZFzA0">
                                            <field name="NUM">3</field>
                                          </shadow>
                                          <block type="math_arithmetic" id="KsyRcEjnv~D,aT.AaO(5">
                                            <field name="OP">DIVIDE</field>
                                            <value name="A">
                                              <shadow type="math_number" id="#Wt81FmAbdWGGZ~D/@}_">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="get_value" id="[cc,kYI6Si:@4GdT$acO">
                                                <field name="ATTR">val</field>
                                                <field name="OID">kecontact.0.i2</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <shadow type="math_number" id="YH/lJN3,!RZM+Lk~RJ6+">
                                                <field name="NUM">1000</field>
                                              </shadow>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="variables_set" id="iIiN8[BO)GhwT=D#4r8h">
                                        <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                        <value name="VALUE">
                                          <block type="math_arithmetic" id="OL[0m(n6SBGsa@jf|#wv">
                                            <field name="OP">MINUS</field>
                                            <value name="A">
                                              <shadow type="math_number" id="l?cH+*JFd_5keBns9P{y">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="get_value" id="p5he[kz$J=zaKte5tC}:">
                                                <field name="ATTR">val</field>
                                                <field name="OID">fronius.1.meter.0.Current_AC_Phase_3</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <shadow type="math_number" id="#OBc2iu6EB0f-6h,DIF^">
                                                <field name="NUM">3</field>
                                              </shadow>
                                              <block type="math_arithmetic" id="a$t$272mdh,L.a:xV.5C">
                                                <field name="OP">DIVIDE</field>
                                                <value name="A">
                                                  <shadow type="math_number" id="#Wt81FmAbdWGGZ~D/@}_">
                                                    <field name="NUM">1</field>
                                                  </shadow>
                                                  <block type="get_value" id="fmfn5=3Y64QnYFXSwwKG">
                                                    <field name="ATTR">val</field>
                                                    <field name="OID">kecontact.0.i3</field>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <shadow type="math_number" id="gXLT*%!OJ=zY2~r=hu1}">
                                                    <field name="NUM">1000</field>
                                                  </shadow>
                                                </value>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="comment" id="nW_R=QRFZ^Yqw==W)Z{M">
                                            <field name="COMMENT">stärkste Phase ermitteln</field>
                                            <next>
                                              <block type="controls_if" id="/^G/xAzqu$TM:N!uV/n[">
                                                <mutation elseif="2"></mutation>
                                                <value name="IF0">
                                                  <block type="logic_operation" id="wSICv[-Q?lNdhP4dG-Q$">
                                                    <field name="OP">AND</field>
                                                    <value name="A">
                                                      <block type="logic_compare" id="]GG#?||_/xhy^fdtD1C{">
                                                        <field name="OP">GTE</field>
                                                        <value name="A">
                                                          <block type="variables_get" id="b(0n;E,_%o1^t:kg]e4|">
                                                            <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                                          </block>
                                                        </value>
                                                        <value name="B">
                                                          <block type="variables_get" id="[WOHI2)^!J^WiQx0`I+I">
                                                            <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <block type="logic_compare" id="AS*pUWjhc6leZXY5q5-%">
                                                        <field name="OP">GTE</field>
                                                        <value name="A">
                                                          <block type="variables_get" id="o#g6zHc*Mh._(wi1SLBy">
                                                            <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                                          </block>
                                                        </value>
                                                        <value name="B">
                                                          <block type="variables_get" id="i.*he3j0ou:r^j|6Poj!">
                                                            <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <statement name="DO0">
                                                  <block type="variables_set" id="%_OdKx+xAv*}-*3}U:|4">
                                                    <field name="VAR" id="14Q~A%n3eqx=_.wh9IJo">Phase max A</field>
                                                    <value name="VALUE">
                                                      <block type="variables_get" id="0q|:3|_E+D;{pnf@x5R=">
                                                        <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </statement>
                                                <value name="IF1">
                                                  <block type="logic_operation" id="U7`L+VlDzN*;51c_6$7l">
                                                    <field name="OP">AND</field>
                                                    <value name="A">
                                                      <block type="logic_compare" id="hU_%X:nvg-0OJ|SeFB+E">
                                                        <field name="OP">GTE</field>
                                                        <value name="A">
                                                          <block type="variables_get" id=".qDGa`*fN{5.k?]p^r~m">
                                                            <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                                          </block>
                                                        </value>
                                                        <value name="B">
                                                          <block type="variables_get" id="vuUI(Qt?{f_3v-R_(c)#">
                                                            <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <block type="logic_compare" id="WO^.MTn*u:FU?}Y6b~h(">
                                                        <field name="OP">GTE</field>
                                                        <value name="A">
                                                          <block type="variables_get" id="VLac$(8TaK3oZYU!2lgJ">
                                                            <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                                          </block>
                                                        </value>
                                                        <value name="B">
                                                          <block type="variables_get" id="/Aa0GKiIMG6J(ZP{]ix=">
                                                            <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <statement name="DO1">
                                                  <block type="variables_set" id=":8h6-wJ5|KIR.C25w/UI">
                                                    <field name="VAR" id="14Q~A%n3eqx=_.wh9IJo">Phase max A</field>
                                                    <value name="VALUE">
                                                      <block type="variables_get" id="{/)M;fr,$]$Dhqk0;.1L">
                                                        <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </statement>
                                                <value name="IF2">
                                                  <block type="logic_operation" id="/14}1=0y+?`9kmTKzYdv">
                                                    <field name="OP">AND</field>
                                                    <value name="A">
                                                      <block type="logic_compare" id="Kr~e.)tYz1zg[08):aG7">
                                                        <field name="OP">GTE</field>
                                                        <value name="A">
                                                          <block type="variables_get" id="^Z/?3/X]YpJ[rMFA=w:e">
                                                            <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                                          </block>
                                                        </value>
                                                        <value name="B">
                                                          <block type="variables_get" id="TaU==ET,NVhb]qiW?-o|">
                                                            <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <block type="logic_compare" id="Z6=EoG0]ojqj$4SMUbO|">
                                                        <field name="OP">GTE</field>
                                                        <value name="A">
                                                          <block type="variables_get" id="ru,1qkev|]W7{/;HCdNO">
                                                            <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                                          </block>
                                                        </value>
                                                        <value name="B">
                                                          <block type="variables_get" id="OTSF];r%4ufAlNa((gk*">
                                                            <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <statement name="DO2">
                                                  <block type="variables_set" id="xPyPJ6N_Om]iYL3FQ!!?">
                                                    <field name="VAR" id="14Q~A%n3eqx=_.wh9IJo">Phase max A</field>
                                                    <value name="VALUE">
                                                      <block type="variables_get" id="_xtu8qP#ax*0rD43u%0)">
                                                        <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </statement>
                                                <next>
                                                  <block type="comment" id="BL#hsp^[T3;nI?SD$Crj">
                                                    <field name="COMMENT">Berechnen, Runden und Umrechnen</field>
                                                    <next>
                                                      <block type="variables_set" id=";.-OFI4XTL:1(cUJ2Rop">
                                                        <field name="VAR" id=".vhe63pLski-nVvGA3*.">Phase max mA</field>
                                                        <value name="VALUE">
                                                          <block type="math_arithmetic" id="J6Nk{J9=+uJ%]s.koila">
                                                            <field name="OP">MULTIPLY</field>
                                                            <value name="A">
                                                              <shadow type="math_number" id="Z{Vk|*~/(O0zyg;T@0-q">
                                                                <field name="NUM">1</field>
                                                              </shadow>
                                                              <block type="math_arithmetic" id="xlV)uzos74*Z54_`_vpH">
                                                                <field name="OP">MINUS</field>
                                                                <value name="A">
                                                                  <shadow type="math_number" id="F4``i@tO{@ZsVDVEkX^s">
                                                                    <field name="NUM">1</field>
                                                                  </shadow>
                                                                  <block type="variables_get" id="?,G]_}j/2XK.{I/:SV(x">
                                                                    <field name="VAR" id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</field>
                                                                  </block>
                                                                </value>
                                                                <value name="B">
                                                                  <shadow type="math_number" id=",l%4P_9nAUjj2mNGH[h2">
                                                                    <field name="NUM">1</field>
                                                                  </shadow>
                                                                  <block type="math_round" id="~[yGWn[1a|N5Vd]OFBYo">
                                                                    <field name="OP">ROUND</field>
                                                                    <value name="NUM">
                                                                      <shadow type="math_number" id="{wV8`R=q|7O=$|[gI6_t">
                                                                        <field name="NUM">3.1</field>
                                                                      </shadow>
                                                                      <block type="variables_get" id="bKt:q{5Optbt)`$ca{As">
                                                                        <field name="VAR" id="14Q~A%n3eqx=_.wh9IJo">Phase max A</field>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                            <value name="B">
                                                              <shadow type="math_number" id=".0n_l9PyIGr}lG[(RN7+">
                                                                <field name="NUM">1000</field>
                                                              </shadow>
                                                            </value>
                                                          </block>
                                                        </value>
                                                        <next>
                                                          <block type="comment" id="U4sh$]P1ZTIA(#c;KHG*">
                                                            <field name="COMMENT">Ladelimit setzen</field>
                                                            <next>
                                                              <block type="control" id="T~q1?/]SMOxLPmZ?_S7T">
                                                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                <field name="OID">kecontact.0.automatic.limitCurrent</field>
                                                                <field name="WITH_DELAY">FALSE</field>
                                                                <value name="VALUE">
                                                                  <block type="variables_get" id="U79EJpWJZC^s%^co:P|}">
                                                                    <field name="VAR" id=".vhe63pLski-nVvGA3*.">Phase max mA</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </next>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </statement>
                      </block>
                    </next>
                  </block>
                </xml>
                

                und als Javasctript

                var Phasenlimit_in_A, Phase_1_ohne_Wallbox, Phase_2_ohne_Wallbox, Phase_3_ohne_Wallbox, Phase_max_A, Phase_max_mA;
                
                
                Phasenlimit_in_A = 32;
                on({ id: [].concat(['fronius.1.meter.0.Current_AC_Sum']), change: 'ne' }, async (obj) => {
                  let value = obj.state.val;
                  let oldValue = obj.oldState.val;
                  // Phasenlast ohne Wallbox
                  Phase_1_ohne_Wallbox = getState('fronius.1.meter.0.Current_AC_Phase_1').val - getState('kecontact.0.i1').val / 1000;
                  Phase_2_ohne_Wallbox = getState('fronius.1.meter.0.Current_AC_Phase_2').val - getState('kecontact.0.i2').val / 1000;
                  Phase_3_ohne_Wallbox = getState('fronius.1.meter.0.Current_AC_Phase_3').val - getState('kecontact.0.i3').val / 1000;
                  // stärkste Phase ermitteln
                  if (Phase_1_ohne_Wallbox >= Phase_2_ohne_Wallbox && Phase_1_ohne_Wallbox >= Phase_3_ohne_Wallbox) {
                    Phase_max_A = Phase_1_ohne_Wallbox;
                  } else if (Phase_2_ohne_Wallbox >= Phase_1_ohne_Wallbox && Phase_2_ohne_Wallbox >= Phase_3_ohne_Wallbox) {
                    Phase_max_A = Phase_2_ohne_Wallbox;
                  } else if (Phase_3_ohne_Wallbox >= Phase_1_ohne_Wallbox && Phase_3_ohne_Wallbox >= Phase_2_ohne_Wallbox) {
                    Phase_max_A = Phase_3_ohne_Wallbox;
                  }
                  // Berechnen, Runden und Umrechnen
                  Phase_max_mA = (Phasenlimit_in_A - Math.round(Phase_max_A)) * 1000;
                  // Ladelimit setzen
                  setState('kecontact.0.automatic.limitCurrent' /* limit dynamic charging to this value of amperage (0 = no limitation) */, Phase_max_mA);
                });
                

                Vielleicht kannst du nochmals darüber nachdenken, deine Ladelimitierung auf diese Art umzubauen. bei deiner Variante benötigt man ja auch einen Zähler, es sind also keine weiteren Komponenten nötig und somit allgemein verwendbar. Die Berechnung mit der Phasenlast ist aber wesentlich genauer.
                LG Thomas

                S Offline
                S Offline
                Sneak-L8
                schrieb am zuletzt editiert von
                #1131

                @gto Danke für das ausführliche Skript.
                Ja, im Grunde ist das kein Problem. Drei States für die Stromstärken der einzelnen Phasen und ein Maximalwert, der mit der Wallbox zusammen nicht überschritten werden darf.
                Ich denke, ein Maximalwert über alle Phasen sollte reichen und nicht je Phase, oder?
                Ich schau mal, dass ich mit die nächsten Tage dranmache.

                Zu Deinem Skript: den Maximalwert kannst du auch mit Math.max(Phase_1_ohne_Wallbox, Phase_2_ohne_Wallbox, Phase_3_ohne_Wallbox) ermitteln.

                G 1 Antwort Letzte Antwort
                0
                • T tminimax

                  @sneak-l8 ok das verstehe ich; nichts desto trotz könnte man die Regulate Wallbox Eintrage nach dem beenden der Ladung reduzieren, indem eine Abfrage mit eingebaut werden würde, die nur Regulate Wallbox sendet, wenn eine Ladung aktiv ist? Wäre das eine Möglichkeit? Danke

                  S Offline
                  S Offline
                  Sneak-L8
                  schrieb am zuletzt editiert von
                  #1132

                  @tminimax Ja, ich kann die Logs natürlich reduzieren und z.B. im abgesteckten Zustand die Begrenzungsinfo nur auf Loglevel Debug anstatt Info ausgeben. Aber regulieren würde ich in jedem Fall.
                  Ich weiß ja nicht, wann jemand ein Auto ansteckt. Daher würde ich das Ladelimit (als Überlastschutz) aus Sicherheitsgründen unabhängig von einem angesteckten Auto regeln. Sonst kann es passieren, dass man einige Zeit den Anschluss überlastet, bis die nächste Berechnung (alle 30 Sekunden) stattfindet.

                  T 1 Antwort Letzte Antwort
                  0
                  • S Sneak-L8

                    @tminimax Ja, ich kann die Logs natürlich reduzieren und z.B. im abgesteckten Zustand die Begrenzungsinfo nur auf Loglevel Debug anstatt Info ausgeben. Aber regulieren würde ich in jedem Fall.
                    Ich weiß ja nicht, wann jemand ein Auto ansteckt. Daher würde ich das Ladelimit (als Überlastschutz) aus Sicherheitsgründen unabhängig von einem angesteckten Auto regeln. Sonst kann es passieren, dass man einige Zeit den Anschluss überlastet, bis die nächste Berechnung (alle 30 Sekunden) stattfindet.

                    T Offline
                    T Offline
                    tminimax
                    schrieb am zuletzt editiert von
                    #1133

                    @sneak-l8 ok - das ist ein punkt - soweit habe ich nicht gedacht - gglfs. wirklich nur im log debug...

                    S 1 Antwort Letzte Antwort
                    0
                    • S Sneak-L8

                      @gto Danke für das ausführliche Skript.
                      Ja, im Grunde ist das kein Problem. Drei States für die Stromstärken der einzelnen Phasen und ein Maximalwert, der mit der Wallbox zusammen nicht überschritten werden darf.
                      Ich denke, ein Maximalwert über alle Phasen sollte reichen und nicht je Phase, oder?
                      Ich schau mal, dass ich mit die nächsten Tage dranmache.

                      Zu Deinem Skript: den Maximalwert kannst du auch mit Math.max(Phase_1_ohne_Wallbox, Phase_2_ohne_Wallbox, Phase_3_ohne_Wallbox) ermitteln.

                      G Offline
                      G Offline
                      gto
                      schrieb am zuletzt editiert von gto
                      #1134

                      @sneak-l8 Ja , ein Maximalwert wird angegeben und der gilt für alle Phasen, es sind ja auch immer 3 idente Sicherungen in der Hauptsicherung verbaut.

                      Danke für den Hinweis mit der Maximalberechnung, das baue ich ein. Bin leider nicht so tief in der Programmierung bewandert.

                      Hier die korrigierte Version

                      var Phasenlimit_in_A, Phase_max_A, Phase_1_ohne_Wallbox, Phase_2_ohne_Wallbox, Phase_3_ohne_Wallbox, Phase_max_mA;
                      
                      
                      Phasenlimit_in_A = 32;
                      on({ id: [].concat(['fronius.1.meter.0.Current_AC_Sum']), change: 'ne' }, async (obj) => {
                        let value = obj.state.val;
                        let oldValue = obj.oldState.val;
                        // Phasenlast ohne Wallbox
                        Phase_1_ohne_Wallbox = getState('fronius.1.meter.0.Current_AC_Phase_1').val - getState('kecontact.0.i1').val / 1000;
                        Phase_2_ohne_Wallbox = getState('fronius.1.meter.0.Current_AC_Phase_2').val - getState('kecontact.0.i2').val / 1000;
                        Phase_3_ohne_Wallbox = getState('fronius.1.meter.0.Current_AC_Phase_3').val - getState('kecontact.0.i3').val / 1000;
                        // stärkste Phase ermitteln
                        Phase_max_A = Math.max.apply(null, [Phase_1_ohne_Wallbox, Phase_2_ohne_Wallbox, Phase_3_ohne_Wallbox]);
                        // Berechnen, Runden und Umrechnen
                        Phase_max_mA = (Phasenlimit_in_A - Math.round(Phase_max_A)) * 1000;
                        // Ladelimit setzen
                        setState('kecontact.0.automatic.limitCurrent' /* limit dynamic charging to this value of amperage (0 = no limitation) */, Phase_max_mA);
                      });
                      
                      

                      und Blockly

                      <xml xmlns="https://developers.google.com/blockly/xml">
                        <variables>
                          <variable id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</variable>
                          <variable id="14Q~A%n3eqx=_.wh9IJo">Phase max A</variable>
                          <variable id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</variable>
                          <variable id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</variable>
                          <variable id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</variable>
                          <variable id=".vhe63pLski-nVvGA3*.">Phase max mA</variable>
                        </variables>
                        <block type="variables_set" id="E*Vu$_+fuxrGm/d:dGi#" x="295" y="-363">
                          <field name="VAR" id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</field>
                          <value name="VALUE">
                            <block type="math_number" id="gqLBcLSd@@Snb8KlaVTx">
                              <field name="NUM">32</field>
                            </block>
                          </value>
                          <next>
                            <block type="on_ext" id="2s[RmVP})1RW}8|l/6pN">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                              <field name="CONDITION">ne</field>
                              <field name="ACK_CONDITION"></field>
                              <value name="OID0">
                                <shadow type="field_oid" id="$s?)jmdJ!-uBN2*Q%ez]">
                                  <field name="oid">fronius.1.meter.0.Current_AC_Sum</field>
                                </shadow>
                              </value>
                              <statement name="STATEMENT">
                                <block type="comment" id="xrjTG/oCpXmHLZ2_%Xek">
                                  <field name="COMMENT">Phasenlast ohne Wallbox</field>
                                  <next>
                                    <block type="variables_set" id="2UprYF$bz9vpLCV#O;W}">
                                      <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                      <value name="VALUE">
                                        <block type="math_arithmetic" id="/6Na./,HDWbDa%UzOC1v">
                                          <field name="OP">MINUS</field>
                                          <value name="A">
                                            <shadow type="math_number" id="l?cH+*JFd_5keBns9P{y">
                                              <field name="NUM">1</field>
                                            </shadow>
                                            <block type="get_value" id="ow$Xn02]:Vt{wT;tLX%$">
                                              <field name="ATTR">val</field>
                                              <field name="OID">fronius.1.meter.0.Current_AC_Phase_1</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <shadow type="math_number" id="$V4TOE]`|(kA]v;^+:rO">
                                              <field name="NUM">3</field>
                                            </shadow>
                                            <block type="math_arithmetic" id="~Q0)S2hCNGGR@VhsGa#Q">
                                              <field name="OP">DIVIDE</field>
                                              <value name="A">
                                                <shadow type="math_number" id="#Wt81FmAbdWGGZ~D/@}_">
                                                  <field name="NUM">1</field>
                                                </shadow>
                                                <block type="get_value" id="R#(k#VwX{#hy;i{0)]Aw">
                                                  <field name="ATTR">val</field>
                                                  <field name="OID">kecontact.0.i1</field>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <shadow type="math_number" id="gKnZ{b*!^n~1k.9~12fk">
                                                  <field name="NUM">1000</field>
                                                </shadow>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="variables_set" id="D.i|*TV`Y/6lhWWx^UFo">
                                          <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                          <value name="VALUE">
                                            <block type="math_arithmetic" id="+0nK1=4Hs^BJTJX`)p^s">
                                              <field name="OP">MINUS</field>
                                              <value name="A">
                                                <shadow type="math_number" id="l?cH+*JFd_5keBns9P{y">
                                                  <field name="NUM">1</field>
                                                </shadow>
                                                <block type="get_value" id="=bdn8.dOaSZs.tZ]bWRk">
                                                  <field name="ATTR">val</field>
                                                  <field name="OID">fronius.1.meter.0.Current_AC_Phase_2</field>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <shadow type="math_number" id="Conwu{[UvbZ_o?[ZFzA0">
                                                  <field name="NUM">3</field>
                                                </shadow>
                                                <block type="math_arithmetic" id="KsyRcEjnv~D,aT.AaO(5">
                                                  <field name="OP">DIVIDE</field>
                                                  <value name="A">
                                                    <shadow type="math_number" id="#Wt81FmAbdWGGZ~D/@}_">
                                                      <field name="NUM">1</field>
                                                    </shadow>
                                                    <block type="get_value" id="[cc,kYI6Si:@4GdT$acO">
                                                      <field name="ATTR">val</field>
                                                      <field name="OID">kecontact.0.i2</field>
                                                    </block>
                                                  </value>
                                                  <value name="B">
                                                    <shadow type="math_number" id="YH/lJN3,!RZM+Lk~RJ6+">
                                                      <field name="NUM">1000</field>
                                                    </shadow>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="variables_set" id="iIiN8[BO)GhwT=D#4r8h">
                                              <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                              <value name="VALUE">
                                                <block type="math_arithmetic" id="OL[0m(n6SBGsa@jf|#wv">
                                                  <field name="OP">MINUS</field>
                                                  <value name="A">
                                                    <shadow type="math_number" id="l?cH+*JFd_5keBns9P{y">
                                                      <field name="NUM">1</field>
                                                    </shadow>
                                                    <block type="get_value" id="p5he[kz$J=zaKte5tC}:">
                                                      <field name="ATTR">val</field>
                                                      <field name="OID">fronius.1.meter.0.Current_AC_Phase_3</field>
                                                    </block>
                                                  </value>
                                                  <value name="B">
                                                    <shadow type="math_number" id="#OBc2iu6EB0f-6h,DIF^">
                                                      <field name="NUM">3</field>
                                                    </shadow>
                                                    <block type="math_arithmetic" id="a$t$272mdh,L.a:xV.5C">
                                                      <field name="OP">DIVIDE</field>
                                                      <value name="A">
                                                        <shadow type="math_number" id="#Wt81FmAbdWGGZ~D/@}_">
                                                          <field name="NUM">1</field>
                                                        </shadow>
                                                        <block type="get_value" id="fmfn5=3Y64QnYFXSwwKG">
                                                          <field name="ATTR">val</field>
                                                          <field name="OID">kecontact.0.i3</field>
                                                        </block>
                                                      </value>
                                                      <value name="B">
                                                        <shadow type="math_number" id="gXLT*%!OJ=zY2~r=hu1}">
                                                          <field name="NUM">1000</field>
                                                        </shadow>
                                                      </value>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                              <next>
                                                <block type="comment" id="nW_R=QRFZ^Yqw==W)Z{M">
                                                  <field name="COMMENT">stärkste Phase ermitteln</field>
                                                  <next>
                                                    <block type="variables_set" id="zcPHN?iLq0cMx7pcO!?+">
                                                      <field name="VAR" id="14Q~A%n3eqx=_.wh9IJo">Phase max A</field>
                                                      <value name="VALUE">
                                                        <block type="math_on_list" id="IE:o.]A^D[N|P{Bno.IL">
                                                          <mutation op="MAX"></mutation>
                                                          <field name="OP">MAX</field>
                                                          <value name="LIST">
                                                            <block type="lists_create_with" id="O162NtYNZ~wUA9s=P=]W">
                                                              <mutation items="3"></mutation>
                                                              <value name="ADD0">
                                                                <block type="variables_get" id="W+e.#H?-wT#;7#a~,8)K">
                                                                  <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                                                </block>
                                                              </value>
                                                              <value name="ADD1">
                                                                <block type="variables_get" id="XBD7Ia^DcAO^a;%OZC,x">
                                                                  <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                                                </block>
                                                              </value>
                                                              <value name="ADD2">
                                                                <block type="variables_get" id="G51$^lN6iru6boK_!mT*">
                                                                  <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <next>
                                                        <block type="comment" id="BL#hsp^[T3;nI?SD$Crj">
                                                          <field name="COMMENT">Berechnen, Runden und Umrechnen</field>
                                                          <next>
                                                            <block type="variables_set" id=";.-OFI4XTL:1(cUJ2Rop">
                                                              <field name="VAR" id=".vhe63pLski-nVvGA3*.">Phase max mA</field>
                                                              <value name="VALUE">
                                                                <block type="math_arithmetic" id="J6Nk{J9=+uJ%]s.koila">
                                                                  <field name="OP">MULTIPLY</field>
                                                                  <value name="A">
                                                                    <shadow type="math_number" id="Z{Vk|*~/(O0zyg;T@0-q">
                                                                      <field name="NUM">1</field>
                                                                    </shadow>
                                                                    <block type="math_arithmetic" id="xlV)uzos74*Z54_`_vpH">
                                                                      <field name="OP">MINUS</field>
                                                                      <value name="A">
                                                                        <shadow type="math_number" id="F4``i@tO{@ZsVDVEkX^s">
                                                                          <field name="NUM">1</field>
                                                                        </shadow>
                                                                        <block type="variables_get" id="?,G]_}j/2XK.{I/:SV(x">
                                                                          <field name="VAR" id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="B">
                                                                        <shadow type="math_number" id=",l%4P_9nAUjj2mNGH[h2">
                                                                          <field name="NUM">1</field>
                                                                        </shadow>
                                                                        <block type="math_round" id="~[yGWn[1a|N5Vd]OFBYo">
                                                                          <field name="OP">ROUND</field>
                                                                          <value name="NUM">
                                                                            <shadow type="math_number" id="{wV8`R=q|7O=$|[gI6_t">
                                                                              <field name="NUM">3.1</field>
                                                                            </shadow>
                                                                            <block type="variables_get" id="bKt:q{5Optbt)`$ca{As">
                                                                              <field name="VAR" id="14Q~A%n3eqx=_.wh9IJo">Phase max A</field>
                                                                            </block>
                                                                          </value>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <shadow type="math_number" id=".0n_l9PyIGr}lG[(RN7+">
                                                                      <field name="NUM">1000</field>
                                                                    </shadow>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <next>
                                                                <block type="comment" id="U4sh$]P1ZTIA(#c;KHG*">
                                                                  <field name="COMMENT">Ladelimit setzen</field>
                                                                  <next>
                                                                    <block type="control" id="T~q1?/]SMOxLPmZ?_S7T">
                                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                      <field name="OID">kecontact.0.automatic.limitCurrent</field>
                                                                      <field name="WITH_DELAY">FALSE</field>
                                                                      <value name="VALUE">
                                                                        <block type="variables_get" id="U79EJpWJZC^s%^co:P|}">
                                                                          <field name="VAR" id=".vhe63pLski-nVvGA3*.">Phase max mA</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </statement>
                            </block>
                          </next>
                        </block>
                        <block type="controls_if" id="/^G/xAzqu$TM:N!uV/n[" disabled="true" x="362" y="213">
                          <mutation elseif="2"></mutation>
                          <value name="IF0">
                            <block type="logic_operation" id="wSICv[-Q?lNdhP4dG-Q$">
                              <field name="OP">AND</field>
                              <value name="A">
                                <block type="logic_compare" id="]GG#?||_/xhy^fdtD1C{">
                                  <field name="OP">GTE</field>
                                  <value name="A">
                                    <block type="variables_get" id="b(0n;E,_%o1^t:kg]e4|">
                                      <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="variables_get" id="[WOHI2)^!J^WiQx0`I+I">
                                      <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="B">
                                <block type="logic_compare" id="AS*pUWjhc6leZXY5q5-%">
                                  <field name="OP">GTE</field>
                                  <value name="A">
                                    <block type="variables_get" id="o#g6zHc*Mh._(wi1SLBy">
                                      <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="variables_get" id="i.*he3j0ou:r^j|6Poj!">
                                      <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO0">
                            <block type="variables_set" id="%_OdKx+xAv*}-*3}U:|4">
                              <field name="VAR" id="14Q~A%n3eqx=_.wh9IJo">Phase max A</field>
                              <value name="VALUE">
                                <block type="variables_get" id="0q|:3|_E+D;{pnf@x5R=">
                                  <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                          <value name="IF1">
                            <block type="logic_operation" id="U7`L+VlDzN*;51c_6$7l">
                              <field name="OP">AND</field>
                              <value name="A">
                                <block type="logic_compare" id="hU_%X:nvg-0OJ|SeFB+E">
                                  <field name="OP">GTE</field>
                                  <value name="A">
                                    <block type="variables_get" id=".qDGa`*fN{5.k?]p^r~m">
                                      <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="variables_get" id="vuUI(Qt?{f_3v-R_(c)#">
                                      <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="B">
                                <block type="logic_compare" id="WO^.MTn*u:FU?}Y6b~h(">
                                  <field name="OP">GTE</field>
                                  <value name="A">
                                    <block type="variables_get" id="VLac$(8TaK3oZYU!2lgJ">
                                      <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="variables_get" id="/Aa0GKiIMG6J(ZP{]ix=">
                                      <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO1">
                            <block type="variables_set" id=":8h6-wJ5|KIR.C25w/UI">
                              <field name="VAR" id="14Q~A%n3eqx=_.wh9IJo">Phase max A</field>
                              <value name="VALUE">
                                <block type="variables_get" id="{/)M;fr,$]$Dhqk0;.1L">
                                  <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                          <value name="IF2">
                            <block type="logic_operation" id="/14}1=0y+?`9kmTKzYdv">
                              <field name="OP">AND</field>
                              <value name="A">
                                <block type="logic_compare" id="Kr~e.)tYz1zg[08):aG7">
                                  <field name="OP">GTE</field>
                                  <value name="A">
                                    <block type="variables_get" id="^Z/?3/X]YpJ[rMFA=w:e">
                                      <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="variables_get" id="TaU==ET,NVhb]qiW?-o|">
                                      <field name="VAR" id="9_y3TZ-b(n~=;KGQMbHy">Phase 1 ohne Wallbox</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="B">
                                <block type="logic_compare" id="Z6=EoG0]ojqj$4SMUbO|">
                                  <field name="OP">GTE</field>
                                  <value name="A">
                                    <block type="variables_get" id="ru,1qkev|]W7{/;HCdNO">
                                      <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="variables_get" id="OTSF];r%4ufAlNa((gk*">
                                      <field name="VAR" id="s,uBvtT+|q{)6)SO_[Md">Phase 2 ohne Wallbox</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO2">
                            <block type="variables_set" id="xPyPJ6N_Om]iYL3FQ!!?">
                              <field name="VAR" id="14Q~A%n3eqx=_.wh9IJo">Phase max A</field>
                              <value name="VALUE">
                                <block type="variables_get" id="_xtu8qP#ax*0rD43u%0)">
                                  <field name="VAR" id="B8u[OZEOXEt|YkNhgOxu">Phase 3 ohne Wallbox</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                        </block>
                      </xml>
                      
                      1 Antwort Letzte Antwort
                      0
                      • T tminimax

                        @sneak-l8 ok - das ist ein punkt - soweit habe ich nicht gedacht - gglfs. wirklich nur im log debug...

                        S Offline
                        S Offline
                        Sneak-L8
                        schrieb am zuletzt editiert von
                        #1135

                        @tminimax hab das jetzt mal geändert (Log ins Debug, wenn Leistung limitiert ist und das Fahrzeug nicht angesteckt). Kannst gerne mal testen.

                        T 1 Antwort Letzte Antwort
                        0
                        • S Sneak-L8

                          @tminimax hab das jetzt mal geändert (Log ins Debug, wenn Leistung limitiert ist und das Fahrzeug nicht angesteckt). Kannst gerne mal testen.

                          T Offline
                          T Offline
                          tminimax
                          schrieb am zuletzt editiert von
                          #1136

                          @sneak-l8 kann es sein das da was nicht passt vom "speziall" install pfad oder ist da bei mir was faul?

                          folgender fehler kommt:

                          npm error code 128

                          npm error An unknown git error occurred

                          npm error Warning: Permanently added 'github.com,140.82.121.3' (ECDSA) to the list of known hosts.npm error git@github.com: Permission denied (publickey).npm error fatal: Konnte nicht vom Remote-Repository lesen.npm errornpm error Bitte stellen Sie sicher, dass die korrekten Zugriffsberechtigungen bestehennpm error und das Repository existiert.

                          npm error A complete log of this run can be found in: /home/iobroker/.npm/_logs/2025-02-17T18_10_04_337Z-debug-0.log

                          npm error code 128npm error An unknown git error occurrednpm error command git --no-replace-objects ls-remote ssh://git@github.com/iobroker-community-adapters/ioBroker.kecontact.gitnpm error Warning: Permanently added 'github.com,140.82.121.3' (ECDSA) to the list of known hosts.npm error git@github.com: Permission denied (publickey).npm error fatal: Konnte nicht vom Remote-Repository lesen.npm errornpm error Bitte stellen Sie sicher, dass die korrekten Zugriffsberechtigungen bestehennpm error und das Repository existiert.npm error A complete log of this run can be found in: /home/iobroker/.npm/_logs/2025-02-17T18_10_04_337Z-debug-0.log

                          host.ioBroker Cannot install iobroker-community-adapters/ioBroker.kecontact#new-core-base: 128

                          ERROR: Process exited with code 25

                          S 1 Antwort Letzte Antwort
                          0
                          • T tminimax

                            @sneak-l8 kann es sein das da was nicht passt vom "speziall" install pfad oder ist da bei mir was faul?

                            folgender fehler kommt:

                            npm error code 128

                            npm error An unknown git error occurred

                            npm error Warning: Permanently added 'github.com,140.82.121.3' (ECDSA) to the list of known hosts.npm error git@github.com: Permission denied (publickey).npm error fatal: Konnte nicht vom Remote-Repository lesen.npm errornpm error Bitte stellen Sie sicher, dass die korrekten Zugriffsberechtigungen bestehennpm error und das Repository existiert.

                            npm error A complete log of this run can be found in: /home/iobroker/.npm/_logs/2025-02-17T18_10_04_337Z-debug-0.log

                            npm error code 128npm error An unknown git error occurrednpm error command git --no-replace-objects ls-remote ssh://git@github.com/iobroker-community-adapters/ioBroker.kecontact.gitnpm error Warning: Permanently added 'github.com,140.82.121.3' (ECDSA) to the list of known hosts.npm error git@github.com: Permission denied (publickey).npm error fatal: Konnte nicht vom Remote-Repository lesen.npm errornpm error Bitte stellen Sie sicher, dass die korrekten Zugriffsberechtigungen bestehennpm error und das Repository existiert.npm error A complete log of this run can be found in: /home/iobroker/.npm/_logs/2025-02-17T18_10_04_337Z-debug-0.log

                            host.ioBroker Cannot install iobroker-community-adapters/ioBroker.kecontact#new-core-base: 128

                            ERROR: Process exited with code 25

                            S Offline
                            S Offline
                            Sneak-L8
                            schrieb am zuletzt editiert von
                            #1137

                            @tminimax oh, ich hab vergessen zu erwähnen, dass ich den Branch auf master zurück gemergt habe. Bitte wieder Master nehmen (geht also mit Reiter git)

                            G 1 Antwort Letzte Antwort
                            0
                            • S Sneak-L8

                              @tminimax oh, ich hab vergessen zu erwähnen, dass ich den Branch auf master zurück gemergt habe. Bitte wieder Master nehmen (geht also mit Reiter git)

                              G Offline
                              G Offline
                              gto
                              schrieb am zuletzt editiert von gto
                              #1138

                              @sneak-l8
                              Habe mein Script noch etwas gekürzt

                              Blockly

                              <xml xmlns="https://developers.google.com/blockly/xml">
                                <variables>
                                  <variable id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</variable>
                                </variables>
                                <block type="variables_set" id="E*Vu$_+fuxrGm/d:dGi#" x="23" y="-354">
                                  <field name="VAR" id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</field>
                                  <value name="VALUE">
                                    <block type="math_number" id="gqLBcLSd@@Snb8KlaVTx">
                                      <field name="NUM">32</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="on_ext" id="2s[RmVP})1RW}8|l/6pN">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                      <field name="CONDITION">ne</field>
                                      <field name="ACK_CONDITION"></field>
                                      <value name="OID0">
                                        <shadow type="field_oid" id="$s?)jmdJ!-uBN2*Q%ez]">
                                          <field name="oid">fronius.1.meter.0.Current_AC_Sum</field>
                                        </shadow>
                                      </value>
                                      <statement name="STATEMENT">
                                        <block type="control" id="T~q1?/]SMOxLPmZ?_S7T">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                          <field name="OID">kecontact.0.automatic.limitCurrent</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE">
                                            <block type="math_arithmetic" id="J6Nk{J9=+uJ%]s.koila">
                                              <field name="OP">MULTIPLY</field>
                                              <value name="A">
                                                <shadow type="math_number" id="Z{Vk|*~/(O0zyg;T@0-q">
                                                  <field name="NUM">1</field>
                                                </shadow>
                                                <block type="math_arithmetic" id="xlV)uzos74*Z54_`_vpH">
                                                  <field name="OP">MINUS</field>
                                                  <value name="A">
                                                    <shadow type="math_number" id="F4``i@tO{@ZsVDVEkX^s">
                                                      <field name="NUM">1</field>
                                                    </shadow>
                                                    <block type="variables_get" id="?,G]_}j/2XK.{I/:SV(x">
                                                      <field name="VAR" id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</field>
                                                    </block>
                                                  </value>
                                                  <value name="B">
                                                    <shadow type="math_number" id=",l%4P_9nAUjj2mNGH[h2">
                                                      <field name="NUM">1</field>
                                                    </shadow>
                                                    <block type="math_round" id="~[yGWn[1a|N5Vd]OFBYo">
                                                      <field name="OP">ROUND</field>
                                                      <value name="NUM">
                                                        <shadow type="math_number" id="{wV8`R=q|7O=$|[gI6_t">
                                                          <field name="NUM">3.1</field>
                                                        </shadow>
                                                        <block type="math_on_list" id="IE:o.]A^D[N|P{Bno.IL">
                                                          <mutation op="MAX"></mutation>
                                                          <field name="OP">MAX</field>
                                                          <value name="LIST">
                                                            <block type="lists_create_with" id="O162NtYNZ~wUA9s=P=]W">
                                                              <mutation items="3"></mutation>
                                                              <value name="ADD0">
                                                                <block type="get_value" id="ow$Xn02]:Vt{wT;tLX%$">
                                                                  <field name="ATTR">val</field>
                                                                  <field name="OID">fronius.1.meter.0.Current_AC_Phase_1</field>
                                                                </block>
                                                              </value>
                                                              <value name="ADD1">
                                                                <block type="get_value" id="=bdn8.dOaSZs.tZ]bWRk">
                                                                  <field name="ATTR">val</field>
                                                                  <field name="OID">fronius.1.meter.0.Current_AC_Phase_2</field>
                                                                </block>
                                                              </value>
                                                              <value name="ADD2">
                                                                <block type="get_value" id="p5he[kz$J=zaKte5tC}:">
                                                                  <field name="ATTR">val</field>
                                                                  <field name="OID">fronius.1.meter.0.Current_AC_Phase_3</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <shadow type="math_number" id=".0n_l9PyIGr}lG[(RN7+">
                                                  <field name="NUM">1000</field>
                                                </shadow>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </statement>
                                    </block>
                                  </next>
                                </block>
                              </xml>
                              

                              und Javascript

                              var Phasenlimit_in_A;
                              Phasenlimit_in_A = 32;
                              on({ id: [].concat(['fronius.1.meter.0.Current_AC_Sum']), change: 'ne' }, async (obj) => {
                                let value = obj.state.val;
                                let oldValue = obj.oldState.val;
                                setState('kecontact.0.automatic.limitCurrent' /* limit dynamic charging to this value of amperage (0 = no limitation) */, ((Phasenlimit_in_A - Math.round(Math.max.apply(null, [getState('fronius.1.meter.0.Current_AC_Phase_1').val, getState('fronius.1.meter.0.Current_AC_Phase_2').val, getState('fronius.1.meter.0.Current_AC_Phase_3').val]))) * 1000));
                              });
                              
                              
                              S 1 Antwort Letzte Antwort
                              0
                              • G gto

                                @sneak-l8
                                Habe mein Script noch etwas gekürzt

                                Blockly

                                <xml xmlns="https://developers.google.com/blockly/xml">
                                  <variables>
                                    <variable id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</variable>
                                  </variables>
                                  <block type="variables_set" id="E*Vu$_+fuxrGm/d:dGi#" x="23" y="-354">
                                    <field name="VAR" id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</field>
                                    <value name="VALUE">
                                      <block type="math_number" id="gqLBcLSd@@Snb8KlaVTx">
                                        <field name="NUM">32</field>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="on_ext" id="2s[RmVP})1RW}8|l/6pN">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                        <field name="CONDITION">ne</field>
                                        <field name="ACK_CONDITION"></field>
                                        <value name="OID0">
                                          <shadow type="field_oid" id="$s?)jmdJ!-uBN2*Q%ez]">
                                            <field name="oid">fronius.1.meter.0.Current_AC_Sum</field>
                                          </shadow>
                                        </value>
                                        <statement name="STATEMENT">
                                          <block type="control" id="T~q1?/]SMOxLPmZ?_S7T">
                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                            <field name="OID">kecontact.0.automatic.limitCurrent</field>
                                            <field name="WITH_DELAY">FALSE</field>
                                            <value name="VALUE">
                                              <block type="math_arithmetic" id="J6Nk{J9=+uJ%]s.koila">
                                                <field name="OP">MULTIPLY</field>
                                                <value name="A">
                                                  <shadow type="math_number" id="Z{Vk|*~/(O0zyg;T@0-q">
                                                    <field name="NUM">1</field>
                                                  </shadow>
                                                  <block type="math_arithmetic" id="xlV)uzos74*Z54_`_vpH">
                                                    <field name="OP">MINUS</field>
                                                    <value name="A">
                                                      <shadow type="math_number" id="F4``i@tO{@ZsVDVEkX^s">
                                                        <field name="NUM">1</field>
                                                      </shadow>
                                                      <block type="variables_get" id="?,G]_}j/2XK.{I/:SV(x">
                                                        <field name="VAR" id="MU8;yslk(B7(Tv%sqWM=">Phasenlimit in A</field>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <shadow type="math_number" id=",l%4P_9nAUjj2mNGH[h2">
                                                        <field name="NUM">1</field>
                                                      </shadow>
                                                      <block type="math_round" id="~[yGWn[1a|N5Vd]OFBYo">
                                                        <field name="OP">ROUND</field>
                                                        <value name="NUM">
                                                          <shadow type="math_number" id="{wV8`R=q|7O=$|[gI6_t">
                                                            <field name="NUM">3.1</field>
                                                          </shadow>
                                                          <block type="math_on_list" id="IE:o.]A^D[N|P{Bno.IL">
                                                            <mutation op="MAX"></mutation>
                                                            <field name="OP">MAX</field>
                                                            <value name="LIST">
                                                              <block type="lists_create_with" id="O162NtYNZ~wUA9s=P=]W">
                                                                <mutation items="3"></mutation>
                                                                <value name="ADD0">
                                                                  <block type="get_value" id="ow$Xn02]:Vt{wT;tLX%$">
                                                                    <field name="ATTR">val</field>
                                                                    <field name="OID">fronius.1.meter.0.Current_AC_Phase_1</field>
                                                                  </block>
                                                                </value>
                                                                <value name="ADD1">
                                                                  <block type="get_value" id="=bdn8.dOaSZs.tZ]bWRk">
                                                                    <field name="ATTR">val</field>
                                                                    <field name="OID">fronius.1.meter.0.Current_AC_Phase_2</field>
                                                                  </block>
                                                                </value>
                                                                <value name="ADD2">
                                                                  <block type="get_value" id="p5he[kz$J=zaKte5tC}:">
                                                                    <field name="ATTR">val</field>
                                                                    <field name="OID">fronius.1.meter.0.Current_AC_Phase_3</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <shadow type="math_number" id=".0n_l9PyIGr}lG[(RN7+">
                                                    <field name="NUM">1000</field>
                                                  </shadow>
                                                </value>
                                              </block>
                                            </value>
                                          </block>
                                        </statement>
                                      </block>
                                    </next>
                                  </block>
                                </xml>
                                

                                und Javascript

                                var Phasenlimit_in_A;
                                Phasenlimit_in_A = 32;
                                on({ id: [].concat(['fronius.1.meter.0.Current_AC_Sum']), change: 'ne' }, async (obj) => {
                                  let value = obj.state.val;
                                  let oldValue = obj.oldState.val;
                                  setState('kecontact.0.automatic.limitCurrent' /* limit dynamic charging to this value of amperage (0 = no limitation) */, ((Phasenlimit_in_A - Math.round(Math.max.apply(null, [getState('fronius.1.meter.0.Current_AC_Phase_1').val, getState('fronius.1.meter.0.Current_AC_Phase_2').val, getState('fronius.1.meter.0.Current_AC_Phase_3').val]))) * 1000));
                                });
                                
                                
                                S Offline
                                S Offline
                                Sneak-L8
                                schrieb am zuletzt editiert von
                                #1139

                                @gto Danke für die Skripte, ich hatte aber schon das Meiste programmiert. Jetzt steht eine guthub-Version bereit, die auch eine Limitierung auf einen bestimmten wert je Phase zulässt.
                                Bitte einfach mal testen, mein energyMeter liefert keine Ampere-Werte und wollte die jetzt auch nicht berechnen lassen.

                                G 1 Antwort Letzte Antwort
                                0
                                • S Sneak-L8

                                  @gto Danke für die Skripte, ich hatte aber schon das Meiste programmiert. Jetzt steht eine guthub-Version bereit, die auch eine Limitierung auf einen bestimmten wert je Phase zulässt.
                                  Bitte einfach mal testen, mein energyMeter liefert keine Ampere-Werte und wollte die jetzt auch nicht berechnen lassen.

                                  G Offline
                                  G Offline
                                  gto
                                  schrieb am zuletzt editiert von gto
                                  #1140

                                  @sneak-l8 Hallo Sneak, danke für die Arbeit. Es hat sich noch ein Fehler eingeschlichen. LimitCurrent bleibt immer auf auf einem konstanten Wert, egal was die Phasen für Werte haben.

                                  Habe im debug-log gesehen, dass ein Eintrag "wallbox set to charging maximum of 7000 mA" kommt. Dieser Wert wäre richtig, er wird aber nicht in "limitCurrent" geschrieben. Regelst du über einen anderen Datenpunkt?

                                  Habe gerade gesehen, dass du über CurrentUser regelst. Hier scheint es korrekt zu laufen. Ich muss aber noch warten bis ein KFZ lädt.

                                  S 1 Antwort Letzte Antwort
                                  0
                                  • G gto

                                    @sneak-l8 Hallo Sneak, danke für die Arbeit. Es hat sich noch ein Fehler eingeschlichen. LimitCurrent bleibt immer auf auf einem konstanten Wert, egal was die Phasen für Werte haben.

                                    Habe im debug-log gesehen, dass ein Eintrag "wallbox set to charging maximum of 7000 mA" kommt. Dieser Wert wäre richtig, er wird aber nicht in "limitCurrent" geschrieben. Regelst du über einen anderen Datenpunkt?

                                    Habe gerade gesehen, dass du über CurrentUser regelst. Hier scheint es korrekt zu laufen. Ich muss aber noch warten bis ein KFZ lädt.

                                    S Offline
                                    S Offline
                                    Sneak-L8
                                    schrieb am zuletzt editiert von
                                    #1141

                                    @gto Ah, ok. Ich hatte gerade danach geschaut und dachte, dass es eigentlich passen muss. Hab das Debug-Log nun auch um die Einzelwerte für die Ampere-Berechnung ergänzt.
                                    Aber ja, limitCurrent ist für Dich. Dort kannst dem Adapter dynamisch eine (zusätzliche) Begrenzung mitteilen.
                                    Wenn Du den wert brauchst, könnte ich ihn höchstens als weiteren State (wie maxPower) unter statistics ausgeben.

                                    G 1 Antwort Letzte Antwort
                                    0
                                    • S Sneak-L8

                                      @gto Ah, ok. Ich hatte gerade danach geschaut und dachte, dass es eigentlich passen muss. Hab das Debug-Log nun auch um die Einzelwerte für die Ampere-Berechnung ergänzt.
                                      Aber ja, limitCurrent ist für Dich. Dort kannst dem Adapter dynamisch eine (zusätzliche) Begrenzung mitteilen.
                                      Wenn Du den wert brauchst, könnte ich ihn höchstens als weiteren State (wie maxPower) unter statistics ausgeben.

                                      G Offline
                                      G Offline
                                      gto
                                      schrieb am zuletzt editiert von gto
                                      #1142

                                      @sneak-l8 Noch eine Verständnisfrage für die Testung.
                                      Regelst du immer oder nur wenn an der Wallbox ein Auto lädt?
                                      Die Hardwarelimitierung über die DIP-Schalter ist die Obergrenze für currentUser?

                                      LimitCurrent benötige ich nicht.

                                      S 1 Antwort Letzte Antwort
                                      0
                                      • G gto

                                        @sneak-l8 Noch eine Verständnisfrage für die Testung.
                                        Regelst du immer oder nur wenn an der Wallbox ein Auto lädt?
                                        Die Hardwarelimitierung über die DIP-Schalter ist die Obergrenze für currentUser?

                                        LimitCurrent benötige ich nicht.

                                        S Offline
                                        S Offline
                                        Sneak-L8
                                        schrieb am zuletzt editiert von
                                        #1143

                                        @gto Siehe Post #1133 - ich regle immer, da ich nicht weiß, wann ein Fahrzeug angesteckt wird und dann die Wallbox bereits runtergeregelt sein sollte.
                                        Ja, das "Standardlimit" ist currentHardware, ein anderes Limit kenne ich nicht.

                                        G 2 Antworten Letzte Antwort
                                        0
                                        • S Sneak-L8

                                          @gto Siehe Post #1133 - ich regle immer, da ich nicht weiß, wann ein Fahrzeug angesteckt wird und dann die Wallbox bereits runtergeregelt sein sollte.
                                          Ja, das "Standardlimit" ist currentHardware, ein anderes Limit kenne ich nicht.

                                          G Offline
                                          G Offline
                                          gto
                                          schrieb am zuletzt editiert von
                                          #1144

                                          @sneak-l8 Danke, ich teste wenn der Hybrid zuhause ist und gebe dann Bescheid

                                          1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          714

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe