---
title: "EBM-Papst EC Fan (Modbus RTU)"
description: "EBM-Papst series 84/112/150/200 EC fan with integrated Modbus RTU interface. Speed control, power monitoring, RPM readback, module temperature and error."
url: "https://taphome.com/en/compatibility/ebm-papst-air-vent/"
language: en
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["modbus-rtu","air-recovery","rs485","ec-fan","pwm-control"]
  questions: ["How to integrate an EBM-Papst EC fan with TapHome via Modbus RTU?","What does the EBM-Papst Air Vent TapHome template control?","How to switch an EBM-Papst fan from analog to Modbus RS-485 control?","Why does the EBM-Papst power reading show incorrect values?","What is the EEPROM write limit on EBM-Papst Modbus fans?","How to read actual RPM from an EBM-Papst EC fan via Modbus?"]
---

# EBM-Papst EC Fan (Modbus RTU)

Communication: Modbus RTU

- [EBM-Papst Official Website](https://www.ebmpapst.com)

The EBM-Papst Air Vent template integrates EC fans from the ebm-papst series 84/112/150/200 with TapHome via Modbus RTU over RS-485. These fans have a built-in Modbus interface — no external adapter is required. The template provides on/off control, variable speed (PWM), power consumption monitoring, RPM readback, module temperature, and error detection.

The default communication parameters are 19200 baud, 8 data bits, Even parity, 1 stop bit. Up to 247 fans can be addressed on a single RS-485 bus.

## Hardware connection

The ebm-papst EC fans have an integrated RS-485 interface with A/B/GND terminals. Connect directly to the TapHome Core Modbus RTU port using a twisted pair cable.

### RS-485 wiring

- **A+** (pin A) on the fan to **A+** on TapHome RS-485
- **B-** (pin B) on the fan to **B-** on TapHome RS-485
- **GND** on the fan to **GND** on TapHome

> [!WARNING]
> The GND wire **must** be connected between the fan and TapHome. Without a common ground reference, communication will be unreliable.

### System diagram

![RS-485 Modbus RTU bus topology with multiple ebm-papst EC fans](https://taphome.com/images/compatibility/ebm-papst-air-vent/system-diagram-rs485_hu_eb11fe3b5a88ec1.jpg)

Multiple fans are connected in a daisy-chain topology on the RS-485 bus. Each fan requires a unique slave address configured via register D100 (range 1-247, factory default is 1).

> [!TIP]
> TapHome Core has a built-in 120 ohm termination resistor. If the fan is the last device on the bus, enable its termination resistor as well (refer to the fan's installation manual for the termination setting).

## Configuration

### Enabling Modbus communication

By default, ebm-papst EC fans use the analog 0-10 V input for speed control. To switch to Modbus RS-485 control, the **Source** device in TapHome must be set to **Modbus** (ON). This writes register D101 = 1 and triggers a parameter adoption (D000 = 2) so the change takes effect immediately.

**Steps:**

1. Connect the fan to TapHome via RS-485 (A+, B-, GND)
2. Import the template in TapHome with the correct Slave ID
3. Set the **Source** device to **Modbus** (ON) — this switches from analog to RS-485 control
4. The fan now accepts speed commands from TapHome via register D001

> [!WARNING]
> **EEPROM write limit** — Register D001 (speed/on-off) is stored in EEPROM with a maximum of **100,000 writes** over the entire service life. Do not write this register at high frequency. Typical polling intervals of 500 ms for reading are fine, but avoid automation rules that continuously write speed changes every few seconds.

### Communication parameters

| Parameter | Value |
|-----------|-------|
| **Baud rate** | 19,200 bps (default, configurable via D149) |
| **Parity** | Even (default, configurable via D14A) |
| **Data bits** | 8 |
| **Stop bits** | 1 |
| **Slave address** | 1 (default, configurable via D100, range 1-247) |
| **Max registers per request** | 9 |
| **Max telegram length** | 23 bytes |

> [!NOTE]
> The baud rate and parity settings can be changed via holding registers D149 and D14A. After changing these parameters, a Parameter reset (D000 bit 1) is required. Make sure TapHome is reconfigured to match the new settings before the reset.

## Device capabilities

### Fan control

- **On/Off** (H:0xD001) — turns the fan on at approximately 50% speed (writes 32767 to D001) or off (writes 0). The read value is interpreted as a boolean — any non-zero value means the fan is running.
- **Speed** (H:0xD001) — continuous speed control as a dimmer (0-100%). The value is scaled to the range 0-65535, where 65535 = 100% PWM duty cycle. In the default open-loop PWM mode, this directly controls the motor modulation level.

Both the On/Off and Speed devices share the same register (D001). The On/Off device provides a simple toggle, while Speed provides fine-grained percentage control.

### Input source selection

- **Source** (H:0xD101) — switches between **Sensor** (analog 0-10 V input) and **Modbus** (RS-485 control via D001). When switched, the template also writes D000 = 2 to trigger parameter adoption. This setting is stored in EEPROM and persists across power cycles.

### Monitoring

- **RPM** (I:0xD010 + H:0xD119) — actual fan speed calculated from two registers: the relative speed value (D010, range 0-64000) multiplied by the maximum speed (D119, in RPM). The result gives the actual RPM.
- **Watt Power** (I:0xD021) — power consumption in watts, calculated as the raw register value multiplied by a model-specific factor (0.01705 in the template). This factor equals Ref_Uz x Ref_Iz / 65536 for a specific fan model.
- **Module Temperature** (I:0xD015) — power module temperature in degrees Celsius, read as a direct signed integer value. No conversion required.
- **Error** (I:0xD011) — motor status error flag. Returns true if any error condition is active: locked motor (BLK), hall sensor error (HLL), motor overheated (TFM), power module overheated (TFE), phase failure (PHA), DC-link undervoltage (UzLow), or general fan error (FB).

### Additional capabilities

The ebm-papst EC fans also expose registers for warning flags (pre-error conditions like shedding active, voltage high, speed limit exceeded), DC-link voltage and current monitoring, motor and electronics temperature sensors, rotation direction readback, modulation level, operating hours counter, and an error history ring buffer. Configuration registers for control mode selection (closed-loop speed vs. open-loop PWM), ramp-up/ramp-down times, fail-safe emergency operation, preferred rotation direction, and save-set-value behavior are also available. These can be added in a future template update.

## Troubleshooting

### Power reading shows incorrect values

The Watt Power conversion factor (0.01705) in the template is calculated for a specific fan model using its reference voltage (Ref_Uz, register D1A0) and reference current (Ref_Iz, register D1A1). Different fan models have different reference values.

**To verify or recalculate:**

1. Read register D1A0 — Reference Uz [mV] = value x 20 mV
2. Read register D1A1 — Reference Iz [mA] = value x 2 mA
3. Calculate the correct factor: (Ref_Uz x Ref_Iz) / 65536

For example, a fan with Ref_Uz = 508 V and Ref_Iz = 2.2 A gives: (508 x 2.2) / 65536 = 0.01705. If the power reading is consistently off by a fixed ratio, the fan model likely has different reference values.

### Fan does not respond to speed commands

1. Verify the **Source** device is set to **Modbus** (ON) — if set to Sensor, the fan ignores D001 and uses the analog input
2. Check the RS-485 wiring: A+ to A+, B- to B-, GND connected
3. Confirm the slave address matches between TapHome and the fan (register D100)
4. Verify communication parameters: 19200 baud, 8E1 (8 data bits, Even parity, 1 stop bit)

### Error flag is set but fan appears to work

The Error device reads the motor status bitfield (D011) as a boolean. Even minor conditions like "fan bad" (FB) or transient undervoltage (UzLow) will set the error flag. To clear errors, write D000 bit 2 (error reset). If the error persists, check the specific error bits by reading the full D011 register value in TapHome service settings.

### Speed reads correctly but RPM shows zero

The RPM calculation depends on register D119 (maximum speed). If D119 is not readable or returns 0, the RPM result will be 0 regardless of actual speed. Verify that D119 returns a valid value for the installed fan model (typically 1000-5000 RPM).

## Available devices

EBM-Papst Air Vent Module

On/Off Switch

Turns the fan on at ~50% speed or off — shares register D001 with Speed

Register: H:0xD001 UInt16 numeric

Values / States: ON · OFF

Speed Dimmer

Continuous fan speed control 0-100% (open-loop PWM) — shares register D001 with On/Off

Register: H:0xD001 UInt16 Unit: % numeric

Watt Power Variable Read-only

Power consumption in watts — conversion factor is model-specific (Ref\_Uz x Ref\_Iz / 65536)

Register: I:0xD021 Int16 Unit: W numeric

Module Temperature Temperature Sensor Read-only

Register: I:0xD015 Int16 Unit: °C numeric

Error Reed Contact Read-only

Motor status error flag — locked motor, hall sensor, overheated, phase failure, undervoltage

Register: I:0xD011 Bool

Source Switch

Input source selector — Modbus (RS-485 control) or Sensor (analog 0-10V input)

Register: H:0xD101 Bool

Values / States: Modbus · Sensor

RPM Variable Read-only

Actual fan speed in RPM — calculated from relative speed and model-specific maximum speed

Register: I:0xD010 UInt16 Unit: RPM numeric

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

Possible improvements (17)

- I:0xD012 Warning Flags — Bitfield with pre-error warnings: LRF (shedding active), UeHigh (supply voltage high), nGrenz (limiting speed exceeded), cable break, n\_Low (speed below monitor limit), TM\_high, TE\_high, P\_Limit, I\_Limit
- I:0xD013 DC-link Voltage — Uz\[V] = (D013 / 256) × Ref\_Uz\[V]. Requires D1A0 reference value. Useful for supply voltage monitoring
- I:0xD014 DC-link Current — Iz\[A] = (D014 / 256) × Ref\_Iz\[A]. Requires D1A1 reference value. Useful for current monitoring
- I:0xD016 Motor Temperature — Direct value \[°C] (Int16). Separate from module temperature (D015). Useful for motor overheating prevention
- I:0xD017 Electronics Temperature — Direct value \[°C] (Int16). Electronics interior temperature
- I:0xD018 Current Direction of Rotation — 0=anti-clockwise, 1=clockwise
- I:0xD019 Current Modulation Level — Modulation level\[%] = (D019 / 65536) × 100%. Actual PWM duty cycle
- I:0xD01A Current Set Value — Readback of active set value — same encoding as D001. Useful for verifying the fan received the commanded value
- H:0xD102 Preferred Running Direction — 0=anti-clockwise, 1=clockwise. Requires Parameter reset (D000 bit 1) after change
- H:0xD103 Save Set Value — 0=set value NOT stored (fan stationary after reset), 1=stored in EEPROM. Should be 0 for continuous Modbus control to avoid EEPROM wear
- H:0xD106 Control Mode — 0=closed-loop speed control, 2=open-loop PWM. Template assumes PWM mode. Requires Parameter reset after change
- H:0xD119 Maximum Speed (writable) — Already read by RPM device but not writable from template. Direct value \[RPM], model-specific
- H:0xD11F Ramp-up Time — Time for 256-step change × 10ms. Value 0 = immediate. Controls acceleration smoothness
- H:0xD120 Ramp-down Time — Time for 256-step change × 10ms. Value 0 = immediate. Controls deceleration smoothness
- H:0xD15C Fail-safe Function On/Off — Emergency operation if Modbus communication is lost. D15B=direction, D15C=on/off, D15D=set value, D15E=dropout delay
- H:0xD009 Operating Hours Counter — Total fan operating hours. Read-only for end customer. D00A = operating minutes counter
- H:0xD182 Error Indicator — Points to address of last error in error history ring buffer (D184–D19E). Each entry has error code + timing

## Sources

- MODBUS Parameter Specification V5.01 Lite — ebm-papst Series 84/112/150/200
  
  [www.ebmpapst.com](https://www.ebmpapst.com/content/dam/ebm-papst/loc/europe/gb/modbus-parameter-specifications/MODBUS%20Lite%20Basic%20Functionality%20V5_01.pdf) 2026-03-21
  
  [PDF](https://taphome.com/compatibility/devices/ebm-papst-air-vent/manufacturer/modbus-lite-v5.pdf)
- Controlling Several Fans (ebm-papst) via Modbus RTU — Siemens S7-1200
  
  [support.industry.siemens.com](https://support.industry.siemens.com/cs/attachments/109476801/109476801_S7-1200_ebmpapst_DOC_V20_en.pdf) 2026-03-21
  
  [PDF](https://taphome.com/compatibility/devices/ebm-papst-air-vent/manufacturer/siemens-ebmpapst-modbus.pdf)

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

