SolarEdge bietet bei seinen Wechselrichtern diverse Möglichkeiten, an die aktuellen PV-Daten wie aktuelle Stromproduktion (Leistung, Stromstärke, Frequenz, Netzbezug, Einspeisung, etc.) zu kommen. Neben dem Zugriff über die API des Monitoring-Portals, bieten die Wechselrichter in aller Regel die Nachrüstung einer Zigbee-Antenne. Wer lieber kabelgebunden auf die Daten des Wechselrichters zugreifen möchte, der verbindet sich direkt über LAN mit dem Wechselrichter. Diese Verbindung ist am stabilsten und wird sowieso benötigt, wenn man das SolarEdge Monitoring-Portal verwenden möchte. Wie die Verbindung zum Wechselrichter aufgebaut werden kann, um den SolarEdge-Wechselrichter in ioBroker via Modbus auslesen, beschreiben wir in diesem Artikel.
Das Zauberwort heisst Modbus TCP
Die Daten des Wechselrichters werden über ein Kommunikationsprotokoll übertragen, das in der Industrie weit verbreitet ist: Modbus TCP. Um die Verbindung zwischen dem Wechselrichter und ioBroker via Modbus TCP zu ermöglichen, müssen ein paar Voraussetzungen geschaffen werden:
- LAN Verbindung
- Installation und Konfiguration des Modbus-Adapters in ioBroker
- Modbus TCP Aktivierung
- Modbus-Adapter auf Bedarf anpassen
SolarEdge-Wechselrichter in ioBroker via Modbus auslesen: Die LAN-Verbindung
In aller Regel wird bei der Planung der Installation des Wechselrichters auch direkt eine LAN-Verbindung vorgesehen, damit der Wechselrichter sich ins Internet verbinden kann und seine Daten an SolarEdge liefern kann. Diese sind dann im Monitoring-Portal abrufbar. Die Entscheidung, ob man dies aus Datenschutzgründen möchte oder nicht, bleibt einem selbst vorbehalten, in jedem Fall kann die LAN-Verbindung aber genutzt werden um via ioBroker an die aktuellen PV-Daten zu kommen. Sobald der Wechselrichter mit dem Router verbunden ist, sollte dieser in der Netzwerkübersicht erscheinen. Im Router stellt man direkt auch ein, dass der Wechselrichter eine statische IP-Adresse erhält. Dann bleibt auch nach einem Neustart von Wechselrichter oder Router die Verbindung zum ioBroker bestehen.
SolarEdge-Wechselrichter in ioBroker via Modbus auslesen: Installation und Konfiguration des Modbus-Adapters in ioBroker
Nachdem sichergestellt ist, dass der Wechselrichter im Netzwerk verfügbar ist, bereiten wir den ioBroker vor. Hierzu wählen wir im Bereich Adapter den „ModBus“-Adapter“ aus und installieren diesen mit einem Klick auf das „+“.
Im nächsten Schritt wechseln wir auf Instanzen und wählen hier den Schraubenschlüssel des neuen „modbus.0″-Adapter“ aus, um auf die Einstellungen zu kommen. Unter „Verbindungsparameter“ wählen wir TCP, geben die oben festgelegte IP des Wechselrichters ein, lassen den Port bei 1502, Geräte ID auf 1 und wählen als Typ: „Master“. Wir starten den Adapter nun jedoch noch nicht, sondern legen als nächstes einen ersten Abfragewert an. Dies ist wichtig, damit später die Verbindung zum Wechselrichter auch aufgebaut wird.
Hierzu wechseln wir von der Rubrik „Allgemeines“ in die Rubrik „Holding Registers“ und geben dort erst einmal nur die folgenden beiden Zeilen ein:

SolarEdge-Wechselrichter in ioBroker via Modbus auslesen: Modbus TCP Aktivierung
Bevor wir nun im letzten Schritt die Verbindung zwischen ioBroker und Wechselrichter aufbauen können, benötigen wir Unterstützung von unserem Solar-Installateur. Dieser muss über den Installateurs-Account von SolarEdge nun noch Modbus TCP auf dem Standardport 1502 aktivieren. Gemäss unserer Information muss nach der Aktivierung von Modbus TCP innerhalb eines bestimmten Zeitraums von wenigen Minuten auch der Verbindungsversuch erfolgen, da der Wechselrichter sonst Modbus TCP wieder deaktiviert. Daher macht man diesen Schritt am besten, wenn der Solarteur vor Ort ist. Sobald dieser also Modbus TCP aktiviert hat, starten wir den Modbus-Adapter durch einen Klick auf das rote Dreieck. Nach kurzer Wartezeit erscheint erst ein orangenes Quadrat und dann das grüne Pausenzeichen.
Die Modbus TCP-Anbindung steht und die ersten Daten wurden vom Wechselrichter an ioBroker übertragen.
Modbus-Adapter auf Bedarf anpassen
Die Daten des Wechselrichters werden nun – wie bei ioBroker üblich – unter Objekte im Verzeichnis „modbus“ -> „0“ „holding registers“ abgelegt.
Im nächsten Schritt kann man wiederum die Instanz aufrufen und dort in den Holding Registers weitere Werte des Wechselrichters abrufen. SolarEdge hat hierzu eine sehr gute Dokumentation erstellt, in der alle Parameter (gemäss Modbus „Register“) beschrieben werden. Relevant für die Konfiguration ist die in der Dokumentation genannte Base (0) Adresse.
Wichtig hierbei ist, dass viele Werte mit einem sogenannten Skalierungsfaktor übertragen werden. Man benötigt in diesem Fall also immer zwei Holding Register. Einmal den Wert ohne Komma und als zweites den Skalierungsfaktor, der Positiv und negativ sein kann. Um den effektiven Wert zu erhalten, nimmt man den ersten Wert mal 10 hoch der Anzahl im Feld Skalierungsfaktor. Diese Berechnung kann man ganz einfach mit einem kleinen JavaScript durchführen, das man auch mit einem Blockly erstellen kann. Das Ergebnis lässt man dann wiederum von dem Skript in einem eigenen Objektstatus unter „0_userdata“ -> „0“ und dann zum Beispiel im Verzeichnis „Solar“ abspeichern.
Der Grundstein einer schönen Visualisierung der Stromflüsse in der ioBroker Visualisierung ist hiermit gelegt:

Weitere Anwendungsfälle für die Verwendung der PV-Daten finden sich im Artikel Smarthome-Funktionalitäten – Theorie und Praxis.
