Daikin EKMBDXB7V1 Modbus register map
Modbus RTU interface for up to 64 indoor unit groups on a Daikin DIII-net (VRV, Sky Air, hydrobox, ventilation)
- Official
- 4,363 registers
- Modbus RTU
- Revision 2 · 2026-10-18
Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus RTU
- Unit ID
- 1
- Serial
- 9600 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
- Max read
- 32 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 1217 holding registers, 3146 input registers
- Groups
- 65
- Translation tables
- 9
- Revision
- 2 · 2026-10-18
- Added
- ()
- File
- maps/daikin/ekmbdxb7v1.mbmap.json · 747 KB · history
- SHA-256
- 0c4d576c25b12fe93808348318f4930057fde43cb8716ba4d11218700749bfb8
- Manufacturer
- daikin.com
Sources and notes
- Design guide Modbus Interface DIII EKMBDXB7V1 · version 4P642495-1A (2022.02) chapter 2 (communication) and chapter 3 (input and holding registers)
Source: Daikin, "Design guide Modbus Interface DIII EKMBDXB7V1", 4P642495-1A (2022.02)
- Each DIII address 1-00 to 4-15 has its own block of registers; index n runs from 0 (1-00) to 63 (4-15) and the register groups are named after the DIII address.
- Communication: DS1-2 off = 9600, on = 19200 baud; DS1-3/DS1-4 select parity even 1 stop (default), odd 1 stop, none 2 stop or none 1 stop. The slave address (1-15) is set with DS2.
- Supported function codes: 03, 04, 06 and 16. At most 32 registers per read and 30 per write.
- Holding registers do not follow the real state of the units: they only take the actual values when a unit is detected. Before changing one field, copy the current values from the matching input registers into the holding register so the other fields are not changed.
- Which registers have a meaning depends on the unit type (indoor unit, ventilation, hydrobox); check the capability registers first.
- The set point range bytes are 8-bit signed values in °C; they are read here as unsigned bytes, so values above 127 are negative (value - 256).
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| IR | 0 | bool bit 0 | R | 0 = busy (detecting units), 1 = ready | |||
| IR | 0 | bool bit 1 | R | ||||
| IR | 1 | uint16 | R | Bit 0-15 = DIII address 1-00 to 1-15, 1 = connected | |||
| IR | 2 | uint16 | R | Bit 0-15 = DIII address 2-00 to 2-15, 1 = connected | |||
| IR | 3 | uint16 | R | Bit 0-15 = DIII address 3-00 to 3-15, 1 = connected | |||
| IR | 4 | uint16 | R | Bit 0-15 = DIII address 4-00 to 4-15, 1 = connected | |||
| IR | 5 | uint16 | R | Bit 0-15 = DIII address 1-00 to 1-15, 1 = communication error | |||
| IR | 6 | uint16 | R | Bit 0-15 = DIII address 2-00 to 2-15, 1 = communication error | |||
| IR | 7 | uint16 | R | Bit 0-15 = DIII address 3-00 to 3-15, 1 = communication error | |||
| IR | 8 | uint16 | R | Bit 0-15 = DIII address 4-00 to 4-15, 1 = communication error | |||
| HR | 1000 | bool bit 0 | RW | 1 = forced off for all units; only works when no other DIII central device is present | |||
| IR | 1000 | bool bit 15 | R | ||||
| IR | 1000 | uint16 bits 12–14 | R | ||||
| IR | 1000 | bool bit 11 | R | ||||
| IR | 1000 | uint16 bits 8–10 | R | ||||
| IR | 1000 | bool bit 4 | R | ||||
| IR | 1000 | bool bit 3 | R | ||||
| IR | 1000 | bool bit 2 | R | ||||
| IR | 1000 | bool bit 1 | R | ||||
| IR | 1000 | bool bit 0 | R | ||||
| IR | 1001 | uint16 bits 8–15 | R | °C | |||
| IR | 1001 | uint16 bits 0–7 | R | °C | |||
| IR | 1002 | uint16 bits 8–15 | R | °C | |||
| IR | 1002 | uint16 bits 0–7 | R | °C | |||
| IR | 1400 | bool bit 5 | R | Hydrobox | |||
| IR | 1400 | bool bit 4 | R | Hydrobox | |||
| IR | 1400 | bool bit 2 | R | Hydrobox | |||
| IR | 1400 | bool bit 1 | R | Hydrobox | |||
| IR | 1401 | uint16 bits 8–15 | R | °C | |||
| IR | 1401 | uint16 bits 0–7 | R | °C | |||
| IR | 1402 | uint16 bits 8–15 | R | °C | |||
| IR | 1402 | uint16 bits 0–7 | R | °C | |||
| IR | 2000 | uint16 bits 12–14 | R | 0-7, meaning depends on the fan speed steps: fixed 5 = H; 2 steps 0 Auto, 1 L, 5 H; 3 steps 0 Auto, 1 L, 3 M, 5 H; 5 steps 0 Auto, 1 LL, 2 L, 3 M, 4 H, 5 HH; ventilation (VAM) 3 L, 7 H | |||
| IR | 2000 | uint16 bits 8–10 | R | ||||
| IR | 2000 | bool bit 7 | R | ||||
| IR | 2000 | bool bit 6 | R | ||||
| IR | 2000 | bool bit 5 | R | ||||
| IR | 2000 | bool bit 3 | R | ||||
| IR | 2000 | bool bit 2 | R | ||||
| IR | 2000 | bool bit 0 | R | ||||
| IR | 2001 | uint16 bits 14–15 | R | ||||
| IR | 2001 | bool bit 13 | R | ||||
| IR | 2001 | uint16 bits 9–11 | R | ||||
| IR | 2001 | uint16 bits 4–7 | R | 0 = off, 1-15 = on | |||
| IR | 2001 | uint16 bits 0–3 | R | ||||
| IR | 2002 | int16 | R | °C | ×0.1 | ||
| IR | 2004 | int16 | R | °C | ×0.1 | Suction (return air) temperature | |
| IR | 2800 | int16 | R | °C | ×0.1 | Hydrobox | |
| IR | 2801 | int16 | R | °C | ×0.1 | Hydrobox | |
| IR | 2802 | uint16 bits 8–15 | R | °C | Hydrobox | ||
| IR | 2802 | bool bit 2 | R | ||||
| IR | 2802 | bool bit 1 | R | ||||
| IR | 2802 | bool bit 0 | R | ||||
| IR | 2803 | uint16 bits 6–7 | R | Ventilation units | |||
| IR | 3600 | string[1] | R | Two ASCII characters, "00" = no error | |||
| IR | 3601 | uint16 bits 12–15 | R | ||||
| IR | 3601 | bool bit 10 | R | ||||
| IR | 3601 | bool bit 9 | R | ||||
| IR | 3601 | bool bit 8 | R | ||||
| IR | 3601 | uint16 bits 0–5 | R | ||||
| HR | 2000 | uint16 bits 12–14 | RW | Same values as the fan speed input; only applied when the fan control flag is 6 | |||
| HR | 2000 | uint16 bits 8–10 | RW | Only applied when the fan control flag is 6 | |||
| HR | 2000 | uint16 bits 4–7 | RW | ||||
| HR | 2000 | uint16 bit 0 | RW | ||||
| HR | 2001 | uint16 bits 4–7 | RW | Write 15 to reset the filter sign, then write 0 | |||
| HR | 2001 | uint16 bits 0–3 | RW | ||||
| HR | 2002 | int16 | RW | °C | ×0.1 | ||
| HR | 2400 | int16 | RW | °C | ×0.1 | Hydrobox | |
| HR | 2401 | int16 | RW | °C | ×0.1 | Hydrobox | |
| HR | 2402 | uint16 bits 8–15 | RW | °C | Hydrobox | ||
| HR | 2402 | uint16 bit 2 | RW | ||||
| HR | 2402 | uint16 bit 0 | RW | ||||
| HR | 2403 | uint16 bits 6–7 | RW | ||||
| HR | 2800 | uint16 bit 5 | RW | ||||
| HR | 2800 | uint16 bit 4 | RW | ||||
| HR | 2800 | uint16 bit 3 | RW | ||||
| HR | 2800 | uint16 bit 2 | RW | ||||
| HR | 2800 | uint16 bit 1 | RW | ||||
| HR | 2800 | uint16 bit 0 | RW | ||||
| IR | 1003 | bool bit 15 | R | ||||
| IR | 1003 | uint16 bits 12–14 | R | ||||
| IR | 1003 | bool bit 11 | R | ||||
| IR | 1003 | uint16 bits 8–10 | R | ||||
| IR | 1003 | bool bit 4 | R | ||||
| IR | 1003 | bool bit 3 | R | ||||
| IR | 1003 | bool bit 2 | R | ||||
| IR | 1003 | bool bit 1 | R | ||||
| IR | 1003 | bool bit 0 | R | ||||
| IR | 1004 | uint16 bits 8–15 | R | °C | |||
| IR | 1004 | uint16 bits 0–7 | R | °C | |||
| IR | 1005 | uint16 bits 8–15 | R | °C | |||
| IR | 1005 | uint16 bits 0–7 | R | °C | |||
| IR | 1404 | bool bit 5 | R | Hydrobox | |||
| IR | 1404 | bool bit 4 | R | Hydrobox | |||
| IR | 1404 | bool bit 2 | R | Hydrobox | |||
| IR | 1404 | bool bit 1 | R | Hydrobox | |||
| IR | 1405 | uint16 bits 8–15 | R | °C | |||
| IR | 1405 | uint16 bits 0–7 | R | °C | |||
| IR | 1406 | uint16 bits 8–15 | R | °C | |||
| IR | 1406 | uint16 bits 0–7 | R | °C |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).