Navigation

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

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Kalkulation

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

      Hi
      nachdem das heute so gut läuft, noch eine Frage zu meiner Kalkulation mit der Wallbox.

      Ziel, die Ausregelung des Ladestrom, damit der Stromzähler um 0 tanzt.

      Die Wallbox kann nur in 1A Schritte verändert werden, egal ob 1 oder 3 Phasen geladen wird.

      die Kalkulation ist die aktuelle Ladeleistung (bzw. Strom von der Wallbox) und dazu plus/minus die Leistung (also A), die der Stromzähler von 0W entfernt ist.
      Der Ladestrom soll so gewählt werden, dass der Stromzähler leicht im Minus ist (Lieferung), dh bei Bezug (pos. Wert am Stromzähler) sofort 1A weniger bzw. was notwendig ist um wieder in die Lieferung zu kommen. Bei schnellen Änderungen an der PV (Wolke) sind die Leistungsschwankungen sehr groß!
      Somit ergibt sich eine Totzone leicht im Minus, abhängig ob 1P oder 3P geladen wird von 230W bzw. 690W.

      Wie würdet ihr das machen?

      Am Rande erwähnt, die erzeugte Leistung von der PV kann nicht als die zur Verfügung stehende Leistung genommen werden, es hängen noch andere Verbraucher am Kabel und somit ist der einzige Bezugspunkt, der Stromzähler selbst. Aber, wenn keine PV mehr da ist, wird die Ladung gestoppt (das ist unabhängig von der Berechnung).
      Die Wallbox bzw. das E-Auto haben Verluste. dh wenn mit 1kW geladen wird, werden gleich mal 1,2kW benötigt. Das sollte aber auch egal sein, da ja nur auf den Zähler geschaut wird, die Wallbox, dann nur einen Ladestrom bekommt.

      Humidor haus-automatisierung 2 Replies Last reply Reply Quote 0
      • Humidor
        Humidor @Humidor last edited by

        das wäre mein erster Wurf
        Bildschirmfoto 2024-11-25 um 18.31.54.png


        <block xmlns="https://developers.google.com/blockly/xml" type="on" id="ZcwWGEgPws}k{%#,:4,R" x="1912.1236328124994" y="-1037.5600195312495">
        <field name="OID">alias.0.EM24 Hall Grid.Power</field>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <statement name="STATEMENT">
        <block type="controls_if" id="Q!L,]fM|Ab.Y12Zu[+">
        <value name="IF0">
        <block type="logic_multi_and" id="J|fNusKL|JvU+8iqa,b[">
        <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
        <value name="AND1">
        <block type="logic_negate" id=".9|.qQ7E2}%dT,(Cx%T"> <value name="BOOL"> <block type="timeouts_gettimeout" id=");$4V_ixtm1Vqnl{j@M">
        <field name="NAME">Timeout</field>
        </block>
        </value>
        </block>
        </value>
        </block>
        </value>
        <statement name="DO0">
        <block type="comment" id=";?OQMI:2n98YB7vEVLP_">
        <field name="COMMENT">aktueller Zählerwert</field>
        <next>
        <block type="variables_set" id="+RZKMfqayMH8Bp(mBYe">
        <field name="VAR" id="Uq?GG7OuSe
        sBZ+;9EZ]">Calculation</field>
        <value name="VALUE">
        <block type="math_arithmetic" id="f;PGLmd0ub+qUf]qU"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="TZ7Xjxruc2S5.ZZn*%XW"> <field name="NUM">1</field> </shadow> <block type="on_source" id="0L-1SZ#,;5%yAxV|BKJY"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <shadow type="math_number" id="/}m3-14$6?:V*{/uPeiu"> <field name="NUM">-1</field> </shadow> </value> </block> </value> <next> <block type="comment" id="x:kbIvNyLyy_Zfl~VX:/"> <field name="COMMENT">1P/3P - Offset und berechne den Stromwert</field> <next> <block type="controls_if" id="JM2^/+b%t$c7~-?]*CVg"> <mutation else="1"></mutation> <value name="IF0"> <block type="get_value" id="fC26sbENo5R9-+DxhleS"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.go-e_V4.3P_V4</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="C6kS3-xfi@$8~?[RR(!G"> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> <value name="VALUE"> <block type="math_arithmetic" id="%lE}qR:sje#{hK$}s%.b"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="!S*l{4WNR{QkvvPrK-Z6"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="(Sm):$=!%SpAUOH[$M#}"> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> </block> </value> <value name="B"> <shadow type="math_number" id="Tfb2R7B.qc#?4Obh-/|7"> <field name="NUM">690</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="|7Gv!8i%Faoft%!$T2"> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> <value name="VALUE"> <block type="math_arithmetic" id=",Kd+rafXE5RAvhLVpZ?K"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="!S*l{4WNR{QkvvPrK-Z6"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="W]DrcePaHsQCGnit}LRI"> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> </block> </value> <value name="B"> <shadow type="math_number" id="7#aUl=^n^^7si5OJ%P">
        <field name="NUM">230</field>
        </shadow>
        </value>
        </block>
        </value>
        <next>
        <block type="variables_set" id="0pdf}h%]U;[ktxX^]73"> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> <value name="VALUE"> <block type="math_arithmetic" id="Ckt2b+J/1ltf1$~#hE+3"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="!S*l{4WNR{QkvvPrK-Z6"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="m7oRPz|yGiUwI|O.K7j="> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> </block> </value> <value name="B"> <shadow type="math_number" id="c=xDgFMl2,W$~om{r$i|"> <field name="NUM">3</field> </shadow> </value> </block> </value> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="|3fP@2[N@az(l,Ls;#v9"> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> <value name="VALUE"> <block type="math_arithmetic" id="[y8?Td#TNTZvK5p[.%St"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="!S*l{4WNR{QkvvPrK-Z6"> <field name="NUM">1</field> </shadow> <block type="variables_get" id=":Wm1/$2if%Kkkvi669t["> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> </block> </value> <value name="B"> <shadow type="math_number" id="}{LIGeHWmd9s,TfEgas!"> <field name="NUM">230</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="N0eN.sr-+ByO)N*wSt{q"> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> <value name="VALUE"> <block type="math_arithmetic" id=")dXn:i#Q)rNu]3DycX"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="!S*l{4WNR{QkvvPrK-Z6"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="/QzqESY+9f9@-2cS}Rtp"> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> </block> </value> <value name="B"> <shadow type="math_number" id="S521-|#:Vgrv1K+J+DvW"> <field name="NUM">230</field> </shadow> </value> </block> </value> </block> </next> </block> </statement> <next> <block type="variables_set" id="{TXAxh9paKHSHN+jYt1M"> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> <value name="VALUE"> <block type="math_round" id="ciKfUkbN]7[{qaa.8i]P"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="d%BD*^KT^DG.9-,OsH}5"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="2NHkYcl=aWJK,?CN6Q{">
        <field name="OP">MINUS</field>
        <value name="A">
        <shadow type="math_number" id=":{MDqMcxlNe;:U9cC[,x">
        <field name="NUM">1</field>
        </shadow>
        <block type="variables_get" id="F7]/k+F+~8Jo5.OM{?
        .">
        <field name="VAR" id="Uq?GG7OuSesBZ+;9EZ]">Calculation</field>
        </block>
        </value>
        <value name="B">
        <shadow type="math_number" id="?18z%fCf$/1_hn1f#vJk">
        <field name="NUM">0.5</field>
        </shadow>
        </value>
        </block>
        </value>
        </block>
        </value>
        <next>
        <block type="variables_set" id="84vD/4V+4k127Cv5|$">
        <field name="VAR" id="t5??8e4;=ZX=-n95w]yK">CalculationLess</field>
        <value name="VALUE">
        <block type="math_arithmetic" id="qBv~@iv!D.h3==!,6{#5" inline="false">
        <field name="OP">ADD</field>
        <value name="A">
        <shadow type="math_number" id="e3L7#{Kk%$(6w4H-8X8"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="Kd@a8$v)1p{})vWHR/24"> <field name="VAR" id="t5??8e4;=ZX=-n95w]yK">CalculationLess</field> </block> </value> <value name="B"> <shadow type="math_number" id="uFWGW##23Jj/MI~dgOY^"> <field name="NUM">1</field> </shadow> <block type="get_value" id="7e=][mi6Bx}#mtA57-D."> <field name="ATTR">val</field> <field name="OID">go-e.1.amperePV</field> </block> </value> </block> </value> <next> <block type="controls_if" id="ooS%zj(_U~[.D8vpVi.k"> <mutation else="1"></mutation> <value name="IF0"> <block type="get_value" id="Y}?XFPb:rl(LSoWi;H8N"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.go-e_V4.3P_V4</field> </block> </value> <statement name="DO0"> <block type="variables_set" id=").auOX]+y])%.$0vpPU3"> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> <value name="VALUE"> <block type="math_constrain" id="z7V)#Q]=I+==lTFWR-gB" inline="false"> <value name="VALUE"> <shadow type="math_number" id="eR65zTa*V,6riG6cYqbv"> <field name="NUM">50</field> </shadow> <block type="variables_get" id="Ie|rBTU/6E,]uM+Ou}A">
        <field name="VAR" id="Uq?GG7OuSe
        sBZ+;9EZ]">Calculation</field>
        </block>
        </value>
        <value name="LOW">
        <shadow type="math_number" id="m9~q9[%Jv^ir6)=9QUXB">
        <field name="NUM">1</field>
        </shadow>
        <block type="get_value" id=";YGlS9Dr_slv*/PXLyHx">
        <field name="ATTR">val</field>
        <field name="OID">0_userdata.0.go-e_V4.minA_3P_V4</field>
        </block>
        </value>
        <value name="HIGH">
        <shadow type="math_number" id="qLDS{TzaO]Ns5;4cHB=-">
        <field name="NUM">100</field>
        </shadow>
        <block type="get_value" id="psZG;S-k^JN/=675Uk6K">
        <field name="ATTR">val</field>
        <field name="OID">0_userdata.0.go-e_V4.maxA_3P_V4</field>
        </block>
        </value>
        </block>
        </value>
        </block>
        </statement>
        <statement name="ELSE">
        <block type="variables_set" id="UT4c1.l39GET@/V=Kl/3">
        <field name="VAR" id="Uq?GG7OuSesBZ+;9EZ]">Calculation</field>
        <value name="VALUE">
        <block type="math_constrain" id="o~.dz8!B?rr[CT#+t!=" inline="false"> <value name="VALUE"> <shadow type="math_number" id="en0quK!U+xdOhd!th*2!"> <field name="NUM">50</field> </shadow> <block type="variables_get" id="}adAX?G.O(l~_y_:9PGV"> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> </block> </value> <value name="LOW"> <shadow type="math_number" id=";r%Gu^(V3azm2T%A7JfX"> <field name="NUM">1</field> </shadow> <block type="get_value" id="FuMvH};+pO/a{]l5o9KW"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.go-e_V4.minA_1P_V4</field> </block> </value> <value name="HIGH"> <shadow type="math_number" id="-.TsOvrhWuXJYohr%T^."> <field name="NUM">100</field> </shadow> <block type="get_value" id="5+$%+H4:?4+4UO(eO~BU"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.go-e_V4.maxA_1P_V4</field> </block> </value> </block> </value> </block> </statement> <next> <block type="controls_if" id="ewvm*{%7lvDEI8u@)j;">
        <mutation elseif="1" else="1"></mutation>
        <value name="IF0">
        <block type="logic_compare" id="]=NMtsY
        d,Fvp?MoZ^/~">
        <field name="OP">LT</field>
        <value name="A">
        <block type="variables_get" id="B4f9IHI9z-BfWDB8fGbH">
        <field name="VAR" id="Uq?GG7OuSesBZ+;9EZ]">Calculation</field>
        </block>
        </value>
        <value name="B">
        <block type="get_value" id="Q#lT%L.i!x5TN.RKe9E">
        <field name="ATTR">val</field>
        <field name="OID">go-e.1.amperePV</field>
        </block>
        </value>
        </block>
        </value>
        <statement name="DO0">
        <block type="control" id="5Wrga;F7.uSGrY)s]QG"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">go-e.1.amperePV</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Hau0b7SytF-M6.kaDmHj"> <field name="VAR" id="Uq?GG7OuSe*sBZ+;9EZ]">Calculation</field> </block> </value> <next> <block type="timeouts_settimeout" id=",;jT3(dF_A4le?+a4D]D"> <field name="NAME">Timeout</field> <field name="DELAY">2</field> <field name="UNIT">sec</field> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id=":hN6Nog*fG.m)F$.r-P">
        <field name="OP">GT</field>
        <value name="A">
        <block type="variables_get" id="d~R]vaxQwK80}zaokWY">
        <field name="VAR" id="Uq?GG7OuSe
        sBZ+;9EZ]">Calculation</field>
        </block>
        </value>
        <value name="B">
        <block type="get_value" id="|0)~B
        c%e(He04f;!8,
        ">
        <field name="ATTR">val</field>
        <field name="OID">go-e.1.amperePV</field>
        </block>
        </value>
        </block>
        </value>
        <statement name="DO1">
        <block type="control" id="?(48J-S]jCf,H=Hdt!21">
        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
        <field name="OID">go-e.1.amperePV</field>
        <field name="WITH_DELAY">FALSE</field>
        <value name="VALUE">
        <block type="variables_get" id="8l~o(ONhAjpl,@.Rsu9">
        <field name="VAR" id="Uq?GG7OuSe
        sBZ+;9EZ]">Calculation</field>
        </block>
        </value>
        <next>
        <block type="timeouts_settimeout" id="pW|gQc*#j_Vt,.*[x2aa">
        <field name="NAME">Timeout2</field>
        <field name="DELAY">5</field>
        <field name="UNIT">sec</field>
        </block>
        </next>
        </block>
        </statement>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </statement>
        </block>
        </statement>
        </block>

        Trigger auf den Stromzähler
        Stromzählerwert negieren, damit bei Bezug der berechnete Strom abgezogen wird
        Offset, damit der neue Ladestrom im Minus ist
        den Strom pro Phase abhängig von 1P oder 3P Ladung berechnen
        zum aktuellen Ladestrom aufrechnen
        Begrenzungen
        bei Änderung neuen Ladestrom setzen und Timeout

        1 Reply Last reply Reply Quote 0
        • haus-automatisierung
          haus-automatisierung Developer Most Active @Humidor last edited by

          @humidor sagte in Kalkulation:

          Wie würdet ihr das machen?

          evcc installieren und nutzen. Und dann die Daten per mqtt in den ioBroker bringen (falls gewünscht).

          Dort kann man alles erdenkliche konfigurieren. Auch Phasenumschaltung usw. Nutze ich seit ein paar Jahren und bin sehr zufrieden.

          Humidor 1 Reply Last reply Reply Quote 2
          • Humidor
            Humidor @haus-automatisierung last edited by Humidor

            @haus-automatisierung evcc habe ich vor Jahren probiert, bin dann weg
            worauf installieren, mein ioBroker läuft auf der Syno im Docker
            das Problem mit evcc war damals, dass es krass in den Bezug geregelt hat und das will ich nicht haben. und ist da nicht jetzt was mit einem Abbo?

            haus-automatisierung 1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @Humidor last edited by

              @humidor evcc läuft doch auch wunderbar als Docker Container. Hab ich damals auch auf YouTube gezeigt.

              Ja, gute Software darf auch etwas kosten. Hab damals 150€ gespendet für 3 Lifetime Lizenzen

              Humidor 1 Reply Last reply Reply Quote 1
              • Humidor
                Humidor @haus-automatisierung last edited by Humidor

                @haus-automatisierung gut gemeint, für mich erstmal nicht, brauch nur die eine Regelung, reicht mir erstmal

                hab mir eine Tabelle geamacht und mehrere Werte gespielt, paar Änderungen, jetzt passt das mit der Berechnung ganz gut
                jetzt muss ich die Frequenz finden um kein Schwingen zu haben...

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

                Support us

                ioBroker
                Community Adapters
                Donate

                838
                Online

                31.9k
                Users

                80.3k
                Topics

                1.3m
                Posts

                2
                6
                298
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo