ESPHome external component for interfacing with DSC PowerSeries security systems via the Keybus protocol. Supports ESP8266 and ESP32 (including ESP-IDF v5.x).
Forked from Dilbert66/esphome-components after upstream dropped ESP8266 support. This fork maintains compatibility with both ESP8266 and ESP32 platforms.
The embedded DSC Keybus library is based on taligentx/dscKeybusInterface with additional fixes for ESP-IDF v5.x compatibility and bidirectional pin mode.
- ESP8266 support retained — the upstream
dsc_alarm_panelswitched to ESP-IDF-only APIs that break ESP8266 builds. This fork keeps Arduino framework compatibility. - ESP-IDF v5.x support — uses
gptimerAPI instead of deprecatedesp_timer. - Bidirectional single-pin mode — read and write can share a single GPIO pin.
- Web keypad integration — optional
mg_lib(Mongoose) dependency for web-based keypad. - Map-based sensor registration — sensors are registered dynamically via
std::mapinstead of raw function pointers. - Restructured code — monolithic
dscAlarm.hsplit into declaration header + 5000-line implementation.cpp. - Improved debounce — per-command bit-count tracking instead of skip-first approach.
- Fixed virtual keypad writes —
skipModuleBitprevents self-overwrite on bidirectional pins. - Removed zone bypass processing — unused code path removed.
- Fixed event text —
"Downlook remote trigger"corrected from"Downlook remote platform".
external_components:
- source:
type: git
url: https://github.com/ChrisPotDev/esphome-dsckeybus
components: [dsc_alarm_panel, mg_lib]
refresh: 0sThe main DSC alarm panel integration. See the component's configuration options in __init__.py.
Mongoose embedded web server library — required only if using the web keypad feature.
Refer to the taligentx/dscKeybusInterface wiring guide for connecting your microcontroller to the DSC Keybus.
GPL-3.0 — same as the upstream projects.