Monitoring home alarm with an Arduino

Hi All,

I'm looking at add some more capability to my smart home by interfacing to existing wired home alarm system. Specifically, all I want to do is tap into the state of the PIR sensors and zones around the house.

From what I can tell, the PIR sensors within a zone are all connected in series as Normally Closed, so that if the PIR is triggered, the loop is broken and alarm is triggered.
I don't want to break the loop by inserting the Arduino in series, but would like to simple monitor the sate of the zone pin.

My thinking is simply to use a level shifter (assume the PIRs operate at 12V) attached to the end of the loop at the main control board and monitor this line.

Has anyone done this kind of thing before ?



I've built a circuit comprised of an opto-isolator connected the the zone connection in the panel. The other side is connected the Arduino.

Standalone, the circuit works.. i.e. when I toggle 5V on the inputs the Arduino does it's thing.
However, as soon as I connect the zone outputs to the optoisoator, there seems to be a voltage drop from ~4.8v to 1.2v measured at the zone output and the alarm reports a zone fault.

I've used a 220ohm resistor for the opto-isolator input, sized base on the the zone output reading ~4.8v when the zone is not triggered.

Any help will be much appreciated.


Have you tried without the 220 resistor?

The reason I’m asking is there may already be some resistance on the zone loop so the panel can monitor whether there’s a tamper or fault on the wire. You can test this by shorting Z+ to Z- at the panel and see if you get a fault.

One other idea. I’m not an EE
Expert, but I did wire up my alarm panel keypad data lines to my Arduino so I have a little experience but maybe someone with more can weigh in.

If what you drew is accurate, it looks like you created a voltage divider on the zone loop? Why not just put the input side of the optocoupler in series on your zone loop right before the panel?

Maybe you could build something that is switched by the IR sensors indicator led ? You might be able to use an 8266 powered from the IR sensor power supply to transmit from an individual IR sensor wirelessly back to a host .
This could be small enough to fit within the sensor body. I guess you could even use a photo sensor to pickup that led?
Look at the alarm circuit too - it would be simple to pick up a signal from a zone at the alarm panel , a little reconfiguring of zones may help too.

Sensors used in wireless alarms might be worth a look too

It may help to know what alarm system you’re using and what the overall goals are of your project. Are you trying to detect any PIR trip or only when armed (ie detecting an alarm condition).

Also can you report this info: Before you added your Arduino circuit to the zone, what is the voltage across Z+ to Z- when the PIRs aren’t tripped? What does the voltage drop to when they trigger? And if you disconnect the loop from both the Z+ and Z- side of the panel, what resistance do you measure on the loop?