Battery Storage#BYD#Battery Storage#Modbus TCP#SolarEdge#Fronius

BYD Battery-Box HVM: Reading Battery Data via Inverter Modbus for KNX

SmartMāja Engineering Team·2028-01-15·9 min read

BYD Battery-Box HVM (high-voltage, 403.2V, 2.76-22.1 kWh per stack) has no user-accessible Modbus port. Battery data is read indirectly through the paired inverter. This is standard practice — the inverter aggregates BYD BMS data over a proprietary CAN/EnergyLink protocol and re-exposes it via standard Modbus TCP.

SolarEdge StorEdge + BYD Register Map

SolarEdge SE5K-RWS00BNN4 (StorEdge inverter): Modbus TCP port 1502, unit ID 1 (note: NOT port 502 — SolarEdge uses 1502).

Battery registers (FC3, holding): - 62784 (0xF540): battery temperature int16, degrees Cx10 - 62786 (0xF542): battery DC voltage uint16, Vx100 - 62794 (0xF54A): battery instantaneous power int16, W (positive = charging, negative = discharging) — signed integer, configure MDT gateway as int16 for this register - 62798 (0xF54E): battery State of Charge uint16, percentage 0-100 - 62800 (0xF550): battery State of Health uint16, percentage 0-100 - 62852 (0xF584): battery status bitmask uint16 — bit 3 = charging, bit 4 = discharging, bit 11 = fault

KNX mapping: register 62798 / 1 -> KNX DPT 5.001 GA 6/4/0 (SOC). Register 62794 / 1000 -> KNX DPT 9.001 GA 6/4/1 (battery kW). MDT Modbus gateway: add SolarEdge as device at IP 192.168.1.100, port 1502, unit 1. Two read tasks: SOC every 30s, power every 10s.

Fronius Symo Gen24 + BYD: SunSpec Model 802

Fronius Gen24 5.0-1: Modbus TCP port 502, unit ID 1. SunSpec layout appended after Model 103 (inverter). With Fronius Gen24 firmware 1.24.x, battery Model 802 block starts at approximately register 40331.

Practical approach: use fixed register 40361 for SOC (float32 alternative) and register 40337 for battery power (int16 W). Register 40361 is 2 registers (float32 big-endian) — MDT gateway: data type float32, register count 2.

Battery status at register 40341: 1=off, 3=charging, 4=discharging, 7=fault.

SMA Sunny Boy Storage + BYD

SMA SBS6.0-10: Modbus TCP port 502, unit ID 3. Key registers (uint32 or int32, FC3, 2 registers each): - 30845-30846: Battery SOC uint32, percentage - 30775-30776: Battery charge power int32, W (positive = charging, negative = discharging) - 30843-30844: Battery status uint32 — 2292=charging, 2293=discharging, 2294=full, 2291=empty

MDT gateway: data type unsigned 32-bit integer for SOC (no scaling), data type signed 32-bit integer for power. Divide power by 1000 for kW.

Common Error: Port 502 vs 1502

The single most common mistake with SolarEdge: using port 502 instead of 1502. Port 502 returns no data or connection refused. Always verify: 'nc -zv 192.168.1.100 1502' should show open.

Need help with your KNX or DALI project?

Our certified engineers can discuss panel design, commissioning, integrations and project-specific edge cases. Free initial consultation.

Contact our engineers →
Ielādējas...
Uz augšu