TapHome

Daikin EKMBPP1

Modbus RTU
Submitted by
Last updated: 03. 2026

Requires external gateway

IntesisBOX DK-AC-MBS-1 — product page

Daikin EKMBPP1

The Daikin EKMBPP1 (and EKMBPP1A) is a Modbus RTU adapter that connects Daikin VRV, Sky Air and VAM/VKM ventilation units to TapHome via RS-485. The adapter communicates with indoor units through the P1P2 bus and exposes temperature readings, fan speed, operation modes, airflow direction, and Smart Grid control.

Up to 16 units can be connected on a single Modbus RTU bus. Each adapter requires a unique Slave ID configured via DIP switches on the PCB.

Hardware connection

PCB overview
Daikin EKMBPP1 PCB component layout

Key components on the PCB:

  • X1A — Power connector (15–24 V DC)
  • X2M — RS-485 Modbus connector (DA+, DB-, GND)
  • X7M — P1P2 communication with the indoor unit
  • DS1 — 10-position DIP switch for Modbus address
  • SS1, SS2, SS3 — Slide switches for termination resistor
  • LED1–4, HAP — Status LED indicators
Technical specifications
  • Power supply: 15–24 V DC, max 120 mA (3 W)
  • Operating temperature: -10°C to +50°C
  • Protocol: Modbus RTU Slave, RS-485
  • Baud rate: 9600, no parity, 1 stop bit
  • Max units: 16 on a single bus
RS-485 wiring (X2M connector)

Connect using a 3-wire RS-485 connection:

  • DA+ → A+/D+ on TapHome RS-485
  • DB- → B-/D- on TapHome RS-485
  • GND → GND on TapHome power supply (mandatory)
Daikin EKMBPP1 wiring inside the installation box

Cable specification:

  • Type: 24 AWG twisted pair, shielded or unshielded
  • Standard: CAT3, CAT4 or CAT5
  • Max length: 500 m
  • Use a twisted pair for DA+/DB- and a third wire for GND

Important — Grounding

The GND wire must be connected between the Daikin adapter and the TapHome power supply. Without proper grounding, communication errors may occur. We recommend single-point grounding.

Wiring diagram
Daikin EKMBPP1 complete wiring diagram

Configuration

DIP switch addressing

The 10-position DIP switch DS1 on the PCB sets the Modbus RTU Slave address (range 0–63). DIP switch 10 is the least significant bit (LSB) — read from right to left.

Address examples (DIP positions 1→10):

AddressDIP Switch DS1 (1→10)
1OFF OFF OFF OFF OFF OFF OFF OFF OFF ON
2OFF OFF OFF OFF OFF OFF OFF OFF ON OFF
3OFF OFF OFF OFF OFF OFF OFF OFF ON ON
4OFF OFF OFF OFF OFF OFF OFF ON OFF OFF
5OFF OFF OFF OFF OFF OFF OFF ON OFF ON
6OFF OFF OFF OFF OFF OFF OFF ON ON OFF
7OFF OFF OFF OFF OFF OFF OFF ON ON ON
8OFF OFF OFF OFF OFF OFF ON OFF OFF OFF
9OFF OFF OFF OFF OFF OFF ON OFF OFF ON
10OFF OFF OFF OFF OFF OFF ON OFF ON OFF

Recommended: Address 1 for the first adapter (DIP 10=ON, all others OFF).

Termination resistor (SS1–SS3)

Configure the bus termination resistor using slide switches SS1, SS2 and SS3:

SS1SS2SS3Resistance
OFFOFFOFF0 Ω
OFFONOFF100 Ω
ONOFFOFF120 Ω

For TapHome: TapHome Core has a built-in 120 Ω resistor on its BUS terminals. Set 120 Ω (SS1=ON, SS2=OFF, SS3=OFF) only on the last Daikin unit on the bus. All other units should be set to 0 Ω (all switches OFF).

Modbus master timeout

Set DIP switches 3 and 4 on the EKMBPP1 for TapHome:

  • DIP 3: ON
  • DIP 4: OFF

This configures a 120-second timeout: if no Modbus communication is received within 120 seconds, the adapter turns on all units with current settings, unlocks the remote controllers and sets Global Update to “OnChange”.

Slave ID adjustment

Important: For Slave ID other than 1, adjust the ReadScript register offsets in TapHome service settings.

Formula:

  • Error register: SlaveID × 100 + 21
  • Filter alarm register: SlaveID × 100 + 24
Slave IDError registerAlarm registerNote
1121124Default — no changes needed
2221224Adjust in TapHome
3321324Adjust in TapHome
1010211024Adjust in TapHome

How to adjust in TapHome:

  1. Open the “Daikin EKMBPP1” module
  2. Go to service settings → ReadScript
  3. Change the register values using the formula above

Example for Slave ID = 2:

1
2
Original: MODBUSR(A, 121, Uint16)
Changed:  MODBUSR(A, 221, Uint16)

This applies to all registers above 100.

Device capabilities

Temperature monitoring

The template provides four temperature sensors that read from input registers with automatic °C × 100 conversion:

  • Return Air Average (I:23) — group average return air temperature across all connected indoor units
  • Return Air Temperature (I:123) — return air temperature from unit 1, with service attributes showing the minimum (I:25) and maximum (I:26) across all units
  • Coil Inlet Temperature (I:131) — unit 1 coil inlet temperature, available only when the adapter is in Main mode
  • Coil Outlet Temperature (I:132) — unit 1 coil outlet temperature, available only when the adapter is in Main mode
Unit power and operation mode
  • ON/OFF (H:5) — turns the indoor unit on or off
  • Operation Mode (H:3) — selects Auto, Heating, Fan/Ventilation, Cooling, or Dry mode
  • Fan Speed (H:2) — selects from Off, Low, Medium Low, Medium, Medium High, and High. Units with only 3 fan speeds use Low (1), Medium (3), and High (5)
  • Airflow Direction (H:4) — controls the vane position: Stop, Swing, 0°, 20°, 45°, 70°, or 90°
Smart Grid control

Smart Grid (H:55) enables energy management on Sky Air units with four modes:

  • Free running — normal operation, no Smart Grid intervention
  • Forced off — all units switched OFF (cannot be overruled)
  • Recommended on — all units ON, room buffering ±1°C from setpoint
  • Forced on — all units ON, room buffering ±2°C from setpoint

Only one Modbus master is allowed when using Smart Grid — either the Smart Grid provider or TapHome, not both simultaneously.

Global Configuration and update modes

Global Configuration (H:10) controls how settings are pushed from TapHome to the indoor units. The template exposes this as a multi-value switch with four modes: LastTouch, Central, Local, and OnChange.

Each control function (setpoint, fan speed, mode, airflow direction, ON/OFF) has its own update mode that can be set individually via 6 service actions on the Global Configuration device. Five service attributes display the current update mode for each function.

Update modeRC buttonsBehavior
LastTouch (default)UnlockedUpdates on every write, even if value unchanged
CentralLockedRemote controller buttons locked, value repeatedly written
LocalUnlockedNo updates sent to unit
OnChangeUnlockedUpdates only when value changes
Service diagnostics

The module exposes three service attributes for monitoring:

  • Unit Exists (I:120) — checks whether indoor unit 1 is found on the P1P2 bus
  • Thermo State (I:130) — current thermal operation: Idle/Fan, Heating, or Cooling
  • Defrost (I:35) — whether at least one unit is currently in a defrost cycle

The module ReadScript also monitors for unit errors (I:121) and filter alarms (I:124), reporting them as errors and warnings in TapHome.

Additional capabilities

The EKMBPP1 adapter also exposes registers for temperature setpoint control (H:1, range 16–32°C), setpoint min/max limits, fan speed and mode inhibit bitmasks for restricting available options, airflow direction inhibit, and VAM/VKM-specific ventilation mode and rate control. Group-level sensors for unit count, error status, error codes, filter alarms, and remote controller readback are also available. These can be added in a future template update.

The temperature setpoint register (H:1) is not included in the current template. To control the setpoint, it can be added as a custom Modbus device in TapHome using register H0001 with a range of 16–32.

LED status indicators

Daikin EKMBPP1 LED indicators on PCB
LEDColorFunction
LED1GreenAdapter status
LED2RedError indicator
LED3Blinks during P1P2 communication
LED4Blinks during Modbus communication
HAPBlinks every 400 ms (normal operation)

Normal state: LED1 green steady, LED2 off, LED3/LED4 blink during communication, HAP blinks regularly.

Daikin EKMBPP1 LED behavior patterns

LED behavior patterns:

  • a) Power-up sequence: LED1 blinks rapidly, LED2 blinks
  • b) No error: LED1 steady green, LED2 off
  • c) P1P2 search mode: LED1 blinks slowly, LED2 steady — searching for units
  • d) Unit error: LED2 steady, LED1 off — unit reported an error
  • e) U5 error: LED1 blinks, LED2 off — AC unit not found
  • f) RS-485 timeout: LED2 blinks, LED1 off — Modbus communication timeout

Troubleshooting

Unit not found (LED1 blinking)
  1. Check the P1P2 cables between the adapter and the indoor unit
  2. Verify the indoor unit is powered on
  3. Restart the adapter by disconnecting and reconnecting power
No Modbus communication (LED4 not blinking)
  1. Check RS-485 cables:
    • DA+ correctly connected to A+/D+ on TapHome
    • DB- correctly connected to B-/D- on TapHome
    • GND connected to TapHome power supply ground — most common issue
  2. Verify the Modbus Slave address on DIP switch DS1
  3. Check the termination resistor (SS1, SS2, SS3) — last unit on bus should be 120 Ω (SS1=ON)
  4. Confirm TapHome is set to: 9600 baud, no parity, 1 stop bit
  5. Measure voltage between DA+ and DB- — should be 1.5–5 V at idle
Unit error (LED2 steady)
  1. Read register I0022 (Error Code) in TapHome
  2. Look up the error code in the AC unit’s service manual
  3. Check the service attributes in TapHome for additional diagnostics
Modbus master timeout (LED2 blinking)
  1. Verify TapHome is regularly reading/writing registers
  2. Check DIP switch 3–4 timeout configuration
  3. Consider adjusting the timeout mode if needed

Available devices

Daikin EKMBPP1 Module
Service Attributes
Unit Existsreads I:120 (UInt16); 0=not found, 1=found on P1P2 bus
Thermo Statereads I:130 (UInt16); values: 0=Idle/Fan, 1=Heating, 2=Cooling
Defrostreads I:35 (UInt16); 0=no defrost, 1=at least one unit in defrost cycle

Daikin EKMBPP1

Read (module)
#Prve dvojcislie registra musi byt cislo jednotky, e.g. pre druhu jednotku bude register pre chybu 221
if (MODBUSR(A, 121, Uint16) = 1, ADDERROR("Chyba jednotky", MODBUSR(A, 122, Uint16) ));
if (MODBUSR(A, 124, Uint16) = 1, ADDWARNING("Alarm filtru"));
Service Attributes
Jednotka
IF(MODBUSR(A, 120, Uint16) = 1, "Nalezena", "Nenalezena");
Termo
Switch(MODBUSR(A, 130, Uint16),
0, "Nečinnost/ventilátor" ,
1, "Vytápění",
2, "Chlazení",
"Chyba");
Odmrazování
Switch(MODBUSR(A, 35, Uint16),
0, "Žádné odmrazování" ,
1, "Alespoň 1 jednotka v odmrazování",
"Chyba");
Return Air Average Temperature Sensor Read-only

Group average return air temperature across all connected units

Register: I:23 Int16 Unit: °C numeric

Return Air Average

Read temperature
MODBUSR(A, 23, Int16) / 100
Global Configuration Multi-value Switch Read-only

Global update mode selector — controls how settings are pushed to units (LastTouch, Central, Local, OnChange)

Register: H:10 UInt16 numeric
Values / States: Last Touch · Central · Local · On Change
Service Actions
Global Update
Update Target Setpoint
Update Fan Speed
Update Mode
Update Airflow Direction
Update ON/OFF

Global Configuration

Read switch state
MODBUSR(H, 10, Uint16)
Write switch state
#Pro nastaveni aktualizaci je potreba pozit servisni akce nebo zmazat # pred nasledujicim kodem
#MODBUSW(H, 10, Uint16, Mu)
Service Attributes
Aktualizace cílové nastavené hodnoty
SWITCH(MODBUSR(H, 11, Uint16),
0, "LastTouch",
1, "Central",
2, "Local",
3, "OnChange",
"Chyba");
Aktualizace otáček ventilátoru
SWITCH(MODBUSR(H, 12, Uint16),
0, "LastTouch",
1, "Central",
2, "Local",
3, "OnChange",
"Chyba");
Aktualizace režimu
SWITCH(MODBUSR(H, 13, Uint16),
0, "LastTouch",
1, "Central",
2, "Local",
3, "OnChange",
"Chyba");
Aktualizace směru proudění vzduchu
SWITCH(MODBUSR(H, 14, Uint16),
0, "LastTouch",
1, "Central",
2, "Local",
3, "OnChange",
"Chyba");
Aktualizace ZAPNUTO/VYPNUTO
SWITCH(MODBUSR(H, 15, Uint16),
0, "LastTouch",
1, "Central",
2, "Local",
3, "OnChange",
"Chyba");
Service Actions
Global Update
Parameters: Režim aktualizace
MODBUSW(H, 10, Uint16, Ra)
Aktualizace cílové nastavené hodnoty
Parameters: Režim aktualizace
MODBUSW(H, 11, Uint16, Ra)
Aktualizace otáček ventilátoru
Parameters: Režim aktualizace
MODBUSW(H, 12, Uint16, Ra)
Aktualizace režimu
Parameters: Režim aktualizace
MODBUSW(H, 13, Uint16, Ra)
Aktualizace směru proudění vzduchu
Parameters: Režim aktualizace
MODBUSW(H, 14, Uint16, Ra)
Aktualizace ZAPNUTO/VYPNUTO
Parameters: Režim aktualizace
MODBUSW(H, 15, Uint16, Ra)
Fan Speed Multi-value Switch
Register: H:2 UInt16 numeric
Values / States: Nízká · Středně nízké · Střední · Středně vysoké · Vysoké

Fan Speed

Read switch state
MODBUSR(H, 2, Uint16)
Write switch state
MODBUSW(H, 2, Uint16, Mu)
ON/OFF Switch
Register: H:5 Bool
Values / States: ON · OFF

ON/OFF

Read switch state
MODBUSR(H, 5, Bool)
Write switch state
MODBUSW(H, 5, Bool, St)
Operation Mode Multi-value Switch
Register: H:3 UInt16 numeric
Values / States: Automaticky · Vytápění · Ventilátor/větrání · Chlazení · Odvlhčení

Operation Mode

Read switch state
MODBUSR(H, 3, Uint16)
Write switch state
MODBUSW(H, 3, Uint16, Mu)
Smart Grid Multi-value Switch

Smart Grid operation mode for energy management on Sky Air units

Register: H:55 UInt16 numeric
Values / States: Volný provoz · Nucené vypnutí · Doporučeno zapnutí · Nucené zapnutí

Smart Grid

Read switch state
MODBUSR(H, 55, Uint16)
Write switch state
MODBUSW(H, 55, Uint16, Mu)
Airflow Direction Multi-value Switch
Register: H:4 UInt16 numeric
Values / States: Natočení · 0° · 20° · 45° · 70° · 90°

Airflow Direction

Read switch state
MODBUSR(H, 4, Uint16)
Write switch state
MODBUSW(H, 4, Uint16, Mu)
Return Air Temperature Temperature Sensor Read-only

Unit 1 return air temperature sensor

Register: I:123 Int16 Unit: °C numeric
Service Attributes
Return Air MIN
Return Air MAX

Return Air Temperature

Read temperature
MODBUSR(A, 123, Int16)/100
Service Attributes
Vratný vzduch MIN
MODBUSR(A, 25, Uint16)/100 + "°C"
Vratný vzduch MAX
MODBUSR(A, 26, Uint16)/100 + "°C"
Coil Inlet Temperature Temperature Sensor Read-only

Unit 1 coil inlet temperature — available in Main mode only

Register: I:131 Int16 Unit: °C numeric

Coil Inlet Temperature

Read temperature
#31 + (SlaveID*100)
MODBUSR(A, 131, Int16) / 100
Coil Outlet Temperature Temperature Sensor Read-only

Unit 1 coil outlet temperature — available in Main mode only

Register: I:132 Int16 Unit: °C numeric

Coil Outlet Temperature

Read temperature
MODBUSR(A, 132, Int16) / 100;
#32 + (SlaveID*100)
Connection: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Possible improvements (14)
  • H:1 Setpoint — Temperature setpoint 16–32°C — critical HVAC control, surprisingly missing from template
  • H:20 Setpoint Min Limit — Minimum allowed setpoint (16–32°C)
  • H:21 Setpoint Max Limit — Maximum allowed setpoint (16–32°C)
  • H:22 Fan Speed Inhibit — Bitmask — inhibit specific fan speeds (2=Low, 4=Med Low, 8=Med, 16=Med High, 32=High)
  • H:23 Mode Inhibit — Bitmask — inhibit specific operation modes (1=Auto, 2=Heat, 4=Fan, 8=Cool, 16=Dry)
  • H:24 Airflow Direction Inhibit — Bitmask — inhibit specific vane positions
  • H:30 VAM Ventilation Mode — 0=Auto, 1=Cross flow/Heat recovery, 2=Bypass. Only for VAM/VKM units
  • H:31 VAM Ventilation Rate — 1=Low, 2=High. Only for VAM/VKM units
  • I:20 Unit Count — Number of indoor units found on network (0–16)
  • I:21 Is Error (group) — 0=No error, 1=At least 1 unit in error. Partially covered by module readscript (A:121)
  • I:22 Error Code (group) — 255=No error, other=error code. Partially covered by module readscript (A:122)
  • I:24 Filter Alarm (group) — 0=No alarm, 1=Filter needs cleaning. Per-unit register I:x24 (SlaveID × 100 + 24). Covered by module readscript (A:124)
  • I:50 Remote Controller Temperature — °C × 100, only with 1 indoor unit in Sub mode
  • I:51 Remote Controller Operation Mode — 0=Idle/Fan, 1=Heating, 2=Cooling, 3=Heating and cooling

Sources