
SunSpec Model 807 — Flow Battery String Model
SunSpec Model 807 is the standardized Modbus information model for flow battery strings, covering chemistries such as vanadium redox, zinc-bromine, and iron-chromium. The template reads string-level and cell-level voltage extremes (maximum, minimum, and average for both modules and cells), temperature spread across all modules, module count and connected module count, and two layers of event bitfields for alarms. Scale-factor registers accompany every measured group so your client applies the correct decimal exponent at runtime. Using Modbus TCP, the ModbusCloud Gateway polls any SunSpec-compliant flow battery controller and surfaces degradation trends and fault events in the portal without vendor-specific configuration.
- Protocol
- Modbus TCP
- Connection
- Ethernet, Modbus TCP
- Registers
- 31, read only
- Brand
- SunSpec
- Last updated
Registers (31)
31 read, 0 write
| Name | Unit | Access | Address (Hidden until you enter your email) | Function (hidden) | Type (hidden) |
|---|---|---|---|---|---|
| id | Read | ||||
| l | Read | ||||
| idx | Read | ||||
| nmod | Read | ||||
| nmodcon | Read | ||||
| modvmax | V | Read | |||
| modvmaxmod | Read | ||||
| modvmin | V | Read | |||
| modvminmod | Read | ||||
| modvavg | V | Read | |||
| cellvmax | V | Read | |||
| cellvmaxmod | Read | ||||
| cellvmaxstk | Read | ||||
| cellvmin | V | Read | |||
| cellvminmod | Read | ||||
| cellvminstk | Read | ||||
| cellvavg | V | Read | |||
| tmpmax | °C | Read | |||
| tmpmaxmod | Read | ||||
| tmpmin | °C | Read | |||
| tmpminmod | Read | ||||
| tmpavg | °C | Read | |||
| evt1 | Read | ||||
| evt2 | Read | ||||
| evtvnd1 | Read | ||||
| evtvnd2 | Read | ||||
| modv_sf | Read | ||||
| cellv_sf | Read | ||||
| tmp_sf | Read | ||||
| soc_sf | Read | ||||
| ocv_sf | Read |
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 the gap between cellvmax and cellvmin over time to detect cell imbalance developing within a string.
- Track nmodcon versus nmod daily to verify all flow battery modules remain electrically connected after cycling.
- Alert on evt1 or evt2 bitfield changes to catch string faults before they escalate to system shutdown.
- Compare tmpmax and tmpmin across strings on multi-string sites to spot thermal hotspots in the electrolyte circuit.
- Report modvavg trends week-over-week to identify capacity fade or electrolyte degradation in the flow battery string.
Installation
Enable Modbus TCP on the flow battery management system or gateway controller, noting the TCP port (typically 502) and the Modbus unit ID assigned to this string, then confirm the device advertises SunSpec model 807 at its configured base address.
Connect the battery controller's Ethernet port to the same LAN segment as the ModbusCloud Gateway, verifying there are no firewall rules blocking port 502 between the two devices.
In your ModbusCloud portal, add the Gateway, then import the SunSpec Model 807 template and enter the device IP address, TCP port, and unit ID; set the base register offset to match the address at which the 807 block begins in the device's SunSpec map.
After saving, open the live register view and spot-check modvavg and tmpavg against readings on the BMS display; if values are off by a factor of ten, verify that modv_sf and tmp_sf are being applied correctly by your polling client.
Things to watch for
Module voltage readings look ten times too high or too low.
SunSpec uses signed scale-factor registers (modv_sf, cellv_sf, tmp_sf) that represent a power-of-ten multiplier. If your client reads the raw integer without applying the scale factor, values will be wrong by a decade. Read the scale-factor register and multiply: raw_value * 10^sf.
The gateway connects but all voltage registers return 0x8000 or 0xFFFF.
0x8000 on a signed int16 and 0xFFFF on a uint16 are SunSpec 'Not Implemented' sentinels. The device supports the model block structurally but has not populated those points. Confirm the BMS firmware version supports Model 807 and that the string is active and not isolated for maintenance.
No data appears even though the TCP connection is established.
SunSpec devices place Model 807 at a dynamic offset within the register map, not at a fixed address. The block starts immediately after the preceding model ends. Use the model length register (l) of each preceding block to walk the map and locate the correct base address for Model 807 before polling its registers.
Event bitfields evt1 and evt2 show non-zero values. What do they mean?
Evt1 and Evt2 are 32-bit bitfields defined in the SunSpec Energy Storage specification. Each bit maps to a named alarm condition such as over-charge current, high pressure, or contactor fault. Decode them by consulting the SunSpec Energy Storage Models document, table of StrEvt bit definitions. Vendor-specific flags appear separately in evtvnd1 and evtvnd2.
Knowledge base articles for this device

SunSpec Modbus: one register map for many inverters
SunSpec Modbus is the open register map SMA, Fronius, SolarEdge and Kostal share. The layout, int+SF vs float, the TCP port per brand and reading a mixed fleet.
Fronius Modbus: read a Symo GEN24 over Modbus TCP
Fronius Modbus explained: enable Modbus TCP on the Symo GEN24 on port 502, choose between int+SF and float, read the right SunSpec registers and scale them correctly. Practical guide for solar installers.
SMA Modbus: reading a Sunny Boy over Modbus TCP (installers)
SMA Modbus explained: enable the Modbus TCP server on port 502, choose between the SMA profile (unit ID 3) and SunSpec (unit ID 126), read the right registers, and handle the NaN values at night. Practical guide for installers.
Want to see how it works?








