FHEM - Anwendungen > Solaranlagen

Einbindung eines Sungrow SH10RT: SH05,SH06,SH08,SH10

(1/3) > >>

3gmann:
Hallo Zusammen,

nachdem ich bisher noch keinen Beitrag über den Wechselrichter SH10RT von Sungrow gefunden habe möchte ich hier über meine Erfahrungen und bisherige Lösung berichten.

Aktuell besteht meine Solaranlage aus folgenden Komponenten:
Anlage 1: Kostal Plenticore Plus 10; String 1 (20 x 290W OST 90°/33°); String 2 (14 x 290W West 270°/33°); Gesamt 9,86KWP - Inbetriebnahme 08.2019
Anlage 2: Sungrow SH10RT; String 1 (9 x 330W Süd 180°/82°); Sting 2 (24 x 280W West270°/33°); Gesamt 9,69 KWp - Inbetriebnahme 09.2020

Die Datenerfassung, Visualisierung sowie die Steuerung einzelner Verbraucher erfolgt über FHEM z.Z wird die komplette Wintergarten- und Gartenbewässerung, einige kleinere Verbraucher sowie die Heiß- bzw. Brauchwasserversorgung über FHEM gesteuert.

Die Anbindung der beiden Wechselrichter erfolgt über Das Modul ModbusAttr über TCP.
Da in diesem Forum schon viel über die Einbindung eine Kostal Plenticores geschrieben wurde aber ich noch keine Beiträge zur Sungrow Familie SHxxRT gefunden habe möchte ich meine bisherigen Erfahrungen und Lösungen in der Hoffnung vorstellen, dass dieses einigen Nutzern Hilfe bietet aber auch eine Plattform für Diskussionen für weitere Lösungsmöglichkeiten zur Einbindung dieser Wechselrichterfamilie von Sungrow öffnet.

Aktuell ist der Wechselrichter Sh10RT ebenfalls über das Modul ModbusAttr über TCP in FHEM eingebunden. Die Abfrage der für mich wichtigsten Register erfolgt alle 3 Sekunde, wichtige Daten werden alle 10 Minuten über FHEM mitgeloggt (MariaDB-Datenbank).

Die aktuelle Config des Sungrow sieht so aus:


--- Zitat ---define SH10rt_Fast ModbusAttr 1 3 192.168.xxx.xxx:502 TCP
attr SH10rt_Fast DbLogExclude .*
attr SH10rt_Fast DbLogInclude Inside_Temperature:600:force, Power_MPPT_1:600:force,Power_MPPT_2:600:force,MPPT_1_Voltage:600:force,MPPT_2_Voltage:600:force,MPPT_1_Current:600:force,MPPT_2_Current:600:force,Daily_PV_Generation:600:force,Complete_Daily_Yield:600:force,Complete_Daily_Einspeisung:600:force,Complete_Daily_PV_Consumption:600:force
attr SH10rt_Fast dev-type-UL_R2-len 2
attr SH10rt_Fast dev-type-UL_R2-revRegs 1
attr SH10rt_Fast dev-type-UL_R2-unpack N
attr SH10rt_Fast dev-type-SL_R2-len 2
attr SH10rt_Fast dev-type-SL_R2-unpack l
attr SH10rt_Fast event-on-change-reading .*
attr SH10rt_Fast obj-i5007-poll 5
attr SH10rt_Fast obj-i5007-reading Inside_Temperature
attr SH10rt_Fast obj-i5007-expr $val/10
attr SH10rt_Fast obj-i5010-poll 5
attr SH10rt_Fast obj-i5010-reading MPPT_1_Voltage
attr SH10rt_Fast obj-i5010-expr $val/10
attr SH10rt_Fast obj-i5011-poll 5
attr SH10rt_Fast obj-i5011-reading MPPT_1_Current
attr SH10rt_Fast obj-i5011-expr $val/10
attr SH10rt_Fast obj-i5012-poll 5
attr SH10rt_Fast obj-i5012-reading MPPT_2_Voltage
attr SH10rt_Fast obj-i5012-expr $val/10
attr SH10rt_Fast obj-i5013-poll 5
attr SH10rt_Fast obj-i5013-reading MPPT_2_Current
attr SH10rt_Fast obj-i5013-expr $val/10
attr SH10rt_Fast obj-i5016-poll 5
attr SH10rt_Fast obj-i5016-reading Total_DC_Power
attr SH10rt_Fast obj-i5016-type UL_R2
attr SH10rt_Fast obj-i5035-poll 5
attr SH10rt_Fast obj-i5035-reading Grid_Frequency
attr SH10rt_Fast obj-i5035-expr $val/10
attr SH10rt_Fast obj-i13001-poll 5
attr SH10rt_Fast obj-i13001-reading Daily_PV_Generation
attr SH10rt_Fast obj-i13001-expr $val/10
attr SH10rt_Fast obj-i13002-poll 5
attr SH10rt_Fast obj-i13002-reading Total_PV_Generation
attr SH10rt_Fast obj-i13002-type UL_R2
attr SH10rt_Fast obj-i13002-expr $val/10
attr SH10rt_Fast obj-i13004-poll 5
attr SH10rt_Fast obj-i13004-reading Daily_Export_Energy
attr SH10rt_Fast obj-i13004-expr $val/10
attr SH10rt_Fast obj-i13005-poll 5
attr SH10rt_Fast obj-i13005-reading Total_Export_Energy
attr SH10rt_Fast obj-i13005-type UL_R2
attr SH10rt_Fast obj-i13005-expr $val/10
attr SH10rt_Fast obj-i13007-poll 5
attr SH10rt_Fast obj-i13007-reading Load_Power
attr SH10rt_Fast obj-i13008-poll 5
attr SH10rt_Fast obj-i13008-reading Load_Power_1
attr SH10rt_Fast obj-i13009-poll 5
attr SH10rt_Fast obj-i13009-reading Export_Power
attr SH10rt_Fast obj-i13010-poll 5
attr SH10rt_Fast obj-i13010-reading Export_Power_1
attr SH10rt_Fast obj-i13016-poll 5
attr SH10rt_Fast obj-i13016-reading Daily_direct_Energy_Consumption
attr SH10rt_Fast obj-i13016-expr $val/10
attr SH10rt_Fast obj-i6468-poll 5
attr SH10rt_Fast obj-i6468-reading Test_1
attr SH10rt_Fast obj-i6469-poll 5
attr SH10rt_Fast obj-i6469-reading Test_2
attr SH10rt_Fast room System
attr SH10rt_Fast userReadings Power_MPPT_1 {sprintf("%.0f", (ReadingsNum ("SH10rt_Fast","MPPT_1_Voltage", 0) * ReadingsNum ("SH10rt_Fast","MPPT_1_Current", 0)));;} ,\
Power_MPPT_2 {sprintf("%.0f", (ReadingsNum ("SH10rt_Fast","MPPT_2_Voltage", 0) * ReadingsNum ("SH10rt_Fast","MPPT_2_Current", 0)));;},\
Complete_Daily_Yield {sprintf("%.1f", (ReadingsNum ("SH10rt_Fast","Daily_PV_Generation", 0) + ReadingsNum ("Plenticore","Dailey_Yield", 0)));;},\
Complete_Daily_Einspeisung {sprintf("%.1f", (ReadingsNum ("SH10rt_Fast","Daily_Export_Energy", 0) + ReadingsNum ("Plenticore","Dailey_Einspeisung_KWh", 0)));;},\
Complete_Daily_PV_Consumption {sprintf("%.1f", (ReadingsNum ("SH10rt_Fast","Complete_Daily_Yield", 0) - ReadingsNum ("SH10rt_Fast","Complete_Daily_Einspeisung", 0)));;},\
Complete_DC_Power {sprintf("%.0f", (ReadingsNum ("SH10rt_Fast","Power_MPPT_1", 0) + ReadingsNum ("SH10rt_Fast","Power_MPPT_2", 0)+ ReadingsNum ("Plenti_Fast","Power_DC1", 0) + ReadingsNum ("Plenti_Fast","Power_DC2", 0) + ReadingsNum ("Plenti_Fast","Power_DC3", 0)));;},\
Complete_AC_Power {sprintf("%.0f", (ReadingsNum ("SH10rt_Fast","Total_DC_Power", 0) + ReadingsNum ("Plenti_Fast","Total_AC_active_power", 0)));;}

--- Ende Zitat ---

Internals:
CFGFN                    /opt/fhem/fhem_cfg/65_PV_2.cfg
DEF                         1 3 192.168.xxx.xxx:502 TCP
DeviceName            192.168.xxx.xxx:502
EXPECT                  idle
FD                         16
FUUID                    5f9c1ce6-f33f-a580-6edb-6818f0fd402614b7
INTERVAL               3
IODev                    SH10rt_Fast
LASTOPEN             1604528390.01426
MODBUSID            1
MODE                    master
MODULEVERSION   Modbus 4.1.5 - 17.9.2019
NAME                    SH10rt_Fast
NOTIFYDEV            global
NR                        847
NTFY_ORDER         50-SH10rt_Fast
PARTIAL
PROTOCOL            TCP
STATE                   opened
TCPConn               1
TRIGGERTIME        1604559269.45515
TRIGGERTIME_FMT 2020-11-05 07:54:29
TYPE                     ModbusAttr
devioLoglevel         3
lastUpdate            1604559266.45515
nextOpenDelay      60
nextQueueRun      1604559267.43657

Die erzeugten Readings:
Complete_AC_Power                        1697           2020-11-05 10:28:15              berechneter Wert: Komplette Anlage AC-Power in W
Complete_DC_Power                        1832           2020-11-05 10:28:18              berechneter Wert: Komplette Anlage DC-Power in W
Complete_Daily_Einspeisung             0.9              2020-11-05 10:24:21              berechneter Wert: Komplette aktuelle Einspeisung in W
Complete_Daily_PV_Consumption      0.7             2020-11-05 10:24:22              berechneter Wert: Komplette direkter Verbrauch in KWh
Complete_Daily_Yield                       1.6              2020-11-05 10:24:22              berechneter Wert: Komplette Anlage Tagesleistung in KWh
Daily_Export_Energy                       0.4              2020-11-05 10:24:21              SH10RT Einspeiseleistung in KWh
Daily_PV_Generation                       0.4               2020-11-05 10:24:22              SH10RT Generatorleistung in KWh
Daily_direct_Energy_Consumption    0                 2020-11-05 07:54:24              SH10RT  Einspeiseleistung in KWh
Export_Power                                1166            2020-11-05 10:28:16              SH10RT  aktuelle Einspeiseleistung in W 32Bit Register signed
Export_Power_1                             0                 2020-11-05 09:19:58              SH10RT  aktuelle Einspeiseleistung in W 32Bit Register signed
Grid_Frequency                              49.9             2020-11-05 10:27:19              SH10RT  Netzfrequenz in Hz
Inside_Temperature                        29.4             2020-11-05 10:22:57              SH10RT  Betriebstemperatur in °C
Load_Power                                   64806           2020-11-05 10:28:16              SH10RT  aktuelle Last in W 32Bit Register signed
Load_Power_1                                65535          2020-11-05 09:27:48              SH10RT  aktuelle Last in W 32Bit Register signed
MPPT_1_Current                             0                 2020-11-05 07:54:27              SH10RT  String 1 Strom in A
MPPT_1_Voltage                             0                  2020-11-05 07:54:23             SH10RT  String 1 Spannung in V
MPPT_2_Current                             0.8               2020-11-05 10:26:01             SH10RT  String 2 Strom in A
MPPT_2_Voltage                             630.6           2020-11-05 10:28:16              SH10RT  String 2 Spannung in V
Power_MPPT_1                               0                  2020-11-05 07:54:27             berechneter Wert: SH10RT String 1 aktuelle PV-Leistung in W
Power_MPPT_2                               504               2020-11-05 10:28:16            berechneter Wert: SH10RT String 2 aktuelle PV-Leistung in W
Test_1                                           0                 2020-11-05 07:54:26             SH10RT Testwert 32 Bit Register
Test_2                                           0                2020-11-05 07:54:26              SH10RT Testwert 32 Bit Register
Total_DC_Power                             436             2020-11-05 10:28:14              SH10RT aktuelle AC-Leistung in W wird von Sungrow als DC bez.
Total_Export_Energy                      26.6             2020-11-05 10:24:22             SH10RT gesamte bisher erzeugte Einspeiseleistung in KWh
Total_PV_Generation                       63.9            2020-11-05 10:24:23             SH10RT gesamte bisher erzeugte Leistung in KWh
state                                             opend          2020-11-05 10:24:23             SH10RT Status Modbusverbindung

Hinweise und Bemerkungen:
Damit kann ich zunächst einmal arbeiten weitere Readings werden Zug um Zug eingebunden. Allerdings habe ich noch einige Schwierigkeiten 16 und 32 Bit Register mit Signed Variablen korrekt in FHEM einzulesen - bin nicht der Pearl Experte.

Ich hoffe dass ich vielleicht einigen USERN helfen konnte.
Hilfestellungen, Lösungsvorschläge, Anregungen und Diskussionen von Euch sind natürlich gerne willkommen - nobody is perfect und Kommunikation ist der Motor aller Entwicklungen.

Viele Grüße
Gerhard Gulde

3gmann:
Hallo miteinander,
nachdem ich mich nun etwas ausfühlicher mit der Dekodierung der Modbusvariablen (Register) beschäftigt habe hier die neue Version der Moduldefinition.


--- Code: ---
#####################################################################
## 
##  3G-FHEM         PV-Anlage
##
##  Name..........: 65_PV_2.cfg  CONFIG
##  Zweck.........: Einbindung PV-2 Anlage in FHEM
##  Standort......: Heizraum und Dach
##  Typ...........: Readings aus dem Wechselrichter Sungrow SH10RT Grafiken
##  Installation..: 30.10.2020
##  geändert......: 07.11.2020
##  Version.......: 0.1.0
##
##  Besonderheiten: Einbindung der PV-Anlage in FHEM
##                  Leistungsabhängige Steuerung von Endgeräten
##
#####################################################################

define SH10rt_Fast ModbusAttr 1 3 192.168.27.55:502 TCP
setuuid SH10rt_Fast 5f9c1ce6-f33f-a580-6edb-6818f0fd402614b7
attr SH10rt_Fast DbLogExclude .*
attr SH10rt_Fast DbLogInclude Inside_Temperature:600:force, Power_MPPT_1:600:force,Power_MPPT_2:600:force,MPPT_1_Voltage:600:force,MPPT_2_Voltage:600:force,MPPT_1_Current:600:force,MPPT_2_Current:600:force,Daily_PV_Generation:600:force,Complete_Daily_Yield:600:force,Complete_Daily_Einspeisung:600:force,Complete_Daily_PV_Consumption:600:force
attr SH10rt_Fast dev-type-U32-len 2
attr SH10rt_Fast dev-type-U32-revRegs 1
attr SH10rt_Fast dev-type-U32-unpack N
attr SH10rt_Fast dev-type-S32-len 2
attr SH10rt_Fast dev-type-S32-revRegs 1
attr SH10rt_Fast dev-type-S32-unpack l>
attr SH10rt_Fast dev-type-S16-unpack s>
attr SH10rt_Fast event-on-change-reading .*
attr SH10rt_Fast obj-i5007-poll 1
attr SH10rt_Fast obj-i5007-polldelay x199
attr SH10rt_Fast obj-i5007-reading Inside_Temperature
attr SH10rt_Fast obj-i5007-type S16
attr SH10rt_Fast obj-i5007-expr $val/10
attr SH10rt_Fast obj-i5010-poll 1
attr SH10rt_Fast obj-i5010-reading MPPT_1_Voltage
attr SH10rt_Fast obj-i5010-expr $val/10
attr SH10rt_Fast obj-i5011-poll 1
attr SH10rt_Fast obj-i5011-reading MPPT_1_Current
attr SH10rt_Fast obj-i5011-expr $val/10
attr SH10rt_Fast obj-i5012-poll 1
attr SH10rt_Fast obj-i5012-reading MPPT_2_Voltage
attr SH10rt_Fast obj-i5012-expr $val/10
attr SH10rt_Fast obj-i5013-poll 1
attr SH10rt_Fast obj-i5013-reading MPPT_2_Current
attr SH10rt_Fast obj-i5013-expr $val/10
attr SH10rt_Fast obj-i5016-poll 1
attr SH10rt_Fast obj-i5016-reading Total_DC_Power
attr SH10rt_Fast obj-i5016-type U32
attr SH10rt_Fast obj-i5035-poll 1
attr SH10rt_Fast obj-i5035-polldelay x199
attr SH10rt_Fast obj-i5035-reading Grid_Frequency
attr SH10rt_Fast obj-i5035-expr $val/10
attr SH10rt_Fast obj-i13001-poll 1
attr SH10rt_Fast obj-i13001-polldelay x199
attr SH10rt_Fast obj-i13001-reading Daily_PV_Generation
attr SH10rt_Fast obj-i13001-expr $val/10
attr SH10rt_Fast obj-i13002-poll 1
attr SH10rt_Fast obj-i13002-polldelay x199
attr SH10rt_Fast obj-i13002-reading Total_PV_Generation
attr SH10rt_Fast obj-i13002-type U32
attr SH10rt_Fast obj-i13002-expr $val/10
attr SH10rt_Fast obj-i13004-poll 1
attr SH10rt_Fast obj-i13004-polldelay x199
attr SH10rt_Fast obj-i13004-reading Daily_Export_Energy
attr SH10rt_Fast obj-i13004-expr $val/10
attr SH10rt_Fast obj-i13005-poll 1
attr SH10rt_Fast obj-i13005-polldelay x199
attr SH10rt_Fast obj-i13005-reading Total_Export_Energy
attr SH10rt_Fast obj-i13005-type U32
attr SH10rt_Fast obj-i13005-expr $val/10
attr SH10rt_Fast obj-i13007-poll 1
attr SH10rt_Fast obj-i13007-reading Load_Power
attr SH10rt_Fast obj-i13007-type S32
attr SH10rt_Fast obj-i13009-poll 1
attr SH10rt_Fast obj-i13009-reading Export_Power
attr SH10rt_Fast obj-i13009-type S32
attr SH10rt_Fast obj-i13016-poll 1
attr SH10rt_Fast obj-i13016-polldelay x199
attr SH10rt_Fast obj-i13016-reading Daily_direct_Energy_Consumption
attr SH10rt_Fast obj-i13016-expr $val/10
attr SH10rt_Fast room System
attr SH10rt_Fast userReadings Power_MPPT_1 {sprintf("%.0f", (ReadingsNum ("SH10rt_Fast","MPPT_1_Voltage", 0) * ReadingsNum ("SH10rt_Fast","MPPT_1_Current", 0)));;} ,\
Power_MPPT_2 {sprintf("%.0f", (ReadingsNum ("SH10rt_Fast","MPPT_2_Voltage", 0) * ReadingsNum ("SH10rt_Fast","MPPT_2_Current", 0)));;},\
Complete_Daily_Yield {sprintf("%.1f", (ReadingsNum ("SH10rt_Fast","Daily_PV_Generation", 0) + ReadingsNum ("Plenticore","Dailey_Yield", 0)));;},\
Complete_Daily_Einspeisung {sprintf("%.1f", (ReadingsNum ("SH10rt_Fast","Daily_Export_Energy", 0) + ReadingsNum ("Plenticore","Dailey_Einspeisung_KWh", 0)));;},\
Complete_Daily_PV_Consumption {sprintf("%.1f", (ReadingsNum ("SH10rt_Fast","Complete_Daily_Yield", 0) - ReadingsNum ("SH10rt_Fast","Complete_Daily_Einspeisung", 0)));;},\
Complete_DC_Power {sprintf("%.0f", (ReadingsNum ("SH10rt_Fast","Power_MPPT_1", 0) + ReadingsNum ("SH10rt_Fast","Power_MPPT_2", 0)+ ReadingsNum ("Plenti_Fast","Power_DC1", 0) + ReadingsNum ("Plenti_Fast","Power_DC2", 0) + ReadingsNum ("Plenti_Fast","Power_DC3", 0)));;},\
Complete_AC_Power {sprintf("%.0f", (ReadingsNum ("SH10rt_Fast","Total_DC_Power", 0) + ReadingsNum ("Plenti_Fast","Total_AC_active_power", 0)));;}



--- Ende Code ---

Weiter Variablen werden folgen sobald ich diese entsprechend getestet habe.

Quick:
Hallo, ich habe zwar kein FHEM, aber ioBroker. bin aktuell dabei, meinen Wechselrichter SH8.0RT mittels ModBus in den ioBroker einzubinden. Jedoch gibt es wohl Probleme bei der Darstellung der Werte.
Mir kommt es so vor, als würden die Registeradressen ( Liste von Sungrow ) nicht die wirklichen Werte liefern, sondern eher irgendwelche. Daher wollte ich dich einmal fragen, wie due die Registeradressen eingestellt hast?
Beziehungsweise vertraust du den Werten, die aus dem Umrichter kommen?

3gmann:
Hallo,
inzwischen kann ich alle Registerwerte in FHEM auslesen und entsprechend weiterverarbeiten. Allerdings enthalten einige Register unsinnige oder nicht plausible Werte, dazu später mehr.

Der ShxxRT stellt verschiedene Register bereit. Zum Einen  die Read Only Register und zum anderen die Holding Register die aber verschieden ausgelesen werden wollen. In FHEM lauten der Befehl obj-i5007-reading Inside_Temperature
dieser Befehl liest das Register 5008 aus. Weil laut Communication Protocol von Sungrow die Adresswerte um 1 niedriger eingestellt werden müssen. (Register 5008 -> Adresse = 5007   (5008-1))

Das Register enthält einen signed 16 Bit-Wert also S16
dieser wird in FHEM mit folgenden Befehlen korrekt ausgelesen:
dev-type-S16-unpack s>
der wert wird mit dem Faktor 0,1 im Sungrow gespeichert.

Die komplette Befehlsfolge in FHEM lautet:
attr SH10rt_Fast dev-type-S16-unpack s>      // definiert die Auflösung als signed 16 Bitwert
   
attr SH10rt_Fast obj-i5007-poll 1                     //liest Register 5008
attr SH10rt_Fast obj-i5007-polldelay x199         //alle 300 Sec (199 x 3 Sec)
attr SH10rt_Fast obj-i5007-reading Inside_Temperature      //schreibt den Wert in die Variable Inside_Temperature
attr SH10rt_Fast obj-i5007-type S16            //Dr registerwert ist vom Typ S16
attr SH10rt_Fast obj-i5007-expr $val/10         //Der Wert wird durch 10 geteilt  → siehe Sungrow Protocol
so zumindest in FHEM wie das Ganze im IOBroker definiert wird weiß ich allerdings nicht.

Zu den gelesenen Werten:
Bei mir habd die Registerwerte DC-Power und AC-Power die selben Werte. Dies ist allerdings unplausibel – das wäre ein Wirkungsgrad von 100%.
Der Registerwert Grid State Register 13030 liefert permanent den Wert Hex FFFF statt AA (Off Grid) oder 55 (On Grid)
Ich hoffe das konnte ihnen etwas helfen.

irenaeusbecker:
Hi,

erstmal vielen Dank für den Thread! Wir haben seit gestern auch den Sungrow SH08 installiert und deine Config hat auf Anhieb funktioniert, sprich die Werte werden hier angezeigt.
Lediglich mit DB-Verknüpfung muss ich mich noch beschäftigen, da ich das bisher nicht gebraucht habe, aber tatsächlich sinnvoll erscheint für spätere Graphen etc.

Bist du zufällig auch für Register-Einträge für den Zustand einer Batterie gestoßen? Ich versuche hier eine ModBus TCP zum Laufen zu bekommen, bin aber kläglich am scheitern.

Danke dir!

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln