NEWS
[Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana
-
Hallo Forum,
ich habe mich bewusst dafür entschieden, diesen Topic nicht unter der Kategorie Visualisierung zu posten, weil es hier primär um die Anbindung des SolarEdge Systems an ioBroker geht. Visualisierung kommt später bzw. ist hier nur am Rande ein Thema.
Vorweg möchte ich sagen, dass ich ein einfacher Nutzer bin und weder tiefe Kenntnisse im SolarEdge Bereich noch im ioBroker habe. Alle Informationen habe ich mir entweder selbst erarbeitet oder User aus den Foren (hauptsächlich hier oder im Photofoltaikforum) haben für die gleichen Fragen die entsprechenden Antworten gefunden. Mir geht es in erster Linie darum, an einer Stelle alle für dieses Szenario notwendigen Informationen zu sammeln.Teil1 – Konfiguration Modbus Adapter
Voraussetzungen:
Ihr braucht natürlich in erster Linie erst einmal einen SolarEdge Wechselrichter. In meinem Fall ist das der SE25k Wechselrichter.
Außerdem wird zwingend der Energiezähler mit Modbus Anschluss benötigt. Der Wechselrichter kann von Haus aus kein Modbus sprechen. Der Energiezähler kommt noch mit den jeweiligen Stromwandlern, die im Sicherungskasten verbaut werden. Ihr lasst das natürlich von einem Fachmann erledigen.Zu guter Letzt gehe ich davon aus, dass ihr den Wechselrichter in euer Heimnetz eingebunden habt und dieser IP technisch auch erreichbar ist. Falls ihr nicht wisst, welche IP Adresse euer Router per DHCP vergeben hat, lasst ihr euch das von eurem Solarteur sagen, die können in die Netzwerkkonfiguration des WR reinschauen oder ihr habt die App und könnt selbst nachschauen (nur mit aktiver Registrierung als Installateur möglich).

ioBroker Setup:
Ihr habt natürlich schon ioBroker laufen und das System funktioniert ohne Fehler.
Verwendete Versionen bei mir:


Zuerst fügt ihr einen (weiteren) Modbus Adapter hinzu. Bei mir sind es mittlerweile 2 Stück, weil ich auch noch meine Heizung wie hier beschrieben angebunden habe.
Danach wird der Adapter konfiguriert.

Partner IP Adresse ist die von eurem Wechselrichter.
Der Port ist der default eingestellte Port für den Modbus im Wechselrichter, solltet ihr nicht ändern müssen.
Die Geräte ID ist (in meinem Fall) die 1.

Wichtig! Trotz der Tatsache, dass bei mir der Energiezähler erfolgreich installiert wurde und mir mein Solarteur mitgeteilt hat, dass alles korrekt funktioniert war bei mir Modbus TCP nicht aktiviert. Darauf müsst ihr achten, sonst klappt keine Verbindung.

Und noch was wichtiges! Wenn ihr nur die Verbindungseinstellungen vom Modbus im ioBroker konfiguriert habt und keine Daten, die ihr abrufen wollt, dann verbindet sich der Adapter auch nicht. Ich hab da ganz schön lange suchen müssen, bevor ich dazu eine Lösung hatte. Ich dachte immer, an meiner Konfiguration würde etwas nicht stimmen.
Also richtet ihr mindestens eine Adresse unter Holding Register ein, die ihr abrufen wollt. Und bevor ihr das tut, schaut ihr erstmal in die dazugehörige SolarEdge Doku:
Englisch (ist ausführlicher als die deutsche, ich verstehe nicht warum)
DeutschIch beziehe mich jetzt an dieser Stelle mal auf die englische Dokumentation. Dort stehen ab der Seite 16 die erforderlichen Informationen.
Auf der Seite 15 unten findet ihr aber noch eine weitere, wichtige Information, die ich bei mir leider überlesen (bzw. nicht verstanden hatte):
The base Register Common Block is set to 40001 (MODBUS PLC address [base 1]) or 40000 (MODBUS Protocol Address [base 0]).In meinem Fall wird base 0 verwendet (fragt mich nicht warum und wieso) und das bedeutet, dass alle in der Doku stehenden Adressen um eins reduziert werden müssen.
Beispiel:
ID 40094 ist die gesamte, produzierte Energie in Wh und die muss dann im Modbus ioBroker die ID 40093 sein.Ihr müsst dann selbst entscheiden, welche Adressen ihr importieren möchtet und welche ihr nicht braucht.
Hier hab ich euch mal meinen Export angehangen:
Ab der Seite 16 unten findet ihr die Adressen des Wechselrichters und 19 die Adressen für Meter 1 (also den Energiemesser). Meter 2 und 3 sind bei mir nicht vorhanden.
So sieht das ganze jetzt bei mir aus:

Wenn ihr alles richtig gemacht habt, dann ist 1. Eure Modbus Instanz grün und ihr findet in den Objekten die ausgelesenen Werte.
@hennerich said in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:
Außerdem wird zwingend der Energiezähler mit Modbus Anschluss benötigt.
Hallo.
Leider bekomme ich den Energiezähler mit Modbus Anschluss nicht mehr. Es wurde mir der neue Inline Energiezähler von SolarEdge geliefert.
Wie funktioniert das dann damit? Oder gibt es da dann keine Möglichkeit die Werte in iobroker zu übernehmen? -
@hennerich said in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:
Außerdem wird zwingend der Energiezähler mit Modbus Anschluss benötigt.
Hallo.
Leider bekomme ich den Energiezähler mit Modbus Anschluss nicht mehr. Es wurde mir der neue Inline Energiezähler von SolarEdge geliefert.
Wie funktioniert das dann damit? Oder gibt es da dann keine Möglichkeit die Werte in iobroker zu übernehmen?@manfredh-1
Moin,also hier scheint es die Dinger noch zu geben
https://www.photovoltaik4all.de/solaredge-energiezaehler-modbus-se-mtr-3y-400v-aBlöd ist natürlich, wenn du schon viel Geld für das neue Teil ausgegeben hast.
Hast du schon mal in der Doku nach einer Schnittstelle geschaut?Edit: also in der Doku steht was von ModBus:


-
@manfredh-1
Moin,also hier scheint es die Dinger noch zu geben
https://www.photovoltaik4all.de/solaredge-energiezaehler-modbus-se-mtr-3y-400v-aBlöd ist natürlich, wenn du schon viel Geld für das neue Teil ausgegeben hast.
Hast du schon mal in der Doku nach einer Schnittstelle geschaut?Edit: also in der Doku steht was von ModBus:


@hennerich said in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:
Blöd ist natürlich, wenn du schon viel Geld für das neue Teil ausgegeben hast.
Hast du schon mal in der Doku nach einer Schnittstelle geschaut?Danke für die Info. Ja, ich hab den schon geliefert bekommen und auch bezahlt.
Das Datenblatt habe ich auch gelesen. Hoffe nur, dass wenn ich die Energiezähler über ModBus RS485 verbinde, das dann genauso funktioniert, wie mit dem alten Energiezähler mit Modbus-Anschluss.. -
Vielen Dank für das super Tutorial. Bei mir hat soweit alles funktioniert.
Ich habe den WR SolarEdge SE10K - RWS und den BYD LVS 8.0 Speicher.
Ein Problem bei der Kombination ist der Wert für die aktuelle PV-Leistung vom Dach. Der sollte in der Nacht ja bei ~0W stehen. Tut er aber nicht sondern liefert mir den Wert (annähernd) meines Hausverbrauches, welcher ja nachts aus dem Speicher entladen wird.


Den Wert sollte es doch aber geben? Zumindest im Portal oder in der mySolarEdge App ist der Wert ja bekannt.

Hat jemand von euch eine Idee, wie ich den Wert raus bekomme?
Das gleiche Problem habe ich beim Laden des Speichers. Einen zuverlässigen Wert für 40083_I_AC_Leistung bekomme ich erst, sobald der Speicher voll ist.

Ich könnte das ja auch berechnen, indem ich die Lade-/Entlade-Leistung abhängig vom 57734_Battery Register mit einbeziehe, nur ist das ja nicht gerade gewollt.Hat jemand das selbe Problem?
-
Irgend etwas stimmt hier doch nicht. Warum bekomm ich einen - Hausverbrauch? -
Irgend etwas stimmt hier doch nicht. Warum bekomm ich einen - Hausverbrauch?Servus,
Setz den wert mal auf "Unsigned 16bit (Big Endian), dann sieht es schon anders aus ;-)/ Chris
-
Servus,
Setz den wert mal auf "Unsigned 16bit (Big Endian), dann sieht es schon anders aus ;-)/ Chris
@chris87Danke :-) oh man... das wars. Im SolarEdge Modbus Regsiter Mapping steht int16.
Gibts ein Register für die LG Batterie?
-
Hallo zusammen,
hier mal meine Liste (alle SF Umrechnungen enthalten, keine seperate Umrechnung notwendig) :
Achtung
Die Werte mit RW am Ende sind beschreibbar und sollten mit äußerster Vorsicht behandelt werden./ Chris
@chris87 Gibts es ne Möglichkeit deine Liste direkt in die Holding Register zu importieren?
Was auch noch ist, mir werden in den javascripten die Einheiten nicht angezeigt, obwohl sie als Units eingetragen sind.
-
@chris87 Gibts es ne Möglichkeit deine Liste direkt in die Holding Register zu importieren?
Was auch noch ist, mir werden in den javascripten die Einheiten nicht angezeigt, obwohl sie als Units eingetragen sind.
@christiank #
einfach oben (TSV bearbeiten), alles was drinnen ist löschen und meinen kompletten Spoiler einfügen.
-
@chris87 Gibts es ne Möglichkeit deine Liste direkt in die Holding Register zu importieren?
Was auch noch ist, mir werden in den javascripten die Einheiten nicht angezeigt, obwohl sie als Units eingetragen sind.
@christiank
bezüglich der Units.
Wie hast du die Datenpunkte erzeugt?
Wenn du ihn Manuell erzeugt hast, schreib einfach in die Objektdaten "unit": "W",
/ Chris
-
@christiank
bezüglich der Units.
Wie hast du die Datenpunkte erzeugt?
Wenn du ihn Manuell erzeugt hast, schreib einfach in die Objektdaten "unit": "W",
/ Chris
@chris87 Liste habe ich importiert, Danke dafür.
Allerdings werden jetzt meine JS anders angezeigt. Z.B. TempWechselrichter ist jetzt um 2 Kommastellen verschoben. Anstatt 50Grad stehen jetzt 0,5. Register 40101 wird mir jetzt auch als 50 Grad angeziegt, sprich ich brauch den Faktor gar nicht mehr...
Datenpunkte hab ich im Skript per JS erstellt. Dort ist aber unit hinterlegt, wird nur nicht übertragen.
Irgend etwas passt bei mir noch nicht. 40084_I_AC_Leistung sollte mir die aktuelle Sonnenenergie anzeigen.
SolarEdgeMonitoring zeigt mir 3,4kW an, was in Bezug auf das Wetter passt. Modbus zeigt mir 5,2KW an. -
Hallo,
habe seit gestern ein Hot Water Modul (SE) womit der Heizstab der im Warmwasserspeicher ist gesteuert wird. Das Modul ist über Zigbee mit den Wechselrichter verbunden.
Den Wechselrichter lese ich bereits erfolgreich mit den Modbus Adapter aus. Meine Frage ist jetzt ob ich das Hot Water Modul auch über Modbus auslesen kann da es ja mit den Wechselrichter verbunden ist.
Wenn ja, weiss jemand welche Adressen es sind die ich ins Holding Register eintragen muss?!Danke für eure Hilfe,
Bernd -
@chris87 Liste habe ich importiert, Danke dafür.
Allerdings werden jetzt meine JS anders angezeigt. Z.B. TempWechselrichter ist jetzt um 2 Kommastellen verschoben. Anstatt 50Grad stehen jetzt 0,5. Register 40101 wird mir jetzt auch als 50 Grad angeziegt, sprich ich brauch den Faktor gar nicht mehr...
Datenpunkte hab ich im Skript per JS erstellt. Dort ist aber unit hinterlegt, wird nur nicht übertragen.
Irgend etwas passt bei mir noch nicht. 40084_I_AC_Leistung sollte mir die aktuelle Sonnenenergie anzeigen.
SolarEdgeMonitoring zeigt mir 3,4kW an, was in Bezug auf das Wetter passt. Modbus zeigt mir 5,2KW an.@christiank sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:
Allerdings werden jetzt meine JS anders angezeigt. Z.B. TempWechselrichter ist jetzt um 2 Kommastellen verschoben. Anstatt 50Grad stehen jetzt 0,5. Register 40101 wird mir jetzt auch als 50 Grad angeziegt, sprich ich brauch den Faktor gar nicht mehr...
Hallo @ChristianK, das habe ich oben geschrieben, ich habe die Umrechnungen bereits im Modbus-Adapter gemacht.
Wie sieht dein JS aus, das Problem muss ja da liegen.
Die Eigentliche Solarleistung muss errechnet werden, 40084 zeigt dir nur die Wechselrichter-Leistung an. Du musst 40084 + 102837 rechnen, dann hast die reine PV Leistung.
-
@habedere sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:
mit der neuesten Modbus-Adapter Version exportieren?
@glasfaser
Herzlichen Dank, diese Liste funktioniert bei mir jetzt endlich. :dancers:Allerdings nur bis Zeile "40108 I_Status_Anbieter" inklusive, danach nicht mehr.
Hab einen SE9K, die restlichen Felder werden wohl nicht unterstützt und liefern beim Versuch einen Fehler.Der Wert von
40093 I_AC_Energie_WH AC Gesamt-Energieproduktion Wh
stimmt auch mit dem überein was mein Sonnen Akku gemessen hat seit Beginn, passt also perfekt.Ich hatte am Anfang Probleme überhaupt irgendwas auszulesen, hatte beide Offsets probiert wie im Tutorial beschrieben. So wie ich das sehe muss man aber immer von ganz vorne alle Register auslesen, sonst geht garnix.
-
@glasfaser
Herzlichen Dank, diese Liste funktioniert bei mir jetzt endlich. :dancers:Allerdings nur bis Zeile "40108 I_Status_Anbieter" inklusive, danach nicht mehr.
Hab einen SE9K, die restlichen Felder werden wohl nicht unterstützt und liefern beim Versuch einen Fehler.Der Wert von
40093 I_AC_Energie_WH AC Gesamt-Energieproduktion Wh
stimmt auch mit dem überein was mein Sonnen Akku gemessen hat seit Beginn, passt also perfekt.Ich hatte am Anfang Probleme überhaupt irgendwas auszulesen, hatte beide Offsets probiert wie im Tutorial beschrieben. So wie ich das sehe muss man aber immer von ganz vorne alle Register auslesen, sonst geht garnix.
@technikaffin sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:
Hab einen SE9K, die restlichen Felder werden wohl nicht unterstützt und liefern beim Versuch einen Fehler.
Danach wird der SolarEdge Zähler abgefragt und mein LG Akku .
Hier mal aktuell das Modbus-Register von mir.:
-
Hallo zusammen,
ich hätte da nochmal eine Frage zu den Modbus Registern für das Lademanagement.
Mit den 6xxxx Adressen kann ich sämtliche Werte auslesen, nur das Register 63243 "Timeout" macht mir nach wie vor Probleme. Hier wird der Wert "235929600" ausgelesen, den man nicht ändern kann - Wert springt nach Eingabe immer wieder auf "235929600" zurück. Das Timeout funktioniert auch nicht, somit bleibt der Wechselrichter im "Remote Control" mit den zuletzt vorhandenen Einstellungen.
Hier meine Adressen die ich auslese:

Verbaut ist der Wechselrichter SE10K-RWS48BNN4 mit einer LG RESU 10.
Aktuellste Firmware am Wechselrichter ist installiert.
Hat evtl. jemand das gleiche Problem und auch eine Lösung?
-
@Aare-07 sagte in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:
... gute Idee das einrechnen der erwarteten Temperatur in die Dauer der Absenkung unter Berücksichtigung der Dämpfung des Hauses.
Du meinst diesen Teil: "Zusätzlich schaue ich auch auf die Aussentemperatur und setzt den Zeitpunkt des Anfangs der Sperre früher oder später (Erfahrungswerte damit es bis zum Morgen nicht kalt wird)"?
Da schaue ich auf Isttemperatur morgens um 0.30Uhr uns setzen den Startpunkt der Sperre wie folgt:

-
Guten Morgen zusammen,
ich habe das alles mal nachgebaut, vielen vielen Dank!
- Allerdings habe ich bei der Anzeige:

das Problem, dass folgende Fehlermeldung oben links angezueigt wird.
InfluxDB Error: unsupported mean iterator type: *query.stringInterruptIteratorhat den Fehler ebenfalls noch wer gehabt?
-> Dieser Fehler hat sich erledigt.-
Aktualisiert sich euer Wert für die "Einspeisung heute" auch nicht?
-> Dieser Fehler hat sich erledigt. -
Beim modbus.0.holdingRegisters.40107_I_Status erhalte ich die Rückmeldung "1024" anstatt 1,2,3,4 etc.?
-> Dieser Fehler hat sich erledigt.
- Allerdings habe ich bei der Anzeige:
-
Hi @hennerich ,
kein Thema. Ich sag sogar Danke für die späte Antwort.
Somit hatte ich die Möglichkeit mich mal detailiert mit Grafana auseinander zu setzten, mit (wie ich finde) gutem Resultat:

@chris87 said in [Tutorial] SolarEdge -> Modbus -> ioBroker -> Grafana:
Hi @hennerich ,
kein Thema. Ich sag sogar Danke für die späte Antwort.
Somit hatte ich die Möglichkeit mich mal detailiert mit Grafana auseinander zu setzten, mit (wie ich finde) gutem Resultat:

Hey,
kannst du mir verraten, welche Datenpunkte dafür verwendet wurden?

Vor allem würde mich interessieren, was du beim select für einen Selector genommen hast.
Viele Grüße