Sungrow SH10RT über LAN anbinden

Welche Geräter können mit dieser Anzeige benutzt werden?
Laderegler, Wallboxen, Batterie-Management-Systeme, WLAN Schalter mit Tasmota Firmware und Wechselrichter.
Allgemeine Fragen zu all diesen Geräten.

Moderator: Ulrich

maniac_2k
Beiträge: 4
Registriert: So 8. Okt 2023, 10:38

Sungrow SH10RT über LAN anbinden

Beitrag von maniac_2k »

Hallo Community,

ich habe Solaranzeige seit 2023 erfolgreich im Einsatz mit:
  • einem Sungrow SH10RT Wechselrichter
  • einem Sungrow Winet-S WLAN Dongle am Wechselrichter
  • Raspberry Pi 4 mit Solaranzeige
Solaranzeige ist an den Sungrow Winet-S WLAN Dongle am Wechselrichter angebunden. Das klappt ganz gut.

TLDR; Anbindung an den LAN-Port des Wechselrichters klappt nicht.

Der Wechselrichters ist allerdings über den Modbus-LAN-Port mit dem Hausnetzwerk verbunden und da eine Maschine mit Home Assistant erfolgreich den Wechselrichter darüber via Modbus auslesen kann funktioniert das grundsätzlich.

Jetzt wollte ich Solaranzeige ebenfalls an den Modbus-LAN-Port des Wechselrichters umkonfigurieren, und zwar aus folgenden Gründen:
  • Die WLAN-Verbidnung des Winet-S WLAN Dongles am Wechselrichter wird mittlerweile zunehmend schlechter (vermutlich neue Zigbee Interferenzen in einem ohnehin für WLAN ungünstigen Stahlbetonkeller).
  • Hier im Forum wird generell von der Anbindung von Sungrow Wechselrichtern per WLAN abgeraten, da die Sungrow WLAN Dongles langsam und unzuverlässig reagieren. Stattdessen wird explizit der Anschluss an den LAN-Port des Wechselrichters empfohlen.
Also habe ich einfach den Port des Wechselrichters in user_config.php geändert. Und zwar weg von dem Port des Sungrow Winet-S WLAN Dongles hin zum Port des Modbus-LAN-Anschlusses des Wechselrichters. In solaranzeige.log sehe ich, dass die Verbindung offenbar klappt und anschließend die Firmware korrekt ausgelesen wird, dann erfolgt aber ein Fehler:

Code: Alles auswählen

24.01. 10:59:01    -Sungrow: 192.168.179.52 Port: 502 GeräteID: 1
24.01. 10:59:01 +  -Die Daten werden ausgelesen...
24.01. 10:59:01    -Firmware: ARM_SAPPHIRE-H_V11_V01_B
24.01. 10:59:09    -Lesefehler => Ausgang.
In php.log steht:

Code: Alles auswählen

[24-Jan-2026 10:59:01 Europe/Berlin] PHP Notice:  fwrite(): send of 12 bytes failed with errno=32 Broken pipe in /var/www/html/phpinc/funktionen.inc.php on line 8267
[24-Jan-2026 10:59:03 Europe/Berlin] PHP Notice:  fwrite(): send of 12 bytes failed with errno=32 Broken pipe in /var/www/html/phpinc/funktionen.inc.php on line 8267
[24-Jan-2026 10:59:04 Europe/Berlin] PHP Notice:  fwrite(): send of 12 bytes failed with errno=32 Broken pipe in /var/www/html/phpinc/funktionen.inc.php on line 8267
[24-Jan-2026 10:59:06 Europe/Berlin] PHP Notice:  fwrite(): send of 12 bytes failed with errno=32 Broken pipe in /var/www/html/phpinc/funktionen.inc.php on line 8267
[24-Jan-2026 10:59:07 Europe/Berlin] PHP Notice:  fwrite(): send of 12 bytes failed with errno=32 Broken pipe in /var/www/html/phpinc/funktionen.inc.php on line 8267
[24-Jan-2026 11:00:01 Europe/Berlin] PHP Notice:  fwrite(): send of 12 bytes failed with errno=32 Broken pipe in /var/www/html/phpinc/funktionen.inc.php on line 8267
Dies bedeute, dass der fwrite Aufruf in der Funktion modbus_tcp_lesen in funktionen.inc.php fehlschlägt.

Code: Alles auswählen

 $TransactionIdentifier = str_pad( rand( 1, 199 ), 4, "0", STR_PAD_LEFT );
 $sendenachricht = hex2bin( $TransactionIdentifier.$ProtocilIdentifier.$MessageLenght.$GeraeteAdresse.$FunktionsCode.$Register.$RegisterAnzahl );
 $Antwort = "";
 $rc = fwrite( $COM1, $sendenachricht );
In sungrow.php, der Adapterimplementierung für den Sungrow Wechselrichter, geschieht dies ab dem Auslesen der Modbus-Registeradresse 4990. Das Vorangehende Auslesen von Register 4954, also der Firmware, funktioniert und wird auch in solaranzeige.log korrekt ausgegeben.

Ich habe mal ein paar Lesebefehle in sungrow.php auskommentiert und die "Lesefehler => Ausgang" Ausgaben nummeriert. Es funktioniert nur das Auslesen der Firmware aus Register 4954.

Meine Konfiguration in der user_config.php ist (Abweichungen von der Referenzdatei):

Code: Alles auswählen

$Regler = "70";
$WR_IP = "192.168.179.85";  //  Keine führenden Nullen!  67.xx Ja!, 067.xx Nein!
$WR_Port = "502";
$Objekt = "Schmohl HQ";
$Homematic = true;
$Homematic_IP = "192.168.179.25";
$USBRegler         = "Ethernet";
$Platine = "Raspberry Pi 4 Model B Rev 1.5";
Dabei habe ich jedoch lediglich $Regler, $WR_IP, $WR_Port, $Objekt und die Homematic-Variablen konfiguriert. Der Rest wurde von Solaranzeige automatisch gesetzt.

Was ich jetzt nicht verstehe ist, dass das Auslesen über den Sungrow Winet-S WLAN Dongle über Modbus funktioniert hat, direkt über den LAN-Port aber nicht. Die Modbus-Register werden an der LAN-Schnittstelle ja kaum anders belegt sein. Ich glaube mir fehlt noch irgendeine Konfigurationseinstellung.

Ich glaube ich nutze Solaranzeige 5.1.1, da bei mir das Installationspaket herumliegt. Ich habe aber nichts gefunden, wo die aktuelle Version steht.


Danke im Voraus,


Robert


EDIT: Rechtschreibung

Benutzeravatar
Ulrich
Administrator
Beiträge: 5672
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 164 Mal
Danksagung erhalten: 837 Mal

Re: Sungrow SH10RT über LAN anbinden

Beitrag von Ulrich »

Hallo Robert,

ist es richtig, dass du den Sungrow SH10RT Wechselrichter über den sDongle mit der Solaranzeige und parallel über LAN mit Home Assistant ausliest?

Jetzt möchtest du, dass die Solaranzeige und Home Assistant parallel den Wechselrichter über LAN auslesen. Alle 3 Geräte hängen am lokalen Netzwerk?

Wenn das so richtig ist, schalte bitte mal Home Assistant ab, dann sollte es schon mal funktionieren.
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

maniac_2k
Beiträge: 4
Registriert: So 8. Okt 2023, 10:38

Re: Sungrow SH10RT über LAN anbinden

Beitrag von maniac_2k »

Hallo Ulrich,

danke für die Rückmeldung. Tatsächlich, so geht es!

Zu Deinen Fragen:
ist es richtig, dass du den Sungrow SH10RT Wechselrichter über den sDongle mit der Solaranzeige und parallel über LAN mit Home Assistant ausliest?
Ja, das hat bisher geklappt (Home Assistant über LAN-Port des Wechselrichters, Solaranzeige über Winet-S WLAN), obwohl ich in jüngster Vergangenheit zunehmend Schwierigkeiten mit der WLAN-Verbindung zum Winet-S Dongle hatte. Seit heute habe habe ich den Dongle auch über LAN angebunden und Solaranzeige auf diesen Port umkonfiguriert. Das klappt.
Jetzt möchtest du, dass die Solaranzeige und Home Assistant parallel den Wechselrichter über LAN auslesen
Das war der Plan. Insbesondere weil im Forum das Umgehen des Dongles explizit empfohlen wird.
Alle 3 Geräte hängen am lokalen Netzwerk?
Alle beteiligten Geräte hängen im gleichen lokalen Netzwerk:
  • Raspberry Pi mit Solaranzeige (LAN)
  • Raspberry Pi mit Home Assistant (LAN)
  • Sungrow Winet-S Dongle (LAN und WLAN, WLAN aber sehr erratisch)
  • Sungrow Wechselrichter (LAN)

So sieht es jetzt im Log aus, wenn Homeassistant heruntergefahren ist:
  • 192.168.179.199: Sungrow Winet-S Dongle LAN-Adapter
  • 192.168.179.52: Sungrow Wechselrichter LAN-Adapter

Code: Alles auswählen

24.01. 17:35:01 |----------------   Start  sungrow.php    -------------------------- 
24.01. 17:35:01    -Sungrow: 192.168.179.199 Port: 502 GeräteID: 1
24.01. 17:35:01 +  -Die Daten werden ausgelesen...
24.01. 17:35:01    -Firmware: ARM_SAPPHIRE-H_V11_V01_B
24.01. 17:35:01    -Seriennummer: A231045713
24.01. 17:35:09 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
24.01. 17:35:57    -Schleife 1 Ausgang...
24.01. 17:35:57    -HM Übertragung mit _math Datei.
24.01. 17:35:57    -Daten zur HomeMatic gesendet. 
24.01. 17:35:57    -OK. Datenübertragung erfolgreich.
24.01. 17:35:57 |----------------   Stop   sungrow.php    -------------------------- 
24.01. 17:36:01 |----------------   Start  sungrow.php    -------------------------- 
24.01. 17:36:01    -Sungrow: 192.168.179.52 Port: 502 GeräteID: 1
24.01. 17:36:01 +  -Die Daten werden ausgelesen...
24.01. 17:36:01    -Firmware: ARM_SAPPHIRE-H_V11_V01_B
24.01. 17:36:01    -Seriennummer: A231045713
24.01. 17:36:09 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
24.01. 17:36:57    -Schleife 1 Ausgang...
24.01. 17:36:57    -HM Übertragung mit _math Datei.
24.01. 17:36:57    -Daten zur HomeMatic gesendet. 
24.01. 17:36:57    -OK. Datenübertragung erfolgreich.
24.01. 17:36:57 |----------------   Stop   sungrow.php    -------------------------- 
Aber so richtig klar ist mir das nicht. Es kann dann eigentlich nur ein Lastproblem beim Wechselrichter sein, oder Home Assistant hat eine exklusive Verbindung (Socket?) zum Wechselrichter letzterer lässt keine weiteren Clients zu.

Aber das Log zeigt, dass eine Iteration über die LAN-Schnittstelle des Dongles (192.168.179.199) etwa gleich lang dauert wie eine Iteration direkt über den Wechselrichter (192.168.179.52), also knapp 1 Minute. In beiden Fällen dauert der reine Lesevorgang offenbar ca. 9 Sekunden (etwa 4s schneller als über WLAN).

Ich sehe jetzt auf Anhieb keinen Vorteil den Winet-S Dongle zu umgehen. Langsamer ist er nicht und abgesehen von den jüngsten Verbindungsabrissen der WLAN-Verbindung hatte ich seit über 2 Jahren keine Probleme mit der Stabilität des Geräts samt Verbindung.

Wenn es systemisch nicht geht, den Wechselrichter durch Home Assistant und Solaranzeige auszulesen, dann bleibe ich bei der aktuellen Lösung Solaranzeige drahtgebunden an den Winet-S Dongle anzubinden. Die Daten des Wechselrichters brauche ich für das Energie-Dashboard im Home Asssistant, aber auf die Flexibilität der Grafana-Solaranzeige möchte ich ebenfalls nicht verzichten.

Ich beobachte das aktuelle Setup mal.

Danke für den Hinweis!


Grüße,

Robert

EDIT: Bessere Formulierung letzter Absatz

Benutzeravatar
Ulrich
Administrator
Beiträge: 5672
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 164 Mal
Danksagung erhalten: 837 Mal

Re: Sungrow SH10RT über LAN anbinden

Beitrag von Ulrich »

Das Problem ist, dass der Wechselrichter eine "einfache MODBUS Implementation" hat. Die kann nur mit einem Client parallel sprechen. Es gibt einen MODBUS TCP Gateway, der solche Anfragen von mehreren Geräten zeitlich regelt. Den könnte man dazwischen bauen.

Der sDongel arbeitet mit MODBUS RTU und LAN mit MODBUS TCP. Das bekommt der Wechselrichter noch geregelt. 2 x MODBUS TCP aber nicht mehr.

Es gibt Geräte, die mehrere MODBUS TCP Anfragen parallel beantworten können, aber kein SUNGROW WR.
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

maniac_2k
Beiträge: 4
Registriert: So 8. Okt 2023, 10:38

Re: Sungrow SH10RT über LAN anbinden

Beitrag von maniac_2k »

Also darauf wäre ich nie und nimmer gekommen.

Danke für die Erläuterungen.

Grüße,

Robert

Zurück zu „Fragen zu Reglern, Wallboxen und Wechselrichter“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste