device library

Growatt inverter (Modbus RTU Protocol II)

Register map(s) for this device, with a note of how far each has been checked. Addresses are 0-based, as on the wire. Scale and byte order are confirmed only at the hardware-verified rung.

coherence-checked

Round-trips through a real Modbus stack with no overlapping addresses and a word-order-sensitive codec — the map is internally coherent and wire-decodable. Does NOT prove byte-order or scaling match a real device: the emulator is seeded from the map's own types, so a uniformly wrong byte-order still round-trips. Only hardware-verified confirms byte-order/scale on the wire.

pointaddress (0-based)typescaleunit
OnOff0U161
Inverter Status0U161
SaftyFuncEn1U161
Ppv H1U160.1W
PF CMD memory state2U161
Ppv L2U160.1W
Active P Rate3U161%
Vpv13U160.1V
Reactive P Rate4I161%
PV1Curr4U160.1A
Power factor5U161
Ppv1 H5U160.1W
Pmax H6U160.1VA
Ppv1 L6U160.1W
Pmax L7U160.1VA
Vpv27U160.1V
Vnormal8U160.1V
PV2Curr8U160.1A
Fw version H9U161
Ppv2 H9U160.1W
Fw version M10U161
Ppv2 L10U160.1W
Fw version L11U161
Vpv311U160.1V
Fw version2 H12U161
PV3Curr12U160.1A
Fw version2 M13U161
Ppv3 H13U160.1W
Fw version2 L14U161
Ppv3 L14U160.1W
LCD language15U161
Vpv415U160.1V
CountrySelected16U161
PV4Curr16U160.1A
Vpv start17U160.1V
Ppv4 H17U160.1W
Time start18U161s
Ppv4 L18U160.1W
RestartDelayTime19U161s
Vpv519U160.1V
wPowerStartSlope20U160.1%
PV5Curr20U160.1A
wPowerRestartSlopeEE21U160.1%
Ppv5H21U160.1W
wSelectBaudrate22U161
Ppv5 L22U160.1W
Serial NO 1-223U161
Vpv623U160.1V
Serial NO 3-424U161
PV6Curr24U160.1A
Serial NO 5-625U161
Ppv6 H25U160.1W
Serial NO 7-826U161
Ppv6 L26U160.1W
Serial NO 9-1027U161
Vpv727U160.1V
Module H28U161
PV7Curr28U160.1A
Module L29U161
Ppv7 H29U160.1W
Com Address30U161
Ppv7 L30U160.1W
FlashStart31U161
Vpv831U160.1V
Reset User Info32U161
PV8Curr32U160.1A
Reset to factory33U161
Ppv8 H33U160.1W
Manufacturer Info 834U161
Ppv8 L34U160.1W
Manufacturer Info 735U161
Pac H35U160.1W
Manufacturer Info 636U161
Pac L36U160.1W
Manufacturer Info 537U161
Fac37U160.01Hz
Manufacturer Info 438U161
Vac138U160.1V
Manufacturer Info 339U161
Iac139U160.1A
Manufacturer Info 240U161
Pac1 H40U160.1VA
Manufacturer Info 141U161
Pac1 L41U160.1VA
bfailsafeEn42U161
Vac242U160.1V
DTC43U161
Iac243U160.1A
TP44U161
Pac2 H44U160.1VA
Sys Year45U161
Pac2 L45U160.1VA
Sys Month46U161
Vac346U160.1V
Sys Day47U161
Iac347U160.1A
Sys Hour48U161
Pac3 H48U160.1VA
Sys Min49U161
Pac3 L49U160.1VA
Sys Sec50U161
Vac_RS50U160.1V
Sys Weekly51U161
Vac_ST51U160.1V
Vac low52U160.1V
Vac_TR52U160.1V
Vac high53U160.1V
Eactoday H53U160.1kWh
Fac low54U160.01Hz
Eac today L54U160.1kWh
Fac high55U160.01Hz
Eac total H55U160.1kWh
Vac low 256U160.1V
Eac total L56U160.1kWh
Vac high 257U160.1V
Time total H57U160.5s
Fac low 258U160.01Hz
Time total L58U160.5s
Fac high 259U160.01Hz
Epv1_today H59U160.1kWh
Vac low 360U160.1V
Epv1_today L60U160.1kWh
Vac high 361U160.1V
Epv1_total H61U160.1kWh
Epv2_today63U32BE0.1kWh
Epv2_total65U32BE0.1kWh
Epv3_today67U32BE0.1kWh
Epv3_total69U32BE0.1kWh
Epv4_today71U32BE0.1kWh
Epv4_total73U32BE0.1kWh
Epv5_today75U32BE0.1kWh
Epv5_total77U32BE0.1kWh
Epv6_today79U32BE0.1kWh
Epv6_total81U32BE0.1kWh
Epv7_today83U32BE0.1kWh
Epv7_total85U32BE0.1kWh
Epv8_today87U32BE0.1kWh
PFModel89U161
Epv8_total H89U160.1kWh
GPRS IP Flag90U161
Epv8_total L90U160.1kWh
FreqDerateStart91U160.01Hz
Epv_total H91U160.1kWh
FLrate92U160.1
Epv_total L92U160.1kWh
V1S93U160.1V
Temp193I160.1C
V2S94U160.1V
Temp294I160.1C
V1L95U160.1V
Temp395I160.1C
V2L96U160.1V
Temp496U161
Qlockinpower97U161%
uwBatVolt_DSP97U160.1V
QlockOutpower98U161%
P Bus Voltage98U160.1V
LIGridV99U160.1V
N Bus Voltage99U160.1V
LOGridV100U160.1V
IPF100U161
PFAdj1101U161
RealOPPercent101U161%
PFAdj2102U161
OPFullwatt H102U161
PFAdj3103U161
OPFullwatt L103U160.1W
DeratingMode104U161
Fault Maincode105U161
Fault Subcode107U161
ExportLimit_En/dis122U161
ExportLimitPowerRate123U160.1%
TrakerModel124U161
Float charge current limit1000U160.1A
PF CMD memory state1001U161
VbatStartForDischarge1002U160.1V
VbatlowWarnClr1003U160.1V
Vbatstopfordischarge1004U160.01V
Vbat stop for charge1005U160.01V
Vbat start for discharge1006U160.01V
Vbat constant charge1007U160.01V
EESysInfo.SysSetEn1008U161
Battemp lower limit d1009U160.1℃
Pdischarge1 H1009U160.1W
Bat temp upper limit d1010U160.1℃
Pdischarge1 L1010U160.1W
Bat temp lower limit c1011U160.1℃
Pcharge1 H1011U160.1W
Bat temp upper limit c1012U160.1℃
Pcharge1 L1012U160.1W
uwUnderFreDischargeDelyTime1013U1650ms
Vbat1013U160.1V
BatMdlSerialNum1014U161
SOC1014U161%
BatMdlParallNum1015U161
Pactouser R H1015U160.1W
DRMS_EN1016U161
Pactouser R L1016U160.1W
Bat First Start Time 41017U161
Pactouser S H1017U160.1W
Bat First Stop Time 41018U161
Pactouser S L1018U160.1W
BatFirst on/off Switch 41019U161
Pactouser T H1019U160.1W
Bat First Start Time 51020U161
Pactouser T L1020U160.1W
Bat First Stop Time 51021U161
PactouserTotal H1021U160.1W
BatFirst on/off Switch 51022U161
PactouserTotal L1022U160.1W
Bat First Start Time 61023U161
Pac to grid R H1023U160.1W
Bat First Stop Time 61024U161
Pac to grid R L1024U160.1W
BatFirst on/off Switch 61025U161
Pactogrid S H1025U160.1W
Grid First Start Time 41026U161
Pactogrid S L1026U160.1W
Grid First Stop Time 41027U161
Pactogrid T H1027U160.1W
Grid First Stop Switch 41028U161
Pactogrid T L1028U160.1W
Grid First Start Time 51029U161
Pactogrid total H1029U160.1W
Grid First Stop Time 51030U161
Pactogrid total L1030U160.1W
Grid First Stop Switch 51031U161
PLocalLoad R H1031U160.1W
Grid First Start Time 61032U161
PLocalLoad R L1032U160.1W
Grid First Stop Time 61033U161
PLocalLoad S H1033U160.1W
Grid First Stop Switch 61034U161
PLocalLoad S L1034U160.1W
Bat First Start Time 41035U161
PLocalLoadT H1035U160.1W
/1036U161
PLocalLoadT L1036U160.1W
bCTMode1037U161
PLocalLoad total H1037U160.1W
CTAdjust1038U161
PLocalLoad total L1038U160.1W
/1039U161
IPM Temperature1039I160.1℃
/1040U161
Battery Temperature1040I160.1℃
/1041U161
SP DSP Status1041U161
/1042U161
SP Bus Volt1042U160.1V
/1043U161
Priority1044U161
Etouser_today H1044U160.1kWh
Etouser_total1046U32BE0.1kWh
Etogrid_today1048U32BE0.1kWh
Etogrid_total1050U32BE0.1kWh
Edischarge1_today1052U32BE0.1kWh
Edischarge1_total1054U32BE0.1kWh
Echarge1_today1056U32BE0.1kWh
Echarge1_total1058U32BE0.1kWh
Inverter Status3000U161
Ppv3001U32BE0.1W
Vpv13003U160.1V
Ipv13004U160.1A
Ppv13005U32BE0.1W
Pac3023U32BE0.1W
Fac3025U160.01Hz
Vac13026U160.1V
Iac13027U160.1A
Pac13028U32BE0.1VA
Ptouser total3041U32BE0.1W
Ptogrid total3043U32BE0.1W
Ptoload total3045U32BE0.1W
Time total3047U32BE0.5s
Eac today3049U32BE0.1kWh
Eac total3051U32BE0.1kWh

link settings as documented (unverified): RTU; default 9600 8N1; unit ID 1; FC 03,04,06,16; Valid slave device addresses are in the range of 0 - 254 decimal. 0 is the broadcast address.

bench facts as documented (unverified)
wiring notesRS485 interface
max registers/read125
response timeout850 ms
inter-frame delay850 ms
broadcastsupported
protocol notesMinimum CMD period (RS485 Time out) is 850ms. Suggestion is 1s.
model registerHolding 28-29
serial registerHolding 23-27
firmware registerHolding 9-11
identification notesNew serial number registers are also available at Holding 209-223.
doc revisionV1.24
field reports — community-sourced, unverified (checked 2026-06-11)
  • Grid Export Power and Grid Import Power values were swapped in previous integration versions, requiring manual correction or disabling of auto-detected 'Invert Grid Power' settings. [source]
  • VPP battery charge/discharge daily values (registers 31202 and 31206) were swapped on SPH V2.01 profiles (sph_3000_6000_v201 and sph_7000_10000_v201). [source]
  • Reusing SPH/SPF Modbus assumptions on Growatt WIT series hybrid inverters causes broken AC charging control, missing VPP entities, and conflicts with external controllers due to different register behaviors (e.g., signed values on register 30409). [source]
  • On some Growatt SPH models, register 1044 is read-only, preventing users from writing to it to enforce priority settings. [source]
  • confirmed: Baud rates [9600, 38400] with default 9600, parity N, stop bits 1, and slave addresses 0-254 (0 as broadcast) — confirmed by Growatt Inverter Modbus RTU Protocol II V1.24 and community documentation
  • confirmed: Identification registers (Firmware at Holding 9-11, Model at Holding 28-29, Serial at Holding 23-27, and new serial registers at Holding 209-223) — confirmed by Growatt Inverter Modbus RTU Protocol II V1.24 and GitHub integrations
  • confirmed: Inter-frame delay and response timeout of 850ms (with 1s suggested) — confirmed by Growatt Inverter Modbus RTU Protocol II V1.24 and ESPHome community threads
  • confirmed: Register map addresses (inverter_status @ 0, ppv @ 1, vpv1 @ 3, ipv1 @ 4, ppv1 @ 5, vpv2 @ 7, ipv2 @ 8, ppv2 @ 9, pac @ 35, fac @ 37, vac1 @ 38, iac1 @ 39, pac1 @ 40, vac2 @ 42, iac2 @ 43, pac2 @ 44, vac3 @ 46, iac3 @ 47, pac3 @ 48, eac_today @ 53, eac_total @ 55, time_total @ 57, temp_inverter @ 93, temp_ipm @ 94, temp_boost @ 95, p_bus_voltage @ 98, n_bus_voltage @ 99, vbat @ 1013, soc @ 1014, battery_temperature @ 1040) — confirmed by Growatt Inverter Modbus RTU Protocol II V1.24 and evcc/ESPHome configurations

The trust ladder

Each rung states what it proved and what it did not. Gray until proven; green is earned by hardware only.

Device not here? Upload its manual and get a checked map back. It's free.

Want it confirmed against your own device? Order hardware verification. If it doesn't check out, you don't pay.

Building on a lot of devices? License the library — machine-readable maps, the firmware matrix, and API access.