Pylontech Battery Storage KNX Integration: SOC Monitoring and Self-Consumption Priority
Pylontech lithium iron phosphate (LFP) battery modules are among the most widely deployed residential and small commercial battery storage systems in Europe. The Force H2 (4.8 kWh per module) and US3000C (3.55 kWh per module) communicate via CAN bus to a compatible inverter. KNX integration is achieved indirectly through the inverter's Modbus TCP interface — most commonly via Victron Cerbo GX, but also via Fronius Symo GEN24 Plus or SMA Sunny Boy Storage. This article focuses on the Victron path and details a four-tier KNX self-consumption automation scheme.
Pylontech and Compatible Inverters
Pylontech batteries use a proprietary CAN bus protocol for BMS communication. Compatible inverters that can read Pylontech CAN data and re-expose it via Modbus TCP include: Victron MultiPlus-II (requires Cerbo GX or Venus GX as the Modbus TCP interface), Fronius Symo GEN24 Plus (built-in Modbus TCP server exposes battery SOC from Pylontech BMS data), and SMA Sunny Boy Storage 3.7/5.0/6.0 (Modbus TCP registers include battery SOC). For multi-module Pylontech stacks, a Pylontech Master module aggregates all parallel modules into a single CAN communication channel.
Cerbo GX Modbus TCP: Battery Registers
When Pylontech is connected to a Victron MultiPlus-II via CAN (using the appropriate Pylontech CAN cable to the Cerbo GX VE.Can port), the Cerbo GX reads BMS data from the Pylontech master module and exposes it via Modbus TCP. Via Cerbo GX Modbus TCP (unit ID 225): Register 840 = Battery Voltage (V, scale 0.01 — divide raw value by 100 for volts). Register 841 = Battery Current (A signed, scale 0.1 — negative = discharging, positive = charging). Register 842 = Battery Power (W signed — negative = discharging, positive = charging). Register 843 = Battery SOC (%, scale 0.1 — divide raw value by 10 for percentage). Register 871 = Battery Maximum Charge Current (A, scale 0.1 — this is the dynamic BMS-imposed limit based on SOC and temperature; the inverter honours this limit automatically).
Intesis IN701KNX Configuration
In MAPS, add the Cerbo GX as a Modbus TCP device. Map Register 843 (SOC) to GA 9/2/2 (DPT 5.001, percentage, scale 0.1). Map Register 842 (Battery Power) to GA 9/2/3 (DPT 14.056, watts signed). Map Register 841 (Battery Current) to GA 9/2/4 (DPT 9.020, amperes, scale 0.1). Map Register 871 (Max Charge Current) to GA 9/2/5 (DPT 9.020). In addition, map the grid power and PV power registers from unit IDs 100 and 288 as described in the Victron Cerbo GX integration article, to provide the full energy picture for automation decisions.
Four-Tier Self-Consumption Automation
The KNX logic module (or EibPC script) evaluates battery SOC (GA 9/2/2) and grid power (GA 9/3/1) every 30 seconds and applies one of four automation tiers.
Tier 1 applies when SOC > 90% AND PV export > 1 kW (grid power < -1000 W). Action: write SG Ready state 4 to heat pump (GA 8/4/0, value 3), write EV charger maximum current (GA 9/5/0, 32 A). This tier maximises consumption of surplus solar that the battery cannot absorb further.
Tier 2 applies when SOC is between 50% and 90%. Action: write SG Ready state 3 (GA 8/4/0, value 2), set EV charger to normal current (GA 9/5/0, 16 A). Moderate self-consumption without stressing the battery.
Tier 3 applies when SOC is between 20% and 50%. Action: write SG Ready state 2 (normal heat pump operation, GA 8/4/0, value 1), reduce EV charger to minimum current (GA 9/5/0, 6 A) or pause if grid import is detected (GA 9/3/1 > 500 W).
Tier 4 applies when SOC < 20% (low battery reserve). Action: load shed scene — write HVAC setback GA 5/1/3 (scene 3 = +2°C cooling setpoint / -2°C heating setpoint), write EV charger pause GA 9/5/1 = 0, write deferred load delay GA 10/2/0 = 0 (defer dishwasher and washing machine programmes by 4 hours via KNX-connected smart plugs).
Overnight Off-Peak Charging
At 01:00, the KNX weekly time controller evaluates: if SOC < 40% AND electricity tariff < €0.10/kWh (tariff flag GA 6/5/0, DPT 1.001 — set by a KNX time controller programmed with the time-of-use tariff schedule), write MultiPlus charging mode Register 33 (value 1 = force charge to 100%) via Cerbo GX Modbus TCP. The Intesis IN701KNX enables this write via a dedicated Modbus write object mapped to GA 9/4/0 (DPT 5.010, value 1). At 06:00, write Register 33 value 0 (return to optimised self-consumption mode) to prepare for morning solar generation.
Morning Pre-Charge Logic
At 06:30, evaluate: if SOC < 60% AND solar forecast for the day > 15 kWh (forecast value obtained from a weather API and written to GA 9/6/0 by an IP-Symcon or EibPC daily script), then charge battery to 70% from grid before the morning peak tariff starts at 07:00. This ensures the battery has sufficient charge to support the morning load peak (07:00-09:00) without drawing from the expensive tariff.
Self-Consumption Impact
Based on typical central European residential energy profiles, a 10 kWh Pylontech battery stack (two US3000C modules) combined with a 10 kW PV system and the four-tier KNX automation increases self-consumption from approximately 35% (PV only, no battery) to approximately 75%. Annual grid electricity cost reduction at €0.30/kWh retail and €0.08/kWh feed-in tariff is approximately €900/year for a 5000 kWh/year household.
Commissioning Test
Step 1: verify Cerbo GX Modbus TCP registers return valid battery values in MAPS test mode. Step 2: drain battery to SOC < 20% using a test load and verify Tier 4 load shed scene activates in ETS6. Step 3: charge battery above 90% and simulate PV export (write GA 9/3/1 = -3000 W from Group Monitor) and verify Tier 1 activates (SG Ready state 4 and EV charger maximum current). Step 4: verify overnight off-peak charging trigger by temporarily setting the KNX time controller to 01:00 and SOC test value < 40%.
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 →