Skip to content

Instantly share code, notes, and snippets.

@dnoegel
Last active November 11, 2024 10:13
Show Gist options
  • Save dnoegel/543c72ef722365a3934bbad0bb43e222 to your computer and use it in GitHub Desktop.
Save dnoegel/543c72ef722365a3934bbad0bb43e222 to your computer and use it in GitHub Desktop.
Modbus Register für Sungrow Wechselrichter zum Import in Iobroker
_address name description unit type len factor offset formula role room cw isScale
4999 Device type code Geräte Typ-Code int8be 1 1 0 value false false
5000 Nominal Output Power Installierte Leistung Kw uint16be 1 0.1 0 value false false
5002 Daily Output Energy Eigene Energienutzung heute (PV & Akku) Kwh uint16be 1 0.1 0 value false false
5003 Total Output Energy Eigene Energienutzung gesamt (PV & Akku) Kwh uint32sw 2 0.1 0 value false false
5007 Inside Temperature Temperatur im Wechselrichter °C int16be 1 0.1 0 value false false
5010 MPPT 1 Voltage MPPT1 Spannung V uint16be 1 0.1 0 value false false
5011 MPPT 1 Current MPPT1 Strom A uint16be 1 0.1 0 value false false
5012 MPPT 2 Voltage MPPT2 Spannung V uint16be 1 0.1 0 value false false
5013 MPPT 2 Current MPPT2 Strom A uint16be 1 0.1 0 value false false
5016 Total DC Power PV-Leistung aktuell W uint32sw 2 1 0 value false false
5018 Spannung Ph A Spannung Phase A V uint16be 1 0.1 0 value false false
5019 Spannung Ph B Spannung Phase C V uint16be 1 0.1 0 value false false
5020 Spannung Ph C Spannung Phase C V uint16be 1 0.1 0 value false false
5032 Reactive Power Blindleistung VA® int32sw 2 0 value false false
5034 Power Factor Leistungsfaktor int16be 1 0.001 0 value false false
5035 Grid Frequency Netzfrequenz Hz uint16be 1 0.1 0 value false false
6226 Monthly PV energy yields January Monatlicher PV Energieertrag Januar Kwh uint16be 1 0.1 0 value false false
6227 Monthly PV energy yields February Monatlicher PV Energieertrag Februar Kwh uint16be 1 0.1 0 value false false
6228 Monthly PV energy yields March Monatlicher PV Energieertrag März Kwh uint16be 1 0.1 0 value false false
6229 Monthly PV energy yields April Monatlicher PV Energieertrag April Kwh uint16be 1 0.1 0 value false false
6230 Monthly PV energy yields May Monatlicher PV Energieertrag Mai Kwh uint16be 1 0.1 0 value false false
6231 Monthly PV energy yields June Monatlicher PV Energieertrag Juni Kwh uint16be 1 0.1 0 value false false
6232 Monthly PV energy yields July Monatlicher PV Energieertrag Juli Kwh uint16be 1 0.1 0 value false false
6233 Monthly PV energy yields August Monatlicher PV Energieertrag August Kwh uint16be 1 0.1 0 value false false
6234 Monthly PV energy yields September Monatlicher PV Energieertrag September Kwh uint16be 1 0.1 0 value false false
6235 Monthly PV energy yields October Monatlicher PV Energieertrag Oktober Kwh uint16be 1 0.1 0 value false false
6236 Monthly PV energy yields November Monatlicher PV Energieertrag November Kwh uint16be 1 0.1 0 value false false
6237 Monthly PV energy yields December Monatlicher PV Energieertrag Dezember Kwh uint16be 1 0.1 0 value false false
6416 Monthly direct energy consumption from PVJanuary Monatlicher Energieverbrauch von PV-Anlage im Januar Kwh uint16be 1 0.1 0 value false false
6417 Monthly direct energy consumption from PV February Monatlicher Energieverbrauch von PV-Anlage im Februar Kwh uint16be 1 0.1 0 value false false
6418 Monthly direct energy consumption from PV March Monatlicher Energieverbrauch von PV-Anlage im März Kwh uint16be 1 0.1 0 value false false
6419 Monthly direct energy consumption from PV April Monatlicher Energieverbrauch von PV-Anlage im April Kwh uint16be 1 0.1 0 value false false
6420 Monthly direct energy consumption from PV May Monatlicher Energieverbrauch von PV-Anlage im Mai Kwh uint16be 1 0.1 0 value false false
6421 Monthly direct energy consumption from PV June Monatlicher Energieverbrauch von PV-Anlage im Juni Kwh uint16be 1 0.1 0 value false false
6422 Monthly direct energy consumption from PV July Monatlicher Energieverbrauch von PV-Anlage im Juli Kwh uint16be 1 0.1 0 value false false
6423 Monthly direct energy consumption from PV August Monatlicher Energieverbrauch von PV-Anlage im August Kwh uint16be 1 0.1 0 value false false
6424 Monthly direct energy consumption from PV Septemper Monatlicher Energieverbrauch von PV-Anlage im September Kwh uint16be 1 0.1 0 value false false
6425 Monthly direct energy consumption from PV October Monatlicher Energieverbrauch von PV-Anlage im Oktober Kwh uint16be 1 0.1 0 value false false
6426 Monthly direct energy consumption from PV November Monatlicher Energieverbrauch von PV-Anlage im November Kwh uint16be 1 0.1 0 value false false
6427 Monthly direct energy consumption from PV december Monatlicher Energieverbrauch von PV-Anlage im Dezember Kwh uint16be 1 0.1 0 value false false
6595 Monthly export energy from PV January Monatlicher Energieexport aus PV-Anlage Januar Kwh uint16be 1 0.1 0 value false false
6596 Monthly export energy from PV February Monatlicher Energieexport aus PV-Anlage Februar Kwh uint16be 1 0.1 0 value false false
6597 Monthly export energy from PV March Monatlicher Energieexport aus PV-Anlage März Kwh uint16be 1 0.1 0 value false false
6598 Monthly export energy from PV April Monatlicher Energieexport aus PV-Anlage April Kwh uint16be 1 0.1 0 value false false
6599 Monthly export energy from PV May Monatlicher Energieexport aus PV-Anlage Mai Kwh uint16be 1 0.1 0 value false false
6600 Monthly export energy from PV June Monatlicher Energieexport aus PV-Anlage Juni Kwh uint16be 1 0.1 0 value false false
6601 Monthly export energy from PV July Monatlicher Energieexport aus PV-Anlage Juli Kwh uint16be 1 0.1 0 value false false
6602 Monthly export energy from PV August Monatlicher Energieexport aus PV-Anlage August Kwh uint16be 1 0.1 0 value false false
6603 Monthly export energy from PV September Monatlicher Energieexport aus PV-Anlage September Kwh uint16be 1 0.1 0 value false false
6604 Monthly export energy from PV October Monatlicher Energieexport aus PV-Anlage Oktober Kwh uint16be 1 0.1 0 value false false
6605 Monthly export energy from PV November Monatlicher Energieexport aus PV-Anlage November Kwh uint16be 1 0.1 0 value false false
6606 Monthly export energy from PV Dezember Monatlicher Energieexport aus PV-Anlage Dezember Kwh uint16be 1 0.1 0 value false false
12999 System State Systemstatus uint16be 1 1 0 value false false
13000 Running State Betriebsstatus uint16be 1 1 0 value false false
13001 Daily PV Generation PV-Stromerzeugung heute Kwh uint16be 1 0.1 0 value false false
13002 Total PV Generation PV-Stromerzeugung gesamt Kwh uint32sw 2 0.1 0 value false false
13004 Daily export energy from PV PV-Einspeise Energie heute Kwh uint16be 1 0.1 0 value false false
13005 Total export energy from PV PV-Einspeise Energie gesamt Kwh uint32sw 2 0.1 0 value false false
13007 Load power Wirkleistung gesamt W int32sw 2 1 0 value false false
13009 Export power Aktuelle Leistung am Übergabepunkt des Versorgungsnetzes W int32sw 2 1 0 value false false
13011 Daily battery charge energy from PV Energie in Speicher heute Kwh uint16be 1 0.1 0 value false false
13012 Total battery charge energy from PV Energie in Speicher gesamt Kwh uint32sw 2 0.1 0 value false false
13014 CO2-reduction CO2- Reduzierung Kg uint32sw 2 0.1 0 value false false
13016 Daily direct Energy Consumption Direkter Eigenverbrauch aus PV heute Kwh uint16be 1 0.1 0 value false false
13017 Total direct Energy Consumption Direkter Eigenverbrauch aus PV gesamt Kwh uint32sw 2 0.1 0 value false false
13019 Battery voltage Batteriespannung V uint16be 1 0.1 0 value false false
13020 Battery current Batteriestrom A uint16be 1 0.1 0 value false false
13021 Battery power Batterieladeleistung W uint16be 1 1 0 value false false
13022 Battery level Batteriekapazität % uint16be 1 0.1 0 value false false
13023 Battery state of health Gesundheit der Batterie % uint16be 1 0.1 0 value false false
13024 Battery Temperature Batterietemperatur °C int16be 1 0.1 0 value false false
13025 Daily battery discharge Energy Tägliche Entladungsenergie der Batterie Kwh uint16be 1 0.1 0 value false false
13026 Total battery discharge Energy Gesamte Entladungsenergie der Batterie Kwh uint32sw 2 0.1 1 value false false
13028 Self-consumption of today Heutiger Anteil des Eigenverbrauches % uint16be 1 0.1 0 value false false
13029 Grid state Netzstatus int16be 1 0.1 0 value false false
13030 Phase A current Strom Phase A aktuell A uint16be 1 0.1 0 value false false
13031 Phase B current Strom Phase B aktuell A uint16be 1 0.1 0 value false false
13032 Phase C current Strom Phase C aktuell A uint16be 1 0.1 0 value false false
13033 Total active power Eigenverbrauch aktuell W int32sw 2 1 0 value false false
13035 Daily Import Energy Gekaufte Energie heute Kwh uint16be 1 0.1 0 value false false
13036 Total Import Energy Gekaufte Energie gesamt Kwh uint16be 1 0.1 0 value false false
13038 Battery Capacity Batterie-Kapazität Kwh uint16be 1 0.1 0 value false false
13039 Daily Charge Energy Batterie-Ladeenergie heute Kwh uint16be 1 0.1 0 value false false
13040 Total Charge Energy Batterie-Ladeenergie gesamt Kwh uint32sw 2 0.1 0 value false false
13044 Daily export energy Energie Netzeinspeisung heute Kwh uint16be 1 0.1 0 value false false
13045 Total export energy Energie Netzeinspeisung gesamt Kwh uint32sw 2 0.1 0 value false false
13049 Inverter alarm Inverter alarm uint32sw 2 1 0 value false false
13051 Grid-side fault Netzfehler uint32sw 2 1 0 value false false
13053 System fault 1 System Fehler 1 uint32sw 2 1 0 value false false
13055 System fault 2 System Fehler 2 uint32sw 2 1 0 value false false
13057 DC-side fault Fehler DC-Seitig uint32sw 2 1 0 value false false
13059 Permanent fault Permanenter Fehler uint32sw 2 1 0 value false false
13061 BDC-side fault BDC-side fault uint32sw 2 1 0 value false false
13063 BDC-side permanent fault BDC-side permanent fault uint32sw 2 1 0 value false false
13065 Battery fault Batterie Fehler uint32sw 2 1 0 value false false
13067 Battery alarm Battery Alarm uint32sw 2 1 0 value false false
13069 BMS alarm BMS Alarm uint32sw 2 1 0 value false false
13071 BMS protection BMS protection uint32sw 2 1 0 value false false
13073 BMS fault 1 BMS fault 1 uint32sw 2 1 0 value false false
13075 BMS fault 2 BMS fault 2 uint32sw 2 1 0 value false false
13077 BMS alarm 2 BMS alarm 2 uint32sw 2 1 0 value false false
@dnoegel
Copy link
Author

dnoegel commented Aug 28, 2022

Based on this post by user Atlantis in the iobroker board: https://forum.iobroker.net/post/520225

Updated to match most recent TSV format of modbus adapter, mostly by removing the first column, renaming the second + adding formula, room, cw, isScale

@dnoegel
Copy link
Author

dnoegel commented Oct 10, 2022

A reduced set of sungrow registers can be found here => https://gist.github.com/dnoegel/6ac76fdbd3dd4e2425162207508cbd53

@Norwegen60
Copy link

Norwegen60 commented Sep 1, 2023

I have done installation of Sungrow in the last days with post of Atlantis, but I had to add column deviceId behind _adress with value 1
grafik

@Mantelinho
Copy link

Mantelinho commented Dec 15, 2023

Thanks for this very helpful list. One remark:

13007 | Load power actually is a signed int32sw instead of uint32sw. Can have negative values, f.e. if storage is charged from AC side. Also according to spec: https://github.com/bohdan-s/Sungrow-Inverter/blob/main/Modbus%20Information/communication-protocol-of-residential-hybrid-inverterv1.0.20-1.pdf page 9 row 52

@guenterpaul
Copy link

I think in line 57 (13002, Total PV Generation, PV-Stromerzeugung gesamt) the factor is not OK, the value is 0.1 in my case. I don't use all lines and so I don't checked other lines.

@c0ldtech
Copy link

Does anybody know if there are also registers for the DTSU666 power meter? I'm specifically looking to get some values directly from there, like current of the phases at the grid handover point, which are not included in what I can get from the inverter. As far as I understand, the power meter has modbus ID 254 (in my case), but I don't know if it possible to query the device through the modbus implementation on the inverter.

@cheinelt
Copy link

13004 seems to need a factor of 0.1 as per my testing with my SH6.0RT.

@c0ldtech
Copy link

c0ldtech commented Feb 4, 2024

I have done installation of Sungrow in the last days with post of Atlantis, but I had to add column deviceId behind _adress with value 1 grafik

You need to do this if you have checked Multiple device IDs in the Modbus Adapter.

Which is advisable to do, since now we can also read some interesting battery metrics from the battery itself - assuming you have updated your battery firmware to 21.

If you did that it shows up as a separate entity, which makes it adressable in modbus at device ID 200 (the device ID may differ and can be checked on the WinetS under Device Monitoring).

These Registers are taken from this github for home assistant.
Here are the registers formatted for the ioBroker modbus adapter (Multiple device IDs needs to be checked).

@aasgard77
Copy link

On my Sungrow SH5.0RT, the factor of 13004 is 0.1.

@umrath
Copy link

umrath commented Mar 22, 2024

Interesting finding (for me): I cannot set the max discharge power to 0. I can set the value to 0 - but it will be ignored. To disable discharging, I have to set the value to 10 - which sets it to 10 - but essentially disables discharging.

Took me a while to wrap my head around it and understand, why it perfectly scales up the discharge power, but does not set it to 0.

@dnoegel
Copy link
Author

dnoegel commented Mar 30, 2024

Thanks for the feedback so far, changed the factors for 13002 and 13004 - and also changed to signed int for 13007.

@Mantelinho
Copy link

Mantelinho commented Apr 10, 2024

I was missing a few more values to use them in the openWB wallbox. Did a lot of adress dump + search, since also the latest Sunggrow modbus specs are incomplete. Have a look at https://github.com/openWB/core/blob/master/packages/modules/devices/sungrow/sungrow/modbus.md.

Most interesting maybe (for SH inverter connected via LAN):

  • Register 5030 for AC load power at inverter (useful for effective delivered power)
  • Register 13009 for total AC load power at smart meter, negative values if power consumed from net, positive if exported
  • Register 5602, 5604, 5606 (int32sw) for load power per phase at smart meter
  • Register 5740, 5741, 5742 for voltages per phase at smart meter. Attention: 5018/19/20 contain the voltages delivered at inverter!

@c0ldtech
Copy link

I was missing a few more values to use them in the openWB wallbox. Did a lot of adress dump + search, since also the latest Sunggrow modbus specs are incomplete. Have a look at https://github.com/Mantelinho/core/blob/patch_sungrow_modbus/packages/modules/devices/sungrow/modbus.md.

Most interesting maybe (for SH inverter connected via LAN):

  • Register 5030 for AC load power at inverter (useful for effective delivered power)
  • Register 13009 for total AC load power at smart meter, negative values if power consumed from net, positive if exported
  • Register 5602, 5604, 5606 (int32sw) for load power per phase at smart meter
  • Register 5740, 5741, 5742 for voltages per phase at smart meter. Attention: 5018/19/20 contain the voltages delivered at inverter!

Quick question: Is 5030 actually different from 13007?

The other ones I already listed here, in case you still need some more.

@Mantelinho
Copy link

Mantelinho commented Apr 11, 2024

I was missing a few more values to use them in the openWB wallbox. Did a lot of adress dump + search, since also the latest Sunggrow modbus specs are incomplete. Have a look at https://github.com/openWB/core/blob/master/packages/modules/devices/sungrow/sungrow/modbus.md.
Most interesting maybe (for SH inverter connected via LAN):

  • Register 5030 for AC load power at inverter (useful for effective delivered power)
  • Register 13009 for total AC load power at smart meter, negative values if power consumed from net, positive if exported
  • Register 5602, 5604, 5606 (int32sw) for load power per phase at smart meter
  • Register 5740, 5741, 5742 for voltages per phase at smart meter. Attention: 5018/19/20 contain the voltages delivered at inverter!

Quick question: Is 5030 actually different from 13007?

The other ones I already listed here, in case you still need some more.

(edit: Sorry, I mixed this up with 13033)

13007 is the load in the local net (sum of AC consumption), in other words the sum of 13007 and 13009 equals 5030. But: if you have more than one producer (another inverter), 13007 may be negative since the SH does not consider other inverters in retrofit modus for register 13007.

So if you are looking for a 5030 alternative (e.g. if your SH is connected via WiNet), take 13033. They have the same value:
13033: SH via LAN and WiNet-S dongle
5030: SH via LAN and SG via WiNet-S dongle
Both hold the AC active power delivered by the inverter, the value you see as "Wirkleistung gesamt" in iSolarCloud Live-Data.

@StClaus63
Copy link

I think, the naming of 13023 is wrong.

It's giving the State of Charge, not the State of Health

So instead of

13023 Battery state of health Gesundheit der Batterie % uint16be 1 0.1 0
it should be

13023 Battery state of charge Batterieladezustand % uint16be 1 0.1 0

What is then the difference to 13022 which is called "Battery level | Batteriekapazität". According to my experience 13023 really describe the health status of the battery in %. My system started with a value of 100% and is now after 1,5 year at 98%.

@c0ldtech
Copy link

I think, the naming of 13023 is wrong.
It's giving the State of Charge, not the State of Health
So instead of
13023 Battery state of health Gesundheit der Batterie % uint16be 1 0.1 0
it should be
13023 Battery state of charge Batterieladezustand % uint16be 1 0.1 0

What is then the difference to 13022 which is called "Battery level | Batteriekapazität". According to my experience 13023 really describe the health status of the battery in %. My system started with a value of 100% and is now after 1,5 year at 98%.

This is correct, it’s the same for me.

@ptar
Copy link

ptar commented Jul 14, 2024

I think, the naming of 13023 is wrong.

I'm sorry, you're right: I misunderstood the output of qModMaster, which hover-displayed address 13022 for register 13023 (as long as I remember, because currently it doesn't read the values at all)

I will delete the comment above, because it was simply wrong!

@liflitz
Copy link

liflitz commented Aug 11, 2024

I have added a small 800W inverter to my Sungrow SH10RT by plugging it into a non-backup outlet in the house (without doing any settings changes to the SH10RT). When the small inverters power exceeds the house load, the house load indicated in the iSolarCloud app turns negative as it should. However, the 13007 register for total AC load power does not produce negative values but stays at zero instead. Any ideas? The format upon reading should be OK as the same one produces pos and neg values for the 13009 register.

@Maxifyus
Copy link

Please Add
Beim SH via LAN:
Register 5030 enthält die AC Wirkleistung pro WR (SH-LAN und SG-WiNet), alternativ
Register 13033 enthält die AC Wirkleistung pro WR (SH-LAN und SH-WiNet)
Register 13009 enthält die Gesamtwirkleistung am Smartmeter
Register 5602, 5604, 5606 enthalten die Wirkleistungen pro Phase am Smartmeter
Register 5740, 5741, 5742 enthalten die Spannungen pro Phase am Smartmeter

Confirmed here
https://forum.openwb.de/viewtopic.php?t=7804&start=10

@Mantelinho
Copy link

Mantelinho commented Sep 23, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment