Control Hörmann door drives directly via ESPHome. 🚪✨
This project emulates a UAP1 and provides a seamless way to integrate Hörmann door drives, such as the Supramatic E3, into Home Assistant.
Thanks to @Rezoran for porting this project to hardware without a PIC16 microcontroller!
The platform for common components has been renamed from uapbridge_pic16
to uapbridge
.
Updating form previous version you need to update your ESPHome YAML configuration. See also the recommended_pic16.yaml.
Before:
cover:
- platform: uapbridge_pic16
name: ${friendly_name}
device_class: garage
After:
cover:
- platform: uapbridge
name: ${friendly_name}
device_class: garage
This repository includes:
- PCB designs.
- Firmware for an interface device that emulates a Hörmann UAP1.
- ESPHome configuration to integrate your door drive into Home Assistant.
- Optional support for the BME280 sensor to measure temperature, humidity, and pressure.
Note: This solution is NOT compatible with 4th series drives.
- Emulates Hörmann UAP1 for seamless control.
- Supports two variants:
- Prebuilt PCB with PIC16 MCU.
- ESP32 with RS485 Transceiver.
- Backward compatibility with older PIC16 firmware.
- Ready-made solution: Get a fully assembled PCB from Tindie.
- Preflashed with PIC16 v2 firmware for "Soft Stop" and "Impulse" commands.
- Build your own: Assemble a PCB using files in the
board
folder.- Optionally, add a BME280 sensor for environmental data.
- Build a PCB with an RS485 transceiver.
- Adjust ESPHome configuration using provided examples.
- Install ESPHome firmware using the ESPHome Web tool.
- Perform OTA updates via your ESPHome instance.
This repo includes ESPHome configurations for both variants:
-
PIC16 Variant
Compatibility Note: Use the
pic16_version
parameter to ensure compatibility with older PIC16 firmware:pic16_version: 2
for "Soft Stop" support.pic16_version: 1
for older firmware, using "Emergency Stop" instead.
-
ESP32 with RS485 Variant
The original project used an Arduino sketch for MQTT-based integration with Home Assistant.
This legacy code is no longer maintained but can be found here.
board
: Eagle schematic and PCB design files.docs
: Documentation and images.pic16
: MPLabX project files for the PIC16.esphome
: ESPHome components and configurations.
-
Get a PCB:
- Purchase a fully assembled PCB from Tindie, or build one from the
board
folder.
- Purchase a fully assembled PCB from Tindie, or build one from the
-
Power the PCB:
- Supply 24V via pins 2 & 3 of
J1
. - Check 5V and 3.3V outputs.
- Supply 24V via pins 2 & 3 of
-
Flash the ESP8266:
- Use a USB-UART converter (e.g., CP210x).
- Connect the converter to
SV3
(RX, TX, GND). - Short
JP1
for boot mode, power up, and reset viaJP2
.
-
Flash the PIC16:
- Use a Microchip programmer (PICkit3, ICD3, etc.).
- Open the MPLabX project in the
pic16
folder. - Build and program the device.
- Build or purchase a PCB with RS485 and ESP32.
- Adjust the ESPHome configuration to match your hardware setup.
- Install the initial firmware using the ESPHome Web tool.
- Perform OTA updates from your ESPHome instance.
- PCB Design: Eagle 7.2.0
- ESP8266 Programming: Arduino IDE 1.8.13, USB-UART converter
- PIC16 Programming: MPLabX v5.25, XC8 v2.10, PICkit3
- Hardware:
- ESP32 DevKit v4
- DC/DC 24V -> 5V Step-Down Converter
- RS485 Transceiver (e.g., SN65HVD72 or HW519)
This project builds upon the work of many in the community: