TapHome

Dantherm HCV Air Recovery

Modbus TCP
Submitted by
Last updated: 03. 2026
Dantherm HCV Air Recovery

The Dantherm HCV series (300, 400, 460, 500, 700) are mechanical ventilation heat recovery (MVHR) units with thermal efficiency above 90%. TapHome connects directly to the unit via Modbus TCP over Ethernet — no additional gateway is required.

The template provides operating mode control, fan level adjustment (0–4), fan RPM monitoring, outdoor temperature reading, and dedicated switches for Away and Fireplace modes.

Network connection

The HCV unit has an RJ45 Ethernet port (LAN) on the main PCB. Connect it to the same local network as TapHome Core using a standard Ethernet cable.

  • Protocol: Modbus TCP
  • Port: 502
  • Default Slave ID: 1
  • Byte order: Little-endian (word swap)

The RS-485 port (J19) on the PCB is reserved for internal Dantherm accessories only. External systems such as TapHome must use the Ethernet/LAN port for Modbus TCP communication.

PCB connections
Dantherm HCV main PCB connector layout

Key connectors relevant for TapHome integration:

ConnectorFunction
LANEthernet — Modbus TCP communication with TapHome
J19RS-485 — internal Dantherm accessories only
J1Digital inputs — external fan speed override (optional)
USBService connection for PC Tool

Configuration

No special configuration is needed on the HCV unit. The Ethernet port is active by default with Modbus TCP on port 502.

When importing the template in TapHome, provide:

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

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

Device capabilities

The template exposes the following devices:

Operating mode control

Two mode devices are provided:

  • Mode (multi-value switch) — select from: Standby, Demand, Manual, Week Program, Away, Fireplace, Summer. Uses register H:168 with bitmask encoding for both reading and writing.
  • Mode (numeric variable) — reads the current mode as a numeric value from H:168 and writes to H:170. Useful for automation rules that need numeric mode values.
  • Current State — read-only sensor showing the active operating mode from register H:472. This reflects the actual running mode, including system-initiated states like Defrost.
Fan control
  • Ventilation (multi-value switch) — fan level 0–4 via register H:324. Level 0 turns fans off, levels 1–4 correspond to increasing airflow.
  • RPM Fan 1 / RPM Fan 2 — read-only sensors showing actual fan speeds in RPM from registers H:100 and H:102 (LittleEndianFloat).
Quick mode switches
  • Away Mode — toggle switch for Away mode (bitmask 0x10 on register H:168)
  • Fireplace Mode — toggle switch for Fireplace mode (bitmask 0x40 on register H:168). Fireplace mode creates positive pressure by increasing supply airflow relative to extract.
Temperature monitoring

The template includes outdoor temperature reading from register H:132 (LittleEndianFloat). The HCV unit measures up to 5 temperatures internally — only T1 is currently included in the template:

RegisterSensorDescriptionIn template
H:132T1Outdoor air temperatureYes
H:134T2Supply air temperatureNo
H:136T3Extract air temperatureNo
H:138T4Exhaust air temperatureNo
H:140RoomRoom temperature (optional sensor)No

Temperature sensor assignments depend on the Operating Mode switch (A/B) on the PCB. In Mode B, the physical sensor mapping is swapped — S1 reads extract air instead of outdoor air. Verify the switch position matches the installation.

Additional device capabilities

The HCV units also expose Modbus registers for filter management (remaining days, lifetime, reset), bypass damper status, humidity monitoring (with optional RH sensor), alarm status and CO2 levels (with optional CO2 sensor via HAC controller). 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 (not USB or J19)
  2. Confirm the unit’s IP address — check the router’s DHCP lease table
  3. Ensure TapHome Core and the HCV unit are on the same network/subnet
  4. Check that no firewall is blocking port 502
Mode changes not applied

The unit ignores mode write commands during Defrost. Wait for the defrost cycle to complete before changing modes. Current state (H:472) will show value 15 during active defrost.

Incorrect temperature readings

Check the A/B operating mode switch position on the PCB (SW2). The sensor-to-register mapping differs between Mode A and Mode B — an incorrect switch position will show swapped temperature values.

Available devices

Dantherm Air Recovery Module
Current State Variable Read-only

Active operating mode including system-initiated states (e.g. Defrost, Night)

Register: H:472 UInt16 numeric

Current State

Read
MODBUSR(H, 472, UInt16)
Mode Multi-value Switch

Operating mode selector — Standby, Demand, Manual, Week Program, Away, Fireplace, Summer

Register: H:168 LittleEndianInt32 bitmask
Values / States: Standby · Demand Mode · Manual Mode · Week Program Mode · Away Mode · Fireplace Mode · Summer Mode · Other

Mode

Read switch state
SWITCH(MODBUSR(H, 168, LittleEndianInt32), 0, 0, 0x02, 1, 0x04, 2, 0x08, 3, 0x12, 1, 0x42, 1, 0x14, 2, 0x44, 2, 0x18, 3, 0x48, 3, 7)
Write switch state
MODBUSWNE(H, 168, LittleEndianInt32, SWITCH(Mu, 0, 0, 1, 0x02, 2, 0x04, 3, 0x08, 0))
Mode (numeric) Variable

Numeric mode variable — reads active mode from H:168, writes to dedicated register H:170 for automation rules

Register: H:168H:170 LittleEndianInt32 numeric

Mode (numeric)

Read
SWITCH(MODBUSR(H, 168, LittleEndianInt32), 0, 0, 0x02, 1, 0x04, 2, 0x08, 3, 0x10, 4, 0x40, 5, 0x800, 6, 0)
Write
MODBUSWNE(H, 170, LittleEndianInt32, SWITCH(Va, 0, 0, 1, 0x02, 2, 0x04, 3, 0x08, 4, 0x10, 5, 0x40, 6, 0x800, 0)
Ventilation Multi-value Switch

Fan level 0–4 (off, min, low, medium, high)

Register: H:324 LittleEndianInt32 numeric
Values / States: Level 0 · Level 1 · Level 2 · Level 3 · Level 4

Ventilation

Read switch state
MODBUSR(H, 324, LittleEndianInt32)
Write switch state
MODBUSWNE(H, 324, LittleEndianInt32, Mu)
Away Switch
Register: H:168 UInt16 bitmask

Away

Read switch state
(MODBUSR(SH, 168, UInt16) & 0x10) > 0
Write switch state
MODBUSW(SH, 168, UInt16, IF(St, 0x10, 0x04))
RPM Fan 1 Variable Read-only

Supply fan speed

Register: H:100 LittleEndianFloat Unit: RPM

RPM Fan 1

Read
MODBUSR(H, 100, LittleEndianFloat)
Write
MODBUSWNE(H, 324, LittleEndianInt32, Va)
Outdoor Temperature Variable Read-only
Register: H:132 LittleEndianFloat Unit: °C

Outdoor Temperature

Read
MODBUSR(H, 132, LittleEndianFloat)
Write
MODBUSWNE(H, 132, Float, Va)
RPM Fan 2 Variable Read-only

Extract fan speed

Register: H:102 LittleEndianFloat Unit: RPM

RPM Fan 2

Read
MODBUSR(H, 102, LittleEndianFloat)
Write
MODBUSWNE(H, 1, Int16, Va)
Fireplace Mode Switch

Positive pressure mode — increases supply fan, reduces extract fan

Register: H:168 LittleEndianInt32 bitmask

Fireplace Mode

Read switch state
(MODBUSR(H, 168, LittleEndianInt32) & 0x0040) > 0
Write switch state
MODBUSWNE(H, 168, LittleEndianInt32, IF(St, 0x0044, 0x8040))
Away Mode Switch
Register: H:168 LittleEndianInt32 bitmask

Away Mode

Read switch state
(MODBUSR(H, 168, LittleEndianInt32) & 0x0010) > 0
Write switch state
MODBUSWNE(H, 168, LittleEndianInt32, IF(St, 0x014, 0x8010))
Connection: Modbus TCP • Slave ID: $[SlaveId]
Possible improvements (15)
  • H:134 Supply Temperature (T2) — Float32, °C, read-only
  • H:136 Extract Temperature (T3) — Float32, °C, read-only
  • H:138 Exhaust Temperature (T4) — Float32, °C, read-only
  • H:140 Room Temperature — Float32, °C, optional sensor
  • H:196 Humidity — UInt32, %, requires RH sensor accessory
  • H:198 Bypass Damper — UInt32, 0=Closed, 1=Opened, 2=InProgress
  • H:430 Air Quality — UInt32, requires VOC/CO2 sensor
  • H:516 Alarm — UInt32, alarm status
  • H:554 Filter Remaining — UInt32, days remaining
  • H:556 Filter Lifetime — UInt32, days, R/W
  • H:558 Filter Reset — Write to reset filter counter
  • H:514 Alarm Reset — Write to reset alarm
  • H:160 Internal Preheater Duty Cycle — Int32, %
  • H:574 CO2 Level — UInt32, ppm, requires CO2 sensor via HAC controller
  • H:624 Work Time — UInt32, total operating hours

Sources