Solarman (Deye, Sofar, Solis) Smart-Home-Integration, kostenlos und Open Source

Deye, Sofar oder Solis mit Solarman-WLAN-Logger, lokal gelesen: Solar, Batterie, Netz.
Lies in Gladys über dein lokales Netzwerk einen Solar-Wechselrichter mit Solarman-WLAN-Logger (dem „LSW-3“-Stick, der mit Deye-, Sunsynk-, Sol-Ark-, Sofar-, Solis- und vielen anderen Wechselrichtern geliefert wird): Solarproduktion pro PV-Eingang, Hausverbrauch, Netzbezug und Einspeisung, Batteriestand und -leistung, Tagesenergien und Zählerstände für den Energie-Tab von Gladys, mit einem Dashboard-Widget, fünf Szenenauslösern und einer Szenenaktion. Kein Konto, keine Cloud: Gladys spricht direkt mit dem Logger über das Solarman-V5-Protokoll (TCP-Port 8899), das auch die Solarman-App nutzt. Nur lesend: In den Wechselrichter wird nie etwas geschrieben.
Ohne die Hardware entwickelt: Rückmeldungen willkommen. Diese Integration wurde anhand der veröffentlichten Registertabellen dieser Wechselrichter, eines echten Austauschs mit einem Deye-Logger und eines simulierten Loggers entwickelt, nicht an einem echten Wechselrichter. Wenn etwas nicht wie beschrieben funktioniert, sag es bitte im Gladys-Forum oder in den Issues.
Was du brauchst
- Gladys Assistant 5.1.0 oder neuer.
- Einen Wechselrichter mit Solarman-WLAN-Logger, dessen Seriennummer mit 17,
21, 23, 27 oder 40 beginnt (10 Ziffern, auf dem Etikett des Loggers), im
selben Netzwerk wie Gladys. Unterstützte Modelle:
- Deye Hybrid, einphasig (SUN-…K-SG0xLP1 sowie die darauf basierenden Sunsynk und Sol-Ark);
- Deye Hybrid, dreiphasig, Niedervolt-Batterie (SG04LP3) oder Hochvolt-Batterie (SG01HP3);
- Deye Mikrowechselrichter (SUN-M, SUN600/800/2000G3…);
- Sofar G3 (KTLX-G3 dreiphasig, ohne Batterie);
- Solis einphasig (1P…-5G, ohne Batterie).
- Eine feste IP-Adresse für den Logger (eine DHCP-Reservierung im Router).
Einrichtung
- Gehe in Gladys zu Integrationen → Von GitHub installieren und gib
https://github.com/guim31/gladys-solarmanein. - Fülle in der Konfiguration der Integration aus:
- IP-Adresse des Loggers;
- Seriennummer des Loggers: die 10 Ziffern auf dem Etikett des Loggers, nicht die Seriennummer des Wechselrichters;
- Wechselrichtermodell;
- Genutzte PV-Eingänge: die Anzahl der am Wechselrichter angeschlossenen Modulstränge (eine Produktion pro Eingang);
- bei Bedarf das Leseintervall (s) (standardmäßig 30 s, mindestens 15 s), die Einspeiseschwelle (W) der Einspeise-Auslöser, die Modbus-Adresse (fast immer 1), den TCP-Port des Loggers (8899) und die Sprache der Funktionsnamen.
- Starte Verbindung testen im Tab Konfiguration: Die Integration liest den Wechselrichter einmal und antwortet mit dem, was sie sieht, oder mit dem Grund des Fehlers.
- Öffne den Tab Entdecken und füge den Wechselrichter hinzu. Seine Werte kommen sofort und dann bei jeder Messung.
Das Gerät in Gladys
Ein Gerät pro Wechselrichter, nach seiner Marke benannt (zum Beispiel „Solar-Wechselrichter Deye“). Die Funktionen hängen vom Modell ab: Ein Modell ohne Batterie hat keine Batteriefunktion, ein Mikrowechselrichter weder Netz noch Haus.
| Funktion | Einheit | Was es ist |
|---|---|---|
| Solarproduktion | W | Produktion der Module, alle Eingänge zusammen |
| Produktion PV1, PV2… | W | Produktion jedes PV-Eingangs (wenn es mehrere gibt) |
| Produktion heute | kWh | seit Mitternacht erzeugte Energie |
| Gesamtproduktion | kWh | Produktionszählerstand des Wechselrichters (Energie-Tab) |
| Netzleistung | W | positiv bei Bezug, negativ bei Einspeisung |
| Netzbezug heute | kWh | seit Mitternacht aus dem Netz bezogene Energie |
| Einspeisung heute | kWh | seit Mitternacht ins Netz gespeiste Energie |
| Zählerstand Netzbezug | kWh | Bezugszähler: Gladys macht daraus Verbrauch und Kosten |
| Zählerstand Einspeisung | kWh | Einspeisezähler |
| Hausverbrauch | W | vom Haus verbrauchte Leistung |
| Hausverbrauch heute | kWh | seit Mitternacht vom Haus verbrauchte Energie |
| Batteriestand | % | Ladezustand |
| Batterieladung | W | Leistung, die in die Batterie fließt |
| Batterieentladung | W | Leistung, die aus der Batterie kommt |
| Zählerstand Batterieladung | kWh | seit der Installation geladene Energie |
| Zählerstand Batterieentladung | kWh | seit der Installation entladene Energie |
| Batterietemperatur | °C | |
| Wechselrichtertemperatur | °C | |
| Wechselrichterzustand | Text | Standby, Startet, Normal, Alarm, Fehler oder Antwortet nicht |
Energie-Tab. Nur der Zählerstand Netzbezug wird von Gladys als Verbrauch gezählt (mit seinen Kosten): Das ist, was dein Versorger abrechnet. Der Hausverbrauch nicht, denn die von deinen Modulen erzeugte und im Haus genutzte Energie ist kostenlos; der Produktionszählerstand speist die Produktion von Gladys. Wenn das Haus auch von einem Smart Meter gelesen wird, behalte diesen Zähler als Hauptzähler.
Nachts. Der Logger eines Wechselrichters ohne Batterie wird von den Modulen versorgt: Er geht nachts aus. Nach drei Messungen ohne Antwort wird der Zustand „Antwortet nicht“, die Solarproduktion fällt auf 0 W, die anderen Werte bleiben, wie sie waren; morgens kommt alles von selbst zurück. Die Integration wird in dieser Zeit auch als getrennt angezeigt.
Dashboard-Widget
Solar zeigt auf einen Blick:
- Solar: die Produktion der Module;
- Haus: den Verbrauch des Hauses;
- Netzbezug oder Einspeisung: den Austausch mit dem Netz, mit seiner Richtung;
- Batterie: den Batteriestand, und Ladung oder Entladung mit der Batterieleistung;
- Heute: die Produktion des Tages;
- den Zustand des Wechselrichters und die Uhrzeit der letzten Messung.
Füge es im Dashboard-Editor hinzu (Box „Integrations-Widget“). Solange der Wechselrichter nicht in Gladys hinzugefügt ist, sagt das Widget es.
Szenen
Auslöser
- Batterie voll: Die Batterie erreicht 100 % (einmal; erneut, nachdem sie auf 95 % gefallen ist). Variable: der Batteriestand.
- Batterie fällt auf…: Der Batteriestand fällt auf die gewählte Schwelle (10 bis 50 %) oder darunter. Er löst erneut aus, sobald der Stand 5 Punkte über die Schwelle gestiegen ist. Variable: der Batteriestand.
- Wechselrichterfehler: Der Wechselrichter geht in Alarm oder Fehler (wähle eines, oder lass das Feld für beide leer). Variablen: der Zustand und sein Code.
- Einspeisung gestartet: Das Haus beginnt, mehr als die Einspeiseschwelle (W) der Konfiguration ins Netz zu speisen. Variable: die eingespeiste Leistung.
- Einspeisung beendet: Die Einspeisung fällt unter die Hälfte dieser Schwelle. Variable: die eingespeiste Leistung (negativ bei Bezug).
Bei der ersten Messung nach einem Start löst nichts aus: Eine schon leere Batterie ist ein Zustand, kein Ereignis. Um auf einen Wert zu reagieren („Produktion über 2 kW“), nutze die Funktionen des Geräts in einem Auslöser „Gerätezustand“.
Aktionen
- Wechselrichterstatus lesen: Liest den Wechselrichter und gibt den folgenden Aktionen einen Statussatz zum Senden („Solar 2.340 W, Haus 1.200 W, Batterie 85 % (lädt 800 W), Einspeisung 340 W; 12,4 kWh heute erzeugt; Zustand Normal.“) sowie Solarproduktion, Hausverbrauch, Netzleistung, Batteriestand und Tagesproduktion als Zahlen. Der Satz ist in der Sprache der Konfiguration geschrieben.
Szenenideen
- Überschuss nutzen: Bei Einspeisung gestartet den Warmwasserbereiter oder die Poolpumpe einschalten; bei Einspeisung beendet ausschalten.
- Batterie schonen: Wenn die Batterie fällt auf… 20 %, eine Nachricht senden und die Heizungen ausschalten, die warten können.
- Abendbericht: Jeden Tag um 21 Uhr Wechselrichterstatus lesen und den Statussatz an dein Handy senden.
- Wechselrichter überwachen: Bei einem Wechselrichterfehler eine Nachricht mit dem Zustand senden.
Fehlerbehebung
- Verbindung testen meldet „keine Verbindung zum Logger“: Prüfe die IP-Adresse des Loggers und ob Gladys im selben Netzwerk ist. Der Logger muss auf Port 8899 antworten (manche neue „LSE“-Logger bieten ihn nicht an).
- „Der Logger antwortet nicht“: Die Seriennummer ist falsch (der Logger bleibt stumm), oder der Logger ist aus (Nacht, Wechselrichter ohne Batterie).
- „Der Logger antwortet, aber nicht der Wechselrichter“: Prüfe die Modbus-Adresse (standardmäßig 1) und das Kabel zwischen Logger und Wechselrichter.
- „Der Wechselrichter lehnt die gelesenen Register ab“: Das gewählte Modell passt nicht zum Wechselrichter.
- Werte, die falsch wirken (eine zehnmal zu kleine Leistung, ein umgekehrtes Vorzeichen): Prüfe das Modell, besonders Nieder- oder Hochvolt-Batterie bei den dreiphasigen Deye-Hybriden, und melde es im Forum mit einem Screenshot der Solarman-App.
- Mehr Details in den Protokollen der Integration, mit
LOG_LEVEL=debug.
Grenzen
- Nur lesend: Keine Einstellung des Wechselrichters kann geändert werden (Betriebsmodus, Batterieladung, Einspeisebegrenzung), bewusst, für die Sicherheit von Batterie und Netz.
- Ein Wechselrichter pro Installation der Integration.
- Der Logger bedient nur wenige Clients gleichzeitig: Gladys hält eine Verbindung und liest höchstens alle 15 Sekunden. Ein anderes lokales Werkzeug, das denselben Logger gleichzeitig liest, kann Fehler bekommen.
- Die Solarman-Cloud wird nicht genutzt und funktioniert weiter wie bisher.
- Der gesamte Hausverbrauch hat keinen Zählerstand in Gladys (nur den Tageswert), damit er im Energie-Tab nie doppelt gezählt wird.
- Andere Modelle (Deye-Stringwechselrichter, Sofar- und Solis-Hybride, Afore, KStar, Megarevo…) werden noch nicht unterstützt: Frag im Forum danach.
Registertabellen nach ha-solarman (MIT) und V5-Protokoll nach pysolarmanv5 (MIT). Nicht mit Solarman, Deye, Sofar oder Solis verbunden.
Konfigurationseinstellungen
Diese Einstellungen fragt Solarman (Deye, Sofar, Solis) in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Solarman-Logger | section | Nein | Der Wechselrichter wird über seinen Solarman-WLAN-Logger (LSW-3-Stick) im lokalen Netzwerk gelesen, Port 8899. Die Seriennummer des Loggers ist die 10-stellige Zahl auf seinem Etikett (17…, 21…, 23…, 27…, 40…). Nur lesend: In den Wechselrichter wird nie etwas geschrieben. |
| IP-Adresse des Loggers | string | Ja | Gib dem Logger eine feste Adresse in deinem Router. |
| Seriennummer des Loggers | string | Ja | 10 Ziffern auf dem Etikett des Loggers (nicht die Seriennummer des Wechselrichters). |
| Wechselrichtermodell | select | Ja | |
| Genutzte PV-Eingänge | number | Nein | Anzahl der am Wechselrichter angeschlossenen Modulstränge (eine Produktion pro Eingang, 1 bis 4). |
| Leseintervall (s) | number | Nein | Mindestens 15 Sekunden: Der Logger sendet seine Daten auch an die Solarman-Cloud. |
| Einspeiseschwelle (W) | number | Nein | Eingespeiste Leistung, ab der der Auslöser „Einspeisung gestartet“ auslöst. |
| Modbus-Adresse | number | Nein | Adresse des Wechselrichters hinter dem Logger: fast immer 1. |
| TCP-Port des Loggers | number | Nein | |
| Sprache der Funktionsnamen | select | Nein | Wird für die Funktionsnamen des Wechselrichters (beim Hinzufügen) und für die Meldungen der Aktionen verwendet. |
So installierst du Solarman (Deye, Sofar, Solis) in Gladys
- Öffne in Gladys Integrationen: Solarman (Deye, Sofar, Solis) erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/guim31/gladys-solarman:1.0.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-solarman.
Solarman (Deye, Sofar, Solis) benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.
Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.
Über externe Integrationen
Solarman (Deye, Sofar, Solis) ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation