This article follows the device integration introduction article. Please check that article first.
The battery energy storage system BESS (comprising the battery pack, Battery Management System [BMS], and Power Conversion System [PCS]) must support communication via the Modbus protocol. The manufacturer must provide a complete register map that allow both monitoring of system parameters and control of operational states. The table below shows the typical registers of a BESS system.
| Name | Description | Requirement Level | Data Type / Format | Unit | Read/Write Type |
| Battery Active Power | Measured DC active power of the battery system (positive = discharge, negative = charge) | Mandatory | INT16 / UINT16 | kW | Read-only (Input Register) |
| Battery Voltage | Measured DC bus voltage of the battery system | Optional | INT16 / UINT16 | V | Read-only (Input Register) |
| Battery Current | Measured DC current (positive = discharge, negative = charge) | Optional | INT16 | A | Read-only (Input Register) |
| State of Charge (SOC) | Remaining battery capacity as percentage of nominal capacity | Mandatory | UINT16 | % | Read-only (Input Register) |
| Battery capacity | Total capacity of the battery | Optional | INT16 / UINT16 | kWh | Read-only (Input Register) |
| State of Health (SOH) | Long-term battery condition indicator | Optional | UINT16 | % | Read-only (Input Register) |
| Remote/VPP control - Enable / Disable Command | A command to enable or disable the remote control (via Modbus) | Mandatory | BOOL (coil) | — | Write (Coil) |
| Power Setpoint | Requested active power = command to charge/discharge (positive = discharge, negative = charge) | Mandatory | INT16 | kW | Read/Write (Holding Register) |
| Reactive Power Setpoint | Requested reactive power injection/absorption | Optional | INT16 | kvar | Read/Write (Holding Register) |
| Temperature (Cell Avg.) | Average cell temperature | Optional | INT16 | °C | Read-only (Input Register) |
| Min SOC | Minimal recommended state of charge | Optional | INT16 | % | Read-only (Input Register) |
| Max SOC | Maximal recommended state of charge | Optional | INT16 | % | Read-only (Input Register) |
| Max charge power | Maximum charging power on AC and/or DC site | Optional | INT16 | % | Read-only (Input Register) |
| Max discharge power | Maximum discharging power on AC and/or DC site | Optional | INT16 | % | Read-only (Input Register) |
| Firmware Version | Current firmware version of BMS/PCS | Optional | String / UINT16 | — | Read-only (Input Register) |
| System Status | Operating mode (idle / charge / discharge / fault) | Mandatory | UINT16 (coded) | — | Read-only (Input Register) |
| Alarm / Fault Codes | Active alarms or fault identifiers | Mandatory | Bitfield / UINT16 | — | Read-only (Input Register) |
Additionally, the manufacturer must clearly specify the process and a list of registers that need to be set in order to achieve the desired charging/discharging operation. That usually includes setting a register to a remote control/VPP mode, enabling battery operation, providing regular heartbeat signal etc.
Inverters supporting operational modes
More advanced BESS systems might also provide an internal EMS capable of performing operational modes like self-consumption, peak shaving, max production, max consumption, VPP etc. For that an additional electricity meter must be supplied and usually connected to the grid. This feature is more common with hybrid inverters, but it's not rare also in battery inverters. More details on the operating modes can be found in Integration requirements for hybrid inverters
In case the BESS supports operating modes and is equipped with a electricity meter, it’s important to also provide the electricity measurement as:
| Name | Data Type / Format | Unit | Read/Write Type |
| Meter Total power | INT16 / UINT16 | kW | Read-only (Input Register) |
| Meter Import Active Power per phases L1, L2, L3 | INT16 / UINT16 | kW | Read-only (Input Register) |
| Meter Export Active Power per phases L1, L2, L3 | INT16 / UINT16 | kW | Read-only (Input Register) |
| Meter Import Reactive Power per phases L1, L2, L3 | INT16 / UINT16 | kW | Read-only (Input Register) |
| Meter Export Reactive Power per phases L1, L2, L3 | INT16 / UINT16 | kW | Read-only (Input Register) |
| Meter Import Active energy | INT16 / UINT16 | kW | Read-only (Input Register) |
| Meter Import Reactive energy | INT16 / UINT16 | kW | Read-only (Input Register) |
| Meter Export Active energy | INT16 / UINT16 | kW | Read-only (Input Register) |
| Meter Export Reactive energy | INT16 / UINT16 | kW | Read-only (Input Register) |
| Meter Frequency | INT16 / UINT16 | Hz | Read-only (Input Register) |
| Meter Currents per phases L1, L2, L3 | INT16 / UINT16 | A | Read-only (Input Register) |
| Meter Voltages | INT16 / UINT16 | V | Read-only (Input Register) |
| Meter limit active import power | INT16 | kW | Read/Write (Holding Register) |
| Meter limit active export power | INT16 | kW | Read/Write (Holding Register) |