
The Xvent Xcont Central is a Modbus RTU controller for Xvent Xhouse (XH) and Xflat (XF) central heat recovery units. It connects to TapHome via RS-485 using an RJ45 connector through the XCONT-HUB. The template provides fan speed control, room temperature and humidity monitoring, frost protection temperature, airflow measurement, CO2 and humidity activation thresholds, and operating modes including boost and summer mode.
Firmware version 100 or higher is required for Modbus communication.
Hardware connection
RS-485 wiring via RJ45
The Xcont Central uses an RJ45 connector for RS-485 communication through the XCONT-HUB. The bus operates in half-duplex mode.

RJ45 pin assignment:
| Pin | Function |
|---|---|
| 1 | Unconnected |
| 2 | Unconnected |
| 3 | RS-485 bus data wire A |
| 4 | RS-485 bus data wire A |
| 5 | RS-485 bus data wire B |
| 6 | RS-485 bus data wire B |
| 7 | Unconnected |
| 8 | Unconnected |
Connect wires A (pins 3, 4) to TapHome RS-485 A+/D+ and wires B (pins 5, 6) to TapHome RS-485 B-/D-. Pins 1, 2, 7, and 8 must be left unconnected.
The bus operates in half-duplex mode. The unit requires a minimum pause of 4 ms between Modbus frames for correct frame detection. The typical response time is approximately 4 ms.
Technical specifications
- Protocol: Modbus RTU Slave, RS-485
- Baud rate: 19200 (also supports 4800 and 9600)
- Parity: Even (also supports no parity)
- Data bits: 8
- Stop bit: 1
- Slave address range: 1–247
Configuration
Enabling Modbus communication
The Modbus slave address and communication parameters are configured via the DCFG retention register at address 0x9C50. The default settings are:
- Baud rate: 19200 (bits 5–6 = 3)
- Parity: Even (bit 7 = 0)
- Slave address: Configured in bits 8–15 (range 1–247)
To change the Modbus settings, write to register H:40016 using Modbus function 0x10:
| Bits | Function | Values |
|---|---|---|
| 5–6 | Baud rate | 0=Disabled, 1=4800, 2=9600, 3=19200 |
| 7 | Parity | 0=Even, 1=No parity |
| 8–15 | Slave address | 1–247 |
Changes to baud rate, parity, and slave address take effect immediately. The unit will stop communicating until the Modbus master is reconfigured to match the new parameters.
TapHome configuration
When adding the device in TapHome, configure the Modbus RTU connection with these settings:
- Slave ID: Match the address configured in the unit (default depends on unit)
- Baud rate: 19200
- Parity: Even
- Stop bits: 1
- Data bits: 8
Device capabilities
Power and operating modes
- Power (H:40000 bit 0) — main power ON/OFF switch for the recovery unit
- Fan Mode (H:40000 bit 1) — switches between Automatic (AQS-driven based on CO2/humidity sensors) and Manual fan control
- Summer Mode (H:40000 bit 2) — activates summer mode bypass with configurable duration (default 8 hours)
- Boost Mode (H:40000 bit 4) — activates boost mode with higher fan speed for a configurable duration (default 60 seconds)
- Touch Button Lock (H:40000 bit 5) — child lock for the front panel touch buttons
All these controls share a single retention register (H:40000) and use individual bit manipulation — toggling one function does not affect the others.
Fan speed control
Fan Speed Level (H:40000 bits 6–9) — selects from 8 fan speed levels (0–7), where each level corresponds to a specific voltage output that varies by unit model (XF1-015, XH1-030, XF1-020, XH2-030). The multi-value switch also shows a Boost option (level 8), but it is recommended to use the Boost Mode switch instead
Fan Status (A:30001 bits 8–11) — read-only multi-value indicator showing the current fan operating state: Unit OFF, OFF cooling, Fan 1 error, Fan 2 error, Active normal, Active antifreeze, Inactive normal, Inactive antifreeze, Summer mode, or Boost mode. A service attribute shows the previous fan status before the current transition
Temperature and humidity monitoring
- Room Temperature & Humidity (A:30016 / A:30014) — reads room temperature with 0.1°C resolution and relative humidity with 0.1% RH resolution. A sensor status service attribute reports whether the sensor is OK, disconnected, or shorted
- Frost Protection Temperature (A:30015) — reads the exhaust-side frost protection temperature sensor with 0.1°C resolution. A sensor status service attribute monitors the sensor connection state
- Desired Temperature (A:30012) — reads the currently configured room temperature setpoint with 0.1°C resolution. This value is read-only in the template — the temperature level is set via the front panel register
Fan voltage monitoring
- Fan 1 Voltage (A:30018) — reads the actual output voltage of fan 1 with 0.01 V resolution. Service attributes report the tacho input status and motor start confirmation
- Fan 2 Voltage (A:30020) — reads the actual output voltage of fan 2 with 0.01 V resolution. Same service attributes as Fan 1
Air quality thresholds
- CO2 Activation Threshold (H:40001) — configurable CO2 concentration level (600–1000 ppm, default 800 ppm) at which the fans automatically activate when in AQS automatic mode. Adjustable via a “Set Value” service action
- RH Activation Threshold (H:40002) — configurable relative humidity level (50–75%, default 65%) at which the fans automatically activate when in AQS automatic mode. Adjustable via a “Set Value” service action
Airflow measurement
- Airflow (A:30015) — reads the current airflow rate from the flow sensor with 0.1 m³/h resolution
Service diagnostics
The module exposes three service attributes for monitoring:
- Firmware Version (A:30000) — current firmware version of the unit
- UI State (A:30001 bits 0–3) — current user interface state with 14 possible values including Unit off, Fan errors, Sensor errors, Lock states, Normal operation, Service menu, and User menu
- Attribute (H:40000 bits 10–15) — temperature level setting for E-type units
The module ReadScript also monitors CO2 and RH sensor errors from status register A:30003, reporting them as errors in TapHome.
Additional capabilities
The Xcont Central also exposes registers for CO2 sensor readings (A:30013), AQS air quality state and required fan speed, preheat and reheat status monitoring, filter elapsed time tracking (A:30028), relay status for preheat and reheat, room temperature correction offset, and various timer registers. Configuration options include filter lifetime setting, boost mode fan speed and duration, summer mode duration, and a permanent minimum fan speed flag. These can be added in a future template update.
The CO2 sensor value register (A:30013) and filter elapsed time (A:30028) are not included in the current template. To monitor CO2 levels directly, the CO2 sensor can be added as a custom Modbus device in TapHome using input register A:30013 (function 0x04, address 0x753D).
Troubleshooting
No Modbus communication
- Check the RJ45 cable connection — ensure the cable is properly seated in both the XCONT-HUB and the RS-485 adapter
- Verify pin wiring — pins 3/4 (wire A) and 5/6 (wire B) must be correctly mapped to TapHome RS-485 A+/B-
- Confirm communication parameters — TapHome must be set to 19200 baud, even parity, 1 stop bit, 8 data bits (matching the unit defaults)
- Check the slave address — verify the configured address matches what is set in TapHome
- Observe frame timing — ensure at least 4 ms pause between Modbus frames
Sensor errors reported in TapHome
- CO2 sensor error — check the physical connection of the CO2 sensor to the unit. The module ReadScript reads bit 0 of register A:30003
- RH sensor error — check the physical connection of the humidity sensor. The module ReadScript reads bit 1 of register A:30003
- Room sensor disconnected/shorted — check the service attribute on the Room Temperature device. Status values: 0=OK, 1=Disconnected, 2=Shorted
Fan errors
- Check the Fan Status device — values 2 and 3 indicate Fan 1 or Fan 2 error respectively
- Verify the tacho input status service attribute on the Fan Voltage devices (OK/NG)
- Check the motor start flag service attribute — NG indicates the motor failed to start
Register address format
The Xcont Central uses high Modbus addresses. Input registers start at 0x7530 (decimal 30000) and retention registers at 0x9C40 (decimal 40000). When configuring custom devices in TapHome, use the decimal register addresses (e.g., 30016 for room temperature, 40000 for front panel control).
