[Modul] Solaredge Wechselrichter

bei mir ist ein Solaredge Zähler an der RS-485 angeschlossen, der hängt am Hauptstrang, damit wird erfasst ob ich einspeise oder Strom beziehe.
Es ist der erste link

Besondere Hardware benötigt man für Modbus nicht. Das läuft über das Netzwerk.

Alle relevanten Infos zum Modbus Thema findet ihr in diesen 2 Unterlagen. (Inkl. Batteriespeicher und dessen Steuerung)

sunspec-implementation-technical-note.pdf (1.6 MB)
Power Control Open Protocol for SolarEdge Inverters.pdf (1.12 MB)

Viele Grüße
Stephan

Hallo Zusammen,

ich frage die aktuellen Daten über API vom Solaredge Portal ab. Klappt seit 2 Jahren problemlos.

Dazu gibt es auch einen Thread: https://www.symcon.de/forum/threads/29837-Daten-per-API-HTTPS-abfragen-Solaredge?highlight=solaredge.

Gruß, Michael

@Daniel:
ich habe dir mal zwei Bilder angehängt, das eine ist der Abruf von solaredge und das andre die Variablen, Du siehst dass da was nicht stimmt, die Werte für Tag , Monat, Jahr und Gesamt weichen voneinander ab.

@da8ter: Das wusste ich nicht, interessant! Dann macht es ja eigentlich fast keinen Sinn die WebAPI abzurufen wenn man den Wechselrichter direkt abrufen kann. Werde ich mir auf meine Liste schreiben.

@mfinkbeiner:
Was ruft du alles ab? Auch Verbrauch und oder Eigenverbrauch?

@weimigolf:
Das sind schon enorme Abweichungen.
Ich habe das geprüft und den Fehler gefunden.
Schau mal was ich für Werte bei mir im Frontend habe, siehe Anhang. Das sind die was du auch hast.
Ich habe mir bereits meinen Code angeschaut, da habe ich tatsächlich meine Daten fest im Code hinterlegt.
Ich fixe das und gebe Rückmeldung.

2020-03-11 18_52_23-Daniel.png

@weimigolf:
Ich habe die Änderung gemacht, kannst du bitte mal versuchen das Modul über die Modulverwaltung zu aktualisieren und mir dann sagen,
ob alles in Ordnung ist?

Hallo,

ich rufe alles ab was möglich ist. Eigenverbrauch, Einspeiseleistung, Batterielevel,…

Anbei die Screenshots die auch im anderen Thread zu sehen sind.

Was ich selbst berechne ist das Kapitel Versorgung (Screenshot 1), die max. Leistung (Screenshort 2) und die verbleibende Leistung (Screenshot 3).

Gruß, Michael

Du liest dann auch die Modbus Daten per LAN aus, wie von da8ter beschrieben, oder?
Da bekommt man echt viele Infos.

Ich denke ich werde mein Modul erweitern bzw. umstellen auf die „LAN-Auswertung“.
Das war mir bisher gar nicht bewusst, das man da so viele Infos erhält.

Und das beste für speicherbesitzer: du kannst über Modbus den Speicher steuern. An, aus, ladeleistung, entladeleistung, backupreserve, netzkadung etc… das bietet SolarEdge z.b. so normalerweise überhaupt nicht an.

Gruß Stephan

Mit den Daten passt jetzt

Interessant wird das Ganze wenn man nicht auf die Daten via Web api zugreift. Hier wird es aber aufwendig, es geht nicht über lan, da läuft das SolarEdge Monitoring. Man müsste über die rs485 Schnittstelle gehen, da muss dann ein datenlogger angeschlossen werden damit man die Daten gesichert hat. Ich denke das kostet dann ein paar Euro und wird komplexer. Das SolarEdge Monitoring funktioniert ja nicht wirklich sauber.

@Daniel:
ich habe ein neues Phänomen, nach manchen Abfragen sind alle Werte auf 0 obwohl bei der direkten Abfrage Werte kommen,
an was kann das liegen ??

Kann es sein, das du die Werte mal in kurzem Zeitintervall schnell hintereinander ab?
Ich hatte schon mal das Problem, nachdem ich viele Abfrage mit schnell hintereinander durchgeführt hatte.
Nach einiger Zeit ging es aber wieder.

das kann sein, aber dann dürften die Werte für Tag Monat, Jahr und Gseamt micht auf 0 gehen, da müsste ja dann der letzte Wert stehen, wenn man da ein Digramm macht sieht es interesant aus

Natürlich kann man über Modbus tcp die Werte abfragen und das auch parallel zum normalen SE Monitoring. Als Datenlogger geht doch IPS

Das kommt auf meine Liste als Verbesserung, hier muss eine Zusätzliche Abfrage eingebaut werden die das Abfängt.
So ist das gar nicht schön, da hast du recht.

@da8ter: ich habe einen SolarEdge Wechselrichter mit Display, da hängt ein Zähler an der RS485 Schnittstelle und ein LAN-Kabel dran, ich könnte also nur über das lan gehen, hast du da eine Idee wir man da eine Abfrage senden und empfangen kann ?

Sorry, hab gerade wenig Zeit. Kurzfassung: In den Einstellungen des Wechselrichter Modbus tcp aktivieren. In IPS ein Modbus Gateway erstellen mit ip und portnummer vom Wechselrichter. Da auch byteswap oder wie sich das nennt aktivieren. Dann ein Modbus device anlegen. Registernummer etc. wie in den Dokumenten die ich hier verlinkt habe einstellen. Du musst für jeden Wert eine modbusdevice anlegen.

Gruß Stephan

Aktuelles Problem:
Wenn man die Werte zu oft über das Webportal abfrägt, dann erhält man als Rückgabewerte für die einzelnen Abfragewerte den Wert 0.
Werden die Werte jetzt geloggt, dann ist das natürlich unschön und man hatte zwischendurch eventuell immer mal einen 0 Wert in seinem Log. Wenn die Solaranlage aktuell z.B. 5 KW produziert, man aber dann zu oft die Werte abfrägt könnt es sein das man mal einen 0 Wert in den Logs sieht, obwohl gerade aktiv produziert wird.

Das ist dann natürlich unschön, um das zu lösen habe ich zwei Vorschläge:

  1. Ich programmiere einen Abfrageintervall das z.B. nur alle 10 Minuten abgefragt werden darf. (Genauer Intervall wird noch ermittelt)
    Somit würde ich verhindern das ein 0 Wert bei zurückgegeben wird, wenn zu oft abgefragt wird.

  2. Ich baue eine Abfrage ein, das die Werte für eine Aktualisierung der Variable immer größer als 0 sein müssen, ansonsten wird die
    Variable nicht mit dem aktuellen Wert upgedatet. Das kann aber dazuführen, dass dann Werte zu sehen sind die gar nicht mehr
    aktuell sind. z.B. es wird minütlich abgefragt um 12 Uhr Mittags habe ich dann die Maximalen Anfragen für das Webportal erreicht.
    Normal erweiße würde ich einen 0 Wert zurückbekommen, durch die Umprogrammierung bleibt aber der zuletzte Übertragene Wert
    der größer als 0 ist stehen. Dieser würde dann auch z.B. Abends um 23 Uhr zu sehen sein, da man erste wieder ab dem nächsten
    Tag ein neues Kontingent an Abfragen für das Webportal erhält. Hierzu würde ich noch eine zusätzliche Variable anlegen, die Anzeigt
    von wann die letzte Aktualisierung war.

Was haltet ihr davon bzw. was findet ihr besser? Habt ihr noch andere Ideen um das Problem zu umgehen?

@da8ter: In diesem Fall wäre IP-Symcon der Master und die Solaredge Schnittstelle, der Slave, da Symcon einen Wert abfragt, richtig?
Aber noramlerweiße ist die Solaredge Schnittstelle der Master, da der Zähler normalerweiße die Daten, via RS485 an den Solaredge Wechselrichter sendet für die Darstellung im Webportal.

Dann müsste ich den Wechselrichter somit als Slave oder Master konfigurieren können, oder nicht?