Pylontech FORCE H2: Modbus RS485 BMS and KNX Self-Consumption Scenes
Integrating Pylontech FORCE H2 (48V LFP, 7.1-107+ kWh) with KNX via the dedicated BMS RS485 port Modbus RTU interface and inverter Modbus TCP — register map, Deye and Sungrow indirect integration, and KNX self-consumption scene control with SOC threshold hysteresis.
Pylontech FORCE H2 Architecture
Pylontech FORCE H2 is a modular 48V LFP battery system: each 3.55 kWh module stacks to 7.1-107.1 kWh. Communication: CAN bus (primary, for SMA/Victron/Solis inverters) and RS485 Modbus RTU (secondary BMS port for monitoring).
The RS485 port (RJ45 on front panel, pins 3/6 = B+/B-, pin 5 = GND) provides battery telemetry read-only. Modbus RTU baud 9600, 8N1, unit ID 2 (default — verify on battery label).
Pylontech RS485 Register Map
Holding registers (FC3, read-only):
| Register (hex/dec) | Description | Type / Scaling |
|---|---|---|
| 0x1000 (4096) | Battery voltage | uint16, V x1000 (48.0V = 48000) |
| 0x1001 (4097) | Battery current | int16, A x10 (positive=charging, negative=discharging) |
| 0x1002 (4098) | Battery temperature average | int16, deg-C x10 |
| 0x1003 (4099) | State of Charge | uint16, 0-1000 = 0-100.0% |
| 0x1004 (4100) | State of Health | uint16, 0-1000 |
| 0x1008 (4104) | Charge/Discharge status | uint16: 0=idle, 1=charging, 2=discharging, 3=resting |
| 0x100A (4106) | Alarm status bitmask | uint16: bit 0=cell undervoltage, bit 1=overvoltage, bit 2=overcurrent charge, bit 3=overcurrent discharge, bit 7=communication error |
For KNX: read register 4099 and divide by 10 to get SOC percentage (DPT 5.001). Read register 4097 (signed int16): power in W = (current value / 10) multiplied by (voltage register 4096 value / 1000), giving V times A = W. Alternatively use inverter Modbus TCP for power W directly, which avoids the multiplication step.
Inverter Indirect Integration (Deye/Sungrow)
Pylontech FORCE H2 + Deye SUN-5K-SG04LP1-EU: Deye hybrid inverter Modbus TCP port 502, unit ID 1. Battery registers in Deye:
| Register | Description | Type |
|---|---|---|
| 186 | Battery SOC (%) | uint16 |
| 190 | Battery power (W — positive=charging, negative=discharging) | int16 |
| 587 | Battery voltage (V x100) | uint16 |
| 188 | Battery temperature (deg-C x10) | int16 |
Sungrow SH5.0RS + Pylontech: Sungrow Modbus TCP port 502, unit ID 1. Battery SOC at register 13022 (uint16, %), battery power at register 13021 (int16, W, positive=charging). Read with FC3.
MDT Modbus Gateway Setup
For direct RS485 approach: MDT SCN-MOD.02 RS485 port connected to Pylontech RS485 RJ45 (pins 3/6). MODBUS RTU mode, baud 9600, 8N1, unit 2. Read task: registers 4096-4106 (11 registers, 30s interval). Map: reg 4099 / 10 to KNX DPT 5.001 GA 6/4/6 (Pylontech SOC). Status word reg 4106: bit 3 to KNX DPT 1.005 GA 8/0/5 (over-current discharge alarm).
KNX Scene Control with SOC Hysteresis
MDT Logic Controller EibScript logic with two-threshold hysteresis:
EibScript — SOC hysteresis flex load control
// Hysteresis thresholds
VAR soc_high : REAL := 80.0;
VAR soc_low : REAL := 25.0;
VAR load_enabled : BOOL := FALSE;
ON CHANGE GA("6/4/6") DO
IF (READ_GA("6/4/6") > soc_high) AND (NOT load_enabled) THEN
WRITE_GA("1/5/0", 1); // Enable flex load group
load_enabled := TRUE;
ELSIF (READ_GA("6/4/6") < soc_low) AND load_enabled THEN
WRITE_GA("1/5/0", 0); // Disable flex load group
load_enabled := FALSE;
END_IF;
END_ON;This two-threshold hysteresis (engage at 80%, disengage at 25%) prevents rapid cycling that would reduce battery cycle life. The MDT Logic Controller retains variable values across KNX bus power cycles (EEPROM storage).
Multi-Stack Scaling
Pylontech FORCE H2 supports up to 15 modules per stack (53.25 kWh), multiple stacks per system. All modules share the same Modbus address — register 4099 reports aggregate SOC for the full stack. No per-module addressing is needed for KNX automation. For multi-stack systems (separate battery cabinets), each cabinet has a separate RS485 port and unit ID. Wire separate RS485 chains to MDT gateway RS485 A and B ports using Modbus multi-drop topology (120 ohm termination resistor on last device in each chain).
Need a KNX panel with Pylontech battery integration built to spec?
We configure MDT Modbus RS485 gateways for Pylontech FORCE H2, design KNX self-consumption scene logic, and deliver fully tested panels with commissioning documentation for your site.
Request a quote →