In another thread, I asked for help with trying to get a notification that the alarm has triggered. No one came up with any brilliant ideas so I built something. I’m mentioning it here in case anyone else has a similar need.
I built this detector out of two d1 Mini nodemcu boards (8266). One of them runs ESPHome, takes two GPIO pins as inputs, and creates two binary sensors, one for each of the GPIO pins. The other connects to a microphone, samples the mic output, performs an FFT, and looks for two specific frequencies.
As it turns out, my ADT system produces a 4KHz siren when the burglar alarm goes off. When the fire alarm goes off, the smoke detectors produce a 3KHz beep. The touch panel also beeps with a 4KHz tone.
When I have the detector in an upstairs bedroom, the burglar siren can be detected. When the fire alarm goes off, the 3KHz beep is louder than the 4KHz beep, so it dominates. I use the result of the FFT to decide which of the two signals to drive to the ESPHome nodemcu.
It seems to work well although I’m not sure yet how robust it is.
If you’re interested in more detail, let me know.