[ST Edge] DSC Security System / Envisalink Driver (2021)

Do you have a DSC security system that you would like to integrated with SmartThings locally using the new hub Edge platform? I’ve developed a new Edge driver that is ready for initial user testing.

Required: Envisalink 3 or 4 (see EnvisaLink™ EVL-4EZR For DSC & Honeywell Systems)

Envisalink is an interface board that links your DSC security system to your local LAN, giving you control and visibility to your system via the local network.

Today, there are many users with this setup but it requires a secondary computer like a Raspberry Pi with alarmserver software to provide this capability. The software interfaces with SmartThings via the cloud.

With this new Edge driver, your setup is greatly simplified - no additional computer, software, or configurations to maintain, and no SmartApp required. Just use a simple http link to install the driver to your hub, use the SmartThings mobile app to define your zones and Envisalink LAN address, and you’re off and running with complete visibility and control of your security system from anywhere.

Right now, I’m looking for some early testers of this driver. Ideal candidates:

  • Already have an operational integration based on older solutions (alarmserver, etc.)
  • Have no more than one partition and 12 or fewer zones*
  • Have, or are willing to install, the SmartThings CLI (will be needed for debugging issues)**

* These are limitations of the current driver, but can be expanded based on community requirements.
** The driver can be installed without CLI but I won’t be able to help diagnose any issues you might find. Once the code is proven and hardened, CLI will no longer be necessary

Caveat: Edge is currently a beta platform, so consider this driver as beta as well!

Honeywell Systems: unfortunately support for Honeywell systems will require significant changes to this driver; status is TBD

If you would like to volunteer to try this out, please DM me and I will provide a channel invite link.

Feel free to post any questions or comments here.

4 Likes

Fantastic! I’ve been watching for you to post your DSC integration to see if I can borrow code, but if you’ve already done the work for Honeywell then that’s even better.

Is this particular model required, or would you expect everything to also work with an EVL3?

I’d be happy to help test the Honeywell side but I’d need that zone limit doubled. Or, if it’s possible to just choose a subset of zones to integrate, I can get below that limit.

I’m wondering the same thing, but since I assume it’s all on the API side of thing, it may work. I plan on testing if I can get an invite.

EVL3 should be fine.

I have done no testing for Honeywell, only DSC. I am making an assumption that the Envisalink presents the same interface for either, but we’ll need to confirm if that is the case or if any unique coding is needed to properly support either.

1 Like

Wanted to also say that zone types supported are the following:

contact, motion, smoke, carbon monoxide, water sensor

I have only tested contact and motion, so anyone with the other 3 would be great to have on the testing team!

Wow that’s a lot of zones!

My reason for the 12 limit was really just a convenience thing. I am using the device Settings functionality (on the primary panel device) to define the zone types. Right now there is a bug in the Edge platform where the settings fields are displayed in complete random order, so the more I list, the more of a jumbled mess it becomes!

You can set up just a subset of your zones and it should still work ok. Any messages for undefined zones should get ignored if things are working as intended. So we can start with the 12, but know I can quite easily expand that to whatever number the community really needs.

Honeywell takes a whole different set of TPI commands. More troublesome though is that the Vista panels aren’t as chatty as DSC panels. I think the biggest issue is that it doesn’t send an explicit notice that an individual zone has cleared, and instead it takes some workarounds to figure out when to set a zone to clear. Any chance that you’re posting source on GitHub? It’ll take me a while to get my head back into this (and learn Lua), but I’d love to see what you’ve built.

Sometime during the boredom of always being at home this past year, I decided to put sensors on a bunch of windows. Kids aren’t quite to the sneaking out age, but now I feel ready for it.

2 Likes

Well that’s disappointing to hear. So this documentation doesn’t apply?

Sadly, no. The top post of the thread below has what I believe is the latest documentation of the TPI for both systems. If I’m remembering correctly, they used to sell different versions of the hardware for Ademco and DSC.

http://forum.eyez-on.com/FORUM/viewtopic.php?f=6&t=301&sid=ea1b6f8ce310227bca07767740872fc7

I’ve removed references to Honeywell in this topic title and initial post. I will post the code to github in a day or two if there is anyone who would want to use it as a starting point to develop a driver for Honeywell systems.

2 Likes

I’m interested. I’m currently running an envisalink 4 on a DSC 1832 panel currently using @rtorch fork of alarmserver and the DSC app.

I have 13 zones but the 13th zone is a motion that I can live without integration to Smartthings while helping to test. My system is still actively monitored so I utilize the integration primarily for automated arming and to gain access to those contact and motion sensors in Smartthings to be used in automations or with legacy smart lighting functions.

I know the writing is on the wall for IDE so I think it’s time we start moving toward the new options.

@ThomasTrain

If you have rtoch’s very latest version of alarmserver, then you can actually run this along side your current setup. Alarmserver has a built-in proxy server to allow multiple connections to the Envisalink (my understanding is that the Envislink normally only allows one connection at a time.) All you need to do is configure my Driver to point to the IP:port of your alarmserver package. Otherwise, you could always temporarily stop alarmserver and then point the Edge driver directly to the Envisalink address.

Regarding the 13 zones, boy I chose unwisely when I set the current driver to 12! As I had mentioned in an earlier post, I can easily bump that up when the time is right. For now, you can choose to configure whatever number (up to 12) of your zones and see how that goes. It’s good to have a mix of zone types. Do you have any smoke, co, or water sensor zones? Those are as-yet untested, but the code is all there to support them.

Shoot me a DM and I’ll provide the channel invite link and instructions.

2 Likes

You are my hero! My first attempt to install an Edge driver. Can’t believe how easy it was. Five minutes to get this up and running. So far, no issues with your driver.
I previously used AlarmServer, but it was a real challenge for me as a non-IT person to set it up. I am no fan of the Raspberry-pi setup - I had to redo the setup twice because the SD cards don’t seem to last more than a year. After a second SD card failure, I gave up on the Alarmserver setup at my holiday home.
I hope you’ll be adding multiple partition support so that I can stop using AlarmServer at my home as well.
Is the panel supposed to show up in Webcore? I can’t seem to find it as a device to add to Webcore. (The sensors are, however, available in Webcore.)
Thanks again for this.

1 Like

That’s awesome! Sorry to hear about your SD card failures. I’ve know that happens, but I’ve been lucky to be running for several years without a failure yet (using ScanDisk Ultra Plus). But it makes me nervous and I’ve been thinking I need to switch over to SSDs…

Regarding multiple partition support, can you elaborate on your setup? Do you really need multiple partition support (running off the same DSC board) or do you have a separate system in each home? Do you have a smartthings hub at each location? If you need to just be able to install two drivers on the same hub, then I could provide a second driver so you can run two in parallel (I think that work…)

What shows up in webcore is whatever webcore recognizes in its standard list of device types. The panel is defined as a switch category device, so it’s strange it’s not showing up. Can you use automations or rules instead? If webcore is critical then I can see if there’s a way to get it to show.
EDIT: I’m pretty sure it’s because the panel device uses all custom capabilities. If I add a standard one like ‘refresh’ I could probably get it to show if you really need it.

Now a question for you! Do you have smoke, carbon monoxide, or water detection zones in your system? I’d like to hear how those are working since I hadn’t been able to test them here. If you have anyway to set those off while the system is both armed and unarmed, it would be good to test.

Thank you for your reply.
Sorry, I was not clear about my setup. I’m running your driver at my holiday home (that is where I’ve had multiple R-Pi failures.) At my home (separate ST hub and DSC/Envisalink alarm system), I’m still running AlarmServer. At home, the panel is divided into two partitions (both with their own Away and Stay modes). I’m not sure why the alarm was set up like that. Probably because of too many zones?
To help explain, this is the relevant portion of my alarmserver.cfg file (I changed the names of the zones for privacy reasons):

Partition Definitions: Only defined partitions will be generated in the

smartapp. You can use regular panels, or the simplifed panels, or both.

Uncomment and adjust per your preference. Add more [partitionX] sections

if you have more than one partition.

[partition1]
name=Interior
stay=Alarm Interior Stay
away=Alarm Interior Away
#simplestay=DSC Simple Stay Panel
#simpleaway=DSC Simple Away Panel
[partition2]
name=Beams
stay=Alarm Beams Stay
away=Alarm Beams Away
#simplestay=DSC Simple Stay Panel 2
#simpleaway=DSC Simple Away Panel 2

Zone Definitions. Only the defined zones will be generated in the smartapp.

Delete any unused zones to have them removed from the smartapp.

Add more [zoneX] sections if you need to define more zones.

[zone1]
name=Room 1
type=motion
[zone2]
name=Room 2
type=motion
[zone3]
name=Room 3
type=motion
[zone4]
name=Room 4
type=motion
[zone5]
name=Room 5
type=motion
[zone6]
name=Room 6
type=motion
[zone9]
name=Room 7
type=motion
partition=2
[zone10]
name=Room 8
type=motion
partition=2
[zone11]
name=Beam 1
type=motion
partition=2
[zone12]
name=Room 9
type=motion
[zone13]
partition=2
name=Beam 2
partition=2
type=motion
partition=2
[zone14]
name=Beam 3
type=motion
partition=2
[zone15]
name=Room 10
type=motion
[zone17]
name=Entrance
type=motion
[zone18]
name=Room 11
type=motion
[zone23]
name=Beam 4
type=motion
partition=2

I, unfortunately, only have motions sensors connected to both the system. Sorry, I can’t help there - would have loved to contribute something to your project.

OK, so that is really two partitions. This is actually good, because I’ve been looking for someone to help me finish out the multi-partition functionality. If you are willing, together we can get it done!

I’ll set up a separate shared channel for testing and start looking at what still needs to be done in the code. I’ll get back to you with a DM within a week.

I’ll gladly help.

1 Like

I’m going to need you to install the SmartThings CLI if you don’t already have it. It is the only way you can view the driver logging output, which is going to be critical for us to diagnose things.

LINK: SmartThings Developer CLI

1 Like

Ugh, just saw this. I have a Honeywell Vista 20P. If you do end up creating a Honeywell version, I will be happy to test.