verified connector library

GoodWe ET/EH/BT/BH hybrid inverter

Register map(s) for this device, each at the trust rung it earned. Addresses are 0-based as on the wire. Word order and scaling are confirmed at the hardware-verified rung and at no rung below it.

interop-verified

Read + decoded cleanly over a real network vs an independent third-party Modbus test server (transport and framing; reads are remapped into the server's register window, so the map's own addresses are NOT exercised). Does NOT prove word order/scaling against the actual device.

pointaddress (0-based)typescaleunit
vpv135103U160.1V
ipv135104U160.1A
ppv135105U32BE0.1W
vpv235107U160.1V
ipv235108U160.1A
ppv235109U32BE0.1W
vgrid_r35121U160.1V
igrid_r35122U160.1A
fgrid_r35123U160.01Hz
pgrid_r35125I161W
vgrid_s35126U160.1V
igrid_s35127U160.1A
fgrid_s35128U160.01Hz
pgrid_s35130I161W
vgrid_t35131U160.1V
igrid_t35132U160.1A
fgrid_t35133U160.01Hz
pgrid_t35135I161W
total_inv_power35138I161W
ac_active_power35140I161W
ac_reactive_power35142I161Var
ac_apparent_power35144I161VA
backup_vload_r35145U160.1V
backup_iload_r35146U160.1A
backup_fload_r35147U160.01Hz
backup_pload_r35150I161W
pload_r35164I161W
pload_s35166I161W
pload_t35168I161W
total_backup_load35170I161W
total_load_power35172I161W
ups_load_percent35173U160.01%
air_temperature35174I160.1C
module_temperature35175I160.1C
radiator_temperature35176I160.1C
bus_voltage35178U160.1V
nbus_voltage35179U160.1V
vbattery135180U160.1V
ibattery135181I160.1V
pbattery135183I161W
pv_e_total35191U32BE0.1kWh
pv_e_day35193U32BE0.1kWh
e_total35195U32BE0.1kWh
e_day_sell35199U160.1kWh
e_total_buy35200U32BE0.1kWh
e_day_buy35202U160.1kWh
e_total_load35203U32BE0.1kWh
e_load_day35205U160.1kWh
e_battery_charge35206U32BE0.1kWh
e_charge_day35208U160.1kWh
e_battery_discharge35209U32BE0.1kWh
e_discharge_day35211U160.1kWh
bms_pack_temperature37003U160.1
bms_charge_imax37004U161
bms_discharge_imax37005U161
bms_soc37007U161%
bms_soh37008U161%
bms_max_cell_temp37020U160.1°C
bms_min_cell_temp37021U160.1°C
bms_max_cell_volt37022U161mV
bms_min_cell_volt37023U161mV

link settings as documented (unverified): RTU; default 9600 8N1; unit ID 247; FC 03,06,16; EMS port on inverter.

bench facts as documented (unverified)
terminalsEMS port
connectorRJ45
wiring notesRJ45 pinout: 1: 485_A, 2: 485_B, 3: 485_A, 6: 485_B, others NC
protocol notesError codes: 02H (Register address fault or overflow), 03H (Data error), 04H (Built-in verification code error), 05H (Communication time-out)
model register35011
serial register35003
firmware register35016
identification notesOther firmware registers: 35017 (DSP2 software version), 35019 (ARM software version), 35021 (DSP Internal Firmware Ver.), 35027 (ARM Internal Firmware Ver.)
powerSolar inverter must be powered up by DC or AC power before it can communicate successfully.
doc revision1.7

⚠ disputed: pbattery1 @ 35183 — disputed by newer firmware versions and integration guides where the battery power register shifted to 35182 or is represented as a 32-bit signed integer starting at 35182

field reports — community-sourced, unverified (checked 2026-06-11)
  • The battery power register (Pbattery1) is wrongly documented in official Modbus protocol v1.9 as being Unsigned, but it is actually Signed. [source]
  • In newer firmware versions, the battery power register (Pbattery1) shifted from 35183 to 35182 (or is a 32-bit signed integer starting at 35182), causing incorrect readings if read as a 16-bit register at 35183. [source]
  • confirmed: Default unit ID is 247, default baud rate is 9600, framing is RTU — confirmed by GoodWe EMS Protocol Overview and multiple integration guides
  • confirmed: RJ45 pinout: 1: 485_A, 2: 485_B, 3: 485_A, 6: 485_B — confirmed by Sunergy Partners integration documentation
  • confirmed: Error codes: 02H (Register address fault), 03H (Data error), 04H (Built-in verification code error), 05H (Communication time-out) — confirmed by GoodWe EMS Protocol Overview

The trust ladder

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

If your device isn't here, upload its register map. Generation is free, and the connector keeps the rung it earns under testing.

To prove a connector against your own device, order hardware verification. If it doesn't verify, you don't pay.

Platform builders can license the verified library: machine-readable maps, the firmware matrix, API access.