TapHome

Nilan CTS-602 Air Recovery

Modbus RTU
Submitted by
Last updated: 03. 2026
Nilan CTS-602 Air Recovery

The Nilan CTS-602 Air Recovery template is designed for Nilan’s Comfort 250, Comfort 300, Comfort 300 Top, Comfort CT300, Comfort 450 and Comfort 600 series ventilation units with heat recovery. These are HRV (heat recovery ventilation) units controlled by the CTS-602 controller. The TapHome template connects to the CTS-602 via Modbus TCP, providing temperature setpoint control, ventilation step control, humidity monitoring, operating mode selection and electric boiler switching.

The CTS-602 natively communicates via Modbus RTU over RS-485. A Modbus RTU-to-TCP bridge device (e.g. USR-TCP232 or Waveshare RS485 TO ETH) is required to connect to TapHome.

This is the Air Recovery variant of the CTS-602 template with 6 devices focused on core ventilation and climate control. The Nilan CTS-602 Heat Pump template for the same controller exposes 38 devices including additional temperature sensors, output status monitoring and hot water management.

Hardware connection

The Modbus RS-485 interface is available on the 6-pin CN7 connector (next to the USB plug) directly on the CTS-602 PCB:

Nilan CTS602 CN7 Modbus connector pinout
PinFunction
112 VDC output
2COM1 — RS-485 Data+ (A) — Modbus
3COM1 — RS-485 Data- (/B) — Modbus
4COM2 — RS-485 Data+ (A) — User panel
5COM2 — RS-485 Data- (/B) — User panel
6Ground

Connect the RTU-to-TCP bridge to pins 2 (Data+), 3 (Data-) and 6 (GND) using COM1. COM2 is reserved for the HMI user panel.

On Comfort 250/300/300 Top/450/600 models with the older knob-based panel, the Modbus wires can also be accessed through the 8-pole connector plug on top of the unit (pin 6 = A1/Data+, pin 7 = B1/Data-, pin 1 = GND).

Modbus RTU point-to-point RS-485 bus wiring with termination resistors

The CTS-602 has no opto-isolation on the RS-485 port. Use shielded twisted-pair cable (AWG 24/0.25 mm², impedance 100-130 Ohm). Maximum cable length is 200 m. Install 120 Ohm termination resistors at each end of the bus.

Enabling Modbus communication

The Modbus interface is always active on the CTS-602 — there is no separate “enable Modbus” setting. Only the slave address needs to be configured.

The default slave address is 30 (configurable 1-247). To change it, enter the SERVICE menu on the CTS-602 control panel:

  1. Press Down + ENTER simultaneously for 10 seconds to activate the service menu
  2. Press Down multiple times until the panel shows SERVICE, then press ENTER
  3. Scroll down through the menu items (HEATING SURFACE, AIR QUALITY, AIR EXCHANGE, DEFROST, TEMP. CONTROL, INLET CONTROL, ROOM CONTROL, RESTART, RESET, MANUAL, PWR SAVE) until you reach MODBUS ADR 30
  4. Press ENTER to edit the address, use Up/Down to change the value, then press ENTER to confirm
Nilan CTS602 service menu showing Modbus address configuration

Configuration

RS-485 bridge settings

Configure the RTU-to-TCP bridge with the following parameters:

ParameterValue
Baud rate19200
Data bits8
ParityEven
Stop bits1

These communication parameters are fixed on the CTS-602 and cannot be changed.

TapHome import parameters

When importing the template, TapHome prompts for:

  • Slave ID — default 30 in template, change to match the CTS-602 setting if modified
  • IP Address — the IP address of the RTU-to-TCP bridge device

Device capabilities

Temperature control

The Temperature Setpoint thermostat device reads the current room temperature from the T15 user panel sensor (A:215) and writes the desired temperature setpoint to H:1004. It also reads humidity from the built-in humidity sensor (A:221). All temperature values use a scale factor of 100 (register value 2200 = 22.00 °C).

Humidity monitoring

The Humidity sensor reads the indoor humidity value from A:221 (AirQual.RH), displayed as a percentage. This is useful for indoor air quality monitoring and can be used in TapHome automations to trigger ventilation speed changes.

Operating mode control

The Mode Set selector controls the operating mode via H:1002 with the following values:

  • 0 = Off
  • 1 = Heat
  • 2 = Cool
  • 3 = Auto
  • 4 = Service
Ventilation control

The Ventilation Level Set device provides read/write control of the ventilation fan step via H:1003 (Control.VentSet):

  • 0 = Off
  • 1-4 = Ventilation step (corresponding to the fan speed percentages configured in the CTS-602 AIR EXCHANGE service menu)

The Inlet Fan Speed device reads and writes the inlet fan speed as a percentage of maximum capacity via H:201 (Output.InletSpeed), with a scale factor of 100.

Electric boiler control

The Electric Boiler switch controls the EK heater relay (H:119, Output.CenHeat_1) for units equipped with an electric heating element. This is a simple on/off switch.

Additional capabilities

The CTS-602 controller exposes many more registers that can be added in a future template update, including:

  • Temperature sensors T0-T8 (controller board, intake, inlet, exhaust, outlet, outdoor temperatures)
  • Run state and control state monitoring (A:1000, A:1002)
  • Filter change counters (A:1103, A:1104)
  • Heat exchanger efficiency (A:1204)
  • Exhaust fan speed (H:200)
  • CO2 sensor (A:222)
  • Alarm status and reset (A:400, H:400)
  • Service mode control (H:1005)

For a more comprehensive template with 38 devices including all temperature sensors, output status monitoring and hot water management, see the Nilan CTS-602 Heat Pump template. Both templates use the same CTS-602 controller and can be used on the same hardware — choose the one that best fits your unit type and monitoring needs.

Troubleshooting

No Modbus communication
  1. Verify the RTU-to-TCP bridge is configured with the correct parameters: 19200 baud, 8 data bits, Even parity, 1 stop bit
  2. Check that the Slave ID in TapHome matches the CTS-602 setting (default 30)
  3. Confirm the RS-485 wiring — via CN7: pin 2 (Data+), pin 3 (Data-), pin 6 (GND)
  4. If communication fails, try swapping A and B lines — polarity can be reversed
  5. Verify the bridge device IP address is reachable from TapHome Core
  6. Check termination resistors (120 Ohm) at both ends of the RS-485 bus
Temperature readings show incorrect values

All temperature registers use a scale factor of 100. A raw value of 2200 means 22.00 °C. If values appear 100x too large or as raw integers, verify the template is correctly applied.

Ventilation step changes not taking effect

The CTS-602 may override the ventilation step setting during certain conditions (e.g. humidity-controlled ventilation, low outdoor temperature reduction, or alarm states). Check the AIR QUALITY and AIR EXCHANGE settings in the service menu. If humidity or CO2 regulation is enabled, the controller may automatically increase or decrease fan speed regardless of the Modbus setting.

Available devices

Nilan CTS-602 Air Recovery Module
Electric Boiler Switch

EK heater relay on/off control — switches the electric heating element

Register: H:119 Bool

Electric Boiler

Read switch state
MODBUSR(H, 119, Bool)
Write switch state
MODBUSWNE(H, 119, Bool, St)
Inlet Fan Speed Variable

Inlet fan speed as percentage of maximum capacity

Register: H:201 Int16 Unit: % numeric

Inlet Fan Speed

Read
MODBUSR(H, 201, Int16)/100
Write
MODBUSWNE(H, 201, Int16, Va/100)
Mode Set Multi-value Switch

Operating mode selector — Off, Heat, Cool, Auto, Service

Register: H:1002 Int16 numeric
Values / States: Off · Heat · Cool · Auto · Service

Mode Set

Read switch state
MODBUSR(H, 1002, Int16)
Write switch state
MODBUSWNE(H, 1002, Int16, Mu)
Humidity Variable Read-only

Indoor humidity sensor value for air quality monitoring

Register: A:221 Int16 Unit: % numeric

Humidity

Read
MODBUSR(A, 221, Int16)/100
Temperature Setpoint Thermostat

Room temperature setpoint — reads current from T15 room sensor, writes desired temperature

Register: A:215 (current) / H:1004 (desired)H:1004 Int16 Unit: °C numeric

Temperature Setpoint

Read temperature
MODBUSR(A, 215, Int16)/100
Read desired temperature
MODBUSR(H, 1004, Int16)/100
Write desired temperature
MODBUSWNE(H, 1004, Int16, Se*100)
Read humidity
MODBUSR(A, 221, Int16)/100
Ventilation Level Set Multi-value Switch

Ventilation fan step selector — Off, Level 1-4

Register: H:1003 Int16 Unit: step numeric
Values / States: Off

Ventilation Level Set

Read switch state
MODBUSR(H, 1003, Int16)
Write switch state
MODBUSWNE(H, 1003, Int16, Mu)
Connection: Modbus RTU • 19200 baud• 8E1 • Slave ID: $[SlaveId]
Possible improvements (25)
  • A:200 Controller Board Temperature (T0) — Controller board temperature, scale /100 °C
  • A:201 Intake Temperature (T1) — Fresh air intake temperature, scale /100 °C
  • A:202 Inlet Temperature Before Heater (T2) — Important for monitoring heating element effectiveness
  • A:203 Exhaust Temperature (T3) — Room exhaust temperature, scale /100 °C
  • A:204 Outlet Temperature (T4) — Exhaust air outlet temperature
  • A:207 Inlet Temperature After Heater (T7) — Key sensor for verifying actual supply air temperature
  • A:208 Outdoor Temperature (T8) — Outdoor temperature — important for climate overview
  • A:1000 Run Actual — Actual on/off state (0=Off, 1=On). Important for verifying unit is running
  • A:1001 Mode Actual — Actual mode (0=Off, 1=Heat, 2=Cool, 3=Auto, 4=Service)
  • A:1002 Control State Display — Active control state (0-17: Off, Shift, Stop, Start, Standby, Vent stop, Ventilation, Heating, Cooling, etc.)
  • A:1100 Ventilation Step Actual — Actual ventilation step (0=Off, 1-4=Step). Read-only counterpart to H:1003 write
  • A:1101 Inlet Fan Step Actual — Actual inlet fan speed step (0-4)
  • A:1102 Exhaust Fan Step Actual — Actual exhaust fan speed step (0-4)
  • A:1103 Days Since Filter Change — Days since last air filter change alarm
  • A:1104 Days To Filter Change — Days to next air filter change alarm
  • A:1201 Inlet Temperature Setpoint — Inlet temperature request (T7 setpoint), scale /100 °C
  • A:1202 Controlled Temperature — Master temperature used for control loop, scale /100 °C
  • A:1204 Heat Exchanger Efficiency — Passive heat exchanger efficiency, scale /100 %
  • A:400 Alarm Status — Alarm state bitmask (0x80=active alarm, 0x0F=count)
  • H:1001 Run Set — User on/off select (0=Off, 1=On). Important for remote on/off control
  • H:1005 Service Mode — Service mode (0-8: Off, Defrost, Flaps, Inlet, Exhaust, Compressor, Heating, Hot Water, Central Heat)
  • H:400 Alarm Reset — Write 255 to clear all alarms, or 101-199 to clear specific alarm code
  • H:200 Exhaust Fan Speed — Exhaust fan speed, scale /100 (0-100%). Template only has inlet fan speed (H:201)
  • A:1200 Summer State — Summer/winter mode indicator (0=winter, 1=summer)
  • A:222 CO2 Level — CO2 sensor value in ppm. Important for IAQ monitoring

Sources

  • Nilan CTS602 HMI350T Modbus Protocol v23
    PDF
  • veista/nilan — Home Assistant CTS602 Integration
    github.com 2026-03-20
  • DanGunvald/NilanModbus — Arduino Modbus-HTTP/MQTT Bridge
    github.com 2026-03-20
  • Nilan CTS602 Installation Instructions — Comfort 250-600 Top (EN)
    PDF