
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
The GND wire must be connected between the fan and TapHome. Without a common ground reference, communication will be unreliable.
System diagram

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).
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:
- Connect the fan to TapHome via RS-485 (A+, B-, GND)
- Import the template in TapHome with the correct Slave ID
- Set the Source device to Modbus (ON) — this switches from analog to RS-485 control
- The fan now accepts speed commands from TapHome via register D001
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 |
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:
- Read register D1A0 — Reference Uz [mV] = value x 20 mV
- Read register D1A1 — Reference Iz [mA] = value x 2 mA
- 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
- Verify the Source device is set to Modbus (ON) — if set to Sensor, the fan ignores D001 and uses the analog input
- Check the RS-485 wiring: A+ to A+, B- to B-, GND connected
- Confirm the slave address matches between TapHome and the fan (register D100)
- Verify communication parameters: 19200 baud, Even parity, 8N1
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).
