Daikin · Heat pump
Altherma 3 via Daikin HomeHub (EKRHH) Modbus register map
Default configuration
- Protocol
- Modbus TCP
- Port
- 502
- Unit ID
- 1
- Addressing
- 1-based
- Byte order
- Big endian
- Word order
- High word first
Register map
| Address | Count | Name | Type | Unit | Scale | Access |
|---|---|---|---|---|---|---|
| 21 | 1 | Unit error 0 = no error, 1 = error, 2 = warning. | UInt16 | - | 1 | R |
| 22 | 1 | Unit error code Two ASCII characters in one register (high byte first), e.g. "U8". | Ascii | - | 1 | R |
| 23 | 1 | Unit error subcode 32766 when there is no error, 0-99 together with an error. | Int16 | - | 1 | R |
| 30 | 1 | Circulation pump running 0 = off, 1 = on. | UInt16 | - | 1 | R |
| 31 | 1 | Compressor running 0 = off, 1 = on. | UInt16 | - | 1 | R |
| 32 | 1 | Backup heater running 0 = off, 1 = on. | UInt16 | - | 1 | R |
| 33 | 1 | Disinfection operation 0 = off, 1 = on. | UInt16 | - | 1 | R |
| 35 | 1 | Defrost / startup 0 = off, 1 = on. | UInt16 | - | 1 | R |
| 36 | 1 | Hot start 0 = off, 1 = on. | UInt16 | - | 1 | R |
| 37 | 1 | 3-way valve 0 = space heating, 1 = domestic hot water. | UInt16 | - | 1 | R |
| 38 | 1 | Operation mode 1 = heating, 2 = cooling. | UInt16 | - | 1 | R |
| 40 | 1 | Leaving water temperature, plate heat exchanger Flow temperature at the plate heat exchanger (Temp16 format: raw value / 100). | Int16 | °C | 0.01 | R |
| 41 | 1 | Leaving water temperature, backup heater | Int16 | °C | 0.01 | R |
| 42 | 1 | Return water temperature | Int16 | °C | 0.01 | R |
| 43 | 1 | Domestic hot water temperature | Int16 | °C | 0.01 | R |
| 44 | 1 | Outdoor air temperature | Int16 | °C | 0.01 | R |
| 45 | 1 | Liquid refrigerant temperature | Int16 | °C | 0.01 | R |
| 49 | 1 | Flow rate Water flow rate, raw value divided by 100. | Int16 | l/min | 0.01 | R |
| 50 | 1 | Remote controller room temperature | Int16 | °C | 0.01 | R |
| 51 | 1 | Heat pump power consumption Pow16 format: raw value / 100 gives kW. | Int16 | kW | 0.01 | R |
| 52 | 1 | DHW normal operation 0 = idle/buffering, 1 = in operation. | UInt16 | - | 1 | R |
| 53 | 1 | Space heating/cooling normal operation 0 = idle/buffering, 1 = in operation. | UInt16 | - | 1 | R |
| 54 | 1 | Main LWT heating setpoint, lower limit | Int16 | °C | 0.01 | R |
| 55 | 1 | Main LWT heating setpoint, upper limit | Int16 | °C | 0.01 | R |
| 56 | 1 | Main LWT cooling setpoint, lower limit | Int16 | °C | 0.01 | R |
| 57 | 1 | Main LWT cooling setpoint, upper limit | Int16 | °C | 0.01 | R |
| 58 | 1 | Additional LWT heating setpoint, lower limit | Int16 | °C | 0.01 | R |
| 59 | 1 | Additional LWT heating setpoint, upper limit | Int16 | °C | 0.01 | R |
| 60 | 1 | Additional LWT cooling setpoint, lower limit | Int16 | °C | 0.01 | R |
| 61 | 1 | Additional LWT cooling setpoint, upper limit | Int16 | °C | 0.01 | R |
Notes
Source: Daikin, "Daikin HomeHub EKRHH - Reference for installers", 4P744838-1D (2024.05), section 9 "Use case 3 - Modbus TCP/IP or RTU for Daikin Altherma", tables 9.2.1 (holding) and 9.2.2 (input). The HomeHub gives Altherma 3 a Modbus TCP/RTU server on port 502 (RTU: RS-485, 9600 baud, 8 data bits, even parity, 1 stop bit). Register numbering in the Daikin data model is 1-based while PDU addressing is 0-based, hence one_based: register 1 is PDU address 0. Sensor temperatures use Temp16 (raw / 100), power Pow16 (raw / 100 = kW), flow rate raw / 100 in l/min, the error code two ASCII characters in one register; holding setpoints are plain integers in their documented unit. Holding rows 6, 7, 53, 59, 61 and 65 were re-checked against the vendor table (pages 38-39): 6 = room thermostat heating setpoint 12-30 C, 7 = cooling counterpart 15-35 C, 53 = weather dependent mode main, 59/61 = thermostat main/additional input A, 65 = weather dependent mode additional, so the labels stand. The daikin-ha-ekrhh-modbus integration also uses 68/69, 74/75 and 76/77 and marks 6/7 obsolete for its newer firmware / Altherma 4 set; this edition does not list those offsets, so a newer unit may expose the room setpoints at 76/77 instead of 6/7. Offsets without a documented meaning (5, 8, 11, 14-52, 60, 62) are application-dependent and left out. Writing a setpoint outside its range clamps it to the nearest limit (limits in input registers 54-61). Altherma 3 R/3 M indoor units with Micon ID 20002203 do not support 59, 61, 63 and 64.