TapHome
Community Beta · unverified HVAC integration

AUX ACHP-H Heat Pump

AUX ACHP-H air-to-water monobloc heat pump in TapHome over Modbus RTU on RS-485, connected directly to the XK08 wired controller or through the AUX Modbus Gateway. Controls on/off, operating mode, water and hot water setpoints, ECO, weather compensation, silent mode and the tank electric heater; reads temperatures, water flow, power, heating capacity, COP, daily energy, backup heater status and fault codes.

Modbus RTU26 devicesRevision 1.2 Last updated: November 10, 2026

Submitted by Martin Keller

Import into the TapHome appHardware › Modbus › Add from template

Download Template
On this page

Integration guide

The AUX ACHP-H is an air-to-water monobloc heat pump (R290/R32) for space heating, cooling and domestic hot water. The manufacturer documents used for this page cover the R290 monobloc range ACHP-H04 to ACHP-H16. TapHome talks to the heat pump over Modbus RTU on an RS-485 line, in one of two ways:

  • Directly on the XK08 wired controller — the controller has its own RS-485 port for a BMS (building management system) and its own Modbus page in the Options menu. No extra hardware is needed.
  • Through the AUX Modbus Gateway — a separate RS-485 to RS-485 gateway between the heat pump and TapHome, addressed with DIP switches.

The template switches the heat pump on and off, selects the operating mode, sets the water and hot water setpoints, controls ECO, weather compensation and silent mode, forces the tank electric heater on or off or leaves it to the heat pump, shows when the pipe backup heater and the tank electric heater run, reads temperatures, water flow, electrical power, heating capacity, COP and today’s energy, and turns outdoor and indoor unit fault codes into TapHome notifications with the code as shown on the display.

Communication parameters

Both connection paths use the same serial settings. They match the template defaults:

ParameterValue
ProtocolModbus RTU
Baud rate9600 bps
Data bits8
ParityEven
Stop bits1
Slave ID1–255 (template default 1)
Supported function codes03 read holding register, 06 write single register, 16 write multiple registers

The manufacturer states that the heat pump supports only function codes 03, 06 and 16. Coil functions, which the gateway itself offers for other AUX products, do not apply to the heat pump.

Option A — direct connection to the XK08 wired controller

Wiring

The XK08 wired controller is mounted on the wall and connected to the main control board of the hydraulic module. On the terminal block on the back of the controller, the manufacturer marks one pair of terminals as “Signal to BMS/Central controller” (marker ① in the manufacturer’s figure, terminals labelled B and A). The template description refers to this pair as A2/B2. The other terminals (B, A, 24V, GND and the plug-in socket) carry the communication with the hydraulic module and must stay as they are.

  1. Switch off the power of the indoor unit, as the manufacturer requires before opening the controller.
  2. Open the back cover: pry the bottom groove gently with a flathead screwdriver. Too much force damages the circuit board.
  3. Connect a 2-core shielded cable from the BMS terminal pair to the RS-485 bus of TapHome: A to A, B to B.
  4. Route the communication cable separately from power cables.
  5. Refit the controller body: push the upper part into the clip first, then the lower part.

The AUX manuals used here contain a figure of the XK08 terminal block but no wiring diagram from those terminals to a BMS. Check the labels on the controller itself before connecting, and do not touch the B, A, 24V and GND terminals of the hydraulic module link.

Enabling Modbus on the XK08

  1. On the controller, open the Options page.
  2. Select Modbus and press the confirm button to enter the Modbus page.
  3. Set Slave ID with the arrow buttons. Write the value down — TapHome needs it.
  4. Check Baud rate = 9600Bd and Parity check = Even.
AUX XK08 wired controller manual: Options menu, Modbus page with Slave ID, Baud rate 9600 and Parity check Even.

Option B — connection through the AUX Modbus Gateway

Gateway ports and power

The gateway has two RS-485 ports and three indicator lamps:

Port or lampPurpose
RS485-1To the heat pump’s RS-485 port (terminals A, B). Polarity does not matter on this port.
RS485-2To the BMS, here TapHome.
DC 12VPower supply — the installer provides an adapter with 12 V DC output and at least 300 mA.
POWER lampLights steadily when the gateway is powered.
485-1 lampFlickers when the gateway communicates normally with the heat pump.
485-2 lampFlickers when the gateway communicates normally with TapHome.

The gateway belongs in an electrical cabinet, front facing outward and terminals facing down, fixed horizontally with two screws.

The AUX documents used here do not show where the RS-485 port (A, B) for the gateway is located on the ACHP-H unit. Ask the AUX distributor for the exact terminal before wiring.

Wiring

AUX Modbus gateway manual: wiring diagram of a heat pump connected to the gateway RS-485-1 terminals, with the BMS on RS-485-2.
  1. Connect the gateway’s RS485-1 to the heat pump’s RS-485 port (A, B).
  2. Connect the gateway’s RS485-2 to the RS-485 bus of TapHome.
  3. With several gateways, run the RS485-2 line from the first gateway to the next one in a daisy chain.
  4. Set the DIP switches (below) before powering up.

Cable requirements from the manufacturer, for both lines:

  • Shielded PVC-sheathed twisted-pair copper cable (type RVVSP), at least 2 × 0.75 mm².
  • At most 800 m per line. On the heat pump side, the total length includes the communication wiring between the indoor and outdoor unit.
  • Above 800 m in total, more than 30 gateways, or with an unstable signal, add a repeater.

Gateways must be connected in a daisy chain (“hand in hand”). Star and Y-shaped connections are forbidden. The power cable and the communication cables must be routed separately, otherwise the gateway may be damaged.

DIP switch SW1 — function and line termination

For a heat pump, set SW1-2 = ON, SW1-3 = OFF, SW1-4 = OFF (“Modbus (Heat pump)”).

SW1-1 connects the gateway’s 120 Ω matching resistor, which belongs to the RS485-2 side. When the communication line is longer than 300 m, the line must be terminated at both ends: set SW1-1 to ON on the gateway at the end of the line and add a 120 Ω resistor at the other end.

AUX Modbus gateway manual: SW1 DIP switch table; SW1-2 ON with SW1-3 and SW1-4 OFF selects Modbus for heat pumps, SW1-1 enables the 120 ohm terminator.

DIP switch SW2 — Modbus address

SW2 is an 8-bit binary switch that sets the gateway’s Modbus address, 1–255. All switches off (address 0) is not valid. SW2-1 is the highest bit (128) and SW2-8 the lowest (1). Example from the manual: address 26 = SW2-4, SW2-5 and SW2-7 ON, all others OFF. Every gateway on the same line needs a different address, otherwise communication fails.

AUX Modbus gateway manual: SW2 DIP switch sets the gateway Modbus address 1-255; example for address 26; serial 9600 baud, even parity.

DIP switch settings take effect only after the gateway’s power is switched off and on again.

The manual’s heat pump register table for the gateway ends at register 73. Water flow, today’s energy, defrost, heating capacity, electrical power, COP and the related service attributes (registers 86–99) are listed only in the XK08 controller manual. Through the gateway these values may not be available. The same applies to the tank electric heater control (register 411) and the tank heater TBH attribute (register 268).

Adding the heat pump in TapHome

Import the template on the Modbus RTU interface the heat pump is wired to, set the interface to 9600 bps, 8 data bits, even parity and 1 stop bit, and enter the Slave ID (XK08: Options → Modbus; gateway: DIP switch SW2).

Device capabilities

All values are holding registers. Temperatures and setpoints are transferred in 0.1 °C.

Heat pump control

DeviceWhat it doesRegister
Heat pump on/offSwitches the unit on or off0
Operating modeAuto, Cooling or Heating1
Water temperature setpointThermostat: target water temperature (register 2), current temperature from the plate heat exchanger water outlet (register 65)2, 65
ECO modeOff or ECO 1–85
Weather compensationOff or automatic water temperature curve Auto 1–96
Silent modeOff, Silent 1 or Silent 213

The manufacturer’s tables give 5–25 °C for the cooling setpoint. For heating, the gateway manual gives 25–65 °C and the XK08 manual 25–80 °C. Keep the setpoint within the range of the unit and connection path in use.

Domestic hot water

DeviceWhat it doesRegister
Hot water on/offSwitches hot water heating on or off3
Hot water setpointTarget tank temperature in °C (gateway manual 30–60 °C, XK08 manual 30–75 °C)4
Fast hot waterFast DHW heating on or off8

Backup heaters

DeviceWhat it doesRegister
Pipe backup heaterShows On while the pipe backup heater runs (read only)61
Tank electric heaterShows On while the electric heater in the hot water tank runs; the manufacturer calls it the tank backup heater (read only)62
Tank electric heater controlAuto, Forced off or Forced on for the tank electric heater411

Tank electric heater control writes 0 for Forced off and 1 for Forced on. Auto writes 32768 (0x8000), which cancels the forced control and leaves the heater to the heat pump’s own control; any register value other than 0 or 1 is shown as Auto. The manufacturer lists register 411 only in the XK08 controller’s register table.

Temperatures

DeviceRegister
Suction temperature50
Discharge temperature51
Exchanger temperature52
Outdoor temperature53
Water inlet temperature (plate heat exchanger)64
Hot water tank temperature66
Floor heating outlet temperature67
Floor heating inlet temperature68
Room temperature (zone 1)69

Flow, power and efficiency

These registers come from the XK08 controller’s register table.

DeviceUnitRegister
Water flowm³/h86
Electrical powerkW93
Heating capacitykW91
COP—95
Energy consumed todaykWh87

Notifications

The module reads the status registers and raises:

  • Error “Outdoor unit fault …” when register 70 is not 0, and “Indoor unit fault …” when register 71 is not 0, followed by the fault code as on the display, for example “Outdoor unit fault A1”.
  • Information “Defrosting” while the unit defrosts (register 88).

Whether the pipe backup heater or the tank electric heater runs is shown by their own devices (see Backup heaters).

Service attributes and actions

In the module’s service view, the template shows outdoor unit capacity and operating mode, compressor frequency, target frequency, current, pressure and run time, fan speed, expansion valve position, DC bus voltage, inverter input current and module temperature, average power and COP over the last hour, the software versions of the outdoor and indoor unit (decoded from the manufacturer’s BCD code, for example V1.0) and of the wired controller, and the state of the advanced settings (DHW mode, disinfection, DHW priority, cooling and heating mode enabled, water or room temperature control, double zone, tank heater TBH, indoor backup heater).

Service actions:

  • Run DHW pump and Start disinfection — one-off commands; the manufacturer notes that the water module ends them automatically.
  • Set DHW mode, Set disinfection enabled, Set DHW priority, Set cooling mode enabled, Set heating mode enabled, Set water temperature control, Set room temperature control, Set double zone, Set indoor backup heater — On/Off for the advanced parameters in registers 200–241.

The XK08 manual limits the number of control commands to an indoor unit to 1 million. The template writes a register only when its value changes; avoid smart rules that rewrite setpoints or modes in short cycles.

Troubleshooting

No response from the heat pump

  • Check that the Slave ID in TapHome equals the value on the XK08 Modbus page or on gateway switch SW2.
  • Check the serial settings on both sides: 9600 bps, 8 data bits, even parity, 1 stop bit.
  • XK08: check that the cable is on the BMS terminal pair, not on the hydraulic module terminals, and that A and B are not swapped.
  • Gateway: check SW1 (SW1-2 ON, SW1-3 OFF, SW1-4 OFF) and switch the gateway’s power off and on after any DIP switch change.
  • Gateway: two gateways with the same address on one line make communication fail.

Gateway indicator lamps

SymptomPossible causes (manufacturer)
POWER lamp offNo 12 V supply, reversed 12 V polarity, faulty main supply or gateway
485-1 lamp does not flickerWrong SW1 setting, heat pump without power, wrong port or poor connection on RS485-1
485-2 lamp does not flickerWrong SW1 or SW2 setting, TapHome without power, wrong port or poor connection on RS485-2

Communication errors right after start (gateway)

RS485-2 identifies the line polarity by itself. It needs continuous traffic — more than 300 bytes or 5 frames — before it switches to the correct polarity, so the first requests after power-up may fail. If errors persist, check the cable length and the termination (SW1-1) for lines over 300 m.

Reading the fault code

TapHome shows the fault code in hexadecimal, as on the heat pump’s display, for example “Outdoor unit fault A1” for fault A1. The template shows the digits as the unit sends them: the digit B in TapHome stands for the display character H and D for J. Look the code up in the fault table of the heat pump’s service manual.

Water flow, power or COP stay at 0 through the gateway

These values (registers 86–99) are documented only for the XK08 controller. If they do not update through the AUX Modbus Gateway, connect TapHome directly to the XK08 instead.

Available devices 26

These devices appear in TapHome after import.

AUX ACHP-H Module
Service Attributes
Outdoor unit capacity
Outdoor unit operating mode
Compressor frequency
Fan speed
Expansion valve
Compressor current
Target frequency
DC bus voltage
Inverter input current
Inverter module temperature
Compressor pressure
DHW mode
Disinfection enabled
DHW priority
Cooling mode enabled
Heating mode enabled
Water temperature control
Room temperature control
Double zone
Tank heater (TBH) enabled
Indoor backup heater
Outdoor unit software
Indoor unit software
Compressor run time
Average power (1 h)
Average COP (1 h)
Wired controller software
Service Actions
Run DHW pump
Start disinfection
Set DHW mode
Set disinfection enabled
Set DHW priority
Set cooling mode enabled
Set heating mode enabled
Set water temperature control
Set room temperature control
Set double zone
Set indoor backup heater

AUX ACHP-H

Read (module)
var odu := MODBUSR(H, 70, Int16);
IF(odu > 0)
  ADDERROR(0, "Outdoor unit fault " + TOSTRING(odu, "X2"));
END
var idu := MODBUSR(H, 71, Int16);
IF(idu > 0)
  ADDERROR(1, "Indoor unit fault " + TOSTRING(idu, "X2"));
END
var defrost := MODBUSR(H, 88, Int16);
IF(defrost = 1)
  ADDINFO(0, "Defrosting");
END
Service Attributes
Outdoor unit capacity
TOSTRING(MODBUSR(H, 40, Int16) * 100, "F0") + " W"
Outdoor unit operating mode
IF(MODBUSR(H, 41, Int16) = 0, "Stopped", IF(MODBUSR(H, 41, Int16) = 1, "Cooling", IF(MODBUSR(H, 41, Int16) = 2, "Heating", "Hot water")))
Compressor frequency
TOSTRING(MODBUSR(H, 42, Int16) / 10, "F1") + " rps"
Fan speed
TOSTRING(MODBUSR(H, 43, Int16), "F0") + " rpm"
Expansion valve
TOSTRING(MODBUSR(H, 44, Int16), "F0") + " pls"
Compressor current
TOSTRING(MODBUSR(H, 45, Int16) / 10, "F1") + " A"
Target frequency
TOSTRING(MODBUSR(H, 46, Int16) / 10, "F1") + " rps"
DC bus voltage
TOSTRING(MODBUSR(H, 47, Int16), "F0") + " V"
Inverter input current
TOSTRING(MODBUSR(H, 48, Int16) / 10, "F1") + " A"
Inverter module temperature
TOSTRING(MODBUSR(H, 49, Int16) / 10, "F1") + " °C"
Compressor pressure
TOSTRING(MODBUSR(H, 54, Int16), "F0") + " kPa"
DHW mode
IF(MODBUSR(H, 200, Int16) = 1, "On", "Off")
Disinfection enabled
IF(MODBUSR(H, 201, Int16) = 1, "On", "Off")
DHW priority
IF(MODBUSR(H, 202, Int16) = 1, "On", "Off")
Cooling mode enabled
IF(MODBUSR(H, 213, Int16) = 1, "On", "Off")
Heating mode enabled
IF(MODBUSR(H, 224, Int16) = 1, "On", "Off")
Water temperature control
IF(MODBUSR(H, 237, Int16) = 1, "On", "Off")
Room temperature control
IF(MODBUSR(H, 238, Int16) = 1, "On", "Off")
Double zone
IF(MODBUSR(H, 239, Int16) = 1, "On", "Off")
Tank heater (TBH) enabled
IF(MODBUSR(H, 268, Int16) = 1, "On", "Off")
Indoor backup heater
IF(MODBUSR(H, 241, Int16) = 1, "On", "Off")
Outdoor unit software
"V" + COPY(TOSTRING(MODBUSR(H, 72, Int16), "X2"), 0, 1) + "." + COPY(TOSTRING(MODBUSR(H, 72, Int16), "X2"), 1, 1)
Indoor unit software
"V" + COPY(TOSTRING(MODBUSR(H, 73, Int16), "X2"), 0, 1) + "." + COPY(TOSTRING(MODBUSR(H, 73, Int16), "X2"), 1, 1)
Compressor run time
TOSTRING(MODBUSR(H, 99, UInt16), "F0") + " min"
Average power (1 h)
TOSTRING(MODBUSR(H, 94, UInt16) / 100, "F2") + " kW"
Average COP (1 h)
TOSTRING(MODBUSR(H, 96, UInt16) / 100, "F2")
Wired controller software
TOSTRING(MODBUSR(H, 90, Int16), "F0")
Service Actions
Run DHW pump
MODBUSW(H, 7, Int16, 1);
Start disinfection
MODBUSW(H, 9, Int16, 1);
Set DHW mode
Parameters: Dhw mode (On / Off)
MODBUSW(H, 200, Int16, dhw);
Set disinfection enabled
Parameters: Disinfection enabled (On / Off)
MODBUSW(H, 201, Int16, dis);
Set DHW priority
Parameters: Dhw priority (On / Off)
MODBUSW(H, 202, Int16, prio);
Set cooling mode enabled
Parameters: Cooling mode enabled (On / Off)
MODBUSW(H, 213, Int16, cool);
Set heating mode enabled
Parameters: Heating mode enabled (On / Off)
MODBUSW(H, 224, Int16, heat);
Set water temperature control
Parameters: Water temperature control (On / Off)
MODBUSW(H, 237, Int16, wft);
Set room temperature control
Parameters: Room temperature control (On / Off)
MODBUSW(H, 238, Int16, rmt);
Set double zone
Parameters: Double zone (On / Off)
MODBUSW(H, 239, Int16, dz);
Set indoor backup heater
Parameters: Indoor backup heater (On / Off)
MODBUSW(H, 241, Int16, ibh);
Heat pump on/off Switch
Values / States: ON · OFF

Heat pump on/off

Read switch state
MODBUSR(H, 0, Int16)
Write switch state
MODBUSWNE(H, 0, Int16, St)
Operating mode Multi-value Switch
Values / States: Auto · Cooling · Heating

Operating mode

Read switch state
MODBUSR(H, 1, Int16)
Write switch state
MODBUSWNE(H, 1, Int16, Mu)
Water temperature setpoint Thermostat

Water temperature setpoint

Read temperature
MODBUSR(H, 65, Int16) / 10
Read desired temperature
MODBUSR(H, 2, Int16) / 10
Write desired temperature
MODBUSWNE(H, 2, Int16, Se * 10)
Hot water on/off Switch
Values / States: ON · OFF

Hot water on/off

Read switch state
MODBUSR(H, 3, Int16)
Write switch state
MODBUSWNE(H, 3, Int16, St)
Hot water setpoint Variable

Hot water setpoint

Read
MODBUSR(H, 4, Int16) / 10
Write
MODBUSWNE(H, 4, Int16, Va * 10)
Fast hot water Switch
Values / States: ON · OFF

Fast hot water

Read switch state
MODBUSR(H, 8, Int16)
Write switch state
MODBUSWNE(H, 8, Int16, St)
ECO mode Multi-value Switch
Values / States: Off · ECO 1 · ECO 2 · ECO 3 · ECO 4 · ECO 5 · ECO 6 · ECO 7 · ECO 8

ECO mode

Read switch state
MODBUSR(H, 5, Int16)
Write switch state
MODBUSWNE(H, 5, Int16, Mu)
Weather compensation Multi-value Switch
Values / States: Off · Auto 1 · Auto 2 · Auto 3 · Auto 4 · Auto 5 · Auto 6 · Auto 7 · Auto 8 · Auto 9

Weather compensation

Read switch state
MODBUSR(H, 6, Int16)
Write switch state
MODBUSWNE(H, 6, Int16, Mu)
Silent mode Multi-value Switch
Values / States: Off · Silent 1 · Silent 2

Silent mode

Read switch state
MODBUSR(H, 13, Int16)
Write switch state
MODBUSWNE(H, 13, Int16, Mu)
Suction temperature Temperature Sensor

Suction temperature

Read temperature
MODBUSR(H, 50, Int16) / 10
Discharge temperature Temperature Sensor

Discharge temperature

Read temperature
MODBUSR(H, 51, Int16) / 10
Exchanger temperature Temperature Sensor

Exchanger temperature

Read temperature
MODBUSR(H, 52, Int16) / 10
Outdoor temperature Temperature Sensor

Outdoor temperature

Read temperature
MODBUSR(H, 53, Int16) / 10
Water inlet temperature Temperature Sensor

Water inlet temperature

Read temperature
MODBUSR(H, 64, Int16) / 10
Hot water tank temperature Temperature Sensor

Hot water tank temperature

Read temperature
MODBUSR(H, 66, Int16) / 10
Floor heating outlet temperature Temperature Sensor

Floor heating outlet temperature

Read temperature
MODBUSR(H, 67, Int16) / 10
Floor heating inlet temperature Temperature Sensor

Floor heating inlet temperature

Read temperature
MODBUSR(H, 68, Int16) / 10
Room temperature (zone 1) Temperature Sensor

Room temperature (zone 1)

Read temperature
MODBUSR(H, 69, Int16) / 10
Water flow Variable

Water flow

Read
MODBUSR(H, 86, Int16) / 100
Electrical power Variable

Electrical power

Read
MODBUSR(H, 93, UInt16) / 100
Heating capacity Variable

Heating capacity

Read
MODBUSR(H, 91, UInt16) / 100
COP Variable

COP

Read
MODBUSR(H, 95, UInt16) / 100
Energy consumed today Variable

Energy consumed today

Read
MODBUSR(H, 87, UInt16)
Tank electric heater Reed Contact

Tank electric heater

Read
MODBUSR(H, 62, Int16)
Tank electric heater control Multi-value Switch
Values / States: Auto · Forced off · Forced on

Tank electric heater control

Read switch state
SWITCH(MODBUSR(H, 411, UInt16), 0, 1, 1, 2, 0)
Write switch state
IF(Mu = 1)
  MODBUSWNE(H, 411, UInt16, 0);
END
IF(Mu = 2)
  MODBUSWNE(H, 411, UInt16, 1);
END
IF(Mu = 0)
  MODBUSWNE(H, 411, UInt16, 32768);
END
Pipe backup heater Reed Contact

Pipe backup heater

Read
MODBUSR(H, 61, Int16)
Connection: Modbus RTU • 9600 baud• 8E1 • Slave ID: $[SlaveId]

Import parameters

Enter these values when you import the XML.

Asked in the appDefault
Modbus Slave ID (XK08: Options → Modbus; gateway: DIP SW2)1

Found a problem with this device template?

Tell us what's wrong, what's missing, or how the template should behave. We rely on your feedback to keep the catalog accurate.

Template · TapHome portal AUX ACHP-H Heat Pump Open this template in the Customer Portal to apply it to one of your homes, or to draft a refinement and submit it back to the catalog. Modbus RTU View in TapHome portal