Solar PV · Fronius · Modbus TCP · KNX · SG Ready · 10 min read

Solar PV and KNX: Fronius Symo Modbus Integration for Self-Consumption Optimisation

Connecting a Fronius inverter to KNX via SunSpec Modbus TCP gives the building automation system real-time PV yield and grid power data — enabling self-consumption logic that shifts controllable loads to coincide with surplus generation, reducing grid import and maximising the value of on-site solar.

Fronius SunSpec Modbus TCP: enabling the interface

Fronius inverters — Symo, Primo, Gen24 and Gen24 Plus — implement the SunSpec Alliance Modbus TCP interface, which provides a standardised register map for solar inverter data. The interface is disabled by default and must be enabled in the inverter webserver before any gateway can connect.

Enabling Modbus TCP on Fronius inverter

1. Connect to inverter webserver: http://<inverter-IP>
   (default IP shown on inverter display → Settings → Network)

2. Navigate to: Settings > Modbus
   Enable Modbus TCP: ON
   TCP port: 502 (default, leave unchanged)
   SunSpec model: enabled

3. Key holding registers (read-only):
   Register 40070 → AC power output     (int16, W)
   Register 40080 → AC energy today     (uint32, Wh)
   Register 40225 → Grid power          (int16, W, Gen24 with smart meter)
                    Positive = import, Negative = export
   Register 40493 → Battery SOC         (Gen24 Plus only, 0–100%)
   Register 40495 → Battery power       (Gen24 Plus only, int16, W)

4. Fronius smart meter must be installed and paired
   for grid power register 40225 to report correctly

Network requirement: the Fronius inverter and the KNX Modbus gateway must be on the same LAN segment or have routed IP access. Assign a static IP to the inverter in the webserver network settings — DHCP leases can change and will break the gateway poll after a router reboot.

KNX Modbus gateway: Intesis IN701KNX signal table

The Intesis IN701KNX operates as a Modbus TCP master, polling the Fronius inverter registers at a configurable interval and publishing the values to KNX group addresses using the MAPS configuration tool. The following signal table gives the complete mapping for PV monitoring.

Modbus registerDescriptionKNX DPTGroup address
40070PV AC power output (W)DPT 13.010 (4-byte signed)9/0/0 — PV Power W
40225Grid power (W, +import/−export)DPT 13.010 (4-byte signed)9/0/1 — Grid Power W
40080AC energy today (Wh)DPT 12.001 (4-byte unsigned)9/0/2 — Energy Today Wh
40493Battery SOC (%, Gen24 Plus)DPT 5.001 (1-byte %)9/1/0 — Battery SOC
40495Battery power (W, Gen24 Plus)DPT 13.010 (4-byte signed)9/1/1 — Battery Power W

MAPS configuration key settings

Protocol: Modbus TCP Master
Remote IP: <Fronius static IP>
Remote port: 502
Poll interval: 10 seconds (fast enough for self-consumption logic)
Connection timeout: 5 seconds
Byte order: Big-endian (SunSpec standard)
Word order: Big-endian

Self-consumption logic: MDT Logic Module or Loxone

With real-time grid power available on GA 9/0/1, the KNX logic controller can trigger controllable loads whenever surplus generation exceeds a threshold. The priority sequence ensures the highest-value loads are activated first and released last.

Self-consumption priority logic

Trigger condition: GA 9/0/1 (Grid Power) < −1000W
  → surplus export greater than 1 kW

Priority sequence (activate in order, release in reverse):
  1. Heat pump SG Ready (State 3 encouraged mode)
     → KNX binary output → heat pump S1/S2 terminals
  2. EV charger current increase (via EVCC/OCPP)
     → increase from 6A minimum toward surplus limit
  3. Immersion heater ON
     → KNX binary output → 3kW immersion contactor

Deactivation: GA 9/0/1 > −200W (export below 200W)
  → release loads in reverse priority order
  → 60-second hysteresis to prevent rapid cycling

MDT Logic Module (SCN-LOGM.01)

  • Compare block: GA 9/0/1 < -1000 → output 1
  • Timer block: 60s on-delay prevents cycling
  • Priority sequencer: AND/OR with individual thresholds
  • 16 logic channels cover all PV scenarios in one device

Loxone Miniserver

  • Virtual KNX input: GA 9/0/1 → Loxone variable
  • Intelligent Room Controller block for SG Ready
  • Loxone energy monitor visualises self-consumption
  • Analogue output to EVCC via HTTP for EV control

SG Ready heat pump integration

SG Ready (Smart Grid Ready) is a German heat pump association standard providing a 2-bit interface that allows external signals — including building automation and PV surplus — to influence heat pump operating mode. Two dry contact relay inputs (S1 and S2) on the heat pump control board are driven by KNX binary outputs.

StateS1S2ModePV surplus trigger
State 110Blocked (EVU lock)Grid peak tariff signal — block compressor
State 200Normal operationDefault / no PV signal
State 301Encouraged (high power)Surplus > 3 kW → run at increased set-point
State 411Maximum (full capacity)Surplus > 6 kW → maximum heating power

Wiring note: S1 and S2 are volt-free contacts — connect KNX binary output relay contacts (no voltage) directly to the heat pump SG Ready terminals. Do not apply 230V or 24V to these terminals. Confirm contact rating with heat pump manufacturer: most SG Ready inputs accept 24V DC signal current; the KNX binary output dry contact must be rated for the heat pump signal voltage (typically 12–30V DC at 10–20 mA).

Fronius Gen24 battery integration

The Fronius Gen24 Plus with BYD HVS or LG RESU battery exposes battery state of charge and battery power via Modbus TCP registers. Adding battery SOC awareness to the self-consumption logic prevents activating controllable loads when the battery is depleted and needs priority charging.

Battery-aware self-consumption conditions

GA 9/1/0 (Battery SOC) conditions:

  SOC < 20%:
    → Pause all controllable loads
    → Prioritise battery charging from PV
    → SG Ready → State 2 (normal, don't add extra heat pump load)

  SOC > 80% AND GA 9/0/1 (Grid Power) < −500W:
    → Activate controllable loads (battery sufficiently full)
    → Standard priority sequence applies

  Battery power (GA 9/1/1):
    → Negative = battery charging (absorbing PV surplus)
    → Positive = battery discharging (supplying building)
    → Use to calculate net PV available for controllable loads:
       Available = PV power − battery charging power

SMA Sunny Boy alternative

SMA inverters also implement SunSpec Modbus TCP on port 502 using the same integration chain via the Intesis IN701KNX gateway. The enabling procedure and key registers differ slightly from Fronius.

SMA Sunny Boy Modbus TCP setup

Enable in SMA webserver:
  Settings > External communication > Modbus > ON
  TCP port: 502

Key registers (read-only, unit ID 3):
  30775 → AC power output   (uint32, W, 2 registers)
  30517 → Daily yield       (uint32, Wh, 2 registers)
  30513 → Total yield       (uint32, kWh × 1000)
  30521 → Operating status  (uint32, enum)

Note: SMA registers are uint32 (2×16-bit), big-endian.
Configure IN701KNX signal type as 32-bit unsigned integer.
SMA does not provide a signed grid power register without
a separate SMA Energy Meter — add SMA Energy Meter for
grid flow monitoring (registers 30865/30867 on Meter unit ID).

Self-consumption rate calculation

Self-consumption rate and self-sufficiency rate are the key KPIs for a PV-plus-KNX system. Both metrics can be calculated and displayed in real time by the KNX visualisation system using values from the Modbus gateway group addresses.

KPI formulas for Gira X1 or IP-Symcon

Self-consumed power (W):
  = PV power (GA 9/0/0) − max(0, −Grid power (GA 9/0/1))
  (PV output minus what is being exported)

Self-consumption rate (%):
  = Self-consumed power / PV power × 100
  Target: > 70% with EV + heat pump controllable loads

Self-sufficiency rate (%):
  = Self-consumed power / Total building demand × 100
  Total demand = PV power − grid export + grid import
               = GA 9/0/0 + max(0, GA 9/0/1)

Annual self-consumption: log daily GA 9/0/2 (Energy today Wh)
  → accumulate in IP-Symcon variable → annual total kWh
  → self-consumption rate = annual self-consumed / annual yield

Realistic targets: without controllable loads a typical household achieves 25–35% self-consumption (most PV generated midday when occupants are absent). With EV charging and heat pump SG Ready shifting to solar hours, self-consumption rises to 60–80%. With battery storage added, 80–95% is achievable.

Fronius Solar.web cloud for energy reports

For BREEAM energy reports requiring historical PV yield data, the Fronius Solar.web REST API (api.solarweb.com) provides hourly, daily and monthly energy totals. This cloud API supplements — but does not replace — local Modbus TCP for real-time control.

Solar.web API vs local Modbus TCP

Solar.web REST API (api.solarweb.com):
  Latency: 1–5 minutes (cloud polling cycle)
  Use for: BREEAM energy reports, historical analysis,
           CSV export for energy assessors
  Poll: daily at 23:59 from IP-Symcon or ARISTO BewO
  Output: daily/monthly kWh → CSV → energy assessor

Local Modbus TCP (Fronius register 40070/40225):
  Latency: < 1 second (direct LAN poll at 10s interval)
  Use for: ALL real-time self-consumption control
           SG Ready triggers, EV current adjustment,
           export limiting, immersion heater switching

NEVER use cloud API for real-time control —
  1–5 minute latency makes load shifting ineffective

PV export limiting via Modbus

Some Distribution Network Operators (DNOs) require limiting PV export to the grid, particularly for larger residential and commercial systems. Fronius supports dynamic power limiting via a dedicated Modbus holding register, enabling KNX to throttle inverter output when required.

Export limiting logic

Fronius power limit register:
  Register 40149 → power limit (0–100%, write-capable)
  Write via IN701KNX output signal (Modbus write function 06)

KNX export limiting conditions:
  IF GA 9/0/1 (Grid Power) < −export_limit_W
  AND GA 9/1/0 (Battery SOC) > 95%
  → Write 50% to register 40149 (throttle to half output)

  IF GA 9/0/1 > −export_limit_W × 0.8
  → Write 100% to register 40149 (restore full output)

  Hysteresis: 30-second delay before restoring full output
  (prevents rapid hunting around the export limit threshold)

Commissioning test with ETS6 Group Monitor

Verify the complete Fronius–Intesis–KNX integration on a sunny day using the ETS6 Group Monitor. The test sequence confirms Modbus polling, data plausibility, self-consumption trigger and SG Ready relay function without requiring specialist PV commissioning tools.

Commissioning test sequence

1. PV data verification (by 10:00 on a sunny day):
   ETS6 Group Monitor → watch GA 9/0/0
   → confirms PV Power W > 0 and rising with irradiance
   → compare with Fronius webserver display (should agree ±2%)

2. Grid flow verification:
   GA 9/0/1 should be negative when PV > building consumption
   GA 9/0/1 should be positive when PV < building consumption
   Turn off major loads, re-check sign changes

3. SG Ready functional test (without waiting for solar surplus):
   ETS6 Group Monitor → write −4000 to GA 9/0/1 (simulate export)
   → confirm Logic Module condition fires (GA 9/0/1 < −1000)
   → confirm SG Ready relay activates (State 3: S1=0, S2=1)
   → confirm with heat pump display (mode indicator changes)
   → restore: write 0 to GA 9/0/1 → relay deactivates

4. Battery SOC check (Gen24 Plus):
   GA 9/1/0 value should match Fronius webserver battery SOC %

5. Export limit test:
   Write 50 to power limit register via Group Monitor write
   → confirm Fronius webserver shows 50% power limit active

Sign convention check

Confirm GA 9/0/1 is negative (export) on a sunny noon. If it reads positive when the Fronius webserver shows export, the smart meter CT direction is reversed — swap the CT secondary leads (S1/S2) or invert the Modbus register sign in IN701KNX MAPS configuration.

Poll interval verification

Observe GA 9/0/0 in Group Monitor — it should update every 10 seconds. If updates occur less frequently, check the IN701KNX poll interval setting in MAPS and verify there is no Modbus TCP timeout. Reduce timeout value if the inverter is slow to respond.

Need a Fronius KNX integration panel built and commissioned to spec?

We design low-voltage panels with Intesis Modbus–KNX gateway, SG Ready wiring, export limiting and full ETS6 commissioning documentation — delivered tested and verified to your site.

Request a quote →
Loading...
Back to top