device library

Fox ESS on-grid inverter

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
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.

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.