
Hi fellow HA users:
I wanted to share a project I've been working on for those of us still running legacy Honeywell / Resideo / Ademco Vista panels (15P, 20P, and SE models). For many years, I was using an AlarmDecoder but wanted something more flexible and started looking around for options a little over a year ago.
First off, credit to Dilbert66, the author of the original popularesphome-vistaECPcomponent. Many are using it already and it's an awesome piece of work that paved the way for this through his reverse engineering of the ECP protocol and development of the hardware interface circuits. However, for my own system, I wanted to leverage native ESP-IDF features and hardware peripherals for maximum timing reliability on the ECP bus requiring a total refactor. I developed a functional fork that I have been running for year but recently added some new features and tuned it up with the help of Claude Code.
Project: esphome-vistaECP-idf
Key differences:
- Hardware UART over Software Serial: The original project used software GPIO bit-banging. This fork shifts the ECP bus communication to the ESP32's hardware UARTs. This offloads the strict 2400/4800 baud timing requirements from the CPU, meaning the FreeRTOS scheduler and the Wi-Fi stack won't cause interrupt jitter or dropped packets particularly if you want to extend the ESP32 with additional hardware or tasks.
- Native ESP-IDF & FreeRTOS: I removed the Arduino dependency entirely. It now targets ESP-IDF v5.4+ natively and uses FreeRTOS tasks and queues for all UART communication and inter-task signaling.
- Native 345 MHz RF via CC1101: If you optionally add a cheap CC1101 sub-GHz transceiver module via SPI, the ESP32 will emulate a 5881ENH receiver and pick up physical Honeywell 5800-series sensors directly. This is working remarkably well in my setup despite some trepidation about moving away from the existing Honeywell 5881L that was original to my system.
- Direct Fast-Path for HA: Usually, RF sensors have to wait for the panel's ECP polling cycle, which introduces a 50–500 ms delay or more if your alarm system has many chatty devices on the ECP bus. I built a "direct fast-path" that publishes the RF sensor state to Home Assistant immediately upon packet receipt, bringing the latency down to under 5 ms. Your doors and motion sensors will update in HA almost instantly, while still securely forwarding the event to the panel.
The RF implementation is particularly unique to this fork and uses the CC1101 in asynchronous serial mode with GDO0 outputting the raw demodulated OOK signal, which the ESP32’s RMT peripheral captures and decodes via a software Manchester decoder. This enables direct capture of transmissions from all the physical 5800-series sensors already enrolled in my panel and exposes other potentially useful diagnostic information such as signal level for the sensors or mangled RF transmissions. Because this is a direct over-the-air decode rather than waiting for the panel to process the packet and write zone status back onto the ECP bus, Home Assistant sees zone open/close events faster — which matters for automations like lights triggering on motion or door open events. The RF receiver emulation also enables virtual RF zones up to the full complement supported by the panel, so in my case I have already added 17 software-defined zones tied to z-wave sensors from Home Assistant alongside my physical Honeywell hardware RF sensors.
If you are feeling adventuresome and/or are looking to add Honeywell / 2GIG hardware wireless sensors or incorporate virtual zones tied to Home Assistant into your Vista system, please give it a try. Let me know what you think or if you run into any questions getting it up and running!
Here is my personal installation using a Lilygo T-Eth-Lite S3 and a cheap CC1101 from Amazon cobbled together on some proto board. A custom built dipole antenna tuned to 345 MHz I built for the project is also visible in the upper right.