Skip to content
← All work
TypeScriptHomebridgeHomeKit

homebridge-adt-pulse

Brought an ADT Pulse security system into Apple HomeKit by reverse-engineering ADT's own portal.

The problem

ADT Pulse has no HomeKit support and gates everything behind its own web portal and two-factor login. If you live in Apple's ecosystem, your alarm system is the one thing that stays stubbornly outside it — no Home app tile, no automations, no "hey Siri, is the house armed?"

What I built

A Homebridge plugin that authenticates the way a real browser would (fingerprinting and all), reads ADT's portal, and surfaces every sensor into HomeKit — door, window, motion, smoke, carbon monoxide, water, and glass-break. It even adds an Arm Night mode that ADT's own app doesn't expose.

How it works

It's written in TypeScript and published as a verified Homebridge plugin. The plugin polls the ADT Pulse portal on an interval, diffs the state, and pushes updates into HomeKit so the Home app and your automations stay in sync with what the panel actually reports.

The outcome

A verified Homebridge plugin that people run on their real home security systems every day — the project I'm asked about most.

This is the project I keep coming back to. ADT’s Pulse platform is a closed box — great hardware, a portal that fights you, and zero interest in talking to anything Apple makes. I wanted my alarm panel to behave like every other smart device in my house, so I reverse-engineered the portal until it did.

The hard part was never the sensors. It was getting in the door: ADT’s login flow expects a real browser, complete with the fingerprint a real browser leaves behind. Once authentication held up, surfacing the sensors into HomeKit was the satisfying part — suddenly the Home app knew when a window opened, and “good night” could arm the system on its way out.