Integrating alarm system with Home Assistant

A few days ago I finally took the plunge and installed a Sonoff SV on my alarm system, so that the relay can momentarily pulse the remote input (to arm and disarm), and so that one of the GPIOs can read the led output to see when it is on.

I managed to split the relay/gpio so that they are separate topics, but at the moment it is still a bit messy and while I can arm/disarm on HA, I cannot see the armed status of the alarm.

So I figured, before I mess with this several more hours, I am going to ask if someone has done this, and how they made it work well/seamless/whatever.

Anyone? :slight_smile:

1 Like

My Lightsys alarm you set each port if it is an input or output port. This is how the LED light on the outside is set up using one of the ports.
So in my instance you can just set up one of the ports as a relay (NO) when the alarm is on and read that switch using the GPIO. Or you can use the already existing LED power and read if it is 0v or 12v.

The problem with the remote relay is that it’s pulse either activate the alarm, or deactivate it, depending on the current state. So knowing the state is critical or else you might deactivate it when you leave.

I however have not linked this to HA, so cannot help there.

What alarm panel are you running. I can help if it’s a Paradox system

It’s an IDS X-series. Came with the house. Previous owner even fitted extension board so it has 12 zones (of which 8 is currently in use). So adding beams in future should be easy.

In the mean time I came up with something. @JacoDeJongh said I should use ESPHome instead. While I did look into that, it seems all they do is make it easy to “provision” an ESP8266 into the bits that you want, something which really ought to be doable with Tasmota too.

So after accidentally typing “reset 1” instead of “restart 1”, I ended up just flashing a newer version of Tasmota, turning on SetOption114 (to completely decouple the switch and the relay), and then after fighting with the HA integration a bit (setoption19, it only creates a binary_sensor if you mess with the SwitchTopic of the switch}, I decided to just disable that and write my own yaml.

So now I have a switch to arm/disarm the alarm, and I have a second binary_sensor that show when it is on. Not perfect yet, but good enough for now.

Aah yes, it’s set up exactly like you’d set up a garage door controller. I’ve done it using ESPHome but Tasmota is also suitable (I did it more to play with ESPHome). Setoption 19 off by default also catches people out, I don’t know why it’s not enabled by default.

My paradox system is 100% integrated with HA using PAI through MQTT. Works very well; I’m not sure if such an integration exists for IDS (isn’t IDS a local panel?)

1 Like

I have no idea, but I have heard such stories too (that IDS is local). In any case, I believe the comms between the panel and the main board is RS485, so in theory you could hook into that and do whatever you want, if you knew the protocol. Being a security system, one would hope this is not easily hackable!

I have a scope that can decode UART comms, and I have a RS485->Uart board I can use for snooping. Question is… am I that invested in this? Uuuuhm… probably not :slight_smile:

Main reason is simply that the LED outside my house that is supposed to show that the alarm is on stopped working. The correct solution is to trace the lines and figure out what happened… which I kinda did.

I finally figured out that they (the installers, who made a complete mess of it by the way) wired the PGM output on the panel (which by default mirrors the armed LED on the panel) from the panel back to the outside LEDs (of which there are three bright blue ones). Not what I would have done, by the way. I would have wired and configured one of the other three programmable outputs on the main board to do the job, since they have better current capabilities.

Reason for this thinking, is that I can see the PGM output pull down to 2.5V when I connect the outside LEDs (but they do not turn on anymore). So either there is damage to the panel, or something on that line started to draw more current than it should (could be one of the three LEDs). I have reason to believe the PGM output on the panel isn’t meant for more than one LED. The idea is probably that the panel sits by your front door, and the LED is mounted on the other side of the door.

Now I can get the alam company back to do this properly… but it is December and all, and I always wanted to hook the security system in a way so that I can also remotely access it.

The next thing to do now, is to make a new outside indicator. Not necessarily an LED though. A bright LED on the front of the house is like an invitation: Hey crowbar gang, these guys are away… you’ve got 5 minutes until armed response show up, how about it?


1 Like

Heh, the fight between cool vs effort rages on…

Personally I wouldn’t even bother with an LED at all. As long as you can see the alarm is armed from your phone you should be good to go? I agree, the less obvious you make things, the better. Running a business form home, there’s mostly always someone here during the week, making the point of an LED moot for us anyway

1 Like

I just removed ours. I don’t see the point of it. I can see on my phone whether the alarm is set or not, and I set it from my phone.

I am trying to find the meaning of this, but failed. Please explain this?

EDIT: I found it…

1 Like

I was about to chuck out my Paradox and fit a IDS, then read some night mare stories around the IDS, ad the backup support *yes they are local)
I was thinking of IDS as it can handle 64 zones, the mobile app is allot better (which is not difficult when compared ti InSiteGold) and also believe they use mqtt to do allot.

I integrated my Paradox with HA using the PAI module (add-on)
Love it, thrown InsiteGold out (piece of sh$t)


PAI = Paradox Alarm Integration.

it’s a HA add on module, that taps into the :10000 and then reads/writes the output to mqtt that you can then read/write to.

so you can get every current setting of the alarm via that and you can arm/disarm the system, or zones.


I wanted to do this exact thing. I did it by using an ESP8266 (with ESPHome, which now belongs to HA) and a relay to arm/disarm and then I am using PGM 1 and 3 on the mainboard connected to a set of opto-isolators to give me the state of the alarm. I am checking for stay and away armed. I set PGM 1 and 3 high depending on which state it is in, but then you need to configure a global “reset” of the PGM on disarm otherwise it will only be able to switch off one of these PGM on disarm.

I then took this and added some automations to give me a critical alarm in HA when I leave the house without arming and it them gives me the option to arm. I also used the HA Alarm panel card and found a way to connect my controller and this panel together.

I will share more detail if needed. I should’ve made myself a Wiki for this…maybe it is a good time to actually document what I did for my future self.


My system works, but has some issues. For example, when the alarm trips, the LED flashes, and HA now gets many many on/off signals which are all dutifully recorded in the database as events.

My bigger problem is that the alarm company I use obviously locked the panel. Well, maybe I should check, sometimes they are lazy… but that means anything special I want to do with the progammable outputs, needs a call-out fee from the alarm company.

Yeah, using the LED output will do that. That is why I used onboard outputs and changed them from the original Pulse high to set high, for instance.

Does the normal IDS installer code not work anymore?

If I knew what it was… I could try it. I always assumed that alarm companies use their own code and keep it a secret from the customer. So I have never even thought of trying to access it.

Recently I did however discover that the little ET keypad they fitted at the gate… they didn’t change the default programming code. Which is actually rather terrible, because it means anyone who walks past who knows these keypads can just add himself a user and get access to your property. Of course I changed the code immediately, but it kinda makes me wonder how good “Securite” really is…

I also though this, but I was wrong. Now I am in total control at my house. mahaHAHWHAHA!!! (Sorry I had too :slight_smile: )

Well… recently there’s been a spate of robberies in our area, where it is reported that “somehow the robbers knew the alarm code”. I had assumed that one of them could have learned the code used by a particular company… or that maybe inside information may have been at play. But after the keypad incident, I realised that it could also be that they simply know the default codes, and that with some alarm systems, the “master” code can indeed be used to arm and disarm.

So I am definitely going to try to get into mine.

For interest sake, here I am demonstrating how to check if your master code is still set to the default. Of course I changed mine, so I moved the camera away while I typed it… I made the video for a family member who is with the same security company and has the same keypad.

Just something to keep in mind with these IDS PGM outputs. They claim 40-50mA, but you really have to keep the current draw to a minimum. Mine was too close to the limit and the onboard resistor got so hot it actually cooked the PCB.

I replaced the resistor and used a 12k resistor for the opto and I think it went down to 1mA, enough to turn on the opto with some current to spare.

1 Like

Sooo, I had some time to tinker with the IDS X-series. The installer code is indeed left to the default, so that was easy enough.

Then I tried programming it to turn on a programmable output. I think I’ve succeeded, but I will only be able to check tomorrow.

First I was directed towards location 414, which is for “Arm follow programmable output event”. This was already set to 34, which is the PGM output on the first keypad, which happens to be where the present indicator LED is wired to. Since I can only have one PGM attached to this event, it would mean tapping my sense wire into the LED feed. This has one additional issue: When the alarm triggers, the LED flashes, and that ends up writing numerous on/off events to the HomeAssistant database. Not ideal. I was looking for something cleaner.

Then I noticed that locations 390 to 392 involves “Close” and “Open” events, which is not really fully explained but the documentation about the logging suggests these are arm and disarm events. 390 is already programmed to set PGM3 high, and 392 is programmed by default to set it low. After spending some time figuring out how to read the BCD on the LED keypad, I also configured 391 (stay arm) to set PGM3 high.

The confusing part about the BCD display is that you read it in BCD, but you don’t “write” it in BCD. For example, to set location 391 to 0300 (where 03 means PGM3 and 00 means set it high) is done by typing:


After doing that, LEDs 5 and 6 are on. I eventually figured out that this is because LEDS 1-4 is the first digit (zero), LEDs 5-8 is the second digit (3), and LEDs 9-12 and 13-16 are the last two digits, (00).

If you type 9999*390*1* to view location 390, it has LEDs 5, 6, and 13 on, which reads 0301.

So now hopefully, I will find tomorrow that arming the alarm gets me a 12V on PGM3.

Edit: Also, a Sonoff SV fits neatly into this enclosure. I added an opto-isolator this time to drive the GPIO too.

1 Like