DSC/Vista Alarm Smartapp and devices based on AlarmServer

Didn’t see that !!!

Thank you!!! Works!!!

So crazy I still can’t get this working. Reading over everything, I definitely have the alarmserver.py changed. When I don’t have that proper I get all sorts of python errors.

  path: "/api/alarm/stayarm",

Do I need to physically put these API codes in, or are they already in there? And if so where?

## ${callbackurl_base}/${callbackurl_app_id}/panel/${code}/${zoneorpartitionnumber}?access_token=${callbackurl_access_token}

Is it a problem these devices are “switches” and the callbackurl is designated as a panel?

Edited this post several times as I progressed, got it all working except for the “smart home monitor” arm/away, arm/stay, and disarm buttons. They don’t update to reflect the alarm status either. Should this be working?

Thanks for everyone’s effort in this project.


Ever get this working? I get no ST indication of smoke alarm but see the activity through alarmserver & eyeson.

Same boat for me… I have a vista 21ip and I’m just getting started with ST. The idea of using the alarmserver is compelling, but not with the vista limitations. I will probably end up doing a bunch of parallel monitors for the contacts… Using an arduino smart things shield or something. Every sensor is home run, so it shouldn’t be a big deal, even if it is a bit less elegant.

Too bad there isn’t just an Alarmnet module for ST. :disappointed:

The other issue that parallel monitoring avoids is cybersecurity… Opening all of this to the Internet via http REST calls to ST increases your threat surface.

Yeah, I haven’t seen much for Alarmnet / Total Connect, just this really:

I’m still thinking I’ll do the sensors directly to have the most flexibility (and probably performance), and then lift some code from that Total Connect Smart App to control arming that system when desired. Although it seems like the Alarmnet API could be used for the zones also, but would probably involve constant polling. Which just doesn’t seem like as fun of a project to me. :smiley: svcTC2API Web Service

For the life of me I can’t figure out what I am doing wrong to arm/disarm the alarm. I’ve created the device type from code, added the device. Entered the local ip address with port 4025 (same port in my config file for alarmserver). I made sure the code is entered in the alarm server config file. I am I missing something somewhere?

I should add I am using the Honeywell version and I did try 8111 first but my port in the config file is 4025 so I changed back to that. I have full communication in my app with the alarmserver just can’t arm/disarm.

Do you have this line at the end of your configuration file?

Alarm code: If defined you can disarm the alarm without having to
enter a code.

Make sure you change it to your actual disarm code? Unless you use 1111 to disarm your alarm!

Are you talking about the “smart home monitor” buttons? I dont’ think they are enabled…someone please speak up if they are.

I don’t think there’s a way right now to use the smh buttons to control your dsc/vista alarm. You can however use smh to follow the state of you alarm. I set it to use all my motions and contact sensors and set SHM state with routines. It works perfectly and reports instantly.

Has anybody generated their own ssl certs or just used the one already created? Can somebody explain in more detail how this done? Thx

I’m almost there, just was able to complete the OAUTH and get the tokens and see changes in my Smart App.

Last thing I need to do is get the raspberry pi working. I have the python script running, talking to the EVL-3. I added the OAUTH token to the alarmserver.cfg file.

I’m stuck here:

Edit ‘alarmserver.cfg’ and add in the OAuth/Access Code information, adjust your zones/partitions and callback event codes as needed. Leaving them at the defaults is likely what you already want.

… and I figured it out.

Need to add a step to the instructions to edit smartthingsPlugin.cfg. Then move the .cfg file and the smartthings.py into the plugins directory.

Thanks for all the hard work developing this solution folks - really appreciated.

Is there a goal to update the code to allow physical arming/disarming of the alarm system? Is this even possible? If there’s absolutely no way this can ever happen using the methods developed here then I’ll move on to a different solution since that’s ultimately what I want to achieve.

Again, thanks for all the hard work and effort.

You can arm and disarm using the buttons in post #130 above:

The code is here:

It works well with a small delay, I use these as part of a routine that switches the button and turns off a few lights and locks the doors when I leave.

1 Like

Thought I would throw out another solution for folks embarking on this, these devices works with DCS and stock Ademco firmware:

I personally have the AD2Pi device hooked up to an Arduino with a ThingShield board communicating with SmartThings. You can read about this project in this thread including new code I developed to track individual zones.

Thanks! Missed that post…

I see that in this forum a lot of discussion is ongoing to integrate DSC with ST - And it seems like a lot of different solutions are being used. What according to you is important to you,

  1. Integrate all the zones of DSC with ST and read its state
  2. Integrate zones as well as talk to DSC panel via ST to perform actions like Arm/Disarm etc.

With 1, you can still use smart apps within ST that do the same thing as a DSC Panel - Arm/Disarm/Panic…

@sanity and @shdwkeeper

I’m moving this from my windows machine to a pi 2. Will I have to re-do the REST config? If so, can it be done from a command line? I’d like to run this as a service along with OSMC which doesn’t currently have a browser.

Well that wasn’t it. Alarmserver talks to ST just fine via raspbian. It also works in OSMC when logged in as root. But the standard OSMC login doesn’t deliver openings/closings. Any ideas?

My conversation with myself continues…

I found the problem but don’t quite understand why the script worked as root and not through the service or even sudo. Maybe someone can explain?

I found this in alarmserver.py

if name==“main”:
print(‘Using configuration file %s’ % conffile)
config = AlarmServerConfig(conffile)

and changed it to:

if name==“main”:
print(‘Using configuration file %s’ % conffile)
config = AlarmServerConfig(conffile)
Now all is well, the service starts and runs behind kodi.


Conversations with one’s self are very helpful to the rest of us. It is obvious this project is no longer actively supported but those of us like you and I trying to implement need each other. I just wish I had enough programming knowledge to help you out.

Thanks though!