SolarEdge Wechselrichter einbinden

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • PLCProg
    Azubi
    • 21.11.2022
    • 6

    Hallo,
    habe seit einiger Zeit die Post verfolgt und bei den letzten bin auch fündig geworden und verschiedene Probleme rund um den Energiemonitor zu beheben.
    Ich habe einen SE 10K mit Batterie 10K; Netzeinspeisung aktuell deaktiviert/bzw. 0.

    Folgende Lösungen für die diskutieren Themen habe ich erarbeitet bzw. aus den Post herausgefiltert:

    I_AC_Power+SF/Zähler PV:
    Ist die reine Wechselrichterleistung ins Netz, entspricht der PV-Leistung wenn keine Batterie vorhanden
    IO-Adresse = 40083, 32-bit unsigned, 16-Bit Register/Registerreihenfolge angehakt, Abfragezyklus 5s, Eingangswert 0/0, Zielwert 100/100
    Formel WR-Power = INT(I1/65536)*10^(I1-65536*(INT(I1/65536)+1))/1000
    Formel PV-Power = IF(I1+I2>0;I1+I2;0) (damit keine negative Leistung gezählt wird)
    Zähler bekommt PV-Power, keine Energiewerte

    M_AC_Power+SF/Zähler Netz:
    Lese die einzelnen Phasen + SF mit 64 Bit-Abfrage (Register 40207/40208/40209/40010)
    IO-Adresse = 40207, 64-bit unsigned, 16-Bit Register angehakt, Abfragezyklus 5s, Eingangswert 0/0, Zielwert 100/100
    die einzelnen Wörter (16 Bit) sind dann L1, L2, L3 und SF
    Formel Grid L1 = I1-65536*INT(I1/65536)
    Formel Grid L2 = INT(I1/(65536))-65536*INT(I1/(65536^2))
    Formel Grid L3 = INT(I1/(65536^2))-65536*INT(I1/(65536^3))
    Formel Grid SF = INT(I1/(65536^3))-65536*INT(I1/(65536^4))
    Formel Grid-Power = ((-IF(I1>32767;I1-65536;I1)-IF(I2>32767;I2-65536;I2)-IF(I3>32767;I3-65536;I3))*10^IF(I4>32767;I4-65536;I4))/1000 (Vorzeichen ermitteln und korrigieren)
    Zähler bekommt Grid-Power, keine Energiewerte
    zur Kontrolle darunter M_AC_Power und M_AC_Power_SF getrennt zur Anzeige (ohne Berechnung)
    ​​
    B_Power/Zähler Batterie:
    B_Power: IO-Adresse = 57716, 32-bit floating point, 16-Bit Register angehakt, Abfragezyklus 5s, Eingangswert 0/0, Zielwert 1000/1 (kW)
    S_OE:IO-Adresse = 57732, 32-bit floating point, 16-Bit Register angehakt, Abfragezyklus 5s, Eingangswert 0/0, Zielwert 100/100 (%)
    Zähler mit Lieferung=Positiver Wert, Verbrauch = Negativ Wert und SOE (State of energy)

    Schalte ich nun die Leistungen (kW) und die Energiewerte (kWh) auf die Zähler, so stimmt die Anzeige des Eigenverbrauchs, Batterieverbrauchs usw. nie (entweder die Produktion stimmt oder der Verbrauch stimmt); schalte ich hingegen nur die Leistungen (kW) auf die Zähler dann wird alles korrekt berechnet. Aus verschiedenen Test hat sich dann das angehängte Programm ergeben und die Daten von heute. Mal sehen was morgen kommt usw.


    Angehängte Dateien

    Kommentar


    • da2001
      da2001 kommentierte
      Kommentar bearbeiten
      Respekt. Tolle Arbeit! meine Werte stimmen leider hinten und vorne nicht. Hättest Du Lust die Vorlage später zur Verfügung zu stellen?

    • Michlb1003
      Michlb1003 kommentierte
      Kommentar bearbeiten
      hallo PCLProg, kurze frage, woher kommen die 65536 die du in deinen Formeln immer dabei hast? oder habe ich das irgendwo in den zig-seiten überlesen?

    • smarthomekaiser
      smarthomekaiser kommentierte
      Kommentar bearbeiten
      Hallo ich brauche ihre Hilfe.
      Meine PV Anlage geht immer in aus wenn Batterie vollgeladen hat und liefert von Rest ins Netz
      Zuletzt geändert von smarthomekaiser; 06.10.2023, 15:12.
  • PLCProg
    Azubi
    • 21.11.2022
    • 6

    Hallo da2001,
    im Anhang Loxone-Projekt bzw. Modbus-Template.
    Angehängte Dateien

    Kommentar


    • da2001
      da2001 kommentierte
      Kommentar bearbeiten
      Klasse, vielen Dank! Zwar scheint keine Sonne mehr, aber der Rest sieht sehr gut aus. Tolle Arbeit! Solltest du mal im LoxWiki posten. Das erspart vielen Leuten bestimmt eine Menge Frust!
  • PLCProg
    Azubi
    • 21.11.2022
    • 6

    Hallo User,
    Habe jetzt mal die Daten des Portals und die in Loxone (Modbus TCP) verglichen. Da sieht man sofort dass etwas im Portal komplett falsch berechnet wird (oder ich verstehe es nur nicht richtig).
    gestern Schneefall und Batterie irgendwann leer, d.h. heute früh mit leerer Batterie gestartet.
    Da Portal zeigt nun folgende Werte:
    - 3.79kWh Produktion heute -> 3.73kWh Eigenverbrauch (Sonne+Batterie), 0.06kWh Netzeinspeisung
    - 6.98kWh Verbrauch -> 0.03kWh Batterie, 3.71kWh Sonne, 3.24KWh Netzbezug
    Loxone zeigt:
    - 12.8kWh Produktion heute -> 2.7kWh Eigenverbrauch, 10kWh Batterie, 0.059kWh Netzeinspeisung
    - 6.1kWh Verbrauch -> 2.7kWh Produktion, 0.032kWh Batterie, 3.3kWh Netzbezug

    Ich weiß je nicht wie das Portal die Daten berechnet, aber bei 3.79kWh Produktion kann ich keine Batterie mit 9.2kWh laden.
    Ich glaube den daten in Loxone mehr, auch weil der Hauszähler des E-Wertes denselben Verbrauch anzeigt (habe den Zählerstand des Smartmeters am Wechselrichter mit dem Zählerstand des Netzzählers des E-Wertes korrigiert (Formelbaustein)


    Kommentar

    • PLCProg
      Azubi
      • 21.11.2022
      • 6

      Anbei Bilder
      Angehängte Dateien

      Kommentar

      • PLCProg
        Azubi
        • 21.11.2022
        • 6

        Nachtrag zu heute,
        das SE Portal rechnet die Batterieleistung nicht beim Laden (deshalb auch die geringe PV-Leistung), sondern beim Entladen wird die Energie zur Produktion addiert, d.h. die Lade/Entladeverlust werden einfach verworfen und die Produktion ist etwas kleiner. Beim Verbrauch schein dann dieselbe Entladeenergie auf (siehe Bild)
        Angehängte Dateien

        Kommentar

        • PLCProg
          Azubi
          • 21.11.2022
          • 6

          Hallo Michlb2001
          bei einer 32-Bit Zahl sind die ersten 16 Bit 0..65535, d.h bei Hex 00010000 habe ich 65536 und wenn ich die 32-Bit Zahl durch 65536 dividieren dann bekomme ich 1, also das High-Wort.
          Sollte eigentlich bekannt sein.

          Kommentar


          • Michlb1003
            Michlb1003 kommentierte
            Kommentar bearbeiten
            Danke für dieInfo, nein war mir nicht bekannt. Aber danke für die nette und freundliche Unterrichtsstunde.
        • Michlb1003
          Dumb Home'r
          • 21.03.2022
          • 23

          hallo nochmal, also ich habe jetzt einiges versucht, die vorlage von Loxone selbst (die v2) dann die Vorlage von PCLProg... und was man sonst noch so von solarEdge findet.. aber die werte können absolut nicht stimmen, denn dann wäre unsere PV die effizienteste die es gibt.. bei 400kWp produziert die teilweise MWh!...

          ABER ich denke da hat die Montagefirma einen Fehler gemacht... denn selbst Sa und SO wo keine Verbraucher laufen steigt der Verbrauch fast parallel mit der Produktion der PV an .... kann eigentlich nicht sein... vom Ersteller werden wir immer nur vertröstet, sie können nichts machen, das würde alles so passen... bezweifel ist...
          wie könnte ich das irgendwie kontrollieren? ich habe gesehen man kann mittels Bluetooth auf die WR verbinden und daten auslesen, kann diese aber noch nicht wirklich zuordnen... hatte schon jemand ähnliche probleme?

          bin für jedes fitztelchen Info dankbar!

          lg

          Kommentar


          • rome
            rome kommentierte
            Kommentar bearbeiten
            Passen deine Skalierfaktoren? Wenn statt kWh MWh rauskommen könnte das ein Thema sein.
            Wie ist der Zustand in der Solaredge Monitoring App? Ist hier alles identisch mit den Werten in Loxone?
            Hast du Screenshots deiner Loxone Werte und Statistiken sowie die der Solaredge App?

            Aus anderen Foren weiß ich dass zum Teil die Anschlüsse der Zähler bei SE Zählern vertauscht wurden. Ist das der Fall?
        • Michlb1003
          Dumb Home'r
          • 21.03.2022
          • 23

          hallo rome

          die Skalierfaktoren stimmen, denn diese MW Werte kommen nur vereinzelt vor... sonst sind die im Normalfall eben kW. die Werte der Solar-Edge stimmen nicht mit den Werten von Loxone (Modbus-werte) noch mit denen der Wechselrichter direkt (per BT-Verbindung) überein... noch ein Screenshot aus dem SE - Monitoring vom Samstag (keine aktiven Verbraucher und hoher Verbrauch gemessen)
          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1503
Größe: 71,6 KB
ID: 375113selbe Tag im Loxone:
          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1226
Größe: 42,7 KB
ID: 375114Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1210
Größe: 50,2 KB
ID: 375115Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1225
Größe: 32,6 KB
ID: 375116Statistik der Zähler sind seit 20. Okt 2022 leer.....

          Wir haben an den Smartmetern von unserem Energie-Anbieter auch die Loxone-Zähler-Dinger drauf, zur Gegenkontrolle der SE daten mit einspeisung und so... aber die passen mit den SE daten überhaupt nicht zu sammen...

          Nachstehnd das Programm zu den entsprechenden Werten der Anlage die auch im SE angezeigt wird, die 2. Anlage (auch 200kWp) wird im SE gar nicht erfasst/dargestellt - da hat der Anlagenbauer gemeint, vielleicht wird hier online was falsch berechnet und hat die rausgenommen...


          Hier die Werte nach der Anleitung von oben.:
          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1146
Größe: 124,5 KB
ID: 375117​​
          ich hoffe die Infos sind verständlich und ausreichend, ich muß gestehen, ich weiß nicht mehr weiter wo ich was noch ändern soll, seitens SolarEdge kommt auch nicht wirklich viel unterstützung, die meinen wir sollen uns an den Anlagenbauer wenden, der hat von dem scheinbar noch weniger ahnung als ich.... aber verkauft und hinter ihm die Sintflut...

          danke schon mal. ​​​

          Kommentar

          • Michlb1003
            Dumb Home'r
            • 21.03.2022
            • 23

            hier die enstprechende Programmierung lt. Loxone Vorlage v2
            Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1195
Größe: 188,8 KB
ID: 375119​die entsprechenden Rohdaten der anlage: Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1187
Größe: 323,8 KB
ID: 375120Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 1189
Größe: 67,2 KB
ID: 375121

            Kommentar

            • half-bit
              Smart Home'r
              • 14.03.2021
              • 35

              PLCProg: Danke für den super Beitrag. Ich habe aber ein Problem bei schnellen Lastwechseln wenn der WR von der Batterie läuft, dann wird kurzzeitig in das Netz eingespeist und dies wird dann als PV-Power berechnet. Es scheint als wäre die Batterie-WR-Kommunikation zeitlich versetzt was zu einer falschen PV Produktion führt. Sehe das Verhalten sehr stark mit dem Induktionsher der periodisch kurz viel Leistung zieht.
              Im SolarEdge Portal wird die Netzeinspeisung auch angezeigt aber die Produktion wird dadurch nicht beeinflusst. Hast du dieses Problem auch? (gleiche Formel wie du. Habe eine BYD Batterie an einem SE10K
              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Screenshot 2023-02-21 at 21.56.32.png
Ansichten: 1207
Größe: 16,7 KB
ID: 380276
              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Screenshot 2023-02-21 at 21.56.15.png
Ansichten: 1031
Größe: 43,2 KB
ID: 380277
              (Printscreens sind nicht zur exakt gleichen Zeit aufgenommen, deshalb unterschiedliche Zahlen)

              Kommentar

              • bbi
                Dumb Home'r
                • 16.11.2017
                • 27

                Hallo PLCProg, erstmal vielen Dank für Deine Mühe. Auch ich habe Deine Arbeit bei mir eingefügt :-)
                Und es funktioniert überwiegend. Allerdings kommt es immer wieder vor das die Formel für I_AC_Power+SF
                keine Werte liefert:

                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 933
Größe: 9,9 KB
ID: 386172
                Wie hier im Screenshot zu sehen, liefert der WR einen Wert. Die Formel kommt aber zum Ergebnis 0.
                Mein Verständis ist das I_AC_Power+SF​​ den aktuell produzierten Strom in kW liefert.

                Nun ist es nicht so das immer 0 als Ergenbis kommt. Es kann sich jederzeit ändern. Mal habe ich eine vernüftige Zahl, sekunden später wieder 0.
                Wichtig: Der input I1 liegt immer an. Kann also nicht das Problem sein.

                Dummerweise sind meine Rechnen Kapazitäten beschränkt und folglich verstehe ich die Formel "INT(I1/65536)*10^(I1-65536*(INT(I1/65536)+1))/1000" nicht.
                Wenn es mir jemand erleutern kann, wäre ich dankbar.

                Gruss bbi

                Kommentar


                • Holian
                  Holian kommentierte
                  Kommentar bearbeiten
                  @Ralphidelio
                  @bbi

                  I think i'm fighting with the same. When the production reach the 3Kwh than the WR-Power block will give result as "0". Under 3KwH the formula works well.

                  Thank you

                • MaxMoritz
                  MaxMoritz kommentierte
                  Kommentar bearbeiten
                  bbi;
                  @Holian

                  english Text follows:

                  ich habe den chat Verlauf mehrfach durchgelesen, aber keine Antwort/ Lösung bezüglich oben genannten Problems mit den 0 Werten bei kleiner 3 kWh Produktion gefunden, siehe auch Beitrag 146.3. Habt ihr mittlerweile einen Weg gefunden und wie ist die Implementierung?
                  Unstrittig ist ja, dass die I_AC Power+SF gleichzeitig via Modbus TCP/ip gelesen und verarbeitet werden muss.
                  Danke für Eure Hilfe.

                  ------

                  I have read through the chat history several times, but have not found an answer/solution to the above problem with the 0 values for less than 3 kWh production, see also note 146.3. Have you found a way in the meantime and what is the implementation?
                  It is undisputed that the I_AC Power+SF must be read and processed simultaneously via Modbus TCP/ip.
                  Thanks for your help.
                  Zuletzt geändert von MaxMoritz; 20.07.2024, 10:49.

                • bbi
                  bbi kommentierte
                  Kommentar bearbeiten
                  MaxMoritz: Hallo, ja ich habe es damals hinbekommen. Allerdings ist das ja schon eine Weile her.
                  Wenn ich das heute richtig lese, steht die Lösung in Thread 149-155.
                  149 enthält die Formel.
                  Im weiteren Verlauf war dann noch die Frage welcher Datentyp den zwei Registern zugeordnet werden soll. Und Tico Ansatz war der Richtige.
                  Somit den Datentyp 32-bit signed integer verwenden. 16-Bit Register flaggen wie auch Registerreihenfolge.
                  Falls noch Fragen, dann einfach melden.
                  Zuletzt geändert von bbi; 20.07.2024, 23:02.
              • Holian
                Azubi
                • 27.01.2022
                • 2

                Dear All,

                First of all sorry for english question. I tried to translate it to german..but... anyway...
                I'm not sure if there is a final fix about how to intergrate solaredge to loxone but my experiment about PLCProg config which shared:

                - as i understand the Loxone - Solaredge template is wrong because:
                - Power value and Scale factor are polled independently and jump when the scale changes.
                - The Loxone implementation will never exactly match as it's integrating sampled values rather than reading the inverter's energy accumulation register

                So i downloaded Photovolatik.zip and test.

                Unfortunatelly WR-Power landing edge will "0" after the solar production reach the 3Kwh. When the production is under 3kWh than the formula works like a charm. Anybody has the same experience?

                I can't figure out what the M_POWER_SF/ GRIDL1 / GRIDL2 / GRIDL3 / GRIDLSF part of the configuration? The GRID L1 block landing edge is always "0" for me.

                I really apperitiate the help.

                Now i step back to start and use Loxone implementation....

                Regards-

                Kommentar

                • bbi
                  Dumb Home'r
                  • 16.11.2017
                  • 27

                  Hi Holian,
                  good to hear that I am not the only one :-)

                  Below 3kHh the scaling factor is 0, above it is 65536. I am not aware about other factors, at least I have not seen others.
                  Therefore I tried today the following:

                  Step 1:
                  I have used the following IO:
                  i1: 40083: I_AC_Power
                  i2: 40084: I_AC_Power_SF

                  Both are used in a formular API with the follwoing formular: (i1*10^i2)

                  Step2:
                  The Result (R) is the input (i1) for an secound formular API. i2 is again the scaling factor, IO40084

                  The secound formular API contains the following formular: IF(i2==65535;INT(i1/65536)/100000;INT(i1/65536)/1000)
                  You can see, that I calculate INT(i1/65536) and dependend on the scaling factor (0 or 65536) I divide by 10000 or 1000.

                  I will have a closer look tomorrow if my approach is working. Will report here.
                  Maybe you can do the same.

                  Best regards, bbi
                  Zuletzt geändert von bbi; 06.04.2023, 23:03.

                  Kommentar


                  • Holian
                    Holian kommentierte
                    Kommentar bearbeiten
                    i'm waiting for you feedback..tnx.
                • Tico
                  Lox Guru
                  • 31.08.2016
                  • 1035

                  I don't use a SolarEdge inverter, however I am familiar with the maths around the Modbus entries. As Holian states, the problem with polling two independent metrics (I_AC_Power and I_AC_Power_SF) is the jump in values ​when Scale Factor changes if two separate 16bit Modbus addresses are used. Fortunately, both values ​​can be polled at the same time using a 32bit register to avoid asynchronicity.

                  The formula I have recorded is different to that written above -

                  Code:
                  INT(I1/65536)*10^((I1-(INT(I1/32768)*32768))*(1-INT((I1- (INT (I1/65536)*65536))/32768))+(I1-(INT(I1/32768)*32768)-32768)*INT((I1-(INT(I1/65536)*65536))/32768))/1000
                  Address is 40083 and then read 32 bit Signed Integer. "16-bit register" is checked and "Order of Registers" too. Timeout [ms] should be set to 1000ms.
                  Zuletzt geändert von Tico; 24.08.2024, 14:42.
                  Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

                  Kommentar


                  • bbi
                    bbi kommentierte
                    Kommentar bearbeiten
                    Hi Tico,
                    how do I pull to two separate 16bit Modbus at the same time using a 32bit?
                    Hope my question is not too stupid.
                    br, bbi

                  • bbi
                    bbi kommentierte
                    Kommentar bearbeiten
                    Hi Tico,
                    how do I pull to two separate 16bit Modbus at the same time using a 32bit?
                    Hope my question is not too stupid.
                    br, bbi

                  • Holian
                    Holian kommentierte
                    Kommentar bearbeiten
                    Dear Tico,

                    Unfortunatelly i don't clearly understand your formula, but i give a try. I will feedack...

                    The correction settings is? 1. input is 0 / 1. target value is 0; 2. input is 100 and 2. target value is 100?
                    Zuletzt geändert von Holian; 08.04.2023, 11:46.
                • Ralphidelio
                  Dumb Home'r
                  • 08.06.2016
                  • 26

                  Hi Tico, hi bbi

                  I'm a bit confused about the discussion, on calculating the correct values. From my understanding, you get 2 values from your SolarEdge:
                  - I_AC_Power
                  - I_AC_Power_SF

                  In my example it looks like this:​
                  Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 1062
Größe: 32,0 KB
ID: 386507
                  You see, with the scaling factor 1x, you get 1.451 kW from the AC_Power value. And that seems to be correct. (The formula you mentioned above is correct, I use the same one).

                  As for how to get the correct values, you poll the modbus once (in my case via TCP) and get a series of values at the same time. As I understand it, the values you get should be correct, right?

                  bbi why do you want to calculate the correct value on another way? Did I miss something?

                  br Ralph

                  Kommentar

                  Lädt...