TapHome

Flexit EcoNordic WH4 / W4

Modbus RTU
Submitted by
Last updated: 04. 2026
Flexit EcoNordic WH4 / W4

The Flexit EcoNordic is an indoor climate central combining balanced ventilation with heat recovery, domestic hot water production, and water-borne heating (WH4 model). It communicates with TapHome via Modbus RTU over RS-485, providing control of ventilation modes, temperature setpoints, hot water management, and monitoring of heat pump operation.

Two models are supported: EcoNordic WH4 (ventilation + heating + hot water) and EcoNordic W4 (ventilation + hot water). The WH4 includes additional heating circuit sensors and controls not available on the W4.

Hardware connection

The EcoNordic has a built-in Modbus RTU interface accessible via RS-485. Connect TapHome Core to the EcoNordic RS-485 port using a twisted pair cable with GND.

No wiring diagram was found in the available documentation. Refer to the EcoNordic installation manual or contact Flexit support for the exact RS-485 terminal locations on the unit. The optional Modbus cable (HP Res) accessory is available from Flexit for connecting external controllers.

Configuration

Configure the Modbus connection in TapHome with these parameters:

ParameterValue
Baud rate9600
Data bits8
ParityEven
Stop bits1
Slave ID1 (default)

The EcoNordic uses a proprietary Modbus register map in the address range 1–3037. This is distinct from the CI66 register map used by older Flexit Nordic S2–S4 / CL2–CL4 models — no CI66 adapter is needed.

The EcoNordic is also controlled through the Flexit GO mobile app (Android/iOS). TapHome and the Flexit GO app can coexist — both communicate with the unit independently.

Device capabilities

Ventilation mode control

Operating Mode (H:2013) is the primary ventilation control with four modes:

  • Stop — fans off, no ventilation
  • Away — reduced ventilation for unoccupied building
  • Home — normal daily operation
  • High — temporarily increased ventilation

Two special-purpose triggers provide additional ventilation modes:

  • Rapid Ventilation (H:3006) — activates temporary high-speed ventilation for quick air exchange (cooking, visitors, moisture). Duration is configurable via service action (1–360 minutes)
  • Fireplace Ventilation (H:3007) — creates positive indoor pressure to prevent smoke from being drawn into the room when lighting a fireplace. Duration is configurable via service action (0–360 minutes)

The Comfort Button (H:2040) toggles comfort mode on the unit, which temporarily increases ventilation and may adjust temperature setpoints.

Temperature monitoring and setpoints

The template provides five temperature sensors:

  • Outside Air Temperature (A:1) — outdoor air temperature at the intake
  • Supply Air Temperature (A:5) — fresh air supplied into the building after heat recovery and reheating
  • Extract Air Temperature (A:9) — air extracted from the building before heat recovery
  • Exhaust Air Temperature (A:13) — air exhausted outdoors after heat recovery
  • Heating Circuit Flow Temperature (A:97) — water temperature in the heating circuit flow pipe (WH4 only)
  • Heating Circuit Return Temperature (A:101) — water temperature in the heating circuit return pipe (WH4 only)

Two thermostats control the supply air temperature setpoints:

  • Temperature When Home (H:1155) — setpoint for Home mode, range 10–30°C
  • Temperature When Away (H:1163) — setpoint for Away mode, range 10–30°C
Hot water management

Hot Water Mode (H:3017) selects the domestic hot water heating strategy:

  • Comfort — charges the tank when approximately 50% hot water remains, uses electric backup heater below 15%
  • Economy — most economical mode, charges only when approximately 15% remains, no electric backup

Hot Water Boost (H:3019) triggers temporary maximum hot water production using the electric backup heater. Duration is configurable via service action (0–300 minutes).

Heat pump and system monitoring

The module exposes nine service attributes for monitoring system state:

  • Heat Pump Status (A:3028) — current heat pump operation: Standby, Air Purge, Startup, Normal operation, Stop, Defrost, Error standby, Manual, and Forced modes
  • Domestic Hot Water State (A:3005) — hot water production state: Comfort, Economy, Not in Use, Temporary Boost, Forced Charge, Economy delay, or Legionella prevention
  • Heat Recovery Ventilation State (A:3034) — reflects the actual ventilation state including modes not directly settable via Operating Mode (such as Fume hood and Fireplace)
  • Plant Operating Mode for Heat Pump (H:2061) — detailed 17-state enum showing what the heat pump is currently doing (loading tank, space heating, ventilation heating, legionella prevention, and combined modes)
  • Heat Pump Reheating Coil (A:3029) — whether the reheating coil is active
  • Heat Pump Frost Protection (A:3031) — whether frost protection is active
  • Drain Pan Heater State (A:3036) — whether the drain pan heater is active
  • Heat Pump Warning Limescale (A:3037) — warns when limescale buildup is detected
  • Heat Pump Connection Damper Position (H:29) — damper position in percent

Additional service attributes are available on individual devices: exhaust fan speed, damper commands, rotary heat exchanger speed, heat pump setpoint flow temperature, thermic power output, heating circuit pump speed, and storage tank consumer valve position.

Alarm management

The module ReadScript monitors two alarm channels — Alarm A and Alarm B. When an alarm is active (status = 2), TapHome reports it as an error with the alarm value and acknowledgment state (Acknowledged/Unacknowledged/Locked).

Three service actions are available for alarm management:

  • Acknowledge Alarm A — acknowledges an unacknowledged alarm
  • Acknowledge Alarm B — acknowledges an unacknowledged alarm
  • Remove All Inactive Alarms — clears all inactive/acknowledged alarms from the system
Additional capabilities

The EcoNordic also supports filter timers, heat recovery efficiency calculation, supply fan speed monitoring, and heating curve adjustments (WH4). The Heat Recovery Ventilation State shows additional modes (Fume hood, Fireplace, Temporary high) beyond what the Operating Mode control directly exposes. These capabilities can be added in a future template update.

The EcoNordic operates down to -25°C outdoor temperature with its CO2 heat pump. The rotary heat exchanger provides up to 90% temperature efficiency for heat recovery. Monitor the difference between Supply Air and Extract Air temperatures to assess heat recovery performance.

Troubleshooting

No Modbus communication
  1. Verify RS-485 cable connections between TapHome and the EcoNordic unit
  2. Confirm the communication parameters: 9600 baud, 8-E-1 (Even parity, not None)
  3. Check that the Slave ID in TapHome matches the unit configuration (default: 1)
  4. Ensure the EcoNordic is powered on and operational
Heating circuit sensors show no data (WH4)

The Heating Circuit Flow and Return Temperature sensors are available only on the WH4 model. If using a W4 (ventilation + hot water only), these sensors will not report values.

Alarms reported in TapHome
  1. Check the alarm details in TapHome service attributes — the alarm value and state are displayed
  2. Use the Acknowledge Alarm service action to acknowledge an active alarm
  3. Refer to the Flexit GO app or user manual for alarm code interpretation
  4. Common causes: blocked filters, rotor stopped, overheating protection tripped, water system issues

Available devices

Flexit EcoNordic Module
Service Attributes
Heat Pump StatusHeat pump operating state — Standby, Air Purge, Startup, Normal, Stop, Defrost, Error, Manual, Forced fan/pump
Domestic Hot Water StateCurrent hot water production state — Comfort, Economy, Not in Use, Boost, Forced Charge, Legionella prevention
Heat Recovery Ventilation StateCurrent ventilation state — Off, Away, Home, High, Fume hood, Fireplace, Temporary high
Plant Operating Mode for Heat PumpHeat pump plant mode — shows what the heat pump is currently doing (loading tank, space heating, ventilation heating, legionella prevention)
Heat Pump Reheating Coil
Heat Pump Frost Protection
Drain Pan Heater State
Heat Pump Warning Limescale
Heat Pump Connection Damper Position
Service Actions
Remove All Inactive Alarms
Acknowledge Alarm A
Acknowledge Alarm B

Flexit Econordic

Read (module)
IF MODBUSR(A,3001, Uint16) = 2
ADDERROR(MODBUSR(A, 1021, float), "Alarm A: " + 
SWITCH(MODBUSR(A,3002, Uint16),
1, "Acknowledged, unlocked ",
2, "Unacknowledged",
3, "Locked",
"Unknown" ));
END

IF MODBUSR(A,3003, Uint16) = 2
ADDERROR(MODBUSR(A, 1023, float), "Alarm B: " + 
SWITCH(MODBUSR(A,3004, Uint16),
1, "Acknowledged, unlocked ",
2, "Unacknowledged",
3, "Locked",
"Unknown" ));
END
Service Attributes
Heat Pump Status
SWITCH(MODBUSR(A, 3028, Uint16), 
1, "Standby", 
2, "Air Purge process",
3, "Startup process",
4, "Normal operation",
5, "Stop process", 
6, "Defrost operation",
7, "Standby when error",
8, "Manual operation",
9, "Forced fan operation",
10, "Forced pump operation",
11, "State 10",
12, "State 11",
13, "State 12",
14, "State 13",
15, "State 14",
16, "State 15",
"Unknown"
)
Domestic hot water state
SWITCH(MODBUSR(A, 3005, Uint16),
1, "Comfort",
2, "Economy", 
3, "Not in Use",
4, "Temporary Boost",
5, "Forced Charge",
6, "Economy delay",
7, "Legionella prevention",
"Unknown"
);
Heat recovery ventilation state
SWITCH(MODBUSR(A, 3034, Uint16),
1, "Off", 
2 , "Away" , 
3 , "Home" , 
4 , "High", 
5 , "Fume hood", 
 6 , "Fireplace", 
 7 , "Temporary high",
 "Unknown");
Plant operating mode for heat pump
SWITCH(MODBUSR(H, 2061, Uint16), 
1 , "Off" , 
2 , "Vent.heating from tank" , 
3 , "Load tank" ,
4 , "Load tank & vent.heating" ,
5 , "Space heating from tank" , 
6 , "Space heat.& vent.heat.from tank",
7 , "Load tank & space heat" , 
8 , "Load tank & space heat.& vent" , 
9 , "HP not available" , 
10 , "Swi-off delay flow through heat",
11 , "Legionella prev.vent.heat" , 
12 , "Legionella prev.space heat" , 
13 , "Space heat.with HP" ,
14 , "Space heat.& vent.with HP" , 
15 , "Load tank & space heat.with HP" , 
16 , "Load tank & vent.& space with HP", 
17 , "Legionella prev.tank",
"Unknown")
Heat Pump Reheating Coil
Switch (MODBUSR(A, 3029, Uint16), 1, "Active", 0, "Inactive", "Unknown");
Heat Pump Frost Protection
Switch (MODBUSR(A, 3031, Uint16), 1, "Active", 0, "Inactive", "Unknown");
Drain Pan Heater State
Switch (MODBUSR(A, 3036, Uint16), 1, "Active", 0, "Inactive", "Unknown");
Heat pump warning limescale
Switch (MODBUSR(A, 3037, Uint16), 1, "Active", 0, "Inactive", "Unknown");
Heat Pump Connection Dumper position
MODBUSR(H, 29, Float, 2) + " %"
Service Actions
Remove All Inactive Alarms
MODBUSW(H, 3004, Uint16, 3);
Acknowledge Alarm A
MODBUSW(H, 3002, Uint16, 2)
Acknowledge Alarm B
MODBUSW(H, 3003, Uint16, 2)
Comfort Button Switch
Register: H:2040 Bool
Values / States: Active · Inactive

Comfort Button

Read switch state
MODBUSR(H, 2040, Bool)
Write switch state
MODBUSW(H, 2040, Bool, St)
Exhaust Air Temperature Temperature Sensor Read-only

Temperature of air exhausted outdoors after heat recovery

Register: A:13 Float Unit: °C numeric
Service Attributes
Exhaust Air Fan Speed
Exhaust Air Damper Command
Heat Pump Exhaust Air Damper Command

Exhaust Air Temperature

Read temperature
MODBUSR(A, 13, Float, 2)
Service Attributes
Exhaust Air Fan Speed
 ROUND(MODBUSR(H, 9, Float, 2)) + " %"
Exhaust Air Damper Command
Switch (MODBUSR(H, 2010, Uint16), 1, "Active", 0, "Inactive", "Unknown");
Heat pump exhaust air damper command
Extract Air Temperature Temperature Sensor Read-only

Temperature of air extracted from the building before heat recovery

Register: A:9 Float Unit: °C numeric
Service Attributes
Heat Pump Exhaust Air Damper Command

Extract Air Temperature

Read temperature
MODBUSR(A, 9, Float , 2)
Service Attributes
Heat pump exhaust air damper command
Switch (MODBUSR(H, 2064, Uint16), 1, "Active", 0, "Inactive", "Unknown");
Heating Circuit Flow Temperature Temperature Sensor Read-only

Water temperature in the heating circuit flow pipe — WH4 model only

Register: A:97 Float Unit: °C numeric
Service Attributes
Rotary Heat Exchanger Speed
Heat Pump Setpoint Flow Temperature
Heat Pump Thermic Power Output

Heating Circuit Flow Temperature

Read temperature
MODBUSR(A, 97, Float, 2)
Service Attributes
Rotary heat exchanger speed
 ROUND(MODBUSR(H, 1, Float, 2)) + " %"
Heat pump setpoint flow temperature
MODBUSR(H, 73, Float, 2) + " °C"
Heat Pump Thermic Power Output
MODBUSR(H, 65, Float, 2) + " kW"
Heating Circuit Return Temperature Temperature Sensor Read-only

Water temperature in the heating circuit return pipe — WH4 model only

Register: A:101 Float Unit: °C numeric

Heating Circuit Return Temperature

Read temperature
MODBUSR(A, 101, Float, 2)
Hot Water Boost Multi-value Switch

Temporary maximum hot water production — Ready, Start, Stop

Register: H:3019 UInt16 numeric
Values / States: Ready · Start · Stop
Service Actions
Duration of Boost

Hot Water Boost

Read switch state
MODBUSR(H, 3019, UInt16)
Write switch state
MODBUSWNE(H, 3019, UInt16, Mu)
Service Attributes
Duration of boost
MODBUSR(H, 1513, Uint32) + " min";
Service Actions
Duration of boost
Parameters: Duration [0-300 min] (0–300 dur)
MODBUSW(H, 1513, Uint32, dur);
Hot Water Mode Multi-value Switch

Domestic hot water strategy — Comfort (charges at 50%) or Economy (charges at 15%)

Register: H:3017 UInt16 numeric
Values / States: Comfort · Economy

Hot Water Mode

Read switch state
MODBUSR(H, 3017, UInt16)
Write switch state
MODBUSW(H, 3017, UInt16, Mu)
Service Attributes
Heating circuit pump speed
MODBUSR(H, 61, Float, 2) + " %"
Storage tank consumer valve position
 ROUND(MODBUSR(H, 57, Float, 2)) + " %"
Operating Mode Multi-value Switch

Ventilation operating mode — Stop, Away, Home, High

Register: H:2013 UInt16 numeric
Values / States: Stop · Away · Home · High

Operating Mode

Read switch state
MODBUSR(H, 2013, Uint16)
Write switch state
MODBUSW(H, 2013, Uint16, Mu)
Outside Air Temperature Temperature Sensor Read-only
Register: A:1 Float Unit: °C numeric

Outside Air Temperature

Read temperature
MODBUSR(A, 1, Float)
Supply Air Temperature Temperature Sensor Read-only

Temperature of fresh air supplied into the building after heat recovery and reheating

Register: A:5 Float Unit: °C numeric

Supply Air Temperature

Read temperature
MODBUSR(A, 5, Float, 2)
Temperature When Away Thermostat

Supply air temperature setpoint for Away mode (10–30°C)

Register: H:1163 Float Unit: °C numeric

Temperature When Away

Read desired temperature
MODBUSR(H, 1163, Float, 2)
Write desired temperature
MODBUSW(H, 1163, Float, Se)
Temperature When Home Thermostat

Supply air temperature setpoint for Home mode (10–30°C)

Register: H:1155 Float Unit: °C numeric

Temperature When Home

Read desired temperature
MODBUSR(H, 1155, Float, 2)
Write desired temperature
MODBUSW(H, 1155, Float, Se)
Fireplace Ventilation Multi-value Switch

Activates overpressure mode to prevent smoke entry when lighting a fireplace — Ready, Trigger

Register: H:3007 UInt16 numeric
Values / States: Ready · Trigger
Service Actions
Fireplace Ventilation Runtime

Fireplace Ventilation

Read switch state
MODBUSR(H, 3007,UInt16)
Write switch state
MODBUSWNE(H, 3007, UInt16, Mu)
Service Attributes
Fireplace Ventilation Runtime
MODBUSR(H, 1105, Uint32) + " min"
Service Actions
Fireplace Ventilation Runtime
Parameters: duration [0 - 360 min] (0–360 dur)
MODBUSW(H, 1105, Uint32, dur)
Rapid Ventilation Multi-value Switch

Temporary high-speed ventilation for quick air exchange — Ready, Trigger

Register: H:3006 UInt16 numeric
Values / States: Ready · Trigger
Service Actions
Rapid Ventilation Runtime

Rapid Ventilation

Read switch state
MODBUSR(H, 3006, UInt16)
Write switch state
MODBUSWNE(H, 3006, UInt16, Mu)
Service Attributes
Rapid ventilation runtime
MODBUSR(H, 1103, Uint32) + " min"
Service Actions
Rapid Ventilation Runtime
Parameters: Duration [1-360 min] (1–360 dur)
MODBUSW(H, 1103, Uint32, dur)
Connection: Modbus RTU • 9600 baud• 8E1 • Slave ID: $[SlaveId]
Possible improvements (7)
  • pyflexit CI66 Register Map (Nordic S2–S4, CL2–CL4) — Complete CI66 adapter register map (addresses 0–48) for Nordic models — NOT applicable to EcoNordic which uses proprietary registers
  • H:2013 value 5+ Fume Hood and Calendar Modes — Heat Recovery Ventilation State shows values 5=Fume hood, 6=Fireplace, 7=Temporary high — but Operating Mode (H:2013) only exposes Stop/Away/Home/High (1–4). Fume hood may require separate trigger register
  • unknown Filter Timer / Filter Alarm — CI66 has filter operating hours (reg 8), filter alarm (reg 27), filter alarm period (reg 46). EcoNordic likely has equivalent registers but they are not in the XML template
  • unknown Heat Recovery Efficiency — CI66 exposes heat recovery percentage (0–100%). EcoNordic may have equivalent register — can be calculated from supply/extract/outside temperatures
  • unknown Supply Air Fan Speed — Exhaust fan speed is exposed (H:9) but supply fan speed is missing from the template. EcoNordic likely has this register
  • unknown Heating Circuit Setpoint Temperature — WH4 heating set value and parallel shift for the heat curve — not exposed in the template
  • doc 2882 (404) Full EcoNordic Modbus Register Map — Official Flexit Modbus EcoNordic Basic XLSX register map returned 404 — may contain additional registers not in the XML template

Sources