Victron · Cerbo GX · Modbus TCP · KNX · MultiPlus ESS · 10 min read

Victron Cerbo GX KNX Integration: Modbus Register Map and Self-Consumption Logic

The Victron Cerbo GX acts as the central data hub for Victron energy systems, exposing all connected devices — MultiPlus inverter-charger, MPPT solar chargers, BMS battery monitors — via a single Modbus TCP server. Integrating the Cerbo GX with KNX via the Intesis IN701KNX gateway gives the building automation system complete visibility of the energy storage system and enables SOC-based load control automation.

Cerbo GX Modbus TCP server: device IDs and enabling

The Cerbo GX Modbus TCP server is a multi-device server where different physical components in the Victron system are accessed via different Modbus unit IDs (device IDs). The VEBus device (MultiPlus or Quattro) uses unit ID 227, the MPPT solar charger uses unit ID 100 by default, and the system overview registers — providing the aggregated view used for KNX integration — use unit ID 100.

Enabling Modbus TCP on Cerbo GX

1. Navigate to Cerbo GX touch screen:
   Settings → Services → Modbus TCP → Enabled

2. Verify: Settings → Services → Modbus TCP
   Port: 502 (default)
   Note the Cerbo GX LAN IP address (static recommended)

3. Confirm available device IDs via Modbus scanner
   (use Victron Modbus TCP devices spreadsheet for full register list):
   Unit ID 100: System overview (aggregated values — USE FOR KNX)
   Unit ID 227: VEBus (MultiPlus/Quattro direct registers)
   Unit ID 289: BMV-712 battery monitor (if fitted)

4. Assign static IP to Cerbo GX:
   Settings → Ethernet → IP → Manual
   IP: 192.168.1.20 (example)
   Gateway: 192.168.1.1
   DNS: 8.8.8.8

Cerbo GX Modbus register map for KNX (Unit ID 100)

The system overview registers at unit ID 100 provide aggregated values representing the complete Victron energy system. These are the registers to use for KNX integration as they reflect the net energy flows visible to the building management system.

RegisterDescriptionUnit / ScaleKNX DPT → GA
817AC load power (total building consumption)W, int16DPT 13.010 → 12/0/0
820Grid power (signed: +import / −export)W, int16DPT 13.010 → 12/0/1
843Battery SOC (%)0.1% resolution, uint16DPT 5.001 → 12/1/0
844Battery power (signed: +charging / −discharging)W, int16DPT 13.010 → 12/1/1
850PV power from MPPT charger(s)W, uint16DPT 13.010 → 12/0/2
28MultiPlus operational state (ESS mode)enum uint16DPT 5.010 → 12/2/0
30MultiPlus AC output voltage0.1V, uint16DPT 9.020 → 12/2/1

Intesis IN701KNX MAPS configuration for Cerbo GX

Protocol: Modbus TCP Master
Remote IP: 192.168.1.20     (Cerbo GX static IP)
Remote port: 502
Unit ID: 100                (system overview device)
Poll interval: 10 seconds
Byte order: Big-endian
Word order: Big-endian

Signal table (key entries):
  Signal 1: Reg 817, int16, scale ×1 → KNX DPT 13.010 GA 12/0/0
  Signal 2: Reg 820, int16, scale ×1 → KNX DPT 13.010 GA 12/0/1
  Signal 3: Reg 843, uint16, scale ×0.1 → KNX DPT 5.001 GA 12/1/0
  Signal 4: Reg 844, int16, scale ×1 → KNX DPT 13.010 GA 12/1/1
  Signal 5: Reg 850, uint16, scale ×1 → KNX DPT 13.010 GA 12/0/2
  Signal 6: Reg 28, uint16, enum → KNX DPT 5.010 GA 12/2/0

KNX self-consumption PV surplus logic

With real-time grid power and battery SOC available as KNX group addresses, the self-consumption logic controller can trigger SG Ready heat pump and EV charger loads at the appropriate moments — prioritising direct PV consumption over battery storage and grid export.

Self-consumption PV surplus logic conditions

Source GAs:
  GA 12/0/1 = Grid power W (negative = export)
  GA 12/1/0 = Battery SOC %
  GA 12/1/1 = Battery power W (positive = charging)
  GA 12/0/2 = PV power W

Surplus detection condition (for SG Ready + EV trigger):
  Grid power (GA 12/0/1) < −1000W  (exporting > 1 kW)

SG Ready State 3 trigger:
  IF GA 12/0/1 < −3000W AND GA 12/1/0 > 50%
    → SG Ready S2 = 1 (encouraged mode)
    (Battery must be > 50% to avoid heat pump draining it)

SG Ready State 4 (maximum HP):
  IF GA 12/0/1 < −6000W AND GA 12/1/0 > 80%
    → SG Ready S1 = 1, S2 = 1 (maximum)

EV charger activation:
  IF GA 12/0/1 < −2500W AND GA 12/1/0 > 40%
    → Write surplus/230 to EV current GA (10/0/0)

Battery charging priority:
  IF GA 12/1/0 < 20%:
    → suspend ALL controllable loads
    → battery charges from PV first (priority)
  Battery charges at rate: GA 12/1/1 (positive W = charging)

Battery SOC-triggered load shedding

When battery SOC falls below critical thresholds — typically overnight during prolonged cloudy periods — the KNX system progressively sheds controllable loads to extend battery autonomy and avoid deep discharge, which degrades battery longevity.

Battery SOCKNX actionRationale
> 90% AND exportingAllow SG Ready State 4 + max EV currentBattery full — maximise direct consumption
50–90%Normal self-consumption logic activeStandard operation: balance load and battery
20–50%Basic self-consumption only (no SG State 4)Conserve battery for evening discharge
< 20%Suspend all controllable loads (EV + SG Ready → State 2)Battery low — protect from deep discharge
< 10%Load shed: HVAC setback −2°C + alert to KNX visualisationEmergency: grid import preferable to battery damage

MDT Logic Module — SOC band implementation with hysteresis

Logic channel 1: Low battery guard
  Compare block: GA 12/1/0 (SOC) < 20 → output flag "soc_low"
  Hysteresis: clear flag when SOC > 25 (5% hysteresis band)
  Timer: 60s on-delay (prevent rapid state changes on SOC jitter)

Logic channel 2: SG Ready control
  IF NOT soc_low AND GA 12/0/1 < −3000:
    → write SG Ready State 3 (S2 = 1, S1 = 0)
  IF soc_low:
    → write SG Ready State 2 (S1 = 0, S2 = 0)

Logic channel 3: EV enable control
  IF NOT soc_low AND GA 12/0/1 < −2500:
    → write calculated current to GA 10/0/0
  IF soc_low:
    → write 0 to GA 10/0/1 (disable EV charger)

Logic channel 4: MultiPlus fault monitoring
  GA 12/2/0 (MultiPlus state) ≠ 9 (ON state) for > 120s
    → write 1 to alarm GA → push notification via Gira X1

MultiPlus state monitoring for inverter fault alert

Victron MultiPlus register 28 (unit ID 100) exposes the inverter's operational state as an enumerated value. Monitoring this register via KNX enables automated fault notification when the MultiPlus enters a fault, overload, or low battery state — giving the building management system awareness of inverter health.

MultiPlus operational state enum values (Register 28)

Value 0:  Off
Value 1:  Low power / Eco mode
Value 2:  VE.Bus fault (alarm — investigate immediately)
Value 3:  Bulk charging (PV charging battery at max rate)
Value 4:  Absorption charging
Value 5:  Float charging (battery nearly full, trickle)
Value 6:  Storage mode
Value 7:  Equalise charge (maintenance mode)
Value 8:  Passthru (grid pass-through, no inversion)
Value 9:  Inverting (normal on-battery operation)
Value 10: Power assist (supplementing grid with battery)
Value 11: PowerShare (load sharing between multiple units)
Value 252: External control (ESS mode — most common in solar+battery)

KNX alert: IF GA 12/2/0 == 2 (VE.Bus fault) for > 30s
  → Write 1 to alarm GA → building management alert

Commissioning test sequence

Commission the Victron Cerbo GX to KNX integration on a day with active solar generation to confirm both PV surplus logic and battery SOC load shedding work correctly. The ETS6 Group Monitor provides real-time visibility of all Cerbo GX data arriving on KNX group addresses.

Victron–KNX commissioning test

Step 1 — Modbus TCP connectivity:
  From PC: run Victron Modbus TCP browser tool
  Enter Cerbo GX IP: 192.168.1.20, port 502
  Read register 843 (SOC) → confirm matches Cerbo GX touch display

Step 2 — KNX data arrival:
  ETS6 Group Monitor → monitor GAs 12/0/0 through 12/2/1
  All should update every 10 seconds (Intesis poll interval)
  GA 12/0/2 (PV power) should be > 0 on sunny morning

Step 3 — Grid sign convention:
  GA 12/0/1 should be negative on sunny noon (exporting)
  Turn off building loads to verify export increases (more negative)
  Turn on large loads → verify grid power increases (less negative / positive)

Step 4 — SOC-based logic test (simulate low SOC):
  ETS6 → write 15 to GA 12/1/0 (simulate 15% SOC)
  Confirm: SG Ready relay deactivates (State 2)
  Confirm: EV charger current GA 10/0/0 writes to 0
  Restore: write 80 to GA 12/1/0 → confirm loads re-enable

Step 5 — MultiPlus state monitoring:
  GA 12/2/0 value: confirm matches Cerbo GX VEBus state
  Normal operation: value 252 (External control/ESS mode)
  Simulate fault alert: write 2 to GA 12/2/0 in ETS6
  → confirm alarm GA fires → check Gira X1 notification

Need a Victron battery panel with KNX integration built to spec?

We design panels with Victron Cerbo GX Modbus integration, Intesis IN701KNX gateway configuration, SOC-based automation logic, and full ETS6 commissioning documentation — delivered tested and verified to your site.

Request a quote →
Loading...
Back to top