TapHome

Pichler PKOM4

Modbus TCP
Submitted by
Last updated: 03. 2026
Pichler PKOM4

The Pichler PKOM4 is a heat pump combination unit that integrates ventilation, heating, cooling and domestic hot water production (Classic models) in a single appliance. It is available in four variants — PKOM4A classic, PKOM4A trend, PKOM4AK classic and PKOM4AK trend — covering living areas from 50 to 250 m². TapHome connects to the unit via Modbus TCP over Ethernet.

The template provides operating mode control, ventilation level selection (Auto + 9 levels), room and DHW temperature setpoints, active cooling configuration, energy consumption monitoring and filter maintenance tracking.

Network connection

The PKOM4 has a built-in LAN (Ethernet) port on the main board for network connectivity. Connect it to the same local network as TapHome Core using a standard Ethernet cable.

  • Protocol: Modbus TCP
  • Port: 502
  • Default Slave ID: 1 (configurable at import)

Assign a static IP address to the PKOM4 unit in the router’s DHCP settings to prevent the address from changing after a power cycle.

Main board layout
Pichler PKOM4 main board wiring diagram

The main board is located at the top of the unit in the electrical connection box. Key connectors relevant for TapHome integration:

ConnectorFunction
LANEthernet — network connection for Pichler app, Pichler Connect and Modbus TCP
M1Modbus RTU — external BMS / KNX gateway connection (A+/B-/GND)
M2Internal Modbus — ventilation board (do not use for external systems)
M3Internal Modbus — heat pump board (do not use for external systems)
B1Touch control unit connection
Label (DE)Translation (EN)Connector
RJ45 Stecker für LANRJ45 connector for LANK13
Modbus für externe Anbindung (Datalogger/GLT)Modbus for external connection (Datalogger/BMS)M1
Modbus zur LüftungsplatineModbus to ventilation PCBM2
Modbus zur WärmepumpenplatineModbus to heat pump PCBM3
Modbus zum DisplayModbus to displayM4
Schnellerkontakt / Normaly open contactQuick-action contact / Normally open contactK12, K13
Steuerspannung für Solarpumpe oder NachheizregisterControl voltage for solar pump or duct heaterU5
Temperaturfühler für Solar oder NachheizregisterTemperature sensor for solar or duct heaterT9
T40 Raumfühler extern oder HeizkreisT40 ext. room temp. sensor or heating circuitT40
Relais für KanalheizregisterRelay for duct heaterK4
Pumpe für Solar- oder HeizkreisPump for solar or heating circuitK5
E-Heizung Warmwasserspeicher 1,5kWE-heater for hot water tank 1.5 kWK6
Spannungsversorgung HauptplatinePower supply main PCBH1
Spannungsversorgung WärmepumpenplatinePower supply heat pump PCBH3
Spannungsversorgung LüftungsplatinePower supply ventilation PCBH2
CO2-SensorCO2 sensorS2
FeuchtesensorHumidity sensorS1

The M1 terminal is for Modbus RTU (RS-485) only. For Modbus TCP communication with TapHome, use the LAN (Ethernet) port. The internal Modbus connections (M2, M3) are reserved for communication between the unit’s PCBs and must not be used for external systems.

Modbus/KNX gateway connection
Pichler PKOM4 Modbus/KNX gateway connection to M1 terminal

If a Modbus/KNX gateway (08KNXGAC) is installed, it connects to the M1 terminal on the main board via RS-485 (A+/B-/GND). The gateway acts as a Modbus master. This connection path is an alternative to direct Modbus TCP — TapHome typically uses the LAN port directly.

Configuration

When importing the template in TapHome, provide:

  • IP Address — the unit’s IP on the local network
  • Slave ID — Modbus slave address (default: 1)

The Homebridge plugin references slave ID 41 for Modbus RTU connections. For Modbus TCP via the LAN port (as used by TapHome), the default slave ID is 1. If communication fails, verify the slave ID configured on the unit.

Device capabilities

The template exposes the following devices:

Operating mode control
  • Operating Mode (multi-value switch) — selects the unit’s operating mode via register H:0. Available modes: OFF, Summer, Winter, Auto, Holiday, Hot Water, Ventilation Valve Adjustment and Test.
  • Room Temperature Regulation (switch) — enables or disables active room temperature regulation via register H:1.
Temperature control

Three thermostat devices are provided for temperature setpoint management:

  • Room Temperature Setpoint — reads the current room temperature from input register A:19 and writes the desired setpoint to H:10. Default setpoint is 22 °C (parameter A12).
  • Cooling Start Temperature — reads the current temperature from A:19 and writes the cooling activation threshold to H:19. Active cooling does not start below this temperature.
  • DHW Temperature — reads the current domestic hot water temperature from A:162 and writes the desired setpoint to H:129. The heat pump heats water up to 55 °C, the electric heater up to 65 °C. Available on Classic models only.
Ventilation control
  • Ventilation Level (multi-value switch) — selects the ventilation level via register H:46. Level 0 is automatic mode, levels 1–9 correspond to increasing airflow. Actual air volumes for levels 1–4 are configurable via parameters C08–C11 (PKOM4A: 85–250 m³/h, PKOM4AK: 50–150 m³/h).
  • Current Air Volume (sensor) — reads the actual airflow from input register A:23, displayed in m³/h.
Cooling control
  • Active Cooling (multi-value switch) — enables or disables active cooling via register H:9. Available options: No (0), Yes (1), Yes at Eco Tariff (2). The Eco Tariff option uses the Smart Grid contact E1 for cost-optimized cooling.
Humidity and air quality
  • Max. Allowed Humidity (dimmer) — sets the maximum allowed relative humidity threshold via register H:102. Used for demand-driven ventilation control when a humidity sensor is installed.
Hot water management
  • Legionella Protection (multi-value switch) — enables or disables the legionella protection function via register H:141. When active, the unit periodically heats the DHW tank to a disinfection temperature. The protection interval is configurable via parameter W13 (default: 14 days).
Energy monitoring

Three read-only sensors track cumulative energy consumption:

  • Ventilation Energy Consumption — ventilation fan energy from A:29 (kWh)
  • Heating Energy Consumption — heat pump heating energy from A:64 (kWh)
  • Total Energy Consumption — combined energy counter (ventilation + heating + DHW + cooling) from A:65 (kWh)
Filter maintenance
  • Filter Operating Hours — reads the filter usage counter from H:314 (hours)
  • Filter Remaining Time — reads the remaining filter life from H:315. The filter replacement interval is configurable via parameter Y2 (default: 4 months).
Additional capabilities

The PKOM4 also exposes Modbus registers for outside air temperature, supply air temperature, current ventilation level, error codes, device status, room temperature regulation mode, scheduler/timer settings, CO2 concentration threshold, minimum humidity threshold and firmware version. These can be added to the TapHome template in a future update.

Troubleshooting

No Modbus communication
  1. Verify the Ethernet cable is connected to the LAN port on the main board
  2. Confirm the unit’s IP address — check the router’s DHCP lease table or the Pichler app
  3. Ensure TapHome Core and the PKOM4 unit are on the same network/subnet
  4. Check that no firewall is blocking port 502
  5. Verify the slave ID matches (default: 1 for Modbus TCP)
Incorrect temperature readings

Temperature values use a scaling factor of 1/100 (register value divided by 100). If displayed values appear 100 times too large or too small, verify the template scaling configuration.

DHW not heating

DHW heating is available only on Classic models (PKOM4A classic, PKOM4AK classic). Trend models do not include a hot water tank. Verify that the Hot Water operating mode is available and the DHW temperature setpoint is within the allowed range (up to 55 °C for heat pump, 65 °C for electric heater).

Communication errors 31/32

Error codes 31 (communication ventilation board) and 32 (communication heat pump board) indicate internal Modbus bus faults between the unit’s PCBs, not issues with the external TapHome connection. Contact a qualified service technician.

Available devices

Pichler PKOM4 Module
Ventilation Level Multi-value Switch

Ventilation level selector -- Auto or manual levels 1-9 with increasing airflow

Register: H:46 UInt16 numeric
Values / States: Auto

Ventilation Level

Read switch state
MODBUSR(H, 46, UInt16)
Write switch state
MODBUSWNE(H, 46, UInt16, Mu)
Operating Mode Multi-value Switch

Operating mode selector -- OFF, Summer, Winter, Auto, Holiday, Hot Water, Vent Valve Adj., Test

Register: H:0 UInt16 numeric
Values / States: OFF · Summer · Winter · Auto · Holiday · Hot Water · Vent Valve Adj. · Test

Operating Mode

Read switch state
MODBUSR(H, 0, UInt16)
Write switch state
MODBUSWNE(H, 0, UInt16, Mu)
Room Temperature Regulation Switch

Enables or disables active room temperature regulation

Register: H:1 Bool boolean
Values / States: ON · OFF

Room Temperature Regulation

Read switch state
MODBUSR(H, 1, Bool)
Write switch state
MODBUSWNE(H, 1, Bool, St)
Active Cooling Multi-value Switch

Active cooling control -- No, Yes, or Yes at Eco Tariff (Smart Grid E1)

Register: H:9 Int16 numeric
Values / States: No · Yes · Yes at Eco Tariff

Active Cooling

Read switch state
MODBUSR(H, 9, Int16)
Write switch state
MODBUSWNE(H, 9, Int16, Mu)
Max. Allowed Humidity Dimmer

Maximum relative humidity threshold for demand-driven ventilation control

Register: H:102 UInt16 Unit: % scaled

Max. Allowed Humidity

Read level
MODBUSR(H, 102, UInt16) / 1000
Write level
MODBUSWNE(H, 102, UInt16, Le * 1000)
Cooling Start Temperature Thermostat

Temperature threshold for active cooling activation -- cooling does not start below this value

Register: A:19H:19 Int16 Unit: °C scaled

Cooling Start Temperature

Read temperature
MODBUSR(A, 19, Int16) / 100
Read desired temperature
MODBUSR(H, 19, Int16) / 100
Write desired temperature
MODBUSWNE(H, 19, UInt16, Se * 100)
DHW Temperature Thermostat

Domestic hot water temperature -- heat pump max 55 °C, electric heater max 65 °C (Classic models only)

Register: A:162H:129 UInt16 Unit: °C scaled

DHW Temperature

Read temperature
MODBUSR(A,162 , UInt16) / 100
Read desired temperature
MODBUSR(H, 129, UInt16) / 100
Write desired temperature
MODBUSWNE(H, 129, UInt16, Se * 100)
Filter Remaining Time Variable Read-only

Remaining filter life -- replacement interval configurable via parameter Y2

Register: H:315 Int16

Filter Remaining Time

Read
MODBUSR(H, 315, Int16)
Room Temperature Setpoint Thermostat
Register: A:19H:10 Int16 Unit: °C scaled

Room Temperature Setpoint

Read temperature
MODBUSR(A, 19, Int16) / 100
Read desired temperature
MODBUSR(H, 10, Int16) / 100
Write desired temperature
MODBUSWNE(H, 10, UInt16, Se * 100)
Current Air Volume Variable Read-only

Actual airflow in m3/h

Register: A:23 Int16 Unit: m³/h scaled

Current Air Volume

Read
MODBUSR(A, 23, Int16)/10
Ventilation Energy Consumption Variable Read-only

Cumulative energy consumed by ventilation fans

Register: A:29 Int16 Unit: kWh scaled

Ventilation Energy Consumption

Read
MODBUSR(A, 29, Int16)/1000
Heating Energy Consumption Variable Read-only

Cumulative energy consumed by heat pump in heating mode

Register: A:64 Int16 Unit: kWh scaled

Heating Energy Consumption

Read
MODBUSR(A, 64, Int16)/1000
Total Energy Consumption Variable Read-only

Combined energy counter -- ventilation, heating, DHW and cooling

Register: A:65 Int16 Unit: kWh scaled

Total Energy Consumption

Read
MODBUSR(A, 65, Int16)/1000
Legionella Protection Multi-value Switch

Periodic DHW tank disinfection -- protection interval configurable (default 14 days)

Register: H:141 UInt16 numeric
Values / States: Off · On

Legionella Protection

Read switch state
MODBUSR(H, 141, UInt16)
Write switch state
MODBUSWNE(H, 141, UInt16, Mu)
Filter Operating Hours Variable Read-only

Filter usage counter in operating hours

Register: H:314 Int16 Unit: hours

Filter Operating Hours

Read
MODBUSR(H, 314, Int16)
Connection: Modbus TCP • Slave ID: $[SlaveId]
Possible improvements (15)
  • A:24 Outside Air Temperature — UInt16, ÷10, °C, read-only -- T3 outdoor air sensor
  • A:25 Supply Air Temperature — UInt16, ÷10, °C, read-only -- T1 supply air sensor
  • A:30 Current Ventilation Level — UInt16, read-only -- actual running ventilation level
  • A:37 Current Error Code — Int16, read-only -- error codes 0-40 per installation manual
  • A:38 Device Status — UInt16, read-only -- operational status
  • H:11 Room Setpoint -- Cooling — Int16, ÷100, °C, R/W -- cooling mode room temperature setpoint
  • H:16 Room Temperature Regulation Mode — UInt16, R/W -- regulation mode selector
  • H:56 Scheduler / Timer Setting — UInt16, R/W -- weekly schedule configuration
  • H:101 CO2 Concentration Threshold — UInt16, ppm, R/W -- demand-driven ventilation threshold (default 1000 ppm)
  • H:103 Min. Humidity Threshold — UInt16, ÷10, %, R/W -- lower humidity boundary for ventilation control
  • H:137 Legionella Protection Interval — UInt16, days, R/W -- default 14 days
  • H:149 Air Volume Level Override — UInt16, R/W -- manual airflow override
  • H:201 Room Temperature (Current Reading) — Int16, ÷100, °C, R/W -- direct room temperature reading
  • A:191 Operating Hours / Status — UInt16, read-only -- unit operating hours or status counter
  • A:36 Firmware Version — UInt16, ÷10, read-only

Sources