TapHome

Brink Flair

Modbus RTU
Submitted by
Last updated: 03. 2026
Brink Flair

The Brink Flair is a heat recovery ventilation (HRV) unit that connects to TapHome via Modbus RTU over RS-485. The TapHome template supports the Flair 325 and Flair 400 models and operates in flow rate control mode, allowing direct airflow setpoint in m3/h. The template provides airflow control with standby mode, bypass valve management, fan speed monitoring with detailed diagnostics, supply and exhaust air temperature and humidity readings, filter status with reset capability, and up to four CO2 sensors.

The Brink Flair uses the UWA2-B (standard) or UWA2-E (Plus version) PCB for Modbus communication. No additional adapter or module is required — the RS-485 interface is built into the unit.

Hardware connection

RS-485 connector

The Modbus RS-485 connection uses a red 3-pin connector:

  • Standard version (UWA2-B only): Connect to connector X15 on the UWA2-B PCB
  • Plus version (UWA2-B + UWA2-E): Connect to connector X06 on the UWA2-E Plus PCB
Brink Flair RS-485 Modbus connector pinout — Pin 1 GND, Pin 2 RS485-A, Pin 3 RS485-B
PinSignal
1RS485-ground
2RS485-A
3RS485-B
Connection variants
Brink Flair Modbus connection variants — (A) standard UWA2-B via X15, (B) Plus version UWA2-E via X06
  • (A) Standard Brink HRA with only the UWA2-B PCB — connect Modbus to X15
  • (B) Brink HRA Plus with UWA2-B and Plus PCB UWA2-E — connect Modbus to X06

If Brink appliances are cascaded (up to 10 units via internal bus), the Modbus connection must be connected to the Master appliance with the Plus PCB UWA2-E.

PCB layout and jumper settings
Brink Flair UWA2-B PCB layout showing X15 Modbus connector, X12 terminator jumper, and X121/X122 jumpers

Jumper configuration for Modbus:

JumperAction
X12120 ohm termination resistor — remove if TapHome Core already provides termination
X121, X122Must be removed for Modbus operation
X07 (Plus PCB only)Must be removed when using Modbus on the UWA2-E Plus PCB

When using Modbus, remove jumpers X121 and X122 from the UWA2-B PCB. When using internal Bus (cascading without Modbus), place jumpers X12, X121, and X122 back.

Communication parameters
ParameterValue
ProtocolModbus RTU (RS-485)
Baud rate19200
Data bits8
ParityEven
Stop bits1
Default Slave ID20 (configurable 1-247)

Use twisted pair cable for the RS-485 connection (pins 2 and 3).

Configuration

Enabling Modbus communication

Modbus communication must be activated on the Brink Flair touchscreen display:

  1. Navigate to Settings > 14 Communication
  2. Set 14.1 Type of Bus connection to ModBus (factory default)
  3. Set 14.2 Slave address to the desired address (default: 20)
  4. Set 14.3 Baudrate to 19k2 (19200 baud)
  5. Set 14.4 Parity to Even

When Modbus is active, the ventilation setting cannot be changed through the display, multi-position switch, or connected humidity sensors. All control is exclusively via Modbus.

Modbus control mode

The TapHome template initializes the unit in flow rate control mode (register SH:8000 = 2). This allows direct airflow setpoint control in m3/h rather than preset switch positions.

After a power loss, registers 8000-8011 reset and must be re-written. The template handles this automatically via its initialization script.

MaxAirFlow import parameter

When importing the template into TapHome, the MaxAirFlow parameter must match the unit model:

ModelMaxAirFlow
Flair 325325
Flair 400400 (default)

This parameter controls the airflow scaling — the dimmer maps 0-100% to 50-MaxAirFlow m3/h.

Device capabilities

Airflow control
  • Airflow Control — the primary control device, presented as a dimmer that maps 0-100% to 50-MaxAirFlow m3/h. Setting to 0% activates standby mode (fans off). Any non-zero value resumes normal operation and sets the desired airflow via register SH:8002
  • Supply Airflow — current measured supply (inlet) air volume flow in m3/h
  • Exhaust Airflow — current measured exhaust (outlet) air volume flow in m3/h
Bypass valve control
  • Bypass — controls the heat exchanger bypass valve with three documented modes: Automatic (0), Closed (1), and Open (2). The bypass valve allows fresh outside air to bypass the heat exchanger during summer when cooling is desired. A service attribute reports the physical bypass valve status (Initialize, Open, Close, Closed)
Fan monitoring
  • Supply Fan — reads the supply fan speed as a percentage of maximum RPM. Includes six service attributes: fan status (Idle, Running, Not Found, Blocked, Fan Error), setpoint and current supply airflow (m3/h), mass flow (kg/h), fan RPM, and inlet anemometer speed (RPM)
Temperature and humidity
  • Supply Air Temperature & Humidity — supply air temperature in C (register A:4036, /10 conversion) and relative humidity (register A:4037)
  • Exhaust Air Temperature & Humidity — exhaust air temperature in C (register A:4046, /10 conversion) and relative humidity (register A:4047)

Humidity scaling inconsistency: The template divides humidity registers (A:4037, A:4047) by /10 then /100 (total /1000). Official documentation states “tenths of percent, divide by 10” which would give 0-100%. The displayed humidity values may appear significantly lower than expected. This is a known issue in the template.

Filter monitoring
  • Filter — reports filter status: clean (0) or dirty (1). Includes a warning when the filter replacement signal (H:6170) is active. Two service attributes show days and air volume since the last filter change. A service action resets the filter warning counter
Imbalance control
  • Imbalance Allowed — enables or disables supply/exhaust airflow imbalance. When enabled, the supply airflow can be increased relative to exhaust by the percentage configured in the imbalance settings. Used for open fireplace compensation
CO2 monitoring

The module exposes four CO2 sensor readings (registers A:4201, A:4203, A:4205, A:4207) as service attributes, reporting concentration in ppm. The CO2 sensor mode (on/off) is also readable via service attribute H:6150.

Module-level diagnostics

The module provides extensive service attributes for monitoring:

  • Current Mode — active operating mode (Standby, Manual, Holiday, Night Ventilation, Party, Bypass Boost, Normal Boost, Auto CO2, Auto Modbus, and others)
  • Modbus Control — current control mode status (Switched OFF, Switch mode, Flow rate mode)
  • Modbus Interface Type — interface configuration (Brink, Brink Connect, External Customer)
  • Preheater State — preheater status (Initializing, Inactive, Active, Test mode) with output percentage
  • NTC1 Temperature — outside air temperature from the NTC1 sensor
  • Airflow setpoints and measurements — both supply and exhaust setpoint and measured values in m3/h
  • Exhaust pressure — current exhaust duct pressure in Pa (/10 conversion)
  • Modbus Slave Address — current slave address readback

Module-level service actions include: setting the interface type to Brink Connect, enabling Modbus flow control, appliance reset, setting and ending standby mode, adjusting supply and exhaust imbalance offsets (-15% to +15%), and resetting the filter warning.

Additional capabilities

The Brink Flair also exposes registers for fan control type, ventilation mode (Holiday/Low/Normal/High/Auto), supply pressure, exhaust fan status and speed, mass flow exhaust, frost protection status with heater power and fan reduction, flow switch position, additional NTC and RHT sensors, bypass step position, flow presets, bypass temperature settings, frost control thresholds, filter warning interval, external heater configuration, humidity sensor settings, CO2 sensor thresholds, and operating time counters. These can be added in a future template update.

Troubleshooting

No Modbus communication
  1. Verify the RS-485 cable connections: Pin 1 = GND, Pin 2 = A, Pin 3 = B
  2. Check that jumpers X121 and X122 are removed from the UWA2-B PCB
  3. Confirm Step 14.1 is set to “ModBus” on the touchscreen
  4. Verify communication parameters in TapHome match the unit settings (19200 baud, Even parity, Slave ID 20)
  5. If using the Plus PCB, check that jumper X07 is removed and Modbus is connected to X06 (not X15)
Unit not entering Auto Modbus mode

The module readscript checks register A:4020 and issues a warning if the mode is not “Auto Modbus” (12) or “Standby” (0). If the warning persists:

  1. Verify register SH:8000 is set to 2 (flow rate mode) — the template initialization script handles this automatically
  2. Check that no other control interface (display, multi-position switch) is overriding the Modbus setting
  3. Power-cycle the unit and wait for the template to re-initialize
Filter warning not clearing

The device-level filter reset action writes 1 to register SH:8010, which is correct per official documentation. After triggering the reset, read back register 8010 — a value of 0xFF indicates the reset failed. Note that the filter status register (A:4100) may take a polling cycle to update.

There is an inconsistency in the template: the module-level filter reset action writes 0 to register SH:8010, while the device-level action and official documentation specify writing 1. Use the device-level “Reset Filter Warning” action on the Filter device for reliable operation.

Humidity readings appear too low

The template applies /10/100 scaling to humidity registers, which may produce values approximately 1000x lower than expected. If humidity shows near-zero values while the unit is operating normally, this is a known scaling issue in the template. Contact TapHome support for an updated template revision.

Available devices

Brink Flair Module
Service Attributes
Language
Current ModeActive operating mode — Standby, Bootloader, Manual, Holiday, Night Ventilation, Party, Bypass Boost, Normal Boost, Auto CO2, Auto Modbus, and others
Modbus ControlModbus control mode — Switched OFF (Error), Switch mode (Error), Flow rate mode (Default)
Modbus Interface TypeModbus interface configuration — Brink, Brink Connect (Default), External Customer
Preheater StateInternal preheater status — Initializing, Inactive, Active, Test mode
Preheater Output
NTC1 TemperatureOutside air temperature from the NTC1 sensor
Filter StateFilter cleanliness status — OK (not dirty) or Polluted (dirty)
CO2 Sensor 1 Value
CO2 Sensor 2 Value
CO2 Sensor 3 Value
CO2 Sensor 4 Value
Imbalance Allowed
Imbalance Offset Supply
Bypass ModeCurrent bypass valve setting — Auto, Closed, Open
CO2 Sensor Mode
Modbus Slave Address
Current Exhaust Airflow
Current Supply Airflow
Setpoint Exhaust Airflow
Setpoint Supply Airflow
Current Exhaust Pressure
Exhaust Fan Temperature
Supply Fan Temperature
Service Actions
Set Interface Type to Brink Connect
Enable Modbus Flow ControlActivates flow rate control mode — required for direct airflow setpoint via Modbus
Appliance Reset
Set Imbalance Offset Supply
Set Imbalance Offset Exhaust
Reset Filter Warning
Set Standby ModePuts the appliance into standby — fans off
End Standby ModeResumes normal operation from standby

Flair

Initialize
MODBUSWNE(SH, 8000, Int16, 2);
Read (module)
MODBUSWNE(SH, 8000, Int16, 2);

var mode := modbusr(A, 4020, uint16);
# 0, "Standby", 
# 12, "Auto Modbus",
if(! (mode = 12 or mode = 0), addwarning("Jednotka nie je v MODBUS rezime"));
Service Attributes
Lanuguage
switch(MODBUSR(SH, 6900, UInt16), 1, "NL", "EN")
Aktualny rezim
switch(modbusr(A, 4020, uint16), 
0, "Standby", 
1, "Bootloader",
2, "Non Blocking Error",
3, "Blocking Error", 
4, "Manual",
5, "Holiday",
6, "Night Ventilation", 
7, "Party", 
8, "Bypass Boost",
9, "Normal Boost",
10, "Auto CO2", 
11, "Auto eBus",
12, "Auto Modbus",
13, "Auto LAN/WLAN Portal",
14, "Auto LAN/WLAN Local", "N/A")
Modbus Control
VAR Va:=MODBUSR(SH, 8000, Int16);

IF Va = 0
  RETURN ("Switched OFF [Error]");
ELSEIF Va = 1
  RETURN ("Switch [Error]");
ELSEIF Va = 2
  RETURN ("Flow rate [Default]");
ELSE
  RETURN ("Error");
END
Modbus Interface Type
VAR Va:=MODBUSR(SH, 7990, UInt16);
IF Va = 0
  RETURN ("Brink");
ELSEIF Va = 1
  RETURN ("Brink connect [Default]");
ELSEIF Va = 2
  RETURN ("External Customer");
ELSE
  RETURN ("Error!");
END
Stav predhrievača
switch(modbusr(A,4060,int16), 
    0, "Inicializácia", 
    1, "Neaktívny", 
    2, "Aktívny",
    3, "Testovací režim",
    "Unknown");
Výkon predhrievača [%]
modbusr(A,4061,int16);
Teplota NTC1 [C]
modbusr(A,4081,int16)/10
Stav filtra
var state := modbusr(A,4100,int16);
return(switch(todouble(state), 0, "ok", "polluted"))
Hodnota snímača CO2 1 [ppm]
modbusr(A,4201,int16)
Hodnota snímača CO2 2 [ppm]
modbusr(A,4203,int16)
Hodnota snímača CO2 3 [ppm]
modbusr(A,4205,int16)
Hodnota snímača CO2 4 [ppm]
modbusr(A,4207,int16)
Nerovnováha povolená [0-on;1-off]
modbusr(H,6033,uint16)
Posun nerovnováhy pri prívode [%]
modbusr(H,6035, int16)
Režim obtoku [0 - auto; 1 - zatvoreny; 2 - otvoreny]
modbusr(H,6100,int16)
Režim snímača CO2 [0 - VYP, 1 - ZAP]
modbusr(H, 6150,uint16)
Adresa Slave Modbus
modbusr(H,7991,int16)
(namerana hodnota) aktuálna hodnota prietoku výfukového vyduchu [m3/h]
MODBUSR(A, 4042, UInt16)
(namerana hodnota) aktuálna hodnota privádzaného vzduchu [m3/h]
MODBUSR(A, 4032, UInt16)
(pozadovana hodnota) bod nastavenia prietoku výfukový vzduch [m3/h]
MODBUSR(A, 4041, UInt16)
(pozadovana hodnota) bod nastavenia privádzaného vzduchu [m3/h]
MODBUSR(A, 4031, UInt16)
aktuálny tlak odsávania [Pa]
MODBUSR(A, 4024, Int16)/10
snímač teploty ventilátora odsávania [C]
MODBUSR(A, 4046, Int16) / 10
snímač teploty ventilátora prívodu [C]
MODBUSR(A, 4036, uInt16) / 10
Service Actions
Set Interface Type to Brink Connect
MODBUSW(SH, 7990, UInt16, 1)
Aktivovať ovládanie výkonu cez Modbus
MODBUSW(SH, 8000, Int16, 2)
Appliance Reset
MODBUSW(SH, 8011, UInt16, 1)
Nastavenie posunu nerovnováhy pri prívode
Parameters: Posun nerovnováhy pri prívode [%] (-15–15 per)
if modbusr(sH,6036,int16) = per
else 
 modbusw(sH,6036,int16,per);
end
Nastavenie posunu nerovnováhy pri odsávaní
Parameters: Posun nerovnováhy pri odsávaní [%] (-15–15 per)
if modbusr(sH,6036,int16,per) = per
else
modbusw(sH,6036,int16,per);
end
Vynulovanie hlásenia filtra
modbusw(sh, 8010, int16,0)
Set Standby Mode
MODBUSW(SH, 8003, UInt16, 1)
End Standby Mode
MODBUSW(SH, 8003, UInt16, 2)
Bypass Multi-value Switch

Heat exchanger bypass valve control — Automatic, Closed, Open

Register: H:6100 Int16 numeric
Values / States: Automaticky · Zavřeno · Otevřeno

Bypass

Read switch state
MODBUSR(H, 6100, Int16)
Write switch state
MODBUSW(H, 6100, Int16, Mu)
Service Attributes
Status
switch(modbusr(A, 4050, uint16),
0, "Initialize",
1, "open",
2, "close",
3, "open",
4, "closed", "error"
)
Filter Reed Contact Read-only

Filter cleanliness monitoring with days and air volume since last change, and filter warning reset

Register: A:4100 UInt16 numeric
Service Attributes
Days Since Last Filter Change
Air Volume Since Last Filter Change
Service Actions
Reset Filter Warning

Filter

Read
if (MODBUSR(H, 6170, UInt16) = 1, addwarning("Upozorneni na vymenu filtru"));
MODBUSR(A, 4100, UInt16)
Read (module)
MODBUSR(A, 4100, UInt16)
Service Attributes
Počet dnu od poslední vymeny
modbusr(A, 4115, Uint16)
Objem vzduchu od poslední vymeny [m3/h]
modbusr(A, 4116, Uint32)
Service Actions
Vynulovanie hlásenia filtra
modbusw(sh, 8010, int16,1)
Imbalance Allowed Switch

Enables supply/exhaust airflow imbalance for open fireplace compensation

Register: H:6033 UInt16
Values / States: ON · OFF

Imbalance Allowed

Read switch state
MODBUSR(H, 6033, uint16);
Write switch state
MODBUSW(sH, 6033, uint16, switch(St, 1,1,0));
Supply Airflow Variable Read-only
Register: A:4032 UInt16 Unit: m3/h numeric

Supply Airflow

Read
MODBUSR(A, 4032, UInt16)
Exhaust Airflow Variable Read-only
Register: A:4042 UInt16 Unit: m3/h numeric

Exhaust Airflow

Read
MODBUSR(A, 4042, UInt16)
Airflow Control Dimmer

Primary ventilation control — maps 0-100% to 50-MaxAirFlow m3/h, 0% activates standby

Register: SH:8002 Int16 Unit: m3/h numeric

Airflow Control

Read level
VAR Value := MODBUSR(SH, 8002, Int16);
VAR Standby := MODBUSR(SH, 8003, Int16); # 0 - Off / 1 - On

IF Value = 0 or Standby = 1
  RETURN (0);
ELSE
  RETURN (LINEAR(Value, 50, 1/(MaxAirFlow-50), MaxAirFlow, 1));
END
Write level
IF Le=0
  MODBUSW(SH, 8003, Int16, 1);
ELSE
  if (MODBUSR(SH, 8003, Int16) = 1, MODBUSW(SH, 8003, Int16, 2));
  VAR Value := CEIL(LINEAR(Le,0,49,1,MaxAirFlow));
  MODBUSW(SH, 8002, Int16, Value);
END
Supply Fan Analog Input Read-only

Supply fan speed as percentage of maximum RPM, with status, airflow, mass flow and anemometer diagnostics

Register: A:4034 UInt16 Unit: RPM numeric
Service Attributes
StatusFan operating state — Idle, Running, Not Found, Blocked, Fan Error
Setpoint Supply Air
Current Supply Air
MassFlow Inlet
Speed Supply Fan
Speed Inlet Anemometer

Supply Fan

Read input level
#switch(modbusr(A, 4030, uint16), 
#0, addinfo("Idle"),
#1, addinfo("Running"),
#2, adderror("Not Found - No Communication"),
#3, adderror("Blocked"),
#4, adderror("Fan Error"), "N/A");

LINEAR(MODBUSR(A, 4034, UInt16), 0, 0, maxRPM, 1)
Service Attributes
Status
switch(modbusr(A, 4030, uint16), 
0, "Idle",
1, "Running",
2, "Not Found - No Communication",
3, "Blocked",
4, "Fan Error", "N/A")
Setpoint supply air [m3/h]
modbusr(A, 4031, Uint16)
Current value of supply air [m3/h]
modbusr(A, 4032, Uint16)
MassFlow inlet, actual value [kg/h]
modbusr(A, 4033, Uint16)
Speed supply fan [RPM]
modbusr(A, 4034, Uint16)
Speed inlet anemometer [RPM]
modbusr(A, 4035, Uint16)
Supply Air Temperature & Humidity Temperature Sensor Read-only

Supply air temperature and relative humidity at the fan sensor

Register: A:4036 Int16 Unit: °C / % numeric

Supply Air Temperature & Humidity

Read humidity
MODBUSR(A, 4037, UInt16) / 10 / 100
Read temperature
MODBUSR(A, 4036, Int16) / 10
Exhaust Air Temperature & Humidity Temperature Sensor Read-only

Exhaust air temperature and relative humidity at the fan sensor

Register: A:4046 Int16 Unit: °C / % numeric

Exhaust Air Temperature & Humidity

Read humidity
MODBUSR(A, 4047, Int16) / 10 / 100
Read temperature
MODBUSR(A, 4046, Int16) / 10
Connection: Modbus RTU • 19200 baud• 8E1 • Slave ID: $[SlaveId]
Possible improvements (24)
  • A:4021 Fan Control Type — 0=Initializing, 1=Constant flow, 2=Constant PWM, 3=Off, 4=Error, 5=MassBalance, 6=Standby
  • A:4022 Ventilation Mode — 0=Holiday, 1=Low, 2=Normal, 3=High, 4=Auto — current ventilation step
  • A:4023 Current Supply Pressure — Tenths of Pa; /10 to get Pa. Only exhaust pressure (A:4024) is in template as SA
  • A:4040 Fan Exhaust Status — Same enum as A:4030 (supply fan) — not exposed for exhaust fan
  • A:4043 MassFlow Exhaust — Exhaust air mass flow in kg/h — only inlet mass flow (A:4033) is in template as SA
  • A:4044 Speed Exhaust Fan — Exhaust fan RPM — only supply fan RPM (A:4034) is in template as device
  • A:4045 Speed Exhaust Anemometer — Exhaust anemometer RPM
  • A:4070 Frost Status — 16-state enum for frost protection state; important for cold climate operation
  • A:4071 Frost Heater Power — Frost heater output percentage (0–100%)
  • A:4072 Frost Fan Reduction — Fan speed reduction during frost protection (0–100%)
  • A:4080 Flow Switch Position — Physical 4-position switch: 0=Holiday, 1=Low, 2=Normal, 3=High
  • A:4082 NTC2 Temperature — Second NTC temperature sensor; tenths of °C, /10
  • A:4083 RHT Sensor Humidity — Separate RHT humidity sensor; tenths of percent
  • A:4051 Bypass Step Position — Bypass valve position relative to zero point
  • H:6000–6003 Flow Presets 0–3 — Flow rate presets for 4-position switch (Flair 400: 50–400 m3/h). Currently controlled via SH:8002 flow rate mode instead
  • H:6101–6105 Bypass Temperature Settings — Bypass activation temperatures (from dwelling, from outside), hysteresis, bypass boost mode and fan setting
  • H:6110–6111 Frost Control Settings — Frost protection temperature threshold and minimum inlet temperature
  • H:6120 Filter Warning Days — Number of days before filter warning (1–365, default 90)
  • H:6130–6131 External Heater Settings — External heater mode (off/pre/post) and postheater temperature setpoint
  • H:6140–6141 Humidity Sensor Settings — RHT humidity sensor on/off and sensitivity (-2 to +2)
  • H:6151–6158 CO2 Sensor Thresholds — Low and high CO2 levels for sensors 1–4 (400–2000 ppm)
  • SH:8001 Switch Position Control — 0=Holiday, 1=Low, 2=Normal, 3=High — requires SH:8000=1 (switch mode). Template uses SH:8000=2 (flow rate mode) instead
  • A:4113–4114 Operating Time — Total operating time in hours (32-bit value)
  • A:4118–4119 Total Airflow Volume — Cumulative air volume since commissioning (32-bit, m3/h)

Sources