Navigation

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

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Hilfe bei PV Eigenverbrauch

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

      Bei diesem Blockly Script PV Eigenverbrauch brauche ich Hilfe. Die Berechnung soll gestoppt werden, wenn die Wirkleistung PV der Wert = 0 ist, und gestartet werden, wenn der Wert höher als -1. Vor den Werten Wirkleistung PV steht immer ein Minus. Nach vielen Versuchen will der Script einfach nicht funktionieren

      
      <xml xmlns="https://developers.google.com/blockly/xml">
        <block type="on_ext" id="z_V)`kOFzZHQ`4Q7_YwY" x="13" y="13">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="D0gBT{VK!~6*d#Q.q0Er">
              <field name="oid">modbus.0.inputRegisters.1.30073_Leistungsbezug_EVU</field>
            </shadow>
          </value>
          <value name="OID1">
            <shadow type="field_oid" id="/=[WUBj|tC6_4Xj9CjJf">
              <field name="oid">modbus.0.inputRegisters.2.30075_Gesammt_Leistung_PV</field>
            </shadow>
          </value>
          <value name="OID2">
            <shadow type="field_oid" id="I66lMtc0|ox*eSD57K]=">
              <field name="oid">modbus.0.inputRegisters.2.30013_Wirkleistung_PV</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="update" id="YsV_5-GT4O.nKtoF5PvM" inline="false">
              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
              <field name="OID">javascript.0.Mathe.n_eigenverbrauch</field>
              <field name="WITH_DELAY">FALSE</field>
              <value name="VALUE">
                <block type="math_arithmetic" id="fQC%Z?NOWD?(9DkLMF@Z" inline="false">
                  <field name="OP">MINUS</field>
                  <value name="A">
                    <shadow type="math_number" id="~CRRPcjN;Q@PM{Nf35[R">
                      <field name="NUM">1</field>
                    </shadow>
                    <block type="get_value" id="SxyPvU#uH4Z4a=w{-z,}">
                      <field name="ATTR">val</field>
                      <field name="OID">modbus.0.inputRegisters.1.30073_Leistungsbezug_EVU</field>
                    </block>
                  </value>
                  <value name="B">
                    <shadow type="math_number" id="[s_r(hoZ~B!(Dx,vj]=8">
                      <field name="NUM">1</field>
                    </shadow>
                    <block type="get_value" id="~eH|jVoE(iI}pcDUgsSI">
                      <field name="ATTR">val</field>
                      <field name="OID">modbus.0.inputRegisters.2.30075_Gesammt_Leistung_PV</field>
                    </block>
                  </value>
                </block>
              </value>
              <next>
                <block type="controls_if" id="=aid8;uTBQ1yIJ%#LK/-">
                  <mutation elseif="1"></mutation>
                  <value name="IF0">
                    <block type="logic_operation" id="1l,Ue}8;]mtmTZ.UXnro" inline="false">
                      <field name="OP">AND</field>
                      <value name="A">
                        <block type="logic_compare" id="?PdUDwWb^1wQ2zR`Q1{u">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="on_source" id="C$E,9b8w*4*A:1_XC4#H">
                              <field name="ATTR">state.val</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="=9pDr^=_`PK2r^bTiw?h">
                              <field name="NUM">0</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_compare" id="0j8gF6[Ca%PU2#a4Fzam">
                          <field name="OP">LT</field>
                          <value name="A">
                            <block type="get_value" id="=pcRlUE}D%u8HH=^X{Lr">
                              <field name="ATTR">val</field>
                              <field name="OID">javascript.0.Mathe.n_eigenverbrauch</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_boolean" id="Y{Pym)$CJjxuC#@uM1y1">
                              <field name="BOOL">TRUE</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="IF1">
                    <block type="logic_operation" id="8Lb~N$M~%_b`An?zF?:v" inline="false">
                      <field name="OP">AND</field>
                      <value name="A">
                        <block type="logic_compare" id="%!THv]u,NtC1e,xU0%q?">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="on_source" id="k~J)IYD1$7Ewt.Tfvn$9">
                              <field name="ATTR">state.val</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="zRbwx8JhCYds!c-UxM[-">
                              <field name="NUM">0</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_compare" id="p}WnWXu`x0p1TR;KL^[.">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="wjdfvN~.1c`~JD14$/I+">
                              <field name="ATTR">val</field>
                              <field name="OID">javascript.0.Mathe.n_eigenverbrauch</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_boolean" id="HA2ux;?Bu%U`q3`=QD{j">
                              <field name="BOOL">FALSE</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <next>
                    <block type="on_ext" id="N3q~uh|.N/LmaIMt^;H`">
                      <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="//5wjkG-+|JgT#$thcun">
                          <field name="oid">javascript.0.Mathe.n_eigenverbrauch</field>
                        </shadow>
                      </value>
                      <statement name="STATEMENT">
                        <block type="update" id="8pG%0b(IN@3p!D:h$PE4" inline="false">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">javascript.0.Mathe.ändern</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="math_arithmetic" id="p;;:y1jb;zH6=iS68jV}" inline="false">
                              <field name="OP">MINUS</field>
                              <value name="A">
                                <shadow type="math_number">
                                  <field name="NUM">1</field>
                                </shadow>
                                <block type="on_source" id="]=~FDj@lN`ZZ]MU:der[">
                                  <field name="ATTR">state.val</field>
                                </block>
                              </value>
                              <value name="B">
                                <shadow type="math_number" id="Th2J]`.TB(Zp+gG0BF5J">
                                  <field name="NUM">26</field>
                                </shadow>
                              </value>
                            </block>
                          </value>
                        </block>
                      </statement>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </statement>
          <next>
            <block type="on" id="g)s?O(kB5lj}B(dc@R/j">
              <field name="OID">javascript.0.Mathe.ändern</field>
              <field name="CONDITION">ne</field>
              <field name="ACK_CONDITION"></field>
              <statement name="STATEMENT">
                <block type="update" id="69!r]T8t2M;nj((2],]J" inline="false">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">javascript.0.Mathe.n-eigenverbrauch_n-einahme</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="math_rndfixed" id="jfZS1{=}exeTlA$a@[A8">
                      <field name="n">2</field>
                      <value name="x">
                        <shadow type="math_number" id="YS0~:4kW)}=L4t#IM/Mk">
                          <field name="NUM">3.1234</field>
                        </shadow>
                        <block type="math_arithmetic" id="jZHtV((P8FaEQsPLO]ue" inline="false">
                          <field name="OP">MULTIPLY</field>
                          <value name="A">
                            <shadow type="math_number" id="2.HtJ%~y74{*mksJ81x;">
                              <field name="NUM">1</field>
                            </shadow>
                            <block type="on_source" id="?c|XO`q%$3VpoioIW10d">
                              <field name="ATTR">state.val</field>
                            </block>
                          </value>
                          <value name="B">
                            <shadow type="math_number" id="b2OGGx}`x}`|D[Uo(XU8">
                              <field name="NUM">0.28929</field>
                            </shadow>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </statement>
            </block>
          </next>
        </block>
      </xml>
      
      

      Mod edit: Skript in Code tags gesetzt

      paul53 Glasfaser K 3 Replies Last reply Reply Quote 0
      • paul53
        paul53 @Karlo7 last edited by paul53

        @karlo7
        Bei Mehrfach-Triggern kann Wert nicht verwendet werden. Trigger innerhalb eines Triggers geht auch nicht! Außerdem kann ein Zahlenwert nicht mit wahr oder falsch verglichen werden.
        Aus Leistungswerten lässt sich keine Ersparnis / Einnahme errechnen. Das kann man nur mit Energiewerten (kWh).

        1 Reply Last reply Reply Quote 0
        • Glasfaser
          Glasfaser @Karlo7 last edited by

          @karlo7 sagte in Hilfe bei PV Eigenverbrauch:

          Blockly Script

          Kannst du auch davon ein Screenshot einstellen ... denn nicht jeder ladet sich dein Script hoch 😉

          1 Reply Last reply Reply Quote 0
          • K
            Karlo7 @Karlo7 last edited by

            @karlo7 Bild1.gif
            Hier noch mal ein Screenshot. Außerdem kann ein Zahlenwert nicht mit wahr oder falsch verglichen werden.
            Wie kann man das ändern?

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

              @karlo7
              Das Blockly ist unbrauchbar.
              Informiere uns bitte, was berechnet werden soll und welche Datenpunkte vom PV-Wechselrichter und vom Smartmeter (EVU) zur Verfügung stehen. Woher kommt "Gesammt-Leistung"?
              Prinzipiell gilt:
              Einspeisevergütung = Einspeiseenergie * Einspeisepreis
              Ersparnis = (PV-Energie - Einspeiseenergie) * Bezugspreis
              Gesamt = Einspeisevergütung + Ersparnis

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

                @paul53 Hallo Paul 53
                Berechnet werden soll der Preis vom Eigenverbrauch der Mini PV-Anlage.
                Die Datenpunkte werden von Modbus Zählern Einspeisung PV-Minianlage und vom Zähler der den Gesamtverbrauch misst. Ich will aber nur den Eigenverbrauch berechnen. Der Energie Überschuss wird nicht bezahlt und muss rausgerechnet werden.

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

                  @karlo7 sagte: Der Energie Überschuss wird nicht bezahlt und muss rausgerechnet werden.

                  Er wird aber gemessen, da sonst eine Ermittlung des Eigenverbrauchs nicht möglich ist?
                  Also gilt nur:
                  Ersparnis = (PV-Ertrag - Einspeiseenergie) * Bezugspreis

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

                    @paul53 Der Überschuss wird vom EVU Zähler gemessen. Den kann ich ablesen, und mit Excel dann den Eigenverbrauch berechnen.
                    Ich habe Blockly schon stundenlang zusammen geschoben um die Berechnung

                    Ersparnis = (PV-Ertrag - Einspeiseenergie) * Bezugspreis

                    über den Wert Wirkleistung_PV anzuhalten wenn der Wert =0 ist also keine Einspeisung erfolgt. Auch wenn das Ergebnis nicht stimmt, in Blockly hätte ich was dazu gelernt.
                    Screenshot.png

                    paul53 2 Replies Last reply Reply Quote 0
                    • paul53
                      paul53 @Karlo7 last edited by paul53

                      @karlo7
                      Beschreibe bitte, was sind

                      • Wirkleistung_PV
                      • Leistungsbezug_EVU (positiv und negativ?)
                      • Gesammt_Leistung

                      Der Bezeichnung nach sind das alles Leistungswerte. Für die Berechnung werden aber Energiewerte benötigt.
                      Wozu dient die Subtraktion von 26?

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

                        @karlo7 sagte: Der Überschuss wird vom EVU Zähler gemessen.

                        Liegt also als Datenpunkt vor? Dann sollte man ihn auch so benennen.
                        Man verwendet nicht viele Trigger (Ressourcen-Verschwendung), sondern merkt sich Zwischenergebnisse in Variablen. Prinzip:

                        Bild_2023-01-13_182923359.png

                        EDIT: Wenn nur Leistungswerte geliefert werden, muss man die Energiewerte mittels Integration über die Zeit ermitteln.

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

                          @paul53
                          Hallo Paul53
                          Danke für die schnellen Antworten, und die guten Tipps.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          603
                          Online

                          32.0k
                          Users

                          80.5k
                          Topics

                          1.3m
                          Posts

                          3
                          11
                          974
                          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