---
title: "Olimpia Splendid Fan Coil (Bi2)"
description: "Olimpia Splendid Bi2 fan coil units connected to TapHome via Modbus TCP gateway. Fan speed, heating/cooling mode, setpoint temperature, valve status."
url: "https://taphome.com/en/compatibility/olimpiasplendid-fancoil/"
language: en
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["modbus-tcp","air-conditioning","fan-coil","rs485","gateway","bitmask-encoding"]
  questions: ["How to integrate Olimpia Splendid fan coil with TapHome?","What does the Olimpia Splendid Fan Coil TapHome template control?","How to connect Olimpia Splendid Bi2 via Modbus TCP gateway to TapHome?","Why do local touch and IR controls stop working on Olimpia Splendid fan coil?","How does register 101 bitmask encoding work on Olimpia Splendid Bi2?","What fan speed modes are available for Olimpia Splendid fan coils in TapHome?"]
---

# Olimpia Splendid Fan Coil (Bi2)

Communication: Modbus TCP

- [Bi2 Modbus Controller (GitHub)](https://github.com/dumpfheimer/olimpia_splendid_bi2_modbus_controller)

The Olimpia Splendid Bi2 series are fan coil units from the Italian HVAC manufacturer Olimpia Splendid. The physical device communicates via Modbus ASCII over RS-485 (9600 baud, 7E1). TapHome connects through a **Modbus TCP to Modbus ASCII gateway** — no direct Ethernet port is available on the fan coil.

The template provides heating/cooling mode selection, fan speed control (Automatic, Low, Night, Maximum), temperature setpoint, ambient temperature feedback, standby and absence switches, and valve status monitoring.

## Gateway requirement

The Bi2 fan coil uses RS-485 with Modbus ASCII framing. TapHome communicates via Modbus TCP, so a **TCP-to-RTU gateway** is required between TapHome Core and the fan coil.

- **Physical layer:** RS-485 (2-wire: A, B)
- **Baud rate:** 9600
- **Data format:** 7 data bits, Even parity, 1 stop bit (7E1)
- **Protocol:** Modbus ASCII (converted to Modbus TCP by the gateway)
- **Default slave address:** 0 (range 0–31, configurable via register H:200)

> [!TIP]
> Common gateway options include Waveshare and USR-TCP232 series converters. Configure the gateway's serial side to 9600 baud, 7E1 to match the fan coil parameters.

## Enabling remote mode

The fan coil must be in **"remote enabled" mode** to accept Modbus commands. Once Modbus communication is active:

- **Touch controls on the unit will stop working**
- **IR remote control will stop working**

This is a hardware limitation of the Bi2 series — the unit can only accept commands from one source at a time.

> [!WARNING]
> Enabling Modbus disables all local controls (touch panel and IR remote). The fan coil can only be operated through TapHome or another Modbus master while remote mode is active.

## Configuration

When importing the template in TapHome, provide:

- **IP Address** — the gateway's IP on the local network (default: 192.168.0.1)
- **Slave ID** — Modbus slave address of the fan coil (the template pre-fills 1, but the factory address of the fan coil is 0 — enter the address actually set on the unit)

> [!TIP]
> Assign a static IP address to the gateway in the router's DHCP settings to prevent the address from changing after a power cycle.

## Device capabilities

The template exposes the following devices:

### Heating/cooling mode

- **Mode** — select from: Auto, Heating, Cooling, Heating+Cooling. Reads bits 13–14 of register H:101 and writes via the module-level write script.

### Fan speed control

- **Fan Speed** — multi-value switch with modes: Automatic, Low, Night, Maximum. Reads bits 0–2 of register H:101. The template defines values 0–9, but the documented speeds are 0–3 (Automatic, Low, Night, Maximum).

### Power and absence

- **Standby** — toggle switch reading bit 7 of register H:101. When set (1), the fan coil is off (standby). When cleared (0), the unit is running.
- **Absence (CP)** — toggle switch reading bit 12 of register H:101. Activates the absence condition, reducing energy consumption when the room is unoccupied.

### Temperature control

- **Setpoint Temperature** — reads/writes register H:102 with ×10 scaling. Range 15.0–40.0 °C. A value of 215 in the register represents 21.5 °C.
- **Ambient Temperature** — reads/writes register H:103 with ×10 scaling. Range 1.0–45.0 °C. TapHome periodically writes the current room temperature to this register, which the fan coil needs for correct auto-mode operation.

> [!NOTE]
> The ambient temperature register (H:103) must be written periodically for the fan coil to regulate correctly in auto mode. The TapHome template handles this automatically via the writestate script.

### Valve status monitoring

- **Valve EV1** — read-only binary contact showing the state of the EV1 solenoid valve (heating/hot water circuit) from bit 14 of register H:9.
- **Valve EV2** — read-only binary contact showing the state of the EV2 solenoid valve (cooling/chilled water circuit) from bit 11 of register H:9.

### Register 101 — shared control word

All control devices (Fan Speed, Standby, Absence, Mode) share a single holding register H:101 with bitmask encoding. The template uses a **module-level write script** that combines all values into one 16-bit write:

| Bits | Byte | Field | Device |
|------|------|-------|--------|
| 0–2 | Low | Fan speed | Fan Speed |
| 7 | Low | Standby | Standby |
| 12 | High | Absence | Absence (CP) |
| 13–14 | High | Mode | Mode |

The write script assembles: `(Absence << 12) | (Mode << 13) | (Standby << 7) | FanSpeed` and writes the combined value to H:101 in a single operation.

### Additional capabilities not in template

The Bi2 fan coils also expose registers for water temperature (H:1), fault status (H:104), swing/oscillation control (H:224), actual fan speed (H:16), and a mode indicator register (H:233). These can be added to the TapHome template in a future update.

## Troubleshooting

### No Modbus communication

1. Verify the RS-485 wiring between the gateway and the fan coil (A to A, B to B)
2. Confirm the gateway is configured for 9600 baud, 7E1, Modbus ASCII
3. Check the slave address — the default is 0, not 1
4. Ensure TapHome Core and the gateway are on the same network/subnet

### Touch controls and IR remote not working

This is expected when Modbus communication is active. The Bi2 series disables local controls once a Modbus master is connected. To restore local controls, disconnect Modbus communication.

### Auto mode not regulating correctly

The fan coil requires the ambient temperature to be written periodically to register H:103. Verify that the Ambient Temperature device in TapHome has a valid room temperature value. If the value is stale or zero, auto mode cannot calculate the correct fan speed.

## Available devices

Olimpia Splendid Fan Coil Module

Fan Speed Multi-value Switch

Fan speed level — Automatic, Low, Night, Maximum

Register: H:101 Int16 bitmask

Values / States: Automatic · Low · Night · Maximum

Standby Switch

Power off toggle — 1 = standby (off), 0 = running

Register: H:101 Int16 bitmask

Values / States: ON · OFF

Absence (CP) Switch

Absence condition — reduces energy consumption when room is unoccupied

Register: H:101 Int16 bitmask

Values / States: ON · OFF

Mode Multi-value Switch

Heating/cooling mode selector — Auto, Heating, Cooling, Heating+Cooling

Register: H:101 Int16 bitmask

Values / States: Auto · Heating · Cooling · Heating&#43;Cooling

Valve EV1 Reed Contact Read-only

EV1 solenoid valve state — heating/hot water circuit

Register: H:9 Int16 bitmask

Valve EV2 Reed Contact Read-only

EV2 solenoid valve state — cooling/chilled water circuit

Register: H:9 Int16 bitmask

Setpoint Temperature Variable

Temperature setpoint (15.0–40.0 °C, ×10 scaling)

Register: H:102 Int16 Unit: °C numeric

Ambient Temperature Variable

Room temperature — must be written periodically for auto mode to function

Register: H:103 Int16 Unit: °C numeric

**Connection:** Modbus TCP • Slave ID: $\[SlaveId]

Possible improvements (8)

- H:0 Ambient Temperature (register 0) — Int16, /10, °C — alternate ambient reading, some devices only
- H:1 Water Temperature — Int16, /10, °C — water circuit temperature, read-only
- H:15 Fan Speed Target — Int16, read-only — target fan speed value
- H:16 Actual Fan Speed — Int16, read-only — current actual fan speed value
- H:104 Fault Status — Int16, read-only — fault/error status register
- H:200 Device Address — Int16, R/W — Modbus slave address (0-31)
- H:224 Swing Control — Int16, R/W — louver swing/oscillation toggle (XOR bit 1)
- H:233 Mode Indicator — Int16, read-only — 0=auto, 3=heating, 5=cooling, 7=fan-only

## Sources

- Olimpia Splendid Bi2 Modbus Controller (GitHub)
  
  [github.com](https://github.com/dumpfheimer/olimpia_splendid_bi2_modbus_controller) 2026-03-20

## 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/)

