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 only confirmed at the hardware-verified rung.
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.
| point | address (0-based) | type | scale | unit |
|---|---|---|---|---|
| inverter_firmware_version | 5 | U16 | 0.01 | |
| total_lifetime_energy | 22 | U32BE | 1 | kWh |
| daily_energy | 24 | U16 | 0.1 | kWh |
| power_factor | 26 | I16 | 0.001 | |
| max_active_power_daily | 27 | U16 | 0.1 | kW |
| active_power | 29 | U16 | 0.1 | kW |
| apparent_power | 30 | U16 | 0.1 | kVA |
| grid_voltage_uab | 31 | U16 | 0.1 | V |
| grid_voltage_ubc | 32 | U16 | 0.1 | V |
| grid_voltage_uca | 33 | U16 | 0.1 | V |
| grid_a_phase_current | 34 | U16 | 0.1 | A |
| grid_b_phase_current | 35 | U16 | 0.1 | A |
| grid_c_phase_current | 36 | U16 | 0.1 | A |
| dc_voltage_mppt1 | 37 | U16 | 0.1 | V |
| dc_current_mppt1 | 38 | U16 | 0.1 | A |
| dc_voltage_mppt2 | 39 | U16 | 0.1 | V |
| dc_current_mppt2 | 40 | U16 | 0.1 | A |
| grid_frequency | 43 | U16 | 0.1 | Hz |
| heatsink_temperature | 44 | I16 | 0.1 | C |
| internal_temperature | 45 | I16 | 0.1 | C |
| inverter_state | 47 | U16 | 1 | |
| permanent_fault_alarm | 52 | U16 | 1 | |
| warning_alarm | 53 | U16 | 1 | |
| fault0_alarm | 54 | U16 | 1 | |
| fault1_alarm | 55 | U16 | 1 | |
| fault2_alarm | 56 | U16 | 1 | |
| fault3_alarm | 57 | U16 | 1 | |
| fault4_alarm | 58 | U16 | 1 | |
| power_on_off_cmd | 4096 | U16 | 1 | |
| temporary_active_power_setting | 4097 | U16 | 0.1 | % |
| temporary_power_factor_setting | 4098 | I16 | 0.001 | |
| temporary_reactive_power_setting | 4099 | U16 | 0.1 | % |
| connector | RS485 |
| sentinel values | Not Implemented for an int16 is 0x8000. Not Implemented for a uint16 is 0xFFFF. Not Implemented for an int32 is 0x80000000. Not Implemented for a uint32 is 0xFFFFFFFF. Not Implemented for a string is 0x00. |
| model register | 0x000A |
| serial register | 0x0006 |
| firmware register | 0x0005 |
| doc revision | 1.0 |
Each rung states what it proved and what it did not. Gray until proven; green is earned by hardware only.
Have a device that isn't here? Upload its register map — generation is free, and the connector earns its rung by being proven, not claimed.
Need it proven on your own device? Hardware verification — if it doesn't verify, you don't pay.
Building a platform? License the verified library — machine-readable maps, firmware matrix, API access.