All devices

SolarEdge · Home battery

Home Battery 400V / Home Battery Low Voltage / Energy Bank Modbus register map

Download JSONSupplier documentationSuggest an edit

Default configuration

Protocol
Modbus TCP
Port
502
Unit ID
1
Addressing
0-based
Byte order
Big endian
Word order
Low word first

Register map

AddressCountNameTypeUnitScaleAccess
5760016
Battery manufacturer
"SolarEdge".
Ascii-1R
5761616
Battery model
Battery model name, e.g. the Home Battery part number.
Ascii-1R
5763216
Battery firmware version
Ascii-1R
5764816
Battery serial number
Ascii-1R
576662
Rated battery energy
Nameplate energy of the pack as it is configured (B_RatedEnergy).
Float32Wh1R
576682
Maximum charge power
Float32W1R
576702
Maximum discharge power
Float32W1R
576722
Maximum charge power, peak
Float32W1R
576742
Maximum discharge power, peak
Float32W1R
577082
Battery temperature, average
Float32°C1R
577102
Battery temperature, maximum
Float32°C1R
577122
Battery DC voltage
Float32V1R
577142
Battery DC current
Float32A1R
577162
Battery DC power
Positive while charging, negative while discharging (the community integration's power-flow templates treat positive as charging and negate the value for the Home Assistant energy dashboard).
Float32W1R
577262
Usable battery energy
Usable capacity the pack reports (B_MaxEnergy); a pack that has not finished reporting itself can read above the nameplate rating.
Float32Wh1R
577282
Available battery energy
Energy currently stored (B_AvailableEnergy).
Float32Wh1R
577302
Battery state of health
0-100; values outside that range are an initialising battery or a read glitch, not a reading.
Float32%1R
577322
Battery state of energy (SoC)
0-100; SolarEdge reports 0 % both for an empty battery and for a battery that is not present.
Float32%1R
577342
Battery status
0 = off, 1 = standby, 2 = initialising, 3 = charge, 4 = discharge, 5 = fault, 6 = preserve charge, 7 = idle, 10 = power saving.
UInt32-1R

Notes

A SolarEdge Home Battery (400 V), Home Battery Low Voltage (BAT-05K48M0B) or Energy Bank has no network interface of its own: it is read through the host inverter's Modbus TCP server (port 502, unit ID 1; Modbus TCP is enabled in SetApp for the inverter). The battery block starts at 57600 (0xE100); a second and third battery sit at 57856 and 58368. IMPORTANT: this block is proprietary and is NOT part of SolarEdge's published SunSpec map. SolarEdge's own document "SolarEdge Inverters - SunSpec Logging" technical note v3.3 (October 2026, https://knowledge-center.solaredge.com/sites/kc/files/sunspec-implementation-technical-note.pdf) covers only the common model, the inverter models 101-103, the multiple-MPPT extension 160 and the meter models 201-204. The battery registers here come from the community integration WillCodeForCats/solaredge-modbus-multi (BATTERY_REG_BASE = {1: 57600, 2: 57856, 3: 58368}; its README states that battery support is "from documentation not publicly available from SolarEdge or through user discovery and may not be supported by SolarEdge") and from the independent implementation frenck/python-solaredged, which declares the same block as word-swapped little-endian Float32 at the same addresses - which is why this file sets word_order LowFirst. The inverter and meter blocks of the same device are big-endian high-first and remain in the solaredge-inverter seed; a client that polls both needs two documents. Registers 57718-57725 (lifetime charge and discharge energy, 64-bit) are omitted because the app has no 64-bit integer type, and the storage-control block at 57348 is omitted because its registers were reverse-engineered and their units and semantics are not documented by SolarEdge. Status values and the sign of the DC power readings follow the community integration (WillCodeForCats/solaredge-modbus-multi, custom_components/solaredge_modbus_multi/const.py BATTERY_STATUS and doc/Template-Sensors-for-Power-and-Energy.md).