verified connector library

Fox ESS on-grid 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
master_state10500U161
grid_yield_today10503U160.1
grid_yield_total10504U32BE0.1
feed_in_power10506I161
output_power10507I161
load_power10508I161
bat_power10509I161
grid_volt_r10700U160.1
grid_current_r10701I160.1
grid_freq_r10702U160.01
grid_power_r10703I161
grid_volt_s10704U160.1
grid_current_s10705I160.1
grid_freq_s10706U160.01
grid_power_s10707I161
grid_volt_t10708U160.1
grid_current_t10709I160.1
grid_freq_t10710U160.01
grid_power_t10711I161
pv1_volt10800U160.1
pv1_current10801U160.1
pv1_power10802U161
pv2_volt10803U160.1
pv2_current10804U160.1
pv2_power10805U161
charger_temp11200I161
inv_temp11201I161
ambient_temp11202I161
bat1_volt11500U160.1
bat1_current11501I160.1
bat1_power11502I161

link settings as documented (unverified): RTU; default 9600 8N1; unit ID 1; FC 03,04,06,16,69

bench facts as documented (unverified)
terminalsRS485
max registers/read125
model register10020
serial register10036
firmware register10055
doc revisionV1.02
field reports — community-sourced, unverified (checked 2026-06-11)
  • For some inverter firmware versions, Fox ESS changed the scale of specific registers (e.g., reading 1600 instead of 1.6), requiring integration adjustments based on the active firmware version. [source]
  • Firmware updates (such as Master update to 2.23 on H3 series) can break Modbus communication or cause specific registers to return invalid errors, requiring integration re-configuration or manual file adjustments. [source]
  • confirmed: baud_rates [9600], default_baud 9600, default_unit_id 1, framing [RTU], parity N, stop_bits 1 — confirmed by FoxESS Modbus Communication Protocol Guide (V1.02) which specifies RS485 asynchronous mode with 9600 bps, no parity, 8 data bits, and 1 stop bit
  • confirmed: identification registers (model_register 10020, serial_register 10036, firmware_register 10055) — confirmed by FoxESS Modbus Protocol Guide where 10020 is ModuleName, 10036 is SeriesNumber, and 10055 is MasterVersion
  • confirmed: register map summary (master_state @ 10500, grid_yield_today @ 10503, grid_yield_total @ 10504, feed_in_power @ 10506, grid_volt_r @ 10700, grid_current_r @ 10701, grid_freq_r @ 10702, pv1_volt @ 10800, pv1_current @ 10801, pv1_power @ 10802, charger_temp @ 11200, inv_temp @ 11201, bat1_volt @ 11500, bat1_current @ 11501, bat1_power @ 11502) — confirmed by FoxESS Modbus Protocol Guide register definitions

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.