- C++ 90.8%
- Python 9.2%
| components | ||
| .gitignore | ||
| CONCEPTS-AND-DEVIATIONS.md | ||
| FLASHING.md | ||
| home-assistant.md | ||
| ISSUE-DRAFT-xuio.md | ||
| LICENSE | ||
| README.md | ||
| secrets.yaml.example | ||
| supramatic-e2-xuio.yaml | ||
Hörmann SupraMatic E2 → ESPHome on a LilyGO T-CAN485
Control and monitor a Hörmann SupraMatic E2 garage/door drive from Home Assistant over Wi-Fi, using a LilyGO T-CAN485 (ESP32 + onboard RS485) running ESPHome.
The board emulates a Hörmann UAP1 bus accessory on the drive's RJ12 BUS port (HCP1 protocol, RS485 19200 8N1) and exposes the door to Home Assistant as a cover with open / stop / close, a light, an impulse button, and diagnostic sensors.
⚠️ Safety first. This project drives a powered garage door, including a mid-travel Stop. A moving door can injure people, pets, or property. Test with the door area clear, keep the manual release accessible, and never rely on this as a safety device. Use entirely at your own risk — see LICENSE (no warranty).
What works (verified on real E2 hardware)
- ✅ Open / Close — end-to-end via the drive's master-polled command model
- ✅ Mid-travel Stop — raw
0x10FFhalts the door (verified visually on this drive; see caveat below) - ✅ State feedback — Open / Closed / Opening / Closing, driven by the drive's actual status broadcasts (not a travel timer), so it tracks wall-button and remote moves too
- ✅ Light (optimistic) and Impulse button (native single-button cycle)
- ✅ Wi-Fi + OTA, web server, fallback AP + captive portal, onboard RGB status LED
Caveat: the
0x10FFstop and the single-leading-zero broadcast framing are confirmed on this specific E2 drive/firmware. Other E2 units may differ. See CONCEPTS-AND-DEVIATIONS.md for the full protocol writeup, what is confirmed vs. uncertain, and every deviation from the upstream component.
Hardware & wiring
| Hörmann RJ12 pin | Signal | Connect to |
|---|---|---|
| 2 | 24 VDC | 24V→5V buck IN+ |
| 3 | GND | common GND (buck IN-, board GND) |
| 6 | A/DATA+ | T-CAN485 RS485 A |
| 5 | B/DATA- | T-CAN485 RS485 B |
- Power the board from the drive's 24 V through a buck converter to 5 V (buck 5V OUT → T-CAN485 5V/VIN).
- Meter RJ12 pins 2/3 before connecting — phone-cable crossover risk.
- RS485 is auto-direction (MAX13487), so no RTS/DE pin is needed. The board's three enable lines (GPIO19/17/16) are driven HIGH on boot by the config.
Full pin map and protocol details are in CONCEPTS-AND-DEVIATIONS.md.
Quick start
- Clone this repository:
git clone git@git.team-r.eu:murpf/esphome-supramatic-e2.git cd esphome-supramatic-e2 - Install ESPHome (a virtualenv is recommended):
python3 -m venv .esphome-venv ./.esphome-venv/bin/pip install esphome - Create your secrets file:
Also set thecp secrets.yaml.example secrets.yaml # then edit with your Wi-Fi + keysprimary_ssidsubstitution at the top ofsupramatic-e2-xuio.yamlto match your primary Wi-Fi network name (it drives the status-LED color). - Flash over USB the first time, then OTA afterwards:
./.esphome-venv/bin/esphome run supramatic-e2-xuio.yaml
See FLASHING.md for the full step-by-step, safe-start posture, and a bring-up checklist, and home-assistant.md for the Home Assistant / Lovelace setup.
Repository layout
supramatic-e2-xuio.yaml # the ESPHome config (uses the local components/)
components/ # vendored UAPBridge component (uapbridge, uapbridge_esp)
secrets.yaml.example # copy to secrets.yaml and fill in
README.md # this file
FLASHING.md # flashing + bring-up guide
CONCEPTS-AND-DEVIATIONS.md # protocol deep-dive + deviations from upstream
home-assistant.md # Home Assistant integration notes
ISSUE-DRAFT-xuio.md # draft upstream issue about the E2 framing difference
LICENSE # MIT (+ upstream attribution)
Credits
- xuio/hoermann-supramatic-e2-esphome
— the UAPBridge component vendored and adapted in
components/(Unlicense). - 14yannick/hoermann_door and avshrs/ESP32_Hormann_Supramatic_e3 — HCP1 protocol decode references.
This repo adapts those to the LilyGO T-CAN485 + Wi-Fi and the SupraMatic E2's single-byte status framing. See CONCEPTS-AND-DEVIATIONS.md for exactly what changed and why.
License
MIT. No warranty — this controls physical door hardware; use at your own risk.