The V3 generation of the SUN2000 — specifically the M3 and MB0 series — introduces native support for the LUNA2000 battery system (ESS). Alongside the expanded inverter firmware, Huawei added a dedicated register block starting at address 37000 to expose battery state, power flow, and lifetime energy totals in real time.
ESS registers are only present on V3 series inverters (M3, MB0) with a LUNA2000 battery physically connected. On V2 inverters or V3 units without a battery, these addresses will return errors or undefined values.
ESS register table
| Register | Description | Type | Gain | Notes |
|---|
| 37000 | ESS unit 1 run state | U16 | 1 | See state values below |
| 37001 | Charge / discharge power | I32 | 1 | W; positive = charging, negative = discharging |
| 37003 | Battery bus voltage | U16 | 10 | V |
| 37004 | SOC — ESS unit 1 | U16 | 10 | %; e.g. raw 955 = 95.5% |
| 37066 | Total charge accumulated | U32 | 100 | kWh |
| 37068 | Total discharge accumulated | U32 | 100 | kWh |
| SOH | State of health | U16 | 10 | % — address varies by series; check your Modbus Interface Definitions |
ESS unit 1 run state (register 37000)
| Value | State |
|---|
| 0 | Offline |
| 1 | Standby |
| 2 | Running |
| 3 | Fault |
| 4 | Sleep |
ESS management modes
The ARM processor in V3 inverters manages the battery through two primary strategies:
- Time-of-Use (TOU) — you define time windows and charge/discharge targets aligned with grid tariff schedules. The inverter charges the battery during low-tariff periods and discharges during peak-tariff periods to minimize electricity costs.
- Self-consumption — the inverter prioritizes using solar generation to power loads directly, stores any surplus in the battery, and draws from the battery before importing from the grid. This mode maximizes self-sufficiency without requiring a tariff schedule.
Both modes are fully configured through the FusionSolar app or SmartLogger and are reflected in real time in the registers above.
Python example: reading SOC and power flow