iDM · Heat pump
Heat pumps with NAVIGATOR 2.0 controller Modbus register map
Default configuration
- Protocol
- Modbus TCP
- Port
- 502
- Unit ID
- 1
- Addressing
- 0-based
- Byte order
- Big endian
- Word order
- Low word first
Register map
| Address | Count | Name | Type | Unit | Scale | Access |
|---|---|---|---|---|---|---|
| 74 | 2 | Current PV surplus PV surplus reported to the heat pump by the energy management system. | Float32 | kW | 1 | RW |
| 78 | 2 | Current PV production | Float32 | kW | 1 | RW |
| 1000 | 2 | Outside temperature (B31) | Float32 | °C | 1 | R |
| 1002 | 2 | Averaged outside temperature | Float32 | °C | 1 | R |
| 1004 | 1 | Current fault number Fault number of the controller (020-999); fault descriptions are in the NAVIGATOR manual. | UInt16 | - | 1 | R |
| 1005 | 1 | System operating mode 0 = standby, 1 = automatic, 2 = absent, 4 = DHW only, 5 = heating/cooling only. Stored in EEPROM, so avoid frequent writes. | UInt16 | - | 1 | RW |
| 1006 | 1 | Smart grid status 0 = utility lock and no PV yield, 1 = grid draw and no PV yield, 2 = no grid draw and PV yield, 4 = utility lock and PV yield. | UInt16 | - | 1 | R |
| 1008 | 2 | Heat store temperature (B38) | Float32 | °C | 1 | R |
| 1010 | 2 | Cold store temperature (B40) | Float32 | °C | 1 | R |
| 1012 | 2 | DHW cylinder temperature, bottom (B41) | Float32 | °C | 1 | R |
| 1014 | 2 | DHW cylinder temperature, top (B48) | Float32 | °C | 1 | R |
| 1030 | 2 | DHW draw-off temperature (B42) | Float32 | °C | 1 | R |
| 1032 | 1 | DHW setpoint temperature Stored in EEPROM, so avoid frequent writes. | UInt16 | °C | 1 | RW |
| 1033 | 1 | DHW charging switch-on temperature Stored in EEPROM, so avoid frequent writes. | UInt16 | °C | 1 | RW |
| 1034 | 1 | DHW charging switch-off temperature Stored in EEPROM, so avoid frequent writes. | UInt16 | °C | 1 | RW |
| 1050 | 2 | Heat pump flow temperature (B33) | Float32 | °C | 1 | R |
| 1052 | 2 | Heat pump return temperature (B34) | Float32 | °C | 1 | R |
| 1054 | 2 | Backup heater flow temperature (B35) | Float32 | °C | 1 | R |
| 1056 | 2 | Heat source inlet temperature (B43) | Float32 | °C | 1 | R |
| 1058 | 2 | Heat source outlet temperature (B36) | Float32 | °C | 1 | R |
| 1060 | 2 | Air intake temperature (B37) Air-to-water units only. | Float32 | °C | 1 | R |
| 1062 | 2 | Air heat exchanger temperature (B72) Air-to-water units only. | Float32 | °C | 1 | R |
| 1064 | 2 | Air intake temperature 2 (B46) Air-to-water units only. | Float32 | °C | 1 | R |
| 1090 | 1 | Heat pump operating mode 0 = off, 1 = heating, 2 = cooling, 4 = DHW, 8 = defrost. | UInt16 | - | 1 | R |
| 1099 | 1 | Heat pump collective fault 0 = no fault, 1 = fault (a latching fault stops the heat pump). | UInt16 | - | 1 | R |
| 1100 | 1 | Compressor 1 status 0 = off, 1 = on. | UInt16 | - | 1 | R |
| 1101 | 1 | Compressor 2 status 0 = off, 1 = on. | UInt16 | - | 1 | R |
| 4122 | 2 | Current heat pump power consumption | Float32 | kW | 1 | R |
Notes
Source: iDM Energiesysteme, "IDM NAVIGATOR - MODBUS TCP, Programmieranleitung / programming guide", document 812570 (German edition 812170), section 4.1 'Parameterliste', dated 10.03.2020 for NAVIGATOR software 20.15-0. Modbus TCP server on port 502, unit ID 1, decimal addresses used as wire addresses (zero-based). The guide only documents address, data type and access rights, not the Modbus data area; the whole map is read and written as holding registers, which is how the evcc IDM template and the idm-heatpump integrations use it. Two data types are used: UCHAR/WORD values occupy one register, FLOAT values are IEEE-754 single precision in two consecutive registers with the LOW word first (guide section 4.2), which is why the default configuration uses word order LowFirst; switch it to HighFirst if a unit reports implausible float values. Addresses marked with an asterisk in the guide (1005, 1032-1034 and the bivalence setpoints) are written straight to the controller EEPROM (max. 300,000 write cycles), so they must not be written cyclically. Registers 1102-1106 (further compressors and pump status) are left out because the published table's name and type columns are not reliably aligned for those rows. Controller parameters change with the installed NAVIGATOR family (2.0 / 10 / Pro) and with the configured heating circuits, zones and rooms, so not every address answers on every unit.