---
title: "Daikin FCBAG Modbus RTU"
description: "Daikin FWT-HT/HTV fan coil in TapHome via the FCBAG Modbus RTU module: on/off, mode, set temperature, louver, fan speed, error codes. DIP switch setup."
url: "https://taphome.com/en/compatibility/daikin-fcbag-modbus-rtu/"
language: en
lastmod: 2026-11-12
generator: hugo
ai:
  topics: ["modbus-rtu","rs485","air-conditioning","hvac","fan-coil-unit","dip-switch","plug-in-module"]
  questions: ["How to integrate a Daikin fan coil unit with the FCBAG module into TapHome?","What does the Daikin FCBAG Modbus RTU TapHome template control?","How to connect the Daikin FCBAG module to TapHome via RS-485?","How to enable Modbus on a Daikin FWT-HTV fan coil with the DIP_Config switch?","How to set the Modbus slave address of the Daikin FCBAG module?","Why does the Daikin FCBAG module not respond to Modbus requests?","Can TapHome control the louver position and fan speed of a Daikin FWT-HTV fan coil?"]
---

# Daikin FCBAG Modbus RTU

Communication: Modbus RTU

## Integration guide

The Daikin FCBAG is an optional plug-in Modbus RTU module for Daikin FWT-HT and FWT-HTV wall-mounted chilled water fan coil units. It sits in a dedicated slot in the control box of the indoor unit, connects to the unit's mainboard with a short wire harness and exposes the unit on an **RS-485** bus. The template connects TapHome directly to this bus — no other gateway is needed — and covers switching the unit on and off, the operation mode, the room temperature and set temperature, the louver position, the fan speed and the unit's error codes.

The device names in the template are in Hungarian. Below, each device is named exactly as it appears after the import, followed by its English meaning, for example **Klíma** (unit on/off).

## Hardware connection

> [!WARNING]
> Installation must be done by a qualified person. Switch the unit off and disconnect all power supplies before opening the control box.

### FCBAG module

![Daikin FCBAG module PCB layout: TB_RS485 terminal, CN_MODBUS_MODULAR_1 connector, DIP_RS485 switch, TX and RX LEDs](https://taphome.com/images/compatibility/daikin-fcbag-modbus-rtu/pcb-layout_hu_f61e43d6bf699535.jpg)

| Item | Function |
|------|----------|
| **TB_RS485** | RS-485 terminal (A, B) for the Modbus master and other FCBAG modules |
| **CN_MODBUS_MODULAR_1** | Connector for the harness to **CN_MODBUS_MODULAR** on the unit's mainboard |
| **DIP_RS485** | Slave address of the unit |
| **TX_LED** (yellow) | Data transmission in progress |
| **RX_LED** (red) | Data reception in progress |

The box contains the module, a 10-wire harness (100 mm) to the mainboard and the manual. According to Daikin, the module can only be used with fan coil units produced by Daikin Manufacturing.

### Installing the module in the unit

1. Switch the unit off and remove the metal cover of the control box.
2. Insert the FCBAG module into the dedicated slot and push it fully into the hook.
3. Connect the harness from **CN_MODBUS_MODULAR_1** on the module to **CN_MODBUS_MODULAR** on the mainboard (the connector labelled "Accessory: Modbus (FCBAG)" in the unit's installation manual).
4. Route the RS-485 cable as shown in the module manual.
5. Set the DIP switches (see Configuration below) and close the control box with the metal cover.

### RS-485 wiring

Connect **A** and **B** of **TB_RS485** to A and B of the TapHome RS-485 bus. Several units are chained from one TB_RS485 to the next — the module manual shows up to 15 units on one bus behind the Modbus master.

| Connection | Cable | Max. length |
|------------|-------|-------------|
| FCBAG module to Modbus master (TapHome) | 24 AWG shielded twisted pair, 100 Ω characteristic impedance | 1000 m |
| FCBAG module to mainboard | 10-wire harness (supplied) | 100 mm |

## Configuration

The communication settings are set on **two** DIP switches: **DIP_Config** on the unit's mainboard and **DIP_RS485** on the FCBAG module. Modbus is off until pin 1 of DIP_Config is switched ON.

![Daikin FCBAG configuration table: DIP_Config pins for Modbus enable, baud rate, stop bit and parity, and DIP_RS485 slave address pins](https://taphome.com/images/compatibility/daikin-fcbag-modbus-rtu/dip-switch-settings_hu_b15e360cb3b0cfe9.jpg)

### DIP_Config on the mainboard

| Pin | Function | OFF | ON | For this template |
|-----|----------|-----|----|-------------------|
| 1 | Modbus | Disable | Enable | **ON** |
| 2 | Baud rate | 9600 bps | 19200 bps | **OFF** (9600) |
| 3 | Stop bit | 1 (with parity) | 2 (no parity) | **OFF** |
| 4 | Parity (only when pin 3 is OFF) | Even | Odd | **OFF** (Even) |
| 5 | Reserved in the module manual | — | — | see note |

> [!NOTE]
> The unit's installation manual uses DIP_Config pin 5 to enable the dry-contact on/off input (TB_ON/OFF). It is not part of the Modbus settings — leave it as that function requires.

### Slave address (DIP_RS485 on the module)

Pins 1–4 of **DIP_RS485** set the slave address in binary: pin 1 = 1, pin 2 = 2, pin 3 = 4, pin 4 = 8 (the address is the sum of the pins switched ON). Addresses 1–15 are valid; **0 (all OFF) disables Modbus communication**. Pin 5 is reserved. Each unit on the bus needs its own address, and the template covers one unit — with several units it is imported once per unit with that unit's address.

The template's default Slave ID is **2** — only pin 2 ON. The module manual (page "Unit configuration") shows the switch positions for all addresses 1–15.

### Communication parameters

| Parameter | Value |
|-----------|-------|
| Baud rate | 9600 |
| Parity | Even |
| Data bits | 8 |
| Stop bits | 1 |
| Slave ID | 2 (import parameter *Modbus Slave ID*) |

In TapHome, the template is imported on a Modbus RTU interface of this RS-485 bus with the parameters above, and the import parameter *Modbus Slave ID* is set to the address from DIP_RS485.

## Device capabilities

Register numbers below follow the module manual: input registers 3xxxx are read, holding registers 4xxxx are written. Commands that change one part of register 42001 read it first and write it back with only that part changed, so on/off, louver and fan speed do not overwrite each other.

### On/off

**Klíma** (unit on/off) — reads bit 0 of input register 32001 and writes bit 0 of holding register 42001. Its service attributes show the current fan speed (*Ventilátor sebesség*) and the louver position (*Légirány (swing)*). The louver attribute reads only bits 8–9, so it shows positions 4, 5 and Swing as other values — the **Lamella állás** device shows the full value.

### Operation mode

**Üzemmód** (operation mode) — reads input register 32002 and writes holding register 42002:

| Value | State in TapHome | Meaning |
|-------|------------------|---------|
| 0 | Ventilátor | Fan |
| 1 | Fűtés | Heat |
| 2 | Hűtés | Cool |
| 3 | Auto | Auto |
| 7 | Száraz | Dry |

### Temperature

**Hőmérséklet** (thermostat):

- room temperature from input register 32005, divided by 10,
- set temperature read from input register 32003 (divided by 10) and written to holding register 42003 (multiplied by 10),
- set temperature range in TapHome 16–32 °C.

The thermostat also reports two errors:

- **Meghibásodás** (unit fault) — when bit 9 of input register 32004 (error code) is set. The text shows the Daikin error code: a letter from bits 8–12 (1 = A, 2 = C, 3 = E, 4 = H, 5 = F, 6 = J, 7 = L, 8 = P, 9 = U) followed by the number from bits 0–3.
- **Szobahőmérséklet-érzékelő hiba** (room temperature sensor fault) — when bit 8 of input register 32006 is set.

### Louver and fan

- **Lamella állás** (louver position) — bits 8–10 of 32001, written to bits 8–10 of 42001: *Megáll* (stop), *1. pozíció* … *5. pozíció* (positions 1–5) and *Swing*.
- **Ventilátor sebesség** (fan speed) — bits 12–14 of 32001, written to bits 12–14 of 42001: *Alacsony* (low), *Közép-alacsony* (medium-low), *Közepes* (medium), *Közép-magas* (medium-high), *Magas* (high) and *Auto*.

> [!NOTE]
> The module manual also lists Disable Handset Control (42010), Force Compressor / Valve Off (42011), the indoor coil temperature (32201), the module and connection status (30001, 30002) and the set temperature limits of the unit (31002, 31003). They are not included in this template.

## Troubleshooting

The LEDs on the module show the state of the bus: **RX_LED** (red) for reception, **TX_LED** (yellow) for transmission.

- **No communication, RX_LED lit steadily but not blinking, TX_LED not blinking:** A and B on TB_RS485 are swapped, or one of them is not connected. Check the wiring at TB_RS485.
- **No communication, RX_LED blinking, TX_LED not blinking:** the DIP_Config setting on the mainboard is wrong — pin 1 (Modbus) must be ON. Also check that DIP_RS485 is not set to 0 and matches the *Modbus Slave ID* of the template.
- **Values are read but the unit does not react to commands (both LEDs blinking):** DIP_Config does not match the communication settings of the TapHome interface. With pin 2 ON the module runs at 19200 Bd, with pin 3 ON it uses 2 stop bits without parity, with pin 4 ON odd parity.

## Available devices 5

These devices appear in TapHome after import.

Daikin FCBAG modul Module

Klíma Switch

Values / States: ON · OFF

Read switch state

```taphome
GETBIT(MODBUSR(A, 2000, UInt16), 0)
```

Write switch state

```taphome
VAR reg := MODBUSR(H, 2000, UInt16);
reg := SETBIT(reg, 0, St);
MODBUSWNE(H, 2000, UInt16, reg);
```

Service Attributes

Ventilátor sebesség

```taphome
SWITCH(GETBITS(MODBUSR(A, 2000, UInt16), 12, 3), 1, "Alacsony", 2, "Közép-alacsony", 3, "Közepes", 4, "Közép-magas", 5, "Magas", 7, "Auto", "Ismeretlen")
```

Légirány (swing)

```taphome
SWITCH(GETBITS(MODBUSR(A, 2000, UInt16), 8, 2), 0, "Megáll", 1, "1. pozíció", 2, "2. pozíció", 3, "3. pozíció", 4, "4. pozíció", 5, "5. pozíció", 7, "Swing", "Ismeretlen")
```

Üzemmód Multi-value Switch

Values / States: Ventilátor · Fűtés · Hűtés · Auto · Száraz

Read switch state

```taphome
MODBUSR(A, 2001, UInt16)
```

Write switch state

```taphome
MODBUSWNE(H, 2001, UInt16, Mu)
```

Hőmérséklet Thermostat

Read temperature

```taphome
MODBUSR(A, 2004, Int16)/10
```

Read desired temperature

```taphome
MODBUSR(A, 2002, Int16)/10
```

Write desired temperature

```taphome
MODBUSWNE(H, 2002, Int16, Se*10)
```

Read (module)

```taphome
VAR errorReg := MODBUSR(A, 2003, UInt16);
IF(GETBIT(errorReg, 9))
  VAR upper := GETBITS(errorReg, 8, 5);
  VAR lower := GETBITS(errorReg, 0, 4);
  VAR letter := SWITCH(upper, 1, "A", 2, "C", 3, "E", 4, "H", 5, "F", 6, "J", 7, "L", 8, "P", 9, "U", "?");
  ADDERROR(1, "Meghibásodás: " + letter + TOSTRING(lower, "F0"));
END
VAR sensorReg := MODBUSR(A, 2005, UInt16);
IF(GETBIT(sensorReg, 8))
  ADDERROR(2, "Szobahőmérséklet-érzékelő hiba");
END
```

Lamella állás Multi-value Switch

Values / States: Megáll · 1. pozíció · 2. pozíció · 3. pozíció · 4. pozíció · 5. pozíció · Swing

Read switch state

```taphome
GETBITS(MODBUSR(A, 2000, UInt16), 8, 3)
```

Write switch state

```taphome
VAR reg := MODBUSR(H, 2000, UInt16);
reg := SETBITS(reg, 8, 3, Mu);
MODBUSW(H, 2000, UInt16, reg);
```

Ventilátor sebesség Multi-value Switch

Values / States: Alacsony · Közép-alacsony · Közepes · Közép-magas · Magas · Auto

Read switch state

```taphome
GETBITS(MODBUSR(A, 2000, UInt16), 12, 3)
```

Write switch state

```taphome
VAR reg := MODBUSR(H, 2000, UInt16);
reg := SETBITS(reg, 12, 3, Mu);
MODBUSW(H, 2000, UInt16, reg);
```

**Connection:** Modbus RTU • 9600 baud• 8E1 • Slave ID: $\[SlaveId]

## Import parameters

Enter these values when you import the XML.

| Asked in the app | Default |
|------------------|---------|
| Modbus Slave ID  | `2`     |

## Related Documentation

- [Modbus Integration](https://taphome.com/en/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/en/docs/integration/modbus/)
- [Simple configuration using templates](https://taphome.com/en/docs/integration/modbus/templates/)
- [Modbus scripts and prefetch](https://taphome.com/en/docs/script/modbus-scripts/)
- [Modbus functions](https://taphome.com/en/docs/script/modbus/)
- [Modbus data types](https://taphome.com/en/docs/script/modbus-data-types/)

