Sungrow SH10RT Modbus ab Register 5000 Fehler

Alles was mit der Solaranzeige Image Installation und Betrieb zu tun hat. Einfache Konfiguration mit einem Gerät.

Moderator: Ulrich

Antworten
michi8c
Beiträge: 5
Registriert: Sa 22. Apr 2023, 11:45

Sungrow SH10RT Modbus ab Register 5000 Fehler

Beitrag von michi8c »

Hallo zusammen,

bin neu im Forum, habe mich etwas eingelesen und möchte aktuell meine neue PV Anlage mit der solaranzeige "aufrüsten" :)

Habe die Docker Variante auf einer Synology NAS installiert, das Image an sich läuft.
Leider funktioniert die Modbus Abfrage nicht ganz bisher, daher meine Anfrage hier.

Eckdaten zur PV Anlage: Sungrow SH10RT, BYD HVS 7.8, iSolarCloud mit Winet-S per Wifi und LAN, Modpus per dediziertem Lan Port

Habe das Debug-Level in der Datei "sungrow.php" von 7 auf 10 geändert, Log Ausgabe:

Code: Alles auswählen

23.05. 09:45:10 |----------------   Stop   sungrow.php    -------------------------- 
23.05. 09:45:10    -Lesefehler => Ausgang.
23.05. 09:45:10    -Keine Antwort, nochmal =>  
23.05. 09:45:10    -Antwort =>  
23.05. 09:45:10    -Antwort =>  
23.05. 09:45:10    -Antwort =>  
23.05. 09:45:09    -Antwort =>  
23.05. 09:45:09    -Antwort =>  
23.05. 09:45:09    -Antwort =>  
23.05. 09:45:09    -Antwort =>  
23.05. 09:45:09    -Befehl =>  000500000006010413920001
23.05. 09:45:09    -Keine Antwort, nochmal =>  
23.05. 09:45:08    -Antwort =>  
23.05. 09:45:08    -Antwort =>  
23.05. 09:45:08    -Antwort =>  
23.05. 09:45:08    -Antwort =>  
23.05. 09:45:08    -Antwort =>  
23.05. 09:45:07    -Antwort =>  
23.05. 09:45:07    -Antwort =>  
23.05. 09:45:07    -Befehl =>  012000000006010413920001
23.05. 09:45:07    -Keine Antwort, nochmal =>  
23.05. 09:45:07    -Antwort =>  
23.05. 09:45:07    -Antwort =>  
23.05. 09:45:07    -Antwort =>  
23.05. 09:45:06    -Antwort =>  
23.05. 09:45:06    -Antwort =>  
23.05. 09:45:06    -Antwort =>  
23.05. 09:45:06    -Antwort =>  
23.05. 09:45:06    -Befehl =>  015700000006010413920001
23.05. 09:45:06    -Keine Antwort, nochmal =>  
23.05. 09:45:06    -Antwort =>  
23.05. 09:45:05    -Antwort =>  
23.05. 09:45:05    -Antwort =>  
23.05. 09:45:05    -Antwort =>  
23.05. 09:45:05    -Antwort =>  
23.05. 09:45:05    -Antwort =>  
23.05. 09:45:04    -Antwort =>  
23.05. 09:45:04    -Befehl =>  012300000006010413920001
23.05. 09:45:04    -Keine Antwort, nochmal =>  
23.05. 09:45:04    -Antwort =>  
23.05. 09:45:04    -Antwort =>  
23.05. 09:45:04    -Antwort =>  
23.05. 09:45:04    -Antwort =>  
23.05. 09:45:03    -Antwort =>  
23.05. 09:45:03    -Antwort =>  
23.05. 09:45:03    -Antwort =>  
23.05. 09:45:03    -Befehl =>  005200000006010413920001
23.05. 09:45:03    -Antwort =>  00760000000501040201a1
23.05. 09:45:03    -Befehl =>  0076000000060104138f0001
23.05. 09:45:02    -Antwort =>  0092000000070104042b050000
23.05. 09:45:02    -Befehl =>  0092000000060104138b0002
23.05. 09:45:02    -Antwort =>  0031000000050104020011
23.05. 09:45:02    -Befehl =>  0031000000060104138a0001
23.05. 09:45:02    -Antwort =>  0015000000050104020001
23.05. 09:45:02    -Befehl =>  001500000006010413890001
23.05. 09:45:02    -Antwort =>  0181000000050104020064
23.05. 09:45:02    -Befehl =>  018100000006010413880001
23.05. 09:45:02    -Produkt: 0e0f
23.05. 09:45:02    -Antwort =>  0147000000050104020e0f
23.05. 09:45:02    -Befehl =>  014700000006010413870001
23.05. 09:45:02    -Seriennummer: A2290<geschwaerzt>
23.05. 09:45:01    -Antwort =>  00720000001701041<geschwaerzt>53536000000000000000000
23.05. 09:45:01    -Befehl =>  0072000000060104137d000a
23.05. 09:45:01    -Firmware: ARM_SAPPHIRE-H_V11_V01_B
23.05. 09:45:01    -Antwort =>  00630000002101041e41524d5f53415050484952452d485f5631315f5630315f42000000000000
23.05. 09:45:01    -Befehl =>  00630000000601041359000f
23.05. 09:45:01 +  -Die Daten werden ausgelesen...
23.05. 09:45:01 +  -WR_ID: 01
23.05. 09:45:01    -Sungrow: 192.168.1.7 Port: 502 GeräteID: 1
23.05. 09:45:01    -Zentraler Timestamp: 1684827901
23.05. 09:45:01 |----------------   Start  sungrow.php    -------------------------- 
Er scheint die Register 4954 (Firmware) und 4990 (Seriennummer) korrekt auszulesen, ab dem Register 5000 aber läuft er auf einen Fehler...

Hat jemand eine Idee?

Die Config Datei:

Code: Alles auswählen

root@solaranzeige:/solaranzeige# cat /solaranzeige/config/www/html/user.config.php | grep -v "//" | grep -v "/\*" | grep -v "\*\*"                                                                                                                                                          
<?php                                                                                                                                                                                                                                                                                       
$Regler = "70";                                                                                                                                                                                                                                                                             
$GeraeteNummer = "1";                                                                                                                                                                                                                                                                       
$HF2211 = false;                                                                                                                                                                                                                                                                            
$WR_Port = "502";                                                                                                                                                                                                                                                                           
$Objekt = "";                                                                                                                                                                                                                                                                               
$InfluxDB_local = true;                                                                                                                                                                                                                                                                     
$InfluxDBLokal  = "solaranzeige";                                                                                                                                                                                                                                                           
$Wiederholungen = 1;                                                                                                                                                                                                                                                                        
$InfluxDB_remote = false;                                                                                                                                                                                                                                                                   
$InfluxPort = 8086;                                                                                                                                                                                                                                                                         
$InfluxDBName  = "solaranzeige";                                                                                                                                                                                                                                                            
$InfluxAdresse = "";                                                                                                                                                                                                                                                                        
$InfluxSSL = false;                                                                                                                                                                                                                                                                         
$InfluxUser = "";                                                                                                                                                                                                                                                                           
$InfluxPassword ="";                                                                                                                                                                                                                                                                        
$InfluxDaylight = false;                                                                                                                                                                                                                                                                    
$Homematic = false;                                                                                                                                                                                                                                                                         
$Homematic_IP = "xxx.xxx.xxx.xxx";                                                                                                                                                                                                                                                          
$HomeMaticVar = "";                                                                                                                                                                                                                                                                         
$HM_auslesen = false;                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                                            
$MQTT = false;                                                                                                                                                                                                                                                                              
$MQTTBroker = "localhost";                                                                                                                                                                                                                                                                  
$MQTTPort = 1883;                                                                                                                                                                                                                                                                           
$MQTTBenutzer = "";                                                                                                                                                                                                                                                                         
$MQTTKennwort = "";                                                                                                                                                                                                                                                                         
$MQTTSSL = false;                                                                                                                                                                                                                                                                           
$MQTTKeepAlive = 60;                                                                                                                                                                                                                                                                        
$MQTTGeraet = "box1";                                                                                                                                                                                                                                                                       
$MQTTAuswahl = "";                                                                                                                                                                                                                                                                          
$MQTTTopic[1] = "solaranzeige/befehl/1/#";                                                                                                                                                                                                                                                  
$Topic = "sonoff";                                                                                                                                                                                                                                                                          
$Wetterdaten = false;                                                                                                                                                                                                                                                                       
$APPID = "";                                                                                                                                                                                                                                                                                
$StandortID = "<geschwaerzt>";                                                                                                                                                                                                                                                                    
$Messenger = false;                                                                                                                                                                                                                                                                         
$API_Token[1] = " ";                                                                                                                                                                                                                                                                        
$User_Key[1] = "";                                                                                                                                                                                                                                                                          
$Breitengrad = <geschwaerzt>;                                                                                                                                                                                                                                                                  
$Laengengrad = <geschwaerzt>;                                                                                                                                                                                                                                                                   
$aWATTar = false;                                                                                                                                                                                                                                                                           
$USBRegler         = "Ethernet";                                                                                                                                                                                                                                                            
$USBDevice = "";                                                                                                                                                                                                                                                                            
$Platine = "Docker Image 0.2.0";                                                                                                                                                                                                                                                            
$Alpha_ESS = 0;                                                                                                                                                                                                                                                                             
?>                 
Viele Grüße
Michi

Benutzeravatar
Ulrich
Administrator
Beiträge: 5583
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 157 Mal
Danksagung erhalten: 889 Mal
Kontaktdaten:

Re: Sungrow SH10RT Modbus ab Register 5000 Fehler

Beitrag von Ulrich »

Hallo Michi,

es ist die Registerstelle 5010, die Probleme macht. Was ungewöhnlich ist, dass der Wechselrichter bei der Abfrage des Registers gar nicht antwortet. Normalerweise muss eine Antwort kommen und wenn es auch eine negative Antwort ist.

Deshalb sieht es für mich so aus, als wenn die Verbindung zum Wechselrichter nicht stabil ist. Oder aber der Wechselrichter selber ein Problem hat.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

michi8c
Beiträge: 5
Registriert: Sa 22. Apr 2023, 11:45

Re: Sungrow SH10RT Modbus ab Register 5000 Fehler

Beitrag von michi8c »

Hallo Ulrich,

ich kann von einem Linux Client (anderer Docker Container, aber gleiche Client IP somit) mit einem Modbus Client die Register ohne Probleme auslesen (habe aber nur max. 20 Register auf einmal getestet), da Antwortet der WR ganz "normal" auch bei den Registern 5010 aufwärts...

Per ping ist der WR durchgehend erreichbar, daher schließe ich generelle Verbindungsprobleme aus.
Könnte es sein, dass der WR die Modbusanfragen nach einer Zeit X, oder Anfragenhäufigkeit blockiert? Welche Optionen kann ich noch testen?

Ich werde heute Abend mal den WR vom Netz nehmen und Neu starten.

Benutzeravatar
Ulrich
Administrator
Beiträge: 5583
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 157 Mal
Danksagung erhalten: 889 Mal
Kontaktdaten:

Re: Sungrow SH10RT Modbus ab Register 5000 Fehler

Beitrag von Ulrich »

Kann es sein, dass mehrere Programme auf die MODBUS TCP Schnittstelle zugreifen? Es darf nur die Solaranzeige alleine darauf zugreifen. Bitte die anderen Programme einmal stoppen.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

michi8c
Beiträge: 5
Registriert: Sa 22. Apr 2023, 11:45

Re: Sungrow SH10RT Modbus ab Register 5000 Fehler

Beitrag von michi8c »

Außer meinem Modbus Client den ich manuell per CLI losjage habe ich noch nichts weiters mit Modbus gemacht, also nur die Solaranzeige bisher.

michi8c
Beiträge: 5
Registriert: Sa 22. Apr 2023, 11:45

Re: Sungrow SH10RT Modbus ab Register 5000 Fehler

Beitrag von michi8c »

Nach dem WR Neustart (kalt) funktioniert die Schnittstelle wieder sauber 👍

Code: Alles auswählen

24.05. 14:32:01 |----------------   Start  sungrow.php    -------------------------- 
24.05. 14:32:01    -Sungrow: 192.168.1.7 Port: 502 GeräteID: 1
24.05. 14:32:01 +  -Die Daten werden ausgelesen...
24.05. 14:32:02    -Firmware: ARM_SAPPHIRE-H_V11_V01_B
24.05. 14:32:02    -Seriennummer: A2290657556
24.05. 14:32:09 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
Aktuell finde ich im Grafana noch kein Dashboard für Sungrow oder SH10RT, aber ich schaue mal wie weit ich ohne Hilfe komme

Vielen Dank für die schnellen Antworten bisher

michi8c
Beiträge: 5
Registriert: Sa 22. Apr 2023, 11:45

Re: Sungrow SH10RT Modbus ab Register 5000 Fehler

Beitrag von michi8c »

Hab das Sungrow Dashboard importiert, läuft 👍
Vielen Dank

Antworten

Zurück zu „Image Installation [ Single-Regler Version ]“