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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Regelung eines Hoymiles Solarinverters (Nulleinspeisung)

NEWS

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

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

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

Regelung eines Hoymiles Solarinverters (Nulleinspeisung)

Geplant Angeheftet Gesperrt Verschoben Blockly
203 Beiträge 36 Kommentatoren 61.9k Aufrufe 34 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.
  • CarsaabC Carsaab

    @gonzokalle

    AC Leistung. ist korrekt, es geht um die Wechselstromeinspeisung - der Stromzähler misst ja auch nur den Wechselstrom AC.
    Den WR schalte ich nicht über die Steckdose. Nur die DTU hängt an einer Steckdose, weil sie im Wohnzimmer ist und mich die LED stört. Der WR ist ohne Solarenergie ohnehin aus.
    Die ";15" sind 1500W/100 also das WR Limit /100. Wenn der WR 800W hat, dann müsste da :8 stehen.
    Die OpenDTU hängt am mqtt adapter
    Screenshot 2024-03-19 105202_1.jpg

    G Online
    G Online
    Gonzokalle
    schrieb am zuletzt editiert von
    #174

    @carsaab
    Deswegen habe ich mich gewundert, warum du den WR ausschalten willst.:blush:
    Wie bist du auf die "durch 15" gekommen?

    5921239b-5cc2-4c06-91f6-0ef54cdc301b-image.png

    CarsaabC 1 Antwort Letzte Antwort
    0
    • G Gonzokalle

      @carsaab
      Deswegen habe ich mich gewundert, warum du den WR ausschalten willst.:blush:
      Wie bist du auf die "durch 15" gekommen?

      5921239b-5cc2-4c06-91f6-0ef54cdc301b-image.png

      CarsaabC Offline
      CarsaabC Offline
      Carsaab
      schrieb am zuletzt editiert von Carsaab
      #175

      @gonzokalle
      3e46cc04-5a77-43ba-9e37-c3d24fcc1947-grafik.png

      Die beiden Formeln sind identisch - Ich habe nur die WR Leistung / 100 gerechnet.

      Mein eigener Zuschlag sind +30W also Ziel ist 30W Einspeisung. Bei -30W wäre das Ziel 30W Verbrauch.
      300W/100=3
      600W/100=6
      800W/100=8
      1500W/100=15
      1600W/100=16
      2200W/100=22
      30KW/100=30000W/100=300
      usw. usw. usw.
      Damit berechne ich das Limit in Prozent der WR Leistung und schreibe das über OpenDTU in den WR in den Limits von 30% (meine willkürliche Untergrenze) und 100% (um Fehlermeldungen zu vermeiden, falls der WR mit >100% angesteuert wird).

      G Samson71S 2 Antworten Letzte Antwort
      0
      • MIC1981M Online
        MIC1981M Online
        MIC1981
        schrieb am zuletzt editiert von
        #176

        Man kann dafür auch den PID-Adapter nutzen. Min und Max der Wechselrichter einstellen, Parameter für die Regelung einstellen und den Setpoint 0 und aktual Value auf den aktuellen Verbrauch am Zähler. Der Adapter hat den Vorteil, dass man auch mehrere (unterschiedliche) Wechselrichter entsprechend auf den Hausverbrauch regeln kann.

        G 1 Antwort Letzte Antwort
        0
        • CarsaabC Carsaab

          @gonzokalle
          3e46cc04-5a77-43ba-9e37-c3d24fcc1947-grafik.png

          Die beiden Formeln sind identisch - Ich habe nur die WR Leistung / 100 gerechnet.

          Mein eigener Zuschlag sind +30W also Ziel ist 30W Einspeisung. Bei -30W wäre das Ziel 30W Verbrauch.
          300W/100=3
          600W/100=6
          800W/100=8
          1500W/100=15
          1600W/100=16
          2200W/100=22
          30KW/100=30000W/100=300
          usw. usw. usw.
          Damit berechne ich das Limit in Prozent der WR Leistung und schreibe das über OpenDTU in den WR in den Limits von 30% (meine willkürliche Untergrenze) und 100% (um Fehlermeldungen zu vermeiden, falls der WR mit >100% angesteuert wird).

          G Online
          G Online
          Gonzokalle
          schrieb am zuletzt editiert von
          #177

          @carsaab
          Sehr interessant.
          Wären bei einem 800 W WR also eine /8.

          1 Antwort Letzte Antwort
          0
          • MIC1981M MIC1981

            Man kann dafür auch den PID-Adapter nutzen. Min und Max der Wechselrichter einstellen, Parameter für die Regelung einstellen und den Setpoint 0 und aktual Value auf den aktuellen Verbrauch am Zähler. Der Adapter hat den Vorteil, dass man auch mehrere (unterschiedliche) Wechselrichter entsprechend auf den Hausverbrauch regeln kann.

            G Online
            G Online
            Gonzokalle
            schrieb am zuletzt editiert von
            #178

            @mic1981
            Pid-Adapter kann ich nicht finden. Ist der noch in der Entwicklung?

            MIC1981M 1 Antwort Letzte Antwort
            0
            • G Gonzokalle

              @mic1981
              Pid-Adapter kann ich nicht finden. Ist der noch in der Entwicklung?

              MIC1981M Online
              MIC1981M Online
              MIC1981
              schrieb am zuletzt editiert von
              #179

              @gonzokalle
              Den gibt es im latest-Repository.

              1 Antwort Letzte Antwort
              0
              • CarsaabC Carsaab

                @gonzokalle
                3e46cc04-5a77-43ba-9e37-c3d24fcc1947-grafik.png

                Die beiden Formeln sind identisch - Ich habe nur die WR Leistung / 100 gerechnet.

                Mein eigener Zuschlag sind +30W also Ziel ist 30W Einspeisung. Bei -30W wäre das Ziel 30W Verbrauch.
                300W/100=3
                600W/100=6
                800W/100=8
                1500W/100=15
                1600W/100=16
                2200W/100=22
                30KW/100=30000W/100=300
                usw. usw. usw.
                Damit berechne ich das Limit in Prozent der WR Leistung und schreibe das über OpenDTU in den WR in den Limits von 30% (meine willkürliche Untergrenze) und 100% (um Fehlermeldungen zu vermeiden, falls der WR mit >100% angesteuert wird).

                Samson71S Offline
                Samson71S Offline
                Samson71
                Global Moderator
                schrieb am zuletzt editiert von
                #180

                @carsaab
                Das hier funktioniert auch für mehrere WR parallel einwandfrei und ist ziemlich vielseitig konfigurierbar.

                https://github.com/reserve85/HoymilesZeroExport

                Markus

                Bitte beachten:
                Hinweise für gute Forenbeiträge
                Maßnahmen zum Schutz des Forums

                CarsaabC 1 Antwort Letzte Antwort
                0
                • Samson71S Samson71

                  @carsaab
                  Das hier funktioniert auch für mehrere WR parallel einwandfrei und ist ziemlich vielseitig konfigurierbar.

                  https://github.com/reserve85/HoymilesZeroExport

                  CarsaabC Offline
                  CarsaabC Offline
                  Carsaab
                  schrieb am zuletzt editiert von Carsaab
                  #181

                  @samson71

                  Ich habe mir einen günstigen ASUS PN41 mit Intel Celeron 5100 (13W) und Win11 Lizenz und 1TB M2.SSD gekauft. Das Paket war deutlich billiger als ein RASPI mit Peripherie im März 2023.
                  Da läuft IOBroker drauf und möchte daneben nur ungern weitere Scripte laufen lassen. Ich hatte genug zu tun alles im IOBroker ans laufen zu bringen (the devel you now).
                  "This script does not use MQTT, it's based on webapi communication." Das schreckt mich schon etwas ab, wenn ich ehrlich bin.
                  In dem Script würde mich der Algoritmus interessieren, der da angewendet wird.
                  Das Phython Script unterstützt bis zu 16 Inverter, soweit ich das sehe, und kann auch auf IOBroker und andere Plattformen zugreifen.
                  Das ginge hier auch, allerdings würden alle dasselbe %limit bekommen was aber auch ginge. Ich weiß zwar noch nicht wie IOBroker für 16 WR das limit schreiben kann. Geht bestimmt über Listen oder Variablen definieren. Mal sehen of Blockly auch in eine Liste schreiben kann.
                  Für meine Zwecke läuft das Script super. Daher geniesse ich das erst einmal. Danke für den Hinweis. Der PID Adapter interessiert mich auch, ich finde ihn aber nicht.

                  G 1 Antwort Letzte Antwort
                  0
                  • CarsaabC Carsaab

                    @samson71

                    Ich habe mir einen günstigen ASUS PN41 mit Intel Celeron 5100 (13W) und Win11 Lizenz und 1TB M2.SSD gekauft. Das Paket war deutlich billiger als ein RASPI mit Peripherie im März 2023.
                    Da läuft IOBroker drauf und möchte daneben nur ungern weitere Scripte laufen lassen. Ich hatte genug zu tun alles im IOBroker ans laufen zu bringen (the devel you now).
                    "This script does not use MQTT, it's based on webapi communication." Das schreckt mich schon etwas ab, wenn ich ehrlich bin.
                    In dem Script würde mich der Algoritmus interessieren, der da angewendet wird.
                    Das Phython Script unterstützt bis zu 16 Inverter, soweit ich das sehe, und kann auch auf IOBroker und andere Plattformen zugreifen.
                    Das ginge hier auch, allerdings würden alle dasselbe %limit bekommen was aber auch ginge. Ich weiß zwar noch nicht wie IOBroker für 16 WR das limit schreiben kann. Geht bestimmt über Listen oder Variablen definieren. Mal sehen of Blockly auch in eine Liste schreiben kann.
                    Für meine Zwecke läuft das Script super. Daher geniesse ich das erst einmal. Danke für den Hinweis. Der PID Adapter interessiert mich auch, ich finde ihn aber nicht.

                    G Online
                    G Online
                    Gonzokalle
                    schrieb am zuletzt editiert von Gonzokalle
                    #182

                    @carsaab
                    Ich habe mal etwas gespielt.
                    Mit dem openDTU-Adapter klappt es wunderbar. Alle Werte wurden nach 5-10 Sekunden im WR eingestellt.
                    03cad449-dc00-4864-ad7c-e853911207d5-image.png

                    Verstehe ich gerade nicht. Meinst du AC vom Zähler?
                    ef0f3695-68b9-4782-8a83-e1414d8ea51c-image.png

                    CarsaabC 1 Antwort Letzte Antwort
                    0
                    • G Gonzokalle

                      @carsaab
                      Ich habe mal etwas gespielt.
                      Mit dem openDTU-Adapter klappt es wunderbar. Alle Werte wurden nach 5-10 Sekunden im WR eingestellt.
                      03cad449-dc00-4864-ad7c-e853911207d5-image.png

                      Verstehe ich gerade nicht. Meinst du AC vom Zähler?
                      ef0f3695-68b9-4782-8a83-e1414d8ea51c-image.png

                      CarsaabC Offline
                      CarsaabC Offline
                      Carsaab
                      schrieb am zuletzt editiert von
                      #183

                      @gonzokalle
                      Zur Formel hast Du recht ist AC habe es oben korrigiert.
                      Deine Lösung mit der Liste sieht gut aus.
                      Die Formel für mehrere WR sähe dann so aus. Das ist halt keine Batterieladung inkludiert. Nulleinspeisung ohne berücksichtigten Akku.
                      64f57adf-2b8a-4057-a490-29556cb403fd-grafik.png
                      habe noch die Worddatei mit der Formel hochgeladen.
                      Der Formeleditor ist besser - ich nutze aber Textmaker privat.
                      formel nulleinspeisung.docx

                      G 1 Antwort Letzte Antwort
                      0
                      • CarsaabC Carsaab

                        @gonzokalle
                        Zur Formel hast Du recht ist AC habe es oben korrigiert.
                        Deine Lösung mit der Liste sieht gut aus.
                        Die Formel für mehrere WR sähe dann so aus. Das ist halt keine Batterieladung inkludiert. Nulleinspeisung ohne berücksichtigten Akku.
                        64f57adf-2b8a-4057-a490-29556cb403fd-grafik.png
                        habe noch die Worddatei mit der Formel hochgeladen.
                        Der Formeleditor ist besser - ich nutze aber Textmaker privat.
                        formel nulleinspeisung.docx

                        G Online
                        G Online
                        Gonzokalle
                        schrieb am zuletzt editiert von Gonzokalle
                        #184

                        @carsaab
                        Ich habe dein Blockly mal nachgebaut.
                        3035baf9-c395-457a-88e3-29a05800f066-image.png
                        Der Stromverbrauch (Shelly 3EM) und das Limit von WR geht andauernd hoch und runter.
                        Ist das bei dir auch so?

                        @ alle
                        Ich würde das Blockly vom Anfang des Threads gerne mal probieren.
                        Kann jemand ein einfaches Blockly für nur einen WR mal posten?

                        CarsaabC 1 Antwort Letzte Antwort
                        0
                        • G Gonzokalle

                          @carsaab
                          Ich habe dein Blockly mal nachgebaut.
                          3035baf9-c395-457a-88e3-29a05800f066-image.png
                          Der Stromverbrauch (Shelly 3EM) und das Limit von WR geht andauernd hoch und runter.
                          Ist das bei dir auch so?

                          @ alle
                          Ich würde das Blockly vom Anfang des Threads gerne mal probieren.
                          Kann jemand ein einfaches Blockly für nur einen WR mal posten?

                          CarsaabC Offline
                          CarsaabC Offline
                          Carsaab
                          schrieb am zuletzt editiert von Carsaab
                          #185

                          @gonzokalle
                          Ja das ist bei mir auch so.
                          Der Trigger ist immer die Änderung im Stromverbrauch. Dann setzt das Script ein neues Limit sofern die Solaranlage mehr als die 30% liefert. Bei mir dann 450W.
                          Wenn der Stromverbrauch hochgeht, dann geht das Limit hoch und auch wieder runter, wenn der Verbrauch sinkt.
                          Sollte dann die Solaranlage bei gleichem Verbrauch mehr liefern, dann sinkt der Stromverbrauch aber das Limit bleibt gleich, weil sich die Summe aus Solarenergie und Stromverbrauch nicht ändert.
                          Ich habe auch nur einen WR.
                          Weil aber mein Hichi nur alle 10sek einen neuen Wert schickt, ist das ganze natürlich nicht genau, aber für unsere Zwecke reicht es.
                          Vom Shelly 3EM müsste ja der Gesamtverbrauch gemessen werden. Wenn der Shelly im Sekundentakt einen Wert liefert, dann schreibt das Script auch jede Sekunde.

                          Aber das Prinzip ist das gleiche. Ich nehme an, Du hast einen 600W WR im Einsatz.

                          G T 2 Antworten Letzte Antwort
                          0
                          • CarsaabC Carsaab

                            @gonzokalle
                            Ja das ist bei mir auch so.
                            Der Trigger ist immer die Änderung im Stromverbrauch. Dann setzt das Script ein neues Limit sofern die Solaranlage mehr als die 30% liefert. Bei mir dann 450W.
                            Wenn der Stromverbrauch hochgeht, dann geht das Limit hoch und auch wieder runter, wenn der Verbrauch sinkt.
                            Sollte dann die Solaranlage bei gleichem Verbrauch mehr liefern, dann sinkt der Stromverbrauch aber das Limit bleibt gleich, weil sich die Summe aus Solarenergie und Stromverbrauch nicht ändert.
                            Ich habe auch nur einen WR.
                            Weil aber mein Hichi nur alle 10sek einen neuen Wert schickt, ist das ganze natürlich nicht genau, aber für unsere Zwecke reicht es.
                            Vom Shelly 3EM müsste ja der Gesamtverbrauch gemessen werden. Wenn der Shelly im Sekundentakt einen Wert liefert, dann schreibt das Script auch jede Sekunde.

                            Aber das Prinzip ist das gleiche. Ich nehme an, Du hast einen 600W WR im Einsatz.

                            G Online
                            G Online
                            Gonzokalle
                            schrieb am zuletzt editiert von
                            #186

                            @Carsaab
                            Ja, der Shelly liefert im Sekundentakt.
                            So schnell kann ich die Werte aber nicht in den WR schreiben.
                            Deswegen habe ich den Trigger auf alle 10 Sekunden gesetzt.
                            Ja, habe 600 W WR.

                            1 Antwort Letzte Antwort
                            0
                            • CarsaabC Offline
                              CarsaabC Offline
                              Carsaab
                              schrieb am zuletzt editiert von Carsaab
                              #187

                              So - ich habe zu experimentellen Zwecken mir noch einen HM300 von einem Kumpel geliehen.
                              Steuern tue ich alles über den MQTT Adapter. Der erkennt die openDTU und die dort eingebunden Wechselrichter. Damit die Steuerung funktioniert muß der MQTT Adapter ohne "retain" flag senden! Sonst geht es nicht.
                              d981d238-4994-4502-81e3-8baefe2ee10e-grafik.png

                              Dann muß für jeden Hoymiles noch manuell der channel "cmd" und der state "limit_nonpersistent_relative" angelegt werden.
                              5041975c-363d-4686-b759-db2ee5caa8d0-grafik.png
                              Die Befehle findet Ihr hier: https://www.opendtu.solar/firmware/mqtt_topics/#inverter-limit-specific-topics
                              Unter Alias könnt Ihr Euch dann die wichtigen Objekte erstellen oder Ihr verweist im Script direkt auf die Objekte.

                              Eine Sequenz von 10Sekunden reichen mir - das regel ich über den Hichi Lesekopf, der den Stromverbrauch nur alle 10 Sekunden verschickt. Der Versuch in Echtzeit zu reagieren ist meistens ohnehin zum Scheitern verurteilt. Zum einen kann unsere "billige" Hardware das sowieso nicht, und dann gibt es ja noch die Physik https://de.wikipedia.org/wiki/Nyquist-Shannon-Abtasttheorem. Ich beabsichtige nicht daran was zu ändern.

                              Für 2 Wechselrichter und ohne Benutzung von Scriptvarialblen funktioniert mein Script wie folgt:
                              7de00be4-3a29-4ca5-a7a1-6c37070f20c9-grafik.png

                              Das lässt sich zur Not auch für eine 30KW-peak Anlage mit 70 Panelen und 35 MicroWR und 9 DTUen ausbauen. Dem Iobroker ist das egal. Nur die Stromerzeugung über alle DTUen müsste man adieren.

                              Um Fragen vorzubeugen:

                              • das Teilen durch 18 ist oben erklärt.
                              • ich habe keinen Speicher und will eine Nulleinspeisung - auch oben erklärt
                              • Ja - es geht bestimmt eleganter - ich berechne für jeden WR das Limit separat obwohl sie dasselbe Limit bekommen.
                                Ein Script mir einer berechnete Variablen wie hier funktioniert auch.
                                7e706079-169f-4913-b78b-beac0dff6a63-grafik.png
                              • Es läuft wie geschmiert - bei mir. Es wird bei Euch ohne etwas Frickelei nicht direkt aus der Box laufen vermute ich.
                              1 Antwort Letzte Antwort
                              0
                              • T Tigger66

                                @flo71 ich hab das Script für den zweiten WR so angepasst, dass er erst regelt wenn der erste entweder am oberen oder unteren Limit angekommen ist, oder aber dass die geforderte Leistung höher ist als die, die gerade zur verfügung steht...

                                <xml xmlns="https://developers.google.com/blockly/xml">
                                  <variables>
                                    <variable id="?~:J:;gqC%-pt?=zNsH:">Sunrise</variable>
                                    <variable id="UJ`JGN{Ezb$K7jJ[4P}j">Sunset</variable>
                                    <variable id="BN!a@q$SEAU4^)xo:SRJ">maxSolarPower</variable>
                                    <variable id="AcYpB0Ty+wVObL7=Y.a.">measuredPower</variable>
                                    <variable id="1}Q0686mMw0ZGk)e+r?(">measuredSolarPower</variable>
                                    <variable id="le#}gR{6G.yhW=x|6pS8">neededPower</variable>
                                    <variable id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</variable>
                                    <variable id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</variable>
                                    <variable id="}s`y%Qd}~t2t(jU$8(ud">upperLimit</variable>
                                    <variable id="P^1|W+9iVy?PgNp}9!.S">lowerLimit</variable>
                                    <variable id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</variable>
                                  </variables>
                                  <block type="schedule" id="!P+uzJ#%y!_wHsKqo2~M" x="-443" y="-618">
                                    <field name="SCHEDULE">*/20 * * * * *</field>
                                    <statement name="STATEMENT">
                                      <block type="variables_set" id="~v~t5u;a_q(#kb+E{(FH">
                                        <field name="VAR" id="?~:J:;gqC%-pt?=zNsH:">Sunrise</field>
                                        <value name="VALUE">
                                          <block type="time_astro" id="Svgszky6QE2/10f8vck1">
                                            <field name="TYPE">sunrise</field>
                                            <field name="OFFSET">0</field>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="variables_set" id="~/087{!i@]6[`rKxsw]j">
                                            <field name="VAR" id="UJ`JGN{Ezb$K7jJ[4P}j">Sunset</field>
                                            <value name="VALUE">
                                              <block type="time_astro" id="BO/%++Qd.ktL4PfK.r3?">
                                                <field name="TYPE">sunset</field>
                                                <field name="OFFSET">0</field>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="controls_if" id="xaOp|xXgB@BB44iq}cJ.">
                                                <mutation else="1"></mutation>
                                                <value name="IF0">
                                                  <block type="logic_operation" id="|K,B[pWUT`!LyJsB6,pK">
                                                    <field name="OP">AND</field>
                                                    <value name="A">
                                                      <block type="time_compare_ex" id="Y8n@Iqzd:%qZbp|#P_v^">
                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="false" actual_time="true"></mutation>
                                                        <field name="USE_ACTUAL_TIME">TRUE</field>
                                                        <field name="OPTION">&gt;=</field>
                                                        <value name="START_TIME">
                                                          <shadow type="text" id="]-0N3DkP*7?ghtYzXwX!">
                                                            <field name="TEXT">12:00</field>
                                                          </shadow>
                                                          <block type="variables_get" id="!,6PYgrHnSxh#Evn[Yie">
                                                            <field name="VAR" id="?~:J:;gqC%-pt?=zNsH:">Sunrise</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <block type="time_compare_ex" id="qRYvI=rC7,D?`B=PV@^6">
                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="false" actual_time="true"></mutation>
                                                        <field name="USE_ACTUAL_TIME">TRUE</field>
                                                        <field name="OPTION">&lt;=</field>
                                                        <value name="START_TIME">
                                                          <shadow type="text">
                                                            <field name="TEXT">12:00</field>
                                                          </shadow>
                                                          <block type="variables_get" id="LMy)6-$QN(f3d9klxV`O">
                                                            <field name="VAR" id="UJ`JGN{Ezb$K7jJ[4P}j">Sunset</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <statement name="DO0">
                                                  <block type="variables_set" id="~p6WKGjCNU[UXfc{|$8|">
                                                    <field name="VAR" id="BN!a@q$SEAU4^)xo:SRJ">maxSolarPower</field>
                                                    <value name="VALUE">
                                                      <block type="math_number" id="Z(v(#cMkS]/o.,;iyE/|">
                                                        <field name="NUM">1500</field>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="variables_set" id="Ih%sQzzK`!Ec=`tscEm-">
                                                        <field name="VAR" id="AcYpB0Ty+wVObL7=Y.a.">measuredPower</field>
                                                        <value name="VALUE">
                                                          <block type="get_value" id="E60zTd:yszZT-@pD[YB#">
                                                            <field name="ATTR">val</field>
                                                            <field name="OID">shelly.0.SHEM-3#E8DB84D68CFF#1.Total.InstantPower</field>
                                                          </block>
                                                        </value>
                                                        <next>
                                                          <block type="variables_set" id=":rlAB32E^@yPP9Jh?EMO">
                                                            <field name="VAR" id="1}Q0686mMw0ZGk)e+r?(">measuredSolarPower</field>
                                                            <value name="VALUE">
                                                              <block type="get_value" id="Q8pLDlgI~N(N2-6)X@Qu">
                                                                <field name="ATTR">val</field>
                                                                <field name="OID">opendtu.0.116180216966.ac.phase_1.power</field>
                                                              </block>
                                                            </value>
                                                            <next>
                                                              <block type="variables_set" id="t8-xB+K`%rr)x]%:Q5cN">
                                                                <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">neededPower</field>
                                                                <value name="VALUE">
                                                                  <block type="math_arithmetic" id="2FaDMR/kS5K9d!j=`dK3">
                                                                    <field name="OP">ADD</field>
                                                                    <value name="A">
                                                                      <shadow type="math_number" id="2FEk%?jHI2)Hvf4}p|*;">
                                                                        <field name="NUM">1</field>
                                                                      </shadow>
                                                                      <block type="variables_get" id="Z`YZ!4FileGG?5VwaP-/">
                                                                        <field name="VAR" id="AcYpB0Ty+wVObL7=Y.a.">measuredPower</field>
                                                                      </block>
                                                                    </value>
                                                                    <value name="B">
                                                                      <shadow type="math_number" id="+10nRI6/x]hugF{/lmxM">
                                                                        <field name="NUM">1</field>
                                                                      </shadow>
                                                                      <block type="variables_get" id="n0BqKn~p@qPw.Jvfrj,s">
                                                                        <field name="VAR" id="1}Q0686mMw0ZGk)e+r?(">measuredSolarPower</field>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </value>
                                                                <next>
                                                                  <block type="variables_set" id="$61h{3os=)%X-VEx9M:i">
                                                                    <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                                                    <value name="VALUE">
                                                                      <block type="math_round" id="3$tH.4.P)ukPPcI4xw.A">
                                                                        <field name="OP">ROUND</field>
                                                                        <value name="NUM">
                                                                          <shadow type="math_number" id="{D8W1ElJ#97Cg:]vDkM;">
                                                                            <field name="NUM">3.1</field>
                                                                          </shadow>
                                                                          <block type="math_arithmetic" id="ju~9S8j-`0c/OF%2$7-o">
                                                                            <field name="OP">MULTIPLY</field>
                                                                            <value name="A">
                                                                              <shadow type="math_number" id="6:p#t,*^;)z:Wb:@dc|3">
                                                                                <field name="NUM">100</field>
                                                                              </shadow>
                                                                            </value>
                                                                            <value name="B">
                                                                              <shadow type="math_number" id=".fYZ,3H9RSS}:wD=%Bvk">
                                                                                <field name="NUM">1</field>
                                                                              </shadow>
                                                                              <block type="math_arithmetic" id="Z9S-r-/8^FbCeq,[{ULB">
                                                                                <field name="OP">DIVIDE</field>
                                                                                <value name="A">
                                                                                  <shadow type="math_number" id="jul_lM$(9.yj`:ZH8}%@">
                                                                                    <field name="NUM">1</field>
                                                                                  </shadow>
                                                                                  <block type="variables_get" id="_mPBX.l-0%hNvWtND[z1">
                                                                                    <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">neededPower</field>
                                                                                  </block>
                                                                                </value>
                                                                                <value name="B">
                                                                                  <shadow type="math_number" id="{Q+JfjzDv.)Z1KRbU*uv">
                                                                                    <field name="NUM">600</field>
                                                                                  </shadow>
                                                                                  <block type="variables_get" id="M!sN^/9!7$b}.ru.lqgC">
                                                                                    <field name="VAR" id="BN!a@q$SEAU4^)xo:SRJ">maxSolarPower</field>
                                                                                  </block>
                                                                                </value>
                                                                              </block>
                                                                            </value>
                                                                          </block>
                                                                        </value>
                                                                      </block>
                                                                    </value>
                                                                    <next>
                                                                      <block type="variables_set" id="g3gA+F5X4*$4x2),%sJV">
                                                                        <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                                        <value name="VALUE">
                                                                          <block type="get_value" id="7wbrC,7l;@ahCGcw2/pL">
                                                                            <field name="ATTR">val</field>
                                                                            <field name="OID">0_userdata.0.PV-Anlage.storedNeededPower</field>
                                                                          </block>
                                                                        </value>
                                                                        <next>
                                                                          <block type="variables_set" id="2KI]WdQd`0MzEf%mOPaL">
                                                                            <field name="VAR" id="}s`y%Qd}~t2t(jU$8(ud">upperLimit</field>
                                                                            <value name="VALUE">
                                                                              <block type="math_round" id="Ha.~N]M`[1eWboby_aYe">
                                                                                <field name="OP">ROUND</field>
                                                                                <value name="NUM">
                                                                                  <shadow type="math_number" id=":C/cpWh)P`-jK9}]IN*4">
                                                                                    <field name="NUM">3.1</field>
                                                                                  </shadow>
                                                                                  <block type="math_arithmetic" id="v}v!|Jkv3JHVqQR7poM0">
                                                                                    <field name="OP">ADD</field>
                                                                                    <value name="A">
                                                                                      <shadow type="math_number">
                                                                                        <field name="NUM">1</field>
                                                                                      </shadow>
                                                                                      <block type="variables_get" id="{dg*rTfc(I5I1PoYYN;l">
                                                                                        <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                                                      </block>
                                                                                    </value>
                                                                                    <value name="B">
                                                                                      <shadow type="math_number">
                                                                                        <field name="NUM">1</field>
                                                                                      </shadow>
                                                                                      <block type="math_arithmetic" id="#Aa[sC!ija_TtL9Go*jl">
                                                                                        <field name="OP">MULTIPLY</field>
                                                                                        <value name="A">
                                                                                          <shadow type="math_number">
                                                                                            <field name="NUM">1</field>
                                                                                          </shadow>
                                                                                          <block type="variables_get" id="?YS@_}6Hup[`ZsLR!Z45">
                                                                                            <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                                                          </block>
                                                                                        </value>
                                                                                        <value name="B">
                                                                                          <shadow type="math_number" id="YxGb?xk[MY37)!7O-Cqe">
                                                                                            <field name="NUM">0.05</field>
                                                                                          </shadow>
                                                                                        </value>
                                                                                      </block>
                                                                                    </value>
                                                                                  </block>
                                                                                </value>
                                                                              </block>
                                                                            </value>
                                                                            <next>
                                                                              <block type="variables_set" id="+KJ71_Z(eLN.a(uoEuci">
                                                                                <field name="VAR" id="P^1|W+9iVy?PgNp}9!.S">lowerLimit</field>
                                                                                <value name="VALUE">
                                                                                  <block type="math_round" id="=HYNg!vGE)^Z7m{+e$cs">
                                                                                    <field name="OP">ROUND</field>
                                                                                    <value name="NUM">
                                                                                      <shadow type="math_number" id="|d.50MyF$Zxnn(B]!gq~">
                                                                                        <field name="NUM">3.1</field>
                                                                                      </shadow>
                                                                                      <block type="math_arithmetic" id="?8HAOa[X,LM#h`p]lLc4">
                                                                                        <field name="OP">MINUS</field>
                                                                                        <value name="A">
                                                                                          <shadow type="math_number" id="(8p!3BSrd)N0m`PVj}cd">
                                                                                            <field name="NUM">1</field>
                                                                                          </shadow>
                                                                                          <block type="variables_get" id="?$cU!rsg;wkU}CP.VsR.">
                                                                                            <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                                                          </block>
                                                                                        </value>
                                                                                        <value name="B">
                                                                                          <shadow type="math_number" id="@kP8*eoC!D4/Wa?%grKM">
                                                                                            <field name="NUM">1</field>
                                                                                          </shadow>
                                                                                          <block type="math_arithmetic" id="D$_kryX`Gb5eu$gnYS_q">
                                                                                            <field name="OP">MULTIPLY</field>
                                                                                            <value name="A">
                                                                                              <shadow type="math_number">
                                                                                                <field name="NUM">1</field>
                                                                                              </shadow>
                                                                                              <block type="variables_get" id="nrL6t1UCC{jy1*U[O|Xq">
                                                                                                <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                                                              </block>
                                                                                            </value>
                                                                                            <value name="B">
                                                                                              <shadow type="math_number" id="||~-FC.nb3oU=fuLJzw}">
                                                                                                <field name="NUM">0.1</field>
                                                                                              </shadow>
                                                                                            </value>
                                                                                          </block>
                                                                                        </value>
                                                                                      </block>
                                                                                    </value>
                                                                                  </block>
                                                                                </value>
                                                                                <next>
                                                                                  <block type="debug" id="8cGY=ms*^/Fbn#Cde4/e">
                                                                                    <field name="Severity">log</field>
                                                                                    <value name="TEXT">
                                                                                      <shadow type="text">
                                                                                        <field name="TEXT">test</field>
                                                                                      </shadow>
                                                                                      <block type="text_join" id="QUQf.~7J|ziuD3sLdl)|">
                                                                                        <mutation items="2"></mutation>
                                                                                        <value name="ADD0">
                                                                                          <block type="text" id="lGPf[Ci!QdAF4j#Bn34-">
                                                                                            <field name="TEXT">Sonnenaufgang; </field>
                                                                                          </block>
                                                                                        </value>
                                                                                        <value name="ADD1">
                                                                                          <block type="variables_get" id="kwmbl:u%6-!)]lE{Bhdj">
                                                                                            <field name="VAR" id="?~:J:;gqC%-pt?=zNsH:">Sunrise</field>
                                                                                          </block>
                                                                                        </value>
                                                                                      </block>
                                                                                    </value>
                                                                                    <next>
                                                                                      <block type="debug" id="yaFK]t~sZKg}j1WzH!TL">
                                                                                        <field name="Severity">log</field>
                                                                                        <value name="TEXT">
                                                                                          <shadow type="text">
                                                                                            <field name="TEXT">test</field>
                                                                                          </shadow>
                                                                                          <block type="text_join" id="g_%Dq-ksE!p;Tib-dWoB">
                                                                                            <mutation items="2"></mutation>
                                                                                            <value name="ADD0">
                                                                                              <block type="text" id="(bZZUaTT0bt~IQ|a~%#R">
                                                                                                <field name="TEXT">Sonnenuntergang; </field>
                                                                                              </block>
                                                                                            </value>
                                                                                            <value name="ADD1">
                                                                                              <block type="variables_get" id="weuYcyZ5+:mfnpSK9UiP">
                                                                                                <field name="VAR" id="UJ`JGN{Ezb$K7jJ[4P}j">Sunset</field>
                                                                                              </block>
                                                                                            </value>
                                                                                          </block>
                                                                                        </value>
                                                                                        <next>
                                                                                          <block type="debug" id="1|f1K~GhCe(a;/q4o_X]">
                                                                                            <field name="Severity">log</field>
                                                                                            <value name="TEXT">
                                                                                              <shadow type="text">
                                                                                                <field name="TEXT">test</field>
                                                                                              </shadow>
                                                                                              <block type="text_join" id="2Zo2{I0w6J%`$2:qEY1l">
                                                                                                <mutation items="2"></mutation>
                                                                                                <value name="ADD0">
                                                                                                  <block type="text" id="+YI.VRyx;em.YT$D(|bs">
                                                                                                    <field name="TEXT">Istwert: </field>
                                                                                                  </block>
                                                                                                </value>
                                                                                                <value name="ADD1">
                                                                                                  <block type="variables_get" id="z%3ACfZd0~)KLgj0p}%@">
                                                                                                    <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                                                                  </block>
                                                                                                </value>
                                                                                              </block>
                                                                                            </value>
                                                                                            <next>
                                                                                              <block type="debug" id="r+xN[i`4xS-M`OYDBpb.">
                                                                                                <field name="Severity">log</field>
                                                                                                <value name="TEXT">
                                                                                                  <shadow type="text">
                                                                                                    <field name="TEXT">test</field>
                                                                                                  </shadow>
                                                                                                  <block type="text_join" id="(f(78JM#Hy0@?Z0hJe~l">
                                                                                                    <mutation items="2"></mutation>
                                                                                                    <value name="ADD0">
                                                                                                      <block type="text" id="~}`O(MW.TU:J%_oS)#Xu">
                                                                                                        <field name="TEXT">obere Grenze: </field>
                                                                                                      </block>
                                                                                                    </value>
                                                                                                    <value name="ADD1">
                                                                                                      <block type="variables_get" id=",vBoJg7x{3!@v.c5w4q]">
                                                                                                        <field name="VAR" id="}s`y%Qd}~t2t(jU$8(ud">upperLimit</field>
                                                                                                      </block>
                                                                                                    </value>
                                                                                                  </block>
                                                                                                </value>
                                                                                                <next>
                                                                                                  <block type="debug" id="qBNh2:P3U}F#$|$6FZFn">
                                                                                                    <field name="Severity">log</field>
                                                                                                    <value name="TEXT">
                                                                                                      <shadow type="text" id="2kPK8(t-SdR9TZvb.%-l">
                                                                                                        <field name="TEXT">test</field>
                                                                                                      </shadow>
                                                                                                      <block type="text_join" id="}cq5v9RJT$55w(=?6BX)">
                                                                                                        <mutation items="2"></mutation>
                                                                                                        <value name="ADD0">
                                                                                                          <block type="text" id="*q^TTVgJ+?:b!z,x/S;V">
                                                                                                            <field name="TEXT">untere Grenze: </field>
                                                                                                          </block>
                                                                                                        </value>
                                                                                                        <value name="ADD1">
                                                                                                          <block type="variables_get" id="Vh$)4$K%:ZHW:~MiMXet">
                                                                                                            <field name="VAR" id="P^1|W+9iVy?PgNp}9!.S">lowerLimit</field>
                                                                                                          </block>
                                                                                                        </value>
                                                                                                      </block>
                                                                                                    </value>
                                                                                                    <next>
                                                                                                      <block type="debug" id="k}*+@}8y%^u*6nB1JGm^">
                                                                                                        <field name="Severity">log</field>
                                                                                                        <value name="TEXT">
                                                                                                          <shadow type="text">
                                                                                                            <field name="TEXT">test</field>
                                                                                                          </shadow>
                                                                                                          <block type="text_join" id="9O/.cB+R0J#M=YHuIJn?">
                                                                                                            <mutation items="2"></mutation>
                                                                                                            <value name="ADD0">
                                                                                                              <block type="text" id="3Uv-x,Irz%wnP{oXU!s^">
                                                                                                                <field name="TEXT">benötigte Power in Prozent:</field>
                                                                                                              </block>
                                                                                                            </value>
                                                                                                            <value name="ADD1">
                                                                                                              <block type="variables_get" id="T);Yxf;X[xS0z_7}_YkI">
                                                                                                                <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                                                                                              </block>
                                                                                                            </value>
                                                                                                          </block>
                                                                                                        </value>
                                                                                                        <next>
                                                                                                          <block type="controls_if" id="//Rx),f%pyif!qW8O/?G">
                                                                                                            <mutation elseif="1" else="1"></mutation>
                                                                                                            <value name="IF0">
                                                                                                              <block type="logic_operation" id="6|n{EZ*g-L?wwMuw~`pt">
                                                                                                                <field name="OP">AND</field>
                                                                                                                <value name="A">
                                                                                                                  <block type="logic_compare" id="@s)ep$AZC}nn4%[Y{zXv">
                                                                                                                    <field name="OP">GTE</field>
                                                                                                                    <value name="A">
                                                                                                                      <block type="variables_get" id="rLGQIwoD@(-[)i.@Gek1">
                                                                                                                        <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="B">
                                                                                                                      <block type="math_number" id="i.8)/]r6EY5E@{+61}ch">
                                                                                                                        <field name="NUM">100</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                                <value name="B">
                                                                                                                  <block type="logic_compare" id="M%7gn=%*6!Oo0Iy!N0HE">
                                                                                                                    <field name="OP">EQ</field>
                                                                                                                    <value name="A">
                                                                                                                      <block type="variables_get" id="FPBUa4}8MCdw~u2(u=Z4">
                                                                                                                        <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="B">
                                                                                                                      <block type="math_number" id="])#t~DUCT78?qe_~1/X)">
                                                                                                                        <field name="NUM">100</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                              </block>
                                                                                                            </value>
                                                                                                            <statement name="DO0">
                                                                                                              <block type="debug" id="_|aD2Z`JU`?BoQCCcfTz">
                                                                                                                <field name="Severity">log</field>
                                                                                                                <value name="TEXT">
                                                                                                                  <shadow type="text" id="wcNA/`cj2DUcJLr26^bd">
                                                                                                                    <field name="TEXT">keine Änderung, Wert ist gleich gespeichertem Wert</field>
                                                                                                                  </shadow>
                                                                                                                </value>
                                                                                                              </block>
                                                                                                            </statement>
                                                                                                            <value name="IF1">
                                                                                                              <block type="logic_operation" id="4WJuW,40dOlCCnG8!=A(">
                                                                                                                <field name="OP">OR</field>
                                                                                                                <value name="A">
                                                                                                                  <block type="logic_compare" id="0U*fZT58L0uKFJsD)N{;">
                                                                                                                    <field name="OP">GT</field>
                                                                                                                    <value name="A">
                                                                                                                      <block type="variables_get" id="%=U`G7.6z`w:8|:XtgTI">
                                                                                                                        <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="B">
                                                                                                                      <block type="variables_get" id="IE{(_NPVQP{:.^rxbG?4">
                                                                                                                        <field name="VAR" id="}s`y%Qd}~t2t(jU$8(ud">upperLimit</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                                <value name="B">
                                                                                                                  <block type="logic_compare" id="7GGwP6lHcmy!ILxZJvYk">
                                                                                                                    <field name="OP">LT</field>
                                                                                                                    <value name="A">
                                                                                                                      <block type="variables_get" id="EN^7brshgWEicI7V4)C!">
                                                                                                                        <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="B">
                                                                                                                      <block type="variables_get" id="7B.88d1a^Hr`R-b6!iMZ">
                                                                                                                        <field name="VAR" id="P^1|W+9iVy?PgNp}9!.S">lowerLimit</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                              </block>
                                                                                                            </value>
                                                                                                            <statement name="DO1">
                                                                                                              <block type="controls_if" id="P8/_4.KJ/zZ6qh9iBh+o">
                                                                                                                <mutation else="1"></mutation>
                                                                                                                <value name="IF0">
                                                                                                                  <block type="logic_compare" id="mk*xKT^,LdqKZpmRr}r4">
                                                                                                                    <field name="OP">LTE</field>
                                                                                                                    <value name="A">
                                                                                                                      <block type="variables_get" id=".d_KP;p/?wytr_{S7(db">
                                                                                                                        <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">neededPower</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <value name="B">
                                                                                                                      <block type="variables_get" id="R!EQmKR0*lP1iR`NTG%f">
                                                                                                                        <field name="VAR" id="BN!a@q$SEAU4^)xo:SRJ">maxSolarPower</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                  </block>
                                                                                                                </value>
                                                                                                                <statement name="DO0">
                                                                                                                  <block type="variables_set" id="v_^pc%4YAqueF4@xp/Ph">
                                                                                                                    <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field>
                                                                                                                    <value name="VALUE">
                                                                                                                      <block type="variables_get" id="rba!2I;EQyijkPfjo!Ze">
                                                                                                                        <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <next>
                                                                                                                      <block type="update" id="E7HJvqAC,*BNAxN~e8sd">
                                                                                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                                                                        <field name="OID">0_userdata.0.PV-Anlage.storedNeededPower</field>
                                                                                                                        <field name="WITH_DELAY">FALSE</field>
                                                                                                                        <value name="VALUE">
                                                                                                                          <block type="variables_get" id="hR1[WimPbd@1ICN+UAdn">
                                                                                                                            <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                                                                                                          </block>
                                                                                                                        </value>
                                                                                                                      </block>
                                                                                                                    </next>
                                                                                                                  </block>
                                                                                                                </statement>
                                                                                                                <statement name="ELSE">
                                                                                                                  <block type="variables_set" id="iqqD`P-h34,:2q7p$CH|">
                                                                                                                    <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field>
                                                                                                                    <value name="VALUE">
                                                                                                                      <block type="math_number" id="dowAhu.+=iz#Wc-F]p:X">
                                                                                                                        <field name="NUM">100</field>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <next>
                                                                                                                      <block type="update" id="*?5=;cANP)NJ|KuX_[PF">
                                                                                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                                                                        <field name="OID">0_userdata.0.PV-Anlage.storedNeededPower</field>
                                                                                                                        <field name="WITH_DELAY">FALSE</field>
                                                                                                                        <value name="VALUE">
                                                                                                                          <block type="math_number" id="7vXqNl1zb}n*oh6q3:]4">
                                                                                                                            <field name="NUM">100</field>
                                                                                                                          </block>
                                                                                                                        </value>
                                                                                                                      </block>
                                                                                                                    </next>
                                                                                                                  </block>
                                                                                                                </statement>
                                                                                                                <next>
                                                                                                                  <block type="controls_if" id="]^/I[vJo!sr5LpkbcFB!">
                                                                                                                    <value name="IF0">
                                                                                                                      <block type="logic_compare" id="%50d#)U*~RScC:F-kp{g">
                                                                                                                        <field name="OP">LTE</field>
                                                                                                                        <value name="A">
                                                                                                                          <block type="variables_get" id="KVYNgaA$~@zFf4U(-2G(">
                                                                                                                            <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field>
                                                                                                                          </block>
                                                                                                                        </value>
                                                                                                                        <value name="B">
                                                                                                                          <block type="math_number" id="!0pj`kNb_!ZOVov*^)[3">
                                                                                                                            <field name="NUM">4</field>
                                                                                                                          </block>
                                                                                                                        </value>
                                                                                                                      </block>
                                                                                                                    </value>
                                                                                                                    <statement name="DO0">
                                                                                                                      <block type="variables_set" id="/4+e9gEK~pdujzM|}ksi">
                                                                                                                        <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field>
                                                                                                                        <value name="VALUE">
                                                                                                                          <block type="math_number" id="c+YG2dsZvm-}l6dXt[1Z">
                                                                                                                            <field name="NUM">5</field>
                                                                                                                          </block>
                                                                                                                        </value>
                                                                                                                      </block>
                                                                                                                    </statement>
                                                                                                                    <next>
                                                                                                                      <block type="controls_if" id="ZH?n)}/A8xDqvLu;mM3m">
                                                                                                                        <mutation else="1"></mutation>
                                                                                                                        <value name="IF0">
                                                                                                                          <block type="logic_operation" id="vVy#@8N({zRaYhlMew]c">
                                                                                                                            <field name="OP">OR</field>
                                                                                                                            <value name="A">
                                                                                                                              <block type="logic_compare" id="PIGb)h}(L;=:AD;5r=W$">
                                                                                                                                <field name="OP">LTE</field>
                                                                                                                                <value name="A">
                                                                                                                                  <block type="get_value" id="Hn,:c1}lRncb$M*c37T[">
                                                                                                                                    <field name="ATTR">val</field>
                                                                                                                                    <field name="OID">0_userdata.0.PV-Anlage.Solarlimit_HM400.Solarlimit_HM400</field>
                                                                                                                                  </block>
                                                                                                                                </value>
                                                                                                                                <value name="B">
                                                                                                                                  <block type="math_number" id="O/l%Uh0A@?HPfD;/4eRW">
                                                                                                                                    <field name="NUM">5</field>
                                                                                                                                  </block>
                                                                                                                                </value>
                                                                                                                              </block>
                                                                                                                            </value>
                                                                                                                            <value name="B">
                                                                                                                              <block type="logic_operation" id="x8],WeAvz)P5RbWxBqKU">
                                                                                                                                <field name="OP">OR</field>
                                                                                                                                <value name="A">
                                                                                                                                  <block type="logic_compare" id="D1Vr-[UHVwz,0UMcxf~t">
                                                                                                                                    <field name="OP">GTE</field>
                                                                                                                                    <value name="A">
                                                                                                                                      <block type="get_value" id="*^o)uk]A48Tjk%pvj2pB">
                                                                                                                                        <field name="ATTR">val</field>
                                                                                                                                        <field name="OID">0_userdata.0.PV-Anlage.Solarlimit_HM400.Solarlimit_HM400</field>
                                                                                                                                      </block>
                                                                                                                                    </value>
                                                                                                                                    <value name="B">
                                                                                                                                      <block type="math_number" id="az|/|Fl[JpJ{rB83ed[p">
                                                                                                                                        <field name="NUM">100</field>
                                                                                                                                      </block>
                                                                                                                                    </value>
                                                                                                                                  </block>
                                                                                                                                </value>
                                                                                                                                <value name="B">
                                                                                                                                  <block type="logic_compare" id="1f.~}_NZHFWHi$U;Bl[E">
                                                                                                                                    <field name="OP">LT</field>
                                                                                                                                    <value name="A">
                                                                                                                                      <block type="get_value" id="o%XYKF2zkxK+dE|3E%-_">
                                                                                                                                        <field name="ATTR">val</field>
                                                                                                                                        <field name="OID">opendtu.0.112183217812.ac.phase_1.power</field>
                                                                                                                                      </block>
                                                                                                                                    </value>
                                                                                                                                    <value name="B">
                                                                                                                                      <block type="get_value" id="uM~uo~N[nRQ?i9!fzRA!">
                                                                                                                                        <field name="ATTR">val</field>
                                                                                                                                        <field name="OID">opendtu.0.112183217812.power_control.current_limit_absolute</field>
                                                                                                                                      </block>
                                                                                                                                    </value>
                                                                                                                                  </block>
                                                                                                                                </value>
                                                                                                                              </block>
                                                                                                                            </value>
                                                                                                                          </block>
                                                                                                                        </value>
                                                                                                                        <statement name="DO0">
                                                                                                                          <block type="control" id="W+gr)Q`C;VMjG:,mB)8r">
                                                                                                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                                                                            <field name="OID">opendtu.0.116180216966.power_control.limit_nonpersistent_relative</field>
                                                                                                                            <field name="WITH_DELAY">FALSE</field>
                                                                                                                            <value name="VALUE">
                                                                                                                              <block type="variables_get" id="0O[l*@b$eWz(z6Nj5;8Z">
                                                                                                                                <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field>
                                                                                                                              </block>
                                                                                                                            </value>
                                                                                                                            <next>
                                                                                                                              <block type="debug" id="4(mO4hae0d8|yCEDlMj~">
                                                                                                                                <field name="Severity">log</field>
                                                                                                                                <value name="TEXT">
                                                                                                                                  <shadow type="text" id="GhK9E*i9z*IoFuBKSaq1">
                                                                                                                                    <field name="TEXT">test</field>
                                                                                                                                  </shadow>
                                                                                                                                  <block type="text_join" id="K$7:Tw;%Pm?f$3/:xV?V">
                                                                                                                                    <mutation items="2"></mutation>
                                                                                                                                    <value name="ADD0">
                                                                                                                                      <block type="text" id="tzX795?CuQ=.SGL`i!ns">
                                                                                                                                        <field name="TEXT">gesetztes Limit: </field>
                                                                                                                                      </block>
                                                                                                                                    </value>
                                                                                                                                    <value name="ADD1">
                                                                                                                                      <block type="variables_get" id="`hpd|~6gnaa1#A:#I^ku">
                                                                                                                                        <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field>
                                                                                                                                      </block>
                                                                                                                                    </value>
                                                                                                                                  </block>
                                                                                                                                </value>
                                                                                                                              </block>
                                                                                                                            </next>
                                                                                                                          </block>
                                                                                                                        </statement>
                                                                                                                        <statement name="ELSE">
                                                                                                                          <block type="debug" id="Pv3KiYZaGuo2FdU}gjig">
                                                                                                                            <field name="Severity">log</field>
                                                                                                                            <value name="TEXT">
                                                                                                                              <shadow type="text" id="t2%tFy.G9l;?j^VyEMCa">
                                                                                                                                <field name="TEXT">keine Änderung</field>
                                                                                                                              </shadow>
                                                                                                                            </value>
                                                                                                                          </block>
                                                                                                                        </statement>
                                                                                                                      </block>
                                                                                                                    </next>
                                                                                                                  </block>
                                                                                                                </next>
                                                                                                              </block>
                                                                                                            </statement>
                                                                                                            <statement name="ELSE">
                                                                                                              <block type="debug" id="k-_yI!1YR}Cw@^zA*2By">
                                                                                                                <field name="Severity">log</field>
                                                                                                                <value name="TEXT">
                                                                                                                  <shadow type="text" id="pOzzR,#7b~P,=jhm/QLz">
                                                                                                                    <field name="TEXT">keine Änderung</field>
                                                                                                                  </shadow>
                                                                                                                </value>
                                                                                                              </block>
                                                                                                            </statement>
                                                                                                          </block>
                                                                                                        </next>
                                                                                                      </block>
                                                                                                    </next>
                                                                                                  </block>
                                                                                                </next>
                                                                                              </block>
                                                                                            </next>
                                                                                          </block>
                                                                                        </next>
                                                                                      </block>
                                                                                    </next>
                                                                                  </block>
                                                                                </next>
                                                                              </block>
                                                                            </next>
                                                                          </block>
                                                                        </next>
                                                                      </block>
                                                                    </next>
                                                                  </block>
                                                                </next>
                                                              </block>
                                                            </next>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </statement>
                                                <statement name="ELSE">
                                                  <block type="debug" id="6hv2w66u%V}c3Ij`Q?pi">
                                                    <field name="Severity">log</field>
                                                    <value name="TEXT">
                                                      <shadow type="text" id="LmPU])Tk80,#%40`K:m4">
                                                        <field name="TEXT">Zeit ist außerhalb der Reglungszeit.</field>
                                                      </shadow>
                                                    </value>
                                                  </block>
                                                </statement>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </statement>
                                  </block>
                                </xml>
                                

                                HM1500_Script_Ausschnitt.JPG

                                G Online
                                G Online
                                Gonzokalle
                                schrieb am zuletzt editiert von Gonzokalle
                                #188

                                @Kymchy
                                Ich habe mal das Blockly von Kymchy nachgebaut. Funktioniert hervorragend.
                                6601fa8f-cd66-40ea-843d-6c709acc58a2-image.png

                                @Tigger66
                                Kannst du bitte erklären, wie du den zweiten WR steuerst?
                                Der erste WR läuft mit dem Blockly von Kymchy?
                                Der zweite WR läuft mit einer erweiterten Steuerung?
                                Das verstehe ich aber noch nicht.
                                7f2f923f-b16e-4475-9661-9dc38c00600a-image.png

                                1 Antwort Letzte Antwort
                                0
                                • CarsaabC Carsaab

                                  @gonzokalle
                                  Ja das ist bei mir auch so.
                                  Der Trigger ist immer die Änderung im Stromverbrauch. Dann setzt das Script ein neues Limit sofern die Solaranlage mehr als die 30% liefert. Bei mir dann 450W.
                                  Wenn der Stromverbrauch hochgeht, dann geht das Limit hoch und auch wieder runter, wenn der Verbrauch sinkt.
                                  Sollte dann die Solaranlage bei gleichem Verbrauch mehr liefern, dann sinkt der Stromverbrauch aber das Limit bleibt gleich, weil sich die Summe aus Solarenergie und Stromverbrauch nicht ändert.
                                  Ich habe auch nur einen WR.
                                  Weil aber mein Hichi nur alle 10sek einen neuen Wert schickt, ist das ganze natürlich nicht genau, aber für unsere Zwecke reicht es.
                                  Vom Shelly 3EM müsste ja der Gesamtverbrauch gemessen werden. Wenn der Shelly im Sekundentakt einen Wert liefert, dann schreibt das Script auch jede Sekunde.

                                  Aber das Prinzip ist das gleiche. Ich nehme an, Du hast einen 600W WR im Einsatz.

                                  T Offline
                                  T Offline
                                  Tosca76
                                  schrieb am zuletzt editiert von Tosca76
                                  #189

                                  @carsaab
                                  Hi,
                                  kannst du vielleicht das komplette Blockly mal einstellen ? Ich habe da etwas Schwierigkeiten, beim nachbauen.

                                  Thomas BraunT CarsaabC 2 Antworten Letzte Antwort
                                  0
                                  • T Tosca76

                                    @carsaab
                                    Hi,
                                    kannst du vielleicht das komplette Blockly mal einstellen ? Ich habe da etwas Schwierigkeiten, beim nachbauen.

                                    Thomas BraunT Online
                                    Thomas BraunT Online
                                    Thomas Braun
                                    Most Active
                                    schrieb am zuletzt editiert von
                                    #190

                                    Zum Thema Nulleinspeisung (oder 'Panelbeheizung', wie ich es nenne):

                                    https://www.youtube.com/watch?v=wxP5uMdtMmk

                                    Linux-Werkzeugkasten:
                                    https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                    NodeJS Fixer Skript:
                                    https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                    iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                    1 Antwort Letzte Antwort
                                    1
                                    • T Tosca76

                                      @carsaab
                                      Hi,
                                      kannst du vielleicht das komplette Blockly mal einstellen ? Ich habe da etwas Schwierigkeiten, beim nachbauen.

                                      CarsaabC Offline
                                      CarsaabC Offline
                                      Carsaab
                                      schrieb am zuletzt editiert von
                                      #191

                                      @tosca76 Null-Einspeiseregelung_0.xml
                                      Das ist das File.
                                      Ansonsten ist das Bild auch das Script.
                                      Die Objekte mußt Du leider selber finden, ich nutze gerade 2 Wechselrichter die hier gesteuert werden.
                                      BTW: Das Video ist mir bekannt und er hat auch Recht. Es ist aber kein Widerspruch zu meiner Regelung, weil ich die Null garnicht unbedingt erreichen will. Der grobe Daumen reicht, ist aber auch oben schon erklärt.

                                      T 1 Antwort Letzte Antwort
                                      0
                                      • CarsaabC Carsaab

                                        @tosca76 Null-Einspeiseregelung_0.xml
                                        Das ist das File.
                                        Ansonsten ist das Bild auch das Script.
                                        Die Objekte mußt Du leider selber finden, ich nutze gerade 2 Wechselrichter die hier gesteuert werden.
                                        BTW: Das Video ist mir bekannt und er hat auch Recht. Es ist aber kein Widerspruch zu meiner Regelung, weil ich die Null garnicht unbedingt erreichen will. Der grobe Daumen reicht, ist aber auch oben schon erklärt.

                                        T Offline
                                        T Offline
                                        Tosca76
                                        schrieb am zuletzt editiert von
                                        #192

                                        @carsaab
                                        Super dank dir 👍

                                        1 Antwort Letzte Antwort
                                        0
                                        • K Kymchy

                                          Hallo,
                                          ich habe mich mal daran versucht, ein Blockly zu erstellen, welches dazu dient, einen Hoymiles Wechselrichter für ein Balkonkraftwerk zu regeln.
                                          Dazu gibt es im Netz schon einige, aber die, die ich gefunden hatte, gingen immer von dem Ansatz aus, das reagiert wird, wenn die Anlage in die Einspeisung geht, also mehr Strom erzeugt wird, als benötigt wird.
                                          Mein Ansatz verfolgt einen anderen Weg. Und zwar den, dass die Anlage immer maximal soviel Strom liefert, wie von den Verbrauchern verlangt wird. Meinen Stromzähler lese ich mit einem Hichi aus, der negative Werte anzeigt, wenn eingespeist wird. Die benötigte Strommenge ergibt sich aus der Summe dessen, was der Hichi ausliest und der momentanen Leistung der PV-Anlage.
                                          Meine Regelung erfolgt alle 30 Sekunden und nur zwischen Sonnenauf- und Sonnenuntergang. Um zu häufige Regelungen zu vermeiden, habe ich eine Hysterese eingebaut, wobei die Regelung nur dann erfolgt, wenn der gemessene Strombedarf mehr als 10% vom vorher eingestellten abweicht. Den eingestellten Wert speichere ich dazu in einem Datenpunkt. Die Regelung erfolgt über MQTT non-persistent und in Prozent, also relativ.
                                          Ich hoffe, das Skript ist einigermaßen lesbar und würde mich mich über Hinweise zu Fehlern oder Verbesserungsvorschläge freuen.
                                          Hier nun das Blockly;

                                          Bildschirmfoto vom 2023-03-01 11-43-47.png

                                          viele Grüße
                                          Kymchy

                                          G Online
                                          G Online
                                          Gonzokalle
                                          schrieb am zuletzt editiert von
                                          #193

                                          @kymchy
                                          Vielen Dank für deine WR Steuerung.
                                          Funktioniert!
                                          fdbc0229-3354-4d65-b767-159d9cabdeb0-image.png
                                          Habe das Blockly noch etwas verändert. Bin da aber leider kein Fachmann.
                                          63a0dc19-96be-45e8-8b3e-568ddab910f0-image.png
                                          Interessant währe noch die Steuerung für einen zweiten WR.

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          575

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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