SunSpec SunSpec Model 805 — Lithium-Ion Module Model Modbus TCP template

SunSpec Model 805 — Lithium-Ion Module Model

SunSpec Model 805 is the Lithium-Ion Module Model, a standardized Modbus TCP information model defined by the SunSpec Alliance for monitoring individual battery modules within a multi-module energy storage system. The template reads per-module state of charge, depth of discharge, state of health, cycle count, module voltage, and per-cell voltage and temperature extremes and averages. String and module index registers identify each module's position within a bank. For integrators commissioning lithium-ion storage, this template delivers the cell-level granularity needed to track degradation and cell imbalance over time.

Protocol
Modbus TCP
Connection
Ethernet, Modbus TCP
Registers
28, read only
Brand
SunSpec
Last updated

Registers (28)

28 read, 0 write

NameUnitAccessAddress (Hidden until you enter your email)Function (hidden)Type (hidden)
idRead
lRead
stridxRead
modidxRead
ncellRead
soc%Read
dod%Read
soh%Read
ncyccountRead
vVRead
cellvmaxVRead
cellvmaxcellRead
cellvminVRead
cellvmincellRead
cellvavgVRead
celltmpmax°CRead
celltmpmaxcellRead
celltmpmin°CRead
celltmpmincellRead
celltmpavg°CRead
ncellbalRead
snRead
soc_sfRead
soh_sfRead
dod_sfRead
v_sfRead
cellv_sfRead
tmp_sfRead

Loading registers…

Send your device list

If a device is not in the library yet, we build the template for free as soon as we have the register data.

Use cases

  • Monitor per-module state of charge across all strings to detect capacity imbalance between modules early.
  • Track state of health and cycle count over multiple seasons to identify modules approaching end of life.
  • Alert on cell voltage spread between cellvmax and cellvmin to catch cell imbalance before it causes downtime.
  • Compare celltmpmax and celltmpmin to verify thermal management is keeping cells within safe operating range.
  • Report ncellbal counts during charge cycles to verify the balancer is actively equalising cells in each module.

Installation

  1. Enable Modbus TCP on the battery management system or gateway device that exposes the SunSpec model stack, and confirm the base register address where the SunSpec 'SunS' identifier begins.

  2. Connect the device to the same LAN as the ModbusCloud Gateway, ensuring port 502 is reachable and no firewall blocks TCP connections from the Gateway's IP address.

  3. In your ModbusCloud portal, add the ModbusCloud Gateway, import the SunSpec Model 805 template, and set the correct Modbus unit ID matching the logical slave address configured on the battery device.

  4. Verify the connection by spot-checking the id register, which should read 805, and confirm that soc and v return plausible scaled values by cross-checking against the device's local display or BMS software.

Things to watch for

SoC, SoH, and voltage registers return implausible raw values. Why?

SunSpec Model 805 uses signed int16 scale factor registers. The raw uint16 reading must be multiplied by 10 raised to the power of the corresponding scale factor register (for example soc_sf, v_sf). If your client ignores scale factors, all measurements will appear as unscaled integers. Apply the scale factor before displaying or alerting on any measurement.

The gateway connects but stridx and modidx both read zero. What is wrong?

SunSpec indices are one-based, so a value of zero indicates the register is returning the SunSpec 'Not Implemented' sentinel (0x0000 for uint16). Confirm the battery device firmware supports Model 805 and that the model block is correctly populated. Some BMS implementations expose Model 805 only when a physical module is actively connected and reporting.

Cell voltage and temperature readings appear identical for max and min. Is this normal?

If all cells report the same voltage and temperature, the BMS may be aggregating rather than providing per-cell data. Verify that the firmware version on your battery device supports cell-level telemetry. Also check the cellvmaxcell and cellvmincell index registers: if both return the same cell number, only one cell is being reported.

The gateway cannot find the Model 805 block at the expected address. What should I check?

SunSpec devices may place Model 805 on a separate logical Modbus slave unit ID from Models 802 and 803 when the combined register count exceeds the 65,535-register Modbus limit. Check the device documentation for a secondary unit ID dedicated to module-level data, and update the unit ID in your ModbusCloud portal accordingly. The model block base address is not fixed and must be discovered via the SunSpec header scan.

Want to see how it works?

Electrician working in an open distribution board