No description
  • C++ 90.8%
  • Python 9.2%
Find a file
2026-11-04 20:13:08 +01:00
components Prepare for public release 2026-11-04 15:48:57 +01:00
.gitignore E2 support working: port xuio component to T-CAN485/WiFi + single-zero frame fix 2026-10-04 17:50:22 +02:00
CONCEPTS-AND-DEVIATIONS.md Prepare for public release 2026-11-04 15:48:57 +01:00
FLASHING.md Prepare for public release 2026-11-04 15:48:57 +01:00
home-assistant.md Prepare for public release 2026-11-04 15:48:57 +01:00
ISSUE-DRAFT-xuio.md docs: correct stop finding (0x10FF verified) in concepts + xuio issue 2026-10-05 14:07:31 +02:00
LICENSE Set LICENSE copyright holder to murpf 2026-11-04 20:08:51 +01:00
README.md Add clone instructions with repo URL to README 2026-11-04 20:13:08 +01:00
secrets.yaml.example Prepare for public release 2026-11-04 15:48:57 +01:00
supramatic-e2-xuio.yaml Prepare for public release 2026-11-04 15:48:57 +01:00

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 0x10FF halts 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 0x10FF stop 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

  1. Clone this repository:
    git clone git@git.team-r.eu:murpf/esphome-supramatic-e2.git
    cd esphome-supramatic-e2
    
  2. Install ESPHome (a virtualenv is recommended):
    python3 -m venv .esphome-venv
    ./.esphome-venv/bin/pip install esphome
    
  3. Create your secrets file:
    cp secrets.yaml.example secrets.yaml   # then edit with your Wi-Fi + keys
    
    Also set the primary_ssid substitution at the top of supramatic-e2-xuio.yaml to match your primary Wi-Fi network name (it drives the status-LED color).
  4. 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

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.