[NEEDS UPDATING] DSC/Vista Alarm Smartapp and devices based on AlarmServer

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.
alarmcode=1111

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:
http://www.alarmdecoder.com/catalog/index.php

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”:
conffile='alarmserver.cfg’
main(sys.argv[1:])
print(‘Using configuration file %s’ % conffile)
config = AlarmServerConfig(conffile)

and changed it to:

if name==“main”:
conffile=’/usr/AlarmServer/alarmserver.cfg’
main(sys.argv[1:])
print(‘Using configuration file %s’ % conffile)
config = AlarmServerConfig(conffile)
Now all is well, the service starts and runs behind kodi.

Jim,

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!

Ok, I’ve had it up and running for over a week. I have almost 40 zones on my system, many for occupancy sensing (hard wired) for turning on lights and such. Interior as well as exterior. I’m using a Raspberry Pi 2 for the server.

I’ve noticed that the PIR sensors, which only latch on for a sec or two, are often missed by Smartthings, when they are not missed, they can happen delayed 2-60 seconds later.

Also, sometimes I get Hub is inactive, active, inactive, active…

I really don’t care about arming and disarming the alarm, I really only want to monitor these zones to trigger things.

It appears to be polling the Envisalink, and updating every zone. Would it not be better to only update only on zone change?

I haven’t seen this anywhere else, so I wanted to post this here in case anyone finds it helpful.

It is pretty easy to get the alarmserver running as a Docker container. I prefer to have any services running as Docker containers instead of running them directly on my Synology NAS.

This assumes you have alarmserver fully configured and working in a direcoty on your NAS first.

  1. Go into the directory where you have your alarmserver installed.

  2. Create a file Dockerfile with contents

    FROM python:2-onbuild CMD [ "python", "./alarmserver.py" ]

  3. Create a file requirements.txt with contents

    alarmserver twisted requests

  4. Run docker build -t myalarmserver .

That’s it. Your Docker image has been created and is ready to run. (Don’t share this Docker image, it will have all your credentials/security codes baked in).

  1. Run docker run -d --name="MyAlarmServer" --net="host" myalarmserver to run the container
1 Like

Thanks to all those that went before me. I got this up and running. HoneyAlarmServer, EVL3, Vista 20P. The panel status seems to change in the device list quickly and correctly. Very cool. Zones seem to be a different story.

I’m not seeing zones open very often. I don’t have any empirical proof right now, but it seems like the zone needs to be in an open state for 10-20 seconds before its detected by AlarmServer and reflected in ST. Someone entering a door and closing it behind them is not detected in most cases. Is this the same behavior everyone else sees? Am I expecting too much?

Also, I’m confused by the Smart Home Monitor section of the mobile app. It doesn’t appear that the security status there (Arm Away, Arm Stay, Disarm) have anything to do with actual status of my alarm panel. Maybe the Smart App for the alarm system could be updated to change this status appropriately? Should we even care? It would be awesome to use those SHM buttons to actually arm/disarm the security system as well. Has anyone done any work on that yet?

Also, my zone icons are showing a “open” icon (<-| |->) when in “closed” state, and vice versa. Any suggestions to correct?

New to all this ST stuff and Groovy. Maybe this will all make more sense as I play a bit more…

I’ve got Smart Home Monitor state changes working in ST. When I arm/disarm my Vista system, ST sets the Security status for SHM appropriately. Just add the logic you need with the following commands in your alarmServer Smart App:

> sendLocationEvent(name: "alarmSystemStatus", value: "away")
> sendLocationEvent(name: "alarmSystemStatus", value: "stay")
> sendLocationEvent(name: "alarmSystemStatus", value: "off")

Should also be able to monitor manual user state changes of SMH I don’t have that working yet, but the basics are:

> subscribe(location, "alarmSystemStatus", alarmHandler)

> def alarmHandler(evt) {
>   log.debug "Alarm Handler value: ${evt.value}"
>   log.debug "alarm state: ${location.currentState("alarmSystemStatus")?.value}"
> }

Thanks to @AndyRawson for this info!

So I finally got around to installing alarm server.

It works through API calls just fine. But for the life of me I cant figure out the smartthings smartapp portion of it. I have a Honeywell Vista 20P, the Smartapps are listed as DSC panels. Does this matter, are they generic?

The smartapps list my zone/panel but they never update with new information. AuthCode is correct as far as I can tell.

Switching to Carlos’s button codes, those DO work, and work well, but no disarm functionality, and im forced to hardcode my alarm code into alarmserver. Not sure how I feel about that.

Soo… I got tired of screwing with what I found and started hacking some code up together.

All in one location, Arm/ArmStay/Disarm with a Mutli tile for status.

I’ll be adding more to it (Zone information, Motion) As I learn more.

2 Likes

That’s awesome work. I’m getting too old to rip may hair out anymore :wink: Still waiting for some brave soul to put all the crazy misadventures into one bulletproof how-to for DSC Alarm server integration. I have the Envisalink3 running for a year but no integration as so many people have had to discover all the programming/path/config and OAUTH nuances over and over again. :frowning: Was hoping V2 of the hub would have IP sockets and some ST hacker would figure out how to skip Alarmserver altogether. Happy days, no PC running all the time.

1 Like