
The Midea M-Thermal A Series Split (R32) is an inverter heat pump system consisting of an outdoor unit and a hydronic box. The system communicates with TapHome via Modbus RTU over RS-485 at 9600 baud, exposing holding registers for control and monitoring. The template provides heating and DHW on/off control, operating mode selection, DHW thermostat, temperature sensors, compressor diagnostics and refrigerant pressure monitoring.
The same Modbus register map is used by OEM clones including Hyundai, Concept, Hajdu, Immergas and Clivet Swan heat pumps. The template is compatible with these units when using the same wired controller and hydronic box hardware.
The Modbus register map for this device is community-sourced (Home Assistant community). Register addresses have been verified by multiple users but are not officially documented by Midea.
Hardware connection
RS-485 wiring
The RS-485 Modbus connection is provided through ports H1 and H2 on the wired controller PCB. The wired controller must be connected to the hydraulic module for full Modbus data access.
Connect the RS-485 signal lines:
| Signal | Direction | Port |
|---|---|---|
| BUS1 (A+) | <-> | H2 |
| BUS2 (B-) | <-> | H1 |
Important — Wired controller required
The wired controller must be connected to the hydronic box for Modbus communication to work. Without the wired controller, registers will not be accessible over RS-485.
Technical specifications
- Protocol: Modbus RTU Slave, RS-485
- Baud rate: 9600, no parity, 1 stop bit, 8 data bits
- Default Slave ID: 1 (rotary switch S3 position 0)
- Models: MHA-V4W to MHA-V16W (4-16 kW), D2N8-B and D2RN8-B variants
- Hydronic box: HB-A60/A100/A160/CGN8-B
Configuration
Slave address (S3 rotary switch)
The Modbus slave address is set by rotary switch S3 on the hydronic box main PCB. Position 0 corresponds to slave address 1.

Key components on the hydronic box PCB:
- S3 (label 2) — Rotary dip switch for Modbus slave address
- CN14 (label 21) — Communication with the wired controller
- CN19 (label 20) — Communication between indoor and outdoor unit
- CN30 (label 22) — Communication with wired controller and internal machine parallel
- DIS1 (label 3) — Digital display for error codes
Enabling Modbus communication
- Remove all power from the heat pump system
- Remove the wired controller backplate
- Connect the RS-485 A and B signal lines to ports H1 and H2 on the wired controller
- Access the hydronic box PCB
- Ensure the rotary switch S3 is set to the desired position (position 0 = slave address 1)
- Turn on the heat pump system
When configuring the TapHome module, use Modbus RTU with 9600 baud, no parity, 1 stop bit, 8 data bits. The default slave ID is 1 (S3 position 0). If using a Modbus TCP-to-RTU gateway (such as WaveShare), configure the gateway port to 502 and set the slave ID to match the S3 switch position.
Static IP recommendation
If connecting through a Modbus TCP-to-RTU gateway, assign a static IP address or DHCP reservation to the gateway to prevent connectivity issues when the IP address changes.
Device capabilities
Heating and DHW control
The template uses register H:0 as a bit field to control individual functions:
- Heating (H:0 bit 1) — enables or disables the space heating function
- DHW (H:0 bit 2) — enables or disables the domestic hot water function
- Disinfection (H:5 bit 4) — enables the anti-legionella disinfection cycle for the DHW tank
Each function is controlled independently using GETBIT/SETBIT operations, allowing heating and DHW to be toggled without affecting each other.
Operating mode
Heat Pump Mode (H:1) selects the operating mode: Auto (0), Auto (1), Cooling (2), Heating (3), and additional modes (4-9). The template presents this as a multi-value switch.
DHW thermostat
DHW Temperature reads the current DHW tank temperature from H:115 (T5 sensor) and writes the target temperature to H:4. This functions as a thermostat — the current temperature is displayed alongside the setpoint.
Temperature monitoring
The template provides five temperature sensors:
- Calculated Water Temperature (H:110) — final water outlet temperature (T1 sensor)
- Weather-Compensated Target Temperature (H:136) — equithermic curve target temperature calculated by the heat pump controller
- Inlet Water Temperature (H:104) — water entering the heat exchanger (Tw_in sensor)
- Outlet Water Temperature (H:105) — water leaving the heat exchanger (Tw_out sensor)
- Outdoor Temperature (H:107) — outdoor ambient temperature (T4 sensor), polled every 1 second
Compressor and performance diagnostics
- Compressor Frequency (H:100) — current inverter compressor speed in Hz
- Compressor Operating Time (H:122) — cumulative compressor run time in hours
- Fan Speed (H:102) — outdoor unit fan speed in RPM (12 speed steps, 200-730 RPM depending on model)
- Capacity (H:140) — current heat pump capacity output (raw value / 100)
- Water Flow (H:138) — water flow rate through the hydronic circuit in m³/h (raw value / 100)
Electrical monitoring
- Outdoor Unit Voltage (H:119) — supply voltage (protection: single phase >=265 V or <=172 V, error code H7)
- Outdoor Unit Current (H:118) — compressor current draw (protection limits vary by model: 18 A for 4-6 kW, 30 A for 12-16 kW)
- DC Bus Voltage (H:134) — inverter DC bus voltage (raw value x 10)
- DC Bus Current (H:133) — inverter DC bus current
Refrigerant pressure
- Outdoor Unit High Pressure (H:116) — refrigerant high-side pressure in kPa (protection triggers at >4.3 MPa, error code P1)
- Outdoor Unit Low Pressure (H:117) — refrigerant low-side pressure in kPa (protection triggers at <0.14 MPa, error code P0)
Service diagnostics
The module exposes two service attributes:
- Software Version (H:130) — heat pump firmware version number
- Attribute — placeholder service attribute (empty read formula)
Additional capabilities
The Midea M-Thermal system also exposes registers for heating curve selection, forced water heating, forced tank booster heater (TBH) and internal backup heater (IBH1) control, Smart Grid maximum setpoint, and additional temperature sensors including T1S (final water outlet), T3 (air side HX outlet), Tp (discharge pipe), Th (suction pipe), T1, T2 (liquid pipe) and T2B (gas pipe). Fault code readback (H:124), load output percentage, target compressor frequency, system status bits, and cumulative energy counters (electricity consumption and heat output as Int32 across two registers) are also available. IBH1, IBH2 and TBH power settings can be configured. These can be added in a future template update.
The current fault code register (H:124) is not included in the template. To monitor heat pump errors, it can be added as a custom Modbus device in TapHome reading register H0124 as Int16.
Troubleshooting
No Modbus communication
- Verify the wired controller is connected to the hydronic box — without it, Modbus registers are not accessible
- Check RS-485 signal connections: BUS1 to H2, BUS2 to H1
- Confirm TapHome is set to: 9600 baud, no parity, 1 stop bit, 8 data bits
- Verify the slave address: check the S3 rotary switch position on the hydronic box PCB (position 0 = address 1)
- If using a TCP-to-RTU gateway, verify the gateway is reachable and the serial port settings match
Communication error (H0 error code)
Error code H0 indicates a communication error between the outdoor unit and the hydronic box. Possible causes:
- Power supply abnormal — check transformer input (220 V AC) and output (13.5 V AC)
- Electromagnetic interference from nearby high-frequency devices — relocate or shield
- Communication wires P, Q, E between outdoor unit and hydraulic module are loose or damaged — reconnect
Temperature sensor errors (E3-E9 codes)
Error codes E3, E4, H2, H3, Ed, HA, E5, E6, E9, EA indicate temperature sensor failures:
- Check the sensor connection on the corresponding PCB port (see PCB layout diagram)
- Measure sensor resistance — if too low, the sensor is short-circuited; if inconsistent with the resistance table, the sensor has failed
- If connections are correct and sensor is functional, the PCB may need replacement
Pressure protection errors
- P0 (low pressure) — suction pressure below 0.14 MPa. Check refrigerant charge, expansion valve operation
- P1 (high pressure) — discharge pressure above 4.3 MPa. Check condenser airflow, fan operation, refrigerant overcharge
- P4 (high discharge temperature) — discharge pipe temperature above 115 °C. Check compressor operation, refrigerant levels