TapHome

Zehnder ComfoConnect PRO

Modbus TCP
Submitted by
Last updated: 03. 2026
Zehnder ComfoConnect PRO

The Zehnder ComfoConnect PRO is a modular gateway that bridges Zehnder ComfoAir ventilation units (Q350, Q450, Q600, Flex and Classic series) to external building automation systems via Modbus TCP. TapHome connects to the gateway over Ethernet — the gateway then communicates with the ventilation unit over the ComfoNet CAN bus.

The template provides ventilation preset control (Away / Low / Medium / High), four temperature and humidity sensors (extract, exhaust, outdoor, supply), supply airflow reading, filter status monitoring, temperature profile selection and a configurable boost mode.

Hardware connection

The ComfoConnect PRO sits between the home network and the Zehnder ventilation unit. It connects to the ventilation unit via the included ComfoNet cable (CAN bus) and to the network via Ethernet (RJ45) or Wi-Fi.

Zehnder ComfoConnect PRO system diagram — network, gateway and ventilation unit
  • Protocol: Modbus TCP
  • Port: 502
  • Default Slave ID: 1
  • Hostname: comfoconnectpro.local (mDNS)
Connector layout
Zehnder ComfoConnect PRO connector layout — front, side and bottom view

Key connectors relevant for TapHome integration:

ConnectorFunction
Ethernet (RJ45)Network connection — Modbus TCP communication with TapHome
ComfoNetCAN bus cable to the ventilation unit (CAN_H, CAN_L, 12V, GND)
Modbus RTU (H, L)RS-485 — alternative for BMS integration (not needed for TapHome)
USBService connection
PSU 12VDCPower supply input (12V, 2A max)
ComfoNet cable wiring
Zehnder ComfoConnect PRO ComfoNet cable connection to ventilation unit
Wire ColorConnection
WHITECAN_L
YELLOWCAN_H
BLACKGND
RED12V

Enabling Modbus TCP communication

Modbus TCP must be enabled through the ComfoConnect PRO web interface before TapHome can communicate with the device.

  1. Connect the ComfoConnect PRO to your local network via Ethernet or Wi-Fi
  2. Open a browser and navigate to http://comfoconnectpro.local (or the device IP address)
  3. Log in with username admin and the password set during first configuration
  4. Navigate to Configurations > Third Party Settings
  5. Select Modbus TCP from the protocol dropdown
  6. Keep the default settings — Slave ID: 1, TCP Port: 502
  7. Click Apply — the device will reboot to apply the new settings

Saving Modbus TCP settings will reboot the ComfoConnect PRO. The device will be temporarily unavailable during the restart.

Configuration in TapHome

When importing the template in TapHome, provide:

  • IP Address — the ComfoConnect PRO’s IP on the local network (check the web interface Network page)
  • Slave ID — Modbus slave address (default: 1)

The ComfoConnect PRO supports mDNS — it is discoverable as comfoconnectpro.local. Assign a static IP address in the router’s DHCP settings to prevent the address from changing after a power cycle.

Device capabilities

The template exposes the following devices:

Ventilation control
  • Ventilation (multi-value switch) — ventilation preset via holding register HR:0. Selects the airflow level: Away (minimum), Low, Medium, High. The ventilation unit adjusts fan speeds according to the selected preset.
  • Ventilation Boost — toggle switch via coil C:6. Activates maximum airflow for a configurable duration (default 2 hours / 7200 seconds set during template initialization via HR:4). Boost is available when auto mode is disabled.
  • Airflow — read-only sensor showing the current supply fan volume flow in m³/h from input register IR:6.
Temperature and humidity monitoring

The template includes four combined temperature and humidity sensors. Temperature values are stored as °C × 10 (Int16, divide by 10), humidity as percentage (Int16, divide by 100).

SensorTemp RegisterHumidity RegisterDescription
ExtractIR:8IR:13Air taken from rooms before the heat exchanger
ExhaustIR:9IR:14Air leaving the heat exchanger to outside
OutdoorIR:10IR:15Fresh air intake
SupplyIR:11IR:16Heated fresh air delivered to rooms

Room temperature (IR:7) and room humidity (IR:12) are available in the Modbus register map but not included in the template. These require an optional room sensor connected to the ventilation unit.

Temperature profile
  • Temperature Profile (multi-value switch) — selects the heat exchanger bypass behavior via holding register HR:1. Values: Normal (balanced), Cold (retains more heat), Warm (allows more bypass cooling).
Filter monitoring
  • Filter Dirty — read-only binary sensor from discrete input DI:3. Indicates when the filter needs replacement or cleaning.
  • Filter Days Left — read-only sensor from input register IR:25. Shows the remaining filter lifetime in days, counting down from the configured filter lifetime.
Additional register capabilities

The ComfoConnect PRO exposes additional Modbus registers not currently included in the TapHome template:

RegisterNameTypeNotes
IR:0Connection StateSensor0=OK, 30=not CAQ, 40=version incompatible, 50=no unit
IR:1–IR:5Active Errors 1–5SensorError codes (84 defined codes)
IR:17–IR:24CO2 Zones 1–8Sensorppm, requires optional CO2 sensors
HR:2Temperature Profile ModeConfig0=Adaptive, 1=Fixed, 2=External Setpoint
HR:3External SetpointConfig°C×10, range 5–35°C
C:0Reset ErrorsActionSelf-resetting coil
C:5Auto ModeConfigEnable/disable automatic ventilation
C:7Away FunctionConfigEnable/disable away function
C:8ComfoCoolConfigEnable/disable passive cooling

Compatible ventilation units

The ComfoConnect PRO works with the following Zehnder ventilation systems:

  • ComfoAir Q series — Q350, Q450, Q600 (ComfoNet compatible)
  • ComfoAir Flex — ComfoNet compatible
  • ComfoAir Classic series — ComfoAir 160, 180, 200, 225, 350, 450, 550, SL220, SL330, Standard 300, Standard 375 (available from software release 1.1)

Troubleshooting

No Modbus communication
  1. Verify Modbus TCP is enabled in the web interface (Configurations > Third Party Settings)
  2. Confirm the ComfoConnect PRO IP address — check http://comfoconnectpro.local or the router’s DHCP lease table
  3. Ensure TapHome Core and the ComfoConnect PRO are on the same network/subnet
  4. Check that no firewall is blocking port 502
  5. Verify the ComfoNet LED is solid green — blinking indicates a cable issue between the gateway and the ventilation unit
Gateway path unavailable error

The Modbus exception code 0x0A (GatewayPathUnavailable) indicates the ComfoConnect PRO cannot reach the ventilation unit over ComfoNet. Check the ComfoNet cable connections and verify the ventilation unit is powered on.

Boost mode not responding

Boost mode via coil C:6 only works when Auto Mode (coil C:5) is disabled. The template initialization script disables Auto Mode automatically, but if it was re-enabled manually, boost commands will be ignored.

Available devices

ComfoConnect PRO Module
Service Actions
Action

ComfoConnect PRO

Service Actions
Akce
Airflow Variable Read-only

Supply fan volume flow in m³/h

Register: IR:6 Int16 Unit: m³/h

Airflow

Read
MODBUSR(A, 6, Int16)
Exhaust Temperature & Humidity Temperature Sensor Read-only

Exhaust air temperature and humidity — air leaving the heat exchanger to outside

Register: IR:9 (temp), IR:14 (hum) Int16 Unit: °C / % scaled

Exhaust Temperature & Humidity

Read humidity
MODBUSR(A, 14, Int16) / 100
Read temperature
MODBUSR(A, 9, Int16) / 10
Extract Temperature & Humidity Temperature Sensor Read-only

Extract air temperature and humidity — air taken from rooms before the heat exchanger

Register: IR:8 (temp), IR:13 (hum) Int16 Unit: °C / % scaled

Extract Temperature & Humidity

Read humidity
MODBUSR(A, 13, Int16) / 100
Read temperature
MODBUSR(A, 8, Int16) / 10
Filter Dirty Reed Contact Read-only

Filter replacement or cleaning warning

Register: DI:3 Bool boolean

Filter Dirty

Read
MODBUSR(D, 3, Bool)
Outdoor Temperature & Humidity Temperature Sensor Read-only

Outdoor air temperature and humidity at the fresh air intake

Register: IR:10 (temp), IR:15 (hum) Int16 Unit: °C / % scaled

Outdoor Temperature & Humidity

Read humidity
MODBUSR(A,15,Int16)/100
Read temperature
MODBUSR(A, 10, Int16) / 10
Supply Temperature & Humidity Temperature Sensor Read-only

Supply air temperature and humidity — heated fresh air delivered to rooms

Register: IR:11 (temp), IR:16 (hum) Int16 Unit: °C / % scaled

Supply Temperature & Humidity

Read humidity
MODBUSR(A, 16, Int16) / 100
Read temperature
MODBUSR(A, 11, Int16) / 10
Temperature Profile Multi-value Switch

Heat exchanger bypass behavior — Normal, Cold (retains more heat), Warm (allows more bypass cooling)

Register: SH:1 Int16 numeric
Values / States: Normal · Cold · Warm

Temperature Profile

Read switch state
MODBUSR(SH, 1, Int16)
Write switch state
MODBUSW(SH, 1, Int16, Mu)
Ventilation Multi-value Switch

Ventilation preset — Away (minimum), Low, Medium, High

Register: SH:0 Int16 numeric
Values / States: Away · Low · Medium · High

Ventilation

Read switch state
MODBUSR(SH, 0, Int16)
Write switch state
MODBUSW(SH, 0, Int16, Mu)
Filter Days Left Variable Read-only

Remaining filter lifetime in days

Register: IR:25 Int16 Unit: days

Filter Days Left

Read
MODBUSR(A, 25, Int16)
Ventilation Boost Switch

Maximum airflow for a configurable duration (default 2 hours)

Register: C:6 Bool boolean

Ventilation Boost

Read switch state
MODBUSR(SC,6,Bool)
Write switch state
MODBUSW(SC,6, Bool,St)
Read (module)
MODBUSW(H,4,UInt16,7200)
Connection: Modbus TCP • Slave ID: $[SlaveId]
Possible improvements (16)
  • IR:0 Connection State — UINT16, 0=ok, 30=not CAQ, 40=version incompatible, 50=no unit detected
  • IR:1–IR:5 Active Errors 1–5 — UINT16, error codes (84 defined codes from 0=NO_ERR to 104=CO2_SENS_GENERAL_ERR)
  • IR:7 Room Temperature — INT16, °C*10, requires optional room sensor
  • IR:12 Room Humidity — UINT16, %, requires optional room sensor
  • IR:17–IR:24 CO2 Sensor Zones 1–8 — UINT16, ppm, requires optional CO2 sensors
  • HR:2 Temperature Profile Mode — UINT16, 0=Adaptive, 1=Fixed, 2=External Setpoint, R/W
  • HR:3 External Setpoint — UINT16, °C*10, range 5–35°C, R/W
  • HR:4 Boost Time — UINT16, seconds, 65535=24 hours. Already used in boost init script but not exposed as separate device
  • DI:0 Error Flag — Bool, general error indicator
  • DI:1 Standby — Bool, standby state
  • DI:2 ComfoHood — Bool, ComfoHood cooker hood active
  • C:0 Reset Errors — Self-resetting coil, write to clear active errors
  • C:1–C:4 Ventilation Preset Coils (Away/1/2/3) — Individual coils for each preset. Only true writes accepted — false is ignored
  • C:5 Auto Mode — Bool, enable/disable automatic ventilation mode
  • C:7 Away Function — Bool, enable/disable away function
  • C:8 ComfoCool — Bool, enable/disable passive cooling

Sources

  • Zehnder ComfoConnect PRO — Installer Manual
    zehnder.lv 2026-03-21
    PDF
  • HA Custom Component — ha_comfoconnectpro (Modbus TCP)
    github.com 2026-03-21