Modbus Reference · GoodWe

GoodWe Modbus TCP registers

Register reference for reading GoodWe DNS, SDT, MT, ET, and EH inverters over Modbus TCP, including battery and grid meter registers.

Connection parameters: Modbus TCP on port 502, function code FC03 (Read Holding Registers). The default unit ID is 1.

Production registers (DNS / SDT / MT)

FunctionRegister(s)Raw formatScalingMetricApp output
FC03781U16× 1 WInstantaneous inverter powerWatts
FC03786–787U32 BE× 0.1 kWhLifetime energy productionWh (raw × 100)
FC03783U16× 0.1 VGrid voltage, Vgrid RVolts

Efficient block read: 781–787 in one request.

Battery registers (ET / EH)

Register(s)Raw formatScalingMetricSign handling
35111U16× 0.1 VBattery voltage
35113–35114S32× 1 WBattery powerPositive discharge value is negated
35115U16× 1%State of chargeClamped to 0–100%

Efficient read: the contiguous range 35111–35115.

Grid meter registers

Register(s)Raw formatScalingMetricSign convention
36005–36006I32× 1 WInstantaneous grid powerPositive export, negative import
35142–35143U32 BE× 0.1 kWhCumulative imported energyWh (raw × 100)
35146–35147U32 BE× 0.1 kWhCumulative exported energyWh (raw × 100)

Sign conventions used throughout: grid power is normalized so positive = exporting and negative = importing. Battery power is normalized so charging and discharging follow the app's convention noted per table.

True Modbus TCP on port 502 is available on ET-class inverters with the LAN or Ezlink module; it may need to be enabled on the module, and older ARM firmware can block it.

Want this data on your phone, without a server?

These are the registers SolarMark reads. The app polls your inverter directly over your local network: live power, energy history, battery State of Charge, and grid import/export, with no cloud account and no Home Assistant server to maintain. One-time purchase with a free 14-day trial. Get it on Google Play or the App Store.