PV-Auswertung mit Deye Wechselrichtern

Bei dem Bau unsere Photovoltaik Anlage haben wir uns für Wechselrichter der Firma Deye (SUN-10K-SG04LP3-EU) entschieden, was sich bisher auch als eine sehr gute Wahl herausgestellt hat.

Die Wechselrichter selbst haben ein Display, an welchem sich alle Informationen gut und übersichtlich ablesen lassen, aber wer will hierfür schon zum Montageort laufen? Zudem werden bei einem Parallelbetrieb die Informationen nicht aggregiert, sodass hier eine andere Lösung erforderlich ist.

Deye Data Logger mit Solarman

Die Module zur Netzwerkanbindung gibt es in einer WiF-i, sowie in einer Ethernet-Kabel Version. In unserem Fall war die WiFi-Variante gleich im Lieferumfang enthalten. 

Es scheint, dass die Module von der Firma IGEN Tech Co Ltd., einem Unternehmen mit Sitz in China gefertigt und von diversen Herstellen eingesetzt werden. Die Firma betreibt passen dazu eine Cloud-Anwendung (Solarman) in verschiedenen Versionen, welche die einfache Aggregation der Informationen und den Zugriff über das Web oder auch einer Mobile-App verspricht.

Für ein Firmware-Update ist das Modul wohl zwingend erforderlich, wobei dies aber auch nur über einen Dateiupload in der sehr rudimentären Web-Oberfläche möglich ist. Hier hat gleich die erste Herausforderung begonnen, denn die benötigte Firmwaredatei scheint über keine offiziellen Quelle im Web erhältlich zu sein. Der vom Anbieter vorgesehen Weg führt über das in der Basisversion kostenfrei zugängliche Solarman Portal.

Cloud oder nicht Cloud

Tatsächlich hat der Zugang zum Portal ebenfalls schnell und unkompliziert funktioniert. Während generell nichts gegen eine Cloud-Lösung spricht, haben in diesem Fall für mich einige Punkte dagegen gesprochen:

1. Die WiFi-Version wurde mit einer derart gravierenden Sicherheitslücke ausgeliefert, dass ich vom einem generellen Mangel an Verständnis bereits für Grundprinzipien der IT-Sicherheit bei diesem Produkt ausgehen muss. Dieses Bild vermittelt rein subjektiv z.B. auch die Web-Oberfläche. Die Sicherheitslücke wurde inzwischen mit einem Firmware-Update geschlossen aber aus diversen weiteren Gründen nutze ich diese Lösung nicht weiter (siehe unten).

2. Das aufbereiten der Daten ist eigentlich eine triviale Angelegenheit. Nichts was nicht ein Raspberry-Pi oder vergleichbares kostenfrei direkt In-Haus erledigen könnte. Fertige Lösungen gibt es hierzu zahlreiche. Aber kostenfrei ist hierbei nicht einmal der entscheidende Punkt, sondern die Möglichkeit die Daten nach belieben zum Beispiel für die Hausautomation und unabhängig von einem Anbieter nutzen zu können. Zwar schient der Anbieter eine API zu haben, jedoch frage ich mich wozu der Umstand wenn die Daten doch Vor-Ort, also da wo ich sie benötige bereits vorhanden sind. 

3. Über das Portal lassen sich die Wechselrichter komplett fernsteuern und ich habe keine Möglichkeit gefunden, dies effektiv zu unterbinden. Bei dem mir bisher entstandenen Bild, hatte ich so kein richtig gutes Gefühl. Da man von der Stromversorgung  abhängig ist und eine ungewollte Unterbrechung nur eines und ggf. sogar das kleinere der Risiken mit dem externen Vollzugriff darstellt, viel spätestens hierdurch die Lösung für mich raus. Hierzu später aber auch nochmal etwas mehr.

Alternativen

Solar Assistant

Als Alternative bin ich schnell auf Solar Assistant gestoßen. Dies scheint eine populäre Komplettlösung zu sein, bei der ein fertiges Image für Raspberry Pi und dessen Alternativen gegen eine geringe Gebühr angeboten wird. Die erforderliche Hardware um den Pi dann mit dem Wechselrichter zu verbinden, wird ebenfalls im Shop mit angeboten. 

Das Produkt mach einen gute durchdachten Eindruck aber wenn man bereits eine Lösung zur Hausautomatisierung hat, wäre es für mich interessanter die ggf. darin bereits vorhandenen Möglichkeiten zu nutzen. Zudem scheint der Anbieter keinen Zugriff auf das System gestattet. Da auch die Quellen des angebotenen Systemimages nicht zur Verfügung zu stehen scheinen, lässt sich das System nicht so einfach aus Perspektive der IT-Sicherheit bewerten oder aktuell halten. Auch Anpassungen lassen sich so nicht vornehmen.

Offene Lösungen wie Home Assistant, OpenHab und viele weitere bieten vergleichbare Möglichkeiten, wenn auch nicht direkt per Plug & Play. Die benötigte Hardware ist letztlich identisch. Warum also nicht gleich diesen Weg gehen. Wer nach einer Eigenständig nutzbaren oder einfach nur nach Plug & Play sucht, sollte aber sicher einen genaueren Blick auf diese Lösung werden.

Home Assistant

Home Assistant bietet eine schöne Übersicht zu allen Energieverbräuchen in einem gesonderten Energy Dashboard an. Dies ist letztlich genau das, was ich benötige. Die Daten können über Home Assistant auch gleich in einer Datenbank wie zum Beispiel InfluxDB geschrieben werden. Dies ermöglicht Auswertungen auch über Anwendungen wie Grafana zu erstellen, sowie eine Langzeitarchivierung der Daten.

Diese Lösung lässt sich auch gleich für Steuerungsvorgänge auf Basis der Daten nutzen. Zum Beispiel nutze ich die aktuelle PV-Leistung, um die Ambiente-Beleuchtung im Außenbereich bei Eintritt der Dunkelheit ein- und ausschalten. Inzwischen lassen sich auch zahlreiche Hausgeräte wie Spül- und Waschmaschinen problemlos integrieren, wodurch man auch diese je nach PV-Erzeugung steuern könnte.

Wie komme ich nun an die Daten?

Im Laufe der Jahre hat es sich für mich bewährt all Systeme über MQTT anzubinden. Dies ermöglicht unterschiedlichste Geräte nahezu autonom untereinander kommunizieren zu lassen. Die kritische Komponente ist hierbei nur der MQTT-Broker, welchen als zentrale Komponente die Nachrichten entgegennimmt und an interessierte Zuhörer im Netzwerk weiterreicht. Dies lässt sich bei Bedarf aber auch ausfallsicher aufbauen. 

Mein erster Versuch war aufgrund meines Gefühls in puncto Sicherheit den mitgelieferten Deye WiFi Logger Stick gegen die nicht ganz günstige, kabelgebundene Version zu tauschen. Etwas Recherche hatte ergeben, dass sich der Stick auch als Modbus TCP Gateway nutzen lässt. Dies hat bei mir jedoch nie stabil funktioniert, sodass öfters fehlerhafte Daten geliefert wurden oder der dieser einfach nicht mehr reagiert hat.

Waveshare RS485 to Ethernet Adapter
Eine sehr günstige und stabile Lösung habe ich dann in den Waveshare RS485 to Ethernet Adaptern gefunden. Diese lassen sich gleich im Verteiler auf einer DIN-Schiene unterbringen und eine PoE-Version gibt es ebenfalls. 

Besonders interessant empfand ich die Möglichkeit,  Daten direkt von dem Gateway per MQTT liefern zu lassen. Leider ist die Konfiguration dieser Funktion äußerst mühselig und hat häufig fehlerhafte Werte geliefert. Das lag vermutlich aber auch an der Anzahl der abgefragten Modbus Register. Ich habe mich daher dazu entschieden, die Gateways über eine externe Software per Modbus TCP abzufragen um die Daten an den MQTT Broker zu senden.

Bei meiner Recherche habe ich keine auf meine Anforderungen passende, freie Software gefunden. Daher habe ich beschlossen dies selbst zu schreiben. Aus dem Script ist inzwischen ein sehr nützliches und frei konfigurierbares Modbus TCP zu MQTT und MQTT zu Modbus TCP Gateway entstanden. Durch die Möglichkeit einzelne Coils über ein Kommando an ein MQTT Topic zu steuern oder abzufragen, nutze ich es inzwischen auch für Steuerungsaufgaben. Den Source habe ich auf GitHub inklusive Docker-Image zur freien Verwendung unter https://github.com/mazocode/modbus2mqtt veröffentlicht. Im Ordner examples/ befinden sich Konfigurationsbeispiele, welche auch gleich die Konfigurationsdateien für Home Assistant in Verbindung mit den Deye Wechselrichtern enthalten.

Da die Modbus Geräte-ID am RS485 Port der Wechselrichter fest auf 1 zu stehen scheint, war für jeden Wechselrichter ein eigenes Waveshare Gateways erforderlich. In Summer waren diese dennoch günstiger als auch nur einer der Deye LAN-Sticks. Da die Stromaufnahme der PoE-Variante sehr gering ist (3 Stück <= 3.8 Watt), lassen sich mehrere Gateways an einem PoE-Port mittels PoE-Splitter/Hub betreiben. Damit muss auch nur ein Netzwerkanschluss in den Verteiler gelegt werden. 

Inzwischen lasse ich die Daten von Home Assistant auch in InfluxDB speichern, worüber ich diese länger archivieren und auch weitere, eigene Auswertungen mit Grafana erstellen kann. Hierüber generiere ich auch die Charts für die Aktuelle PV Statistik auf dieser Seite.