SMA · Fronius · Battery Storage · Modbus TCP · KNX · 10 min read

SMA and Fronius Battery Storage KNX Integration: Gen24 BYD and Sunny Storage Self-Consumption

Both SMA and Fronius offer hybrid solar inverters with integrated battery storage — the Fronius Symo GEN24 Plus with BYD HVS and the SMA Sunny Boy Storage with SMA battery. Each exposes battery SOC, charge power, and discharge power via Modbus TCP, enabling KNX automation to read live battery state and sequence self-consumption loads accordingly.

Fronius GEN24 Plus Modbus TCP register map

The Fronius Symo GEN24 Plus implements both the SunSpec Alliance standard register map and a proprietary Fronius extension. Battery registers are in the Fronius extension block (above address 40350) and are only populated when a compatible battery (BYD HVS, BYD HVM, LG RESU) is connected and communicating via the GEN24 BMS interface.

RegisterDescriptionFormat / ScaleKNX DPT → GA
40070AC power output (PV generation)int16, WDPT 13.010 → 9/0/0
40080AC energy today (Wh)uint32, WhDPT 12.001 → 9/0/2
40225Grid power (+import / −export)int16, WDPT 13.010 → 9/0/1
40352Battery charge/discharge power (+ charge, − discharge)int16, WDPT 13.010 → 9/1/1
40356Battery state of charge (%)uint16, 0–100%DPT 5.001 → 9/1/0
40358Battery temperature (°C)int16, 0.1°C resolutionDPT 9.001 → 9/1/2
40362Battery voltage (V)uint16, 0.1VDPT 9.020 → 9/1/3

GEN24 battery register availability: registers 40352–40362 are only populated when the GEN24 detects an active battery BMS. If the battery is not connected or the BMS communication has failed, these registers return 0 or the Modbus gateway will report a timeout error. Always verify battery registers are live before configuring the KNX automation logic.

SMA Sunny Boy Storage Modbus TCP register map

The SMA Sunny Boy Storage uses 32-bit unsigned integer registers (two consecutive 16-bit registers, big-endian) for most values, differing from the Fronius int16 convention. The Intesis IN701KNX gateway must be configured with the correct 32-bit register type for SMA signals.

SMA Sunny Boy Storage key Modbus registers (unit ID 3)

Register 30775 → AC power output W (uint32, 2 registers, big-endian)
  KNX DPT 13.010, scale ×1, GA 9/0/0

Register 30865 → Battery SOC % (uint32, 2 registers)
  KNX DPT 5.001, scale ×0.01 (register value × 0.01 = %), GA 9/1/0

Register 30593 → Battery charge/discharge power W (int32, 2 registers)
  Positive = charging, Negative = discharging
  KNX DPT 13.010, scale ×1, GA 9/1/1

Register 30881 → Battery temperature (int32, 2 registers, 0.1°C)
  KNX DPT 9.001, scale ×0.1, GA 9/1/2

Register 30513 → Total energy yield today (uint32, 2 registers, Wh)
  KNX DPT 12.001, GA 9/0/2

Important: SMA uses unit ID 3 by default
  Verify unit ID in SMA webserver: Settings → External Communication
  → Modbus → Modbus Unit ID

Comparison: SMA vs Fronius vs Victron Modbus availability

The three major battery storage platforms differ in what Modbus data they expose, which affects the complexity of the KNX automation logic possible.

Data pointFronius GEN24SMA Sunny Boy StorageVictron Cerbo GX
Battery SOC %Reg 40356 (direct)Reg 30865 (×0.01 scale)Reg 843 (×0.1 scale)
Battery charge/discharge WReg 40352 (int16 signed)Reg 30593 (int32 signed)Reg 844 (int16 signed)
Grid import/export WReg 40225 (Fronius SM required)Separate SMA Energy MeterReg 820 (built-in)
Battery temperatureReg 40358Reg 30881Via BMS unit ID (unit ID 289)
Inverter state/modeLimited (running/fault)Reg 30521 (operating status)Reg 28 (full ESS state)
Cell-level BMS dataNot availableNot availableAvailable (via BMS unit IDs)
Write registers (control)Power limit Reg 40149Limited — no remote charge controlESS mode via VEBus unit

Intesis gateway setup for Fronius GEN24 with BYD

The Intesis IN701KNX gateway configuration for a Fronius GEN24 Plus with BYD battery requires separate signal entries for the SunSpec standard registers (AC power, grid power) and the Fronius extension registers (battery SOC, battery power). Both use the same Modbus TCP master connection to the GEN24 IP address.

Intesis MAPS — Fronius GEN24 + BYD complete signal table

MAPS Protocol: Modbus TCP Master
Remote IP: 192.168.1.100 (Fronius GEN24 static IP)
Port: 502, Unit ID: 1, Poll: 10s, Byte order: Big-endian

Signal table:
#  Register  Type      Scale  Function  KNX DPT      GA
1  40070    INT16     ×1     Read      DPT 13.010   9/0/0  PV AC Power W
2  40225    INT16     ×1     Read      DPT 13.010   9/0/1  Grid Power W
3  40080    UINT32    ×1     Read      DPT 12.001   9/0/2  Energy Today Wh
4  40356    UINT16    ×1     Read      DPT 5.001    9/1/0  Battery SOC %
5  40352    INT16     ×1     Read      DPT 13.010   9/1/1  Battery Power W
6  40358    INT16     ×0.1   Read      DPT 9.001    9/1/2  Battery Temp °C
7  40149    UINT16    ×1     Write     DPT 5.010    9/0/3  Power Limit %

Note: Signal 3 (UINT32) requires setting 32-bit register
  type in MAPS — it spans registers 40080 and 40081 combined

Self-consumption logic: GEN24 surplus sequencing

With the Fronius GEN24 Plus and BYD battery, the self-consumption sequencing must account for the battery state to avoid the heat pump and EV charger consuming grid power while the battery simultaneously discharges to supply the building — a situation that wastes battery capacity.

GEN24 self-consumption load sequencing

Net available power for controllable loads:
  Available = PV power (GA 9/0/0) − building base load
            = GA 9/0/0 − max(0, GA 9/0/1 + GA 9/1/1)
  (Grid import + battery discharge = base load demand)

Sequence 1 — Heat pump SG Ready (Priority 1):
  IF GA 9/0/1 < −2000W AND GA 9/1/0 > 50%:
    → SG Ready State 3 (encouraged mode) — ~1 kW extra HP load

Sequence 2 — EV charger (Priority 2):
  IF GA 9/0/1 < −3000W AND GA 9/1/0 > 40%:
    → EV current = (GA 9/0/0 − 3000) ÷ 230 (surplus above 3kW)
    → Write to EV charger current GA

Sequence 3 — Maximum HP (Priority 3):
  IF GA 9/0/1 < −6000W AND GA 9/1/0 > 80%:
    → SG Ready State 4 (maximum HP power)

Grid zero injection control (if DNO requires):
  IF GA 9/0/1 < −export_limit W AND GA 9/1/0 > 95%:
    → Write 80 to GA 9/0/3 (power limit register 40149)
    Throttle PV to reduce export — battery full, loads at max

Commissioning steps for GEN24 + BYD and SMA systems

Commissioning the battery storage KNX integration requires verifying both PV-only registers and battery-specific registers, confirming the sign convention for battery power (charge vs discharge), and testing the SOC-dependent logic at simulated SOC threshold boundaries.

Battery KNX integration commissioning sequence

Step 1 — Fronius webserver register verification:
  Navigate to http://<GEN24-IP> → Solar API → GetPowerFlowRealtimeData
  JSON response shows: P_PV, P_Grid, P_Load, P_Akku (battery)
  Cross-check values with ETS6 Group Monitor GA readings

Step 2 — Battery SOC register check:
  GA 9/1/0 should match GEN24 webserver battery SOC display
  Compare every 5 minutes for 30 minutes — values should track

Step 3 — Battery power sign convention:
  During solar peak: GA 9/1/1 should be positive (battery charging)
  Late afternoon (PV declining): GA 9/1/1 should turn negative (discharging)
  Verify sign matches Fronius webserver P_Akku sign (convention may differ)
  If reversed: invert sign in Intesis MAPS signal configuration

Step 4 — SMA-specific: 32-bit register pair test:
  SMA SOC register 30865 reads as two 16-bit values
  Confirm Intesis reads both high and low word correctly
  Typical commissioning error: reading only register 30865 (high word)
  gives SOC × 100 instead of SOC % — check scale factor

Step 5 — SOC logic threshold test:
  Write test SOC value to GA 9/1/0 via ETS6 Group Monitor
  Write 18 (18% SOC) → confirm load shedding activates
  Write 85 → confirm SG Ready and EV loads re-enable

Step 6 — Grid zero injection test (if configured):
  Write value to GA 9/1/0 = 97 (97% SOC)
  Verify: if grid is also exporting (GA 9/0/1 < -export_limit)
  → power limit register 40149 receives 80 (reduce to 80% output)

Need a Fronius or SMA battery panel with KNX integration?

We configure Intesis IN701KNX gateways for Fronius GEN24 Plus BYD and SMA Sunny Boy Storage, with full KNX self-consumption logic, SOC automation, and ETS6 commissioning documentation.

Request a quote →
Loading...
Back to top