DSC Alarm Plugin - Installation and Information

Posted on
Tue Jul 23, 2013 6:50 pm
travisc offline
User avatar
Posts: 346
Joined: Sep 07, 2010
Location: Toronto, Canada

DSC Alarm Plugin - Installation and Information

What is the DSC Alarm Plugin
This plugin interfaces Indigo 5 to a DSC PowerSeries alarm system using one of the interfaces below. It lets Indigo see the status of the entire alarm system. Triggers can be created for any alarm or zone change, actions can be created to Arm, Disarm, or trip the alarm.

The plugin also maintains timers to keep track of how long any doors and windows have been opened, as well as how long it's been since it's seen activity in certain areas. These timers can be used to turn off the HVAC system if the wife is airing out the house, or turn off lights in areas of the house that aren't occupied.

What It Needs
To use the DSC Alarm Plugin you'll need a DSC PowerSeries alarm system, as well as either an Envisalink 3 (ethernet) or DSC IT-100 (serial). I'd recommend the Envisalink 3 if I had to choose. It saves the hassle of using a USB/Serial adapter and it also has more features. For some pros/cons of each option please see the bottom of this post.

The following products are now discontinued, but they will work as well:
- Envisalink 2DS
- PC-5401

Download the Plugin
The latest version of the plugin can be downloaded from GitHub. Click on the Download ZIP button on the right side.
If you'd like to be emailed when the plugin is updated, please subscribe to this topic.

1. Download the plugin from the link above.

2. Double-click on the DSC Alarm.indigoPlugin file, Indigo should launch and ask if you'd like it to install the plugin.

3. The plugin's config screen should pop up. Select the serial port your interface is using and enter your alarm's code.

4. Create one Keypad device. This device holds global alarm states like if the system is armed/disarmed, LCD Messages and LED states. It's also the device you use to Arm/Disarm the alarm.

5. Create Alarm Zone devices for each of your alarm zones. If you don't know which of your zones correspond to which zone number, turn on 'Enable Debugging" in the plugin's config and watch the Event Log as you open and close each zone. If you want to prefix each zone device with something to keep them grouped together in Indigo's lists, use "Alarm_". The plugin will remove that portion of the name before speaking the zone's name during certain events.

6. Create triggers to go off when the alarm state changes, or when a zone state changes.

7. Create actions to arm/disarm the alarm.

8. Create a cool control page keypad like the one below. All the LED states and LCD messages are updated in real-time just like a physical keypad. The text on each zone indicator shows the last time the zone was opened. The background and LED images I used to create this control page are included in the plugin download.


Zone Groups
Sometimes it can be useful to keep track of many zones at once. For example:
    - If any door or window zone has been open for more than 5 minutes, turn off the HVAC system.
    - If there's been no motion detected on the zones in the basement for 30 minutes, turn off the lights.
    - If all the door and motion zones have been closed for x hours, nobody's home, do something.
    - If any water leak detector has been tripped, do something.

Some of the above situations were difficult to detect without scripting. They can now be easily detected using a Zone Group device. Create a new zone group device, then add the zones you'd like to keep track of. The Zone Groups have the following events you can use in your conditions and triggers:


    - The Zone Group's state is open when ANY member zone is open, and closed only when ALL member zones are closed.
    - The Minutes Since Any Zone's State Changed timer is reset to 0 when ANY of the member zone's state's change.
    - The Minutes Since Group's State Changed timer is reset to 0 when ALL zones become closed, or ANY zone becomes open.

So to bring this full circle. If you wanted to create a trigger for the HVAC example above. Create a group zone device containing all doors and windows. Then a trigger to fire when the zone group's state is open AND the Minutes Since Group's State Changed becomes 5. To turn the HVAC system back on automatically create a similar trigger but with a closed state.

Envisalink 2DS/3/4 vs IT-100

Envisalink 2DS/3/4
    + Ethernet interface.
    + Has very affordable (and completely optional) UL Listed monitoring.
    - Alarm Keypad LCD messages are not sent to the plugin, so implementing a true virtual keypad is not possible.
    - Doesn't support DSC Thermostats. (This one's a non-issue for most)

    + Alarm Keypad LCD messages are sent to the plugin for display in control pages.
    + Supports DSC Thermostats.
    - Serial Interface. Requires USB to Serial Adapter.

Posted on
Tue Jul 23, 2013 6:51 pm
travisc offline
User avatar
Posts: 346
Joined: Sep 07, 2010
Location: Toronto, Canada

Re: DSC Alarm Plugin - Installation and Information

Changes so far ...

Version 1.5.4 (Sep 4, 2014)
- Plugin moved to GitHub

Version 1.2.5 (May 27, 2013)
- Fixed speaking bug
- Added an option to send an email each time a zone is tripped. The email body contains a list of the zones tripped as well as its current state.
- Added an option to have speak text inserted into a variable instead of spoken by the server.
- Device names prefixed by "Alarm_" will be spoken without the Alarm prefix. Useful for keeping the alarm devices together in Indigo's lists without having to hear "Alarm underscore" before a zone is spoken.

Version 1.2.1 (May 26, 2013)
- Fixed bug that would prevent device setting changes from taking effect until plugin restart

Version 1.2.0 (May 26, 2013)
- Updated to be compatible with Indigo 6 Beta 8.
- Added lastChanged timers to each zone. Use these timers to shut off lights after a particular length of inactivity. Or display them in control pages.
- Added timers to keypad device to keep track of how long a door or window has been open. Useful for turning off HVAC automatically if one of them has been left open to air out the house.
- Added Occupancy Group timers to keypad device. Assign zones to different groups (i.e. Upstairs, Main Floor, Basement) to easily keep track of multiple zones simultaneously. Useful to turn off lights in an area of the house if there's been no motion, door open, etc. Occupancy timers can also be reset via a keypad action if activity is detected by other means, like a light switch being turned on.

Version 1.0.9 (Nov 14, 2012):
- Quick fix for compatibility with Indigo 6 beta.

BETA Version 1.0.7 (Apr 2, 2012):
- Fixed for 2DS: Time bug where 12pm showed as 12am
- Fixed for ALL: "Create Variables" would cause plugin to get stuck in an endless loop

BETA Version 1.0.6 (Mar 31, 2012):
- Fixed for 2DS: Login bug that popped up when 2DS was updated to 1.07.65
- Fixed for 2DS: Plugin will now announce open zones if attempt is made to arm alarm from plugin
- Fixed for 2DS: Configuration issue where an IT-100 serial port needed to be selected for proper plugin startup
- Fixed for 2DS: Ping errors are now suppressed unless they happen 3 times in a row
- Added for 2DS: Date/Time now displayed in keypad state variables for 2DS users
- Added for ALL: Trigger events for Alarm Disarmed, Tripped, Failed to Arm
- Removed for ALL: Removed Failed To Arm keypad state (use above trigger event instead)

Version 1.0.0 (Nov 28, 2011):
- Lots of minor enhancements.
- Fixed a bug where the plugin would hog CPU on first launch. (credit to mrcandy for finding this one)
- Changes to alarm devices now take effect immediately without having to restart the plugin.
- Added an action to set the time of the alarm to the same as the computer. Setup a schedule to run this nightly to keep your alarm's clock in check and to adjust for changes in Daylight Savings Time.

Version 0.9.3 (Jun 28, 2011):
- Device states now show up properly in the Device List. Unfortunately existing devices have to be deleted and recreated for this to take effect.
- Added ability to trigger Fire, Medical, and Panic alarms.
- Added ability to send keypad key presses or even key strings
- Added events that trigger when the alarm is armed or disarmed by a particular user

Version 0.9.1 (Jun 27, 2011):
- Fixed LCD parsing for some alarm panels
- Added support for temperature sensors

Version 0.9.0 (Jun 26, 2011):
- Initial release of the DSC Alarm Plugin (version 0.9.0)

Posted on
Fri Jul 26, 2013 4:26 pm
travisc offline
User avatar
Posts: 346
Joined: Sep 07, 2010
Location: Toronto, Canada

Re: DSC Alarm Plugin - Installation and Information

Version 1.5.0 Released

    - A simple checkbox to keep the alarm's date and time correct has been added to the config.
    - There are now two boxes for email addresses, one for urgent emails, one for notices. Notices include trouble codes, low battery warnings, power failure, zone faults, etc.
    - One email per new plugin release is now sent to the notice email.
    - The keypad now has a Chime state to keep track of the current state of the keypad's chime (enabled or disabled).
    - The keypad now has an ArmedState variable to keep track of the armed mode.
    - The OccupancyGroup and DoorOrWindowOpen timers have been removed from the keypad device in favour of the new Zone Group device. See the bottom of the first post for an explanation.
    - The Create Variables feature has been deprecated. Variables are still maintained if they were enabled in a previous version.
    - Improved plugin dialogs.


Posted on
Sun Jul 28, 2013 5:56 am
travisc offline
User avatar
Posts: 346
Joined: Sep 07, 2010
Location: Toronto, Canada

Re: DSC Alarm Plugin - Installation and Information

Version 1.5.1 Released

    - Fixed an error that wouldn't allow the plugin's config to validate.
    - Added more error code descriptions.


Posted on
Sun Aug 11, 2013 1:00 pm
travisc offline
User avatar
Posts: 346
Joined: Sep 07, 2010
Location: Toronto, Canada

Re: DSC Alarm Plugin - Installation and Information

Version 1.5.2 Released

    - Versions 1.5.0 and 1.5.1 did not send alarm tripped emails. This is now fixed.
    - Added the ability to customize email subject lines for easier filtering.
    - The alarm panel time is now updated only if it's out by more than one minute.


Posted on
Mon Aug 12, 2013 8:27 am
travisc offline
User avatar
Posts: 346
Joined: Sep 07, 2010
Location: Toronto, Canada

Re: DSC Alarm Plugin - Installation and Information

Version 1.5.3 Released

This is a minor bug fix release.

    - "Alarm time is within 1 minute of actual time." log messages were showing up every four minutes. These now only show in Debug mode.


Posted on
Sat Aug 13, 2016 9:06 pm
travisc offline
User avatar
Posts: 346
Joined: Sep 07, 2010
Location: Toronto, Canada

Version 2.0.0 Released

Fellow forum user Monstergerm spent a lot of time on the DSC Plugin recently. He added a ton of new features including support for multiple partitions. I finally had a chance to merge the changes in to the GitHub repo.

I eyeballed the changes and have done some preliminary testing like arming and disarming but haven't tested tripping the alarm yet.

Please post in the forum if you have any issues.

Thanks for the nice contribution to the plugin Monstergerm! :D


- The list of changes ...

Added email notifications for panic alerts (Fire, Ambulance, Police) using the Alarm Triggered email subject.
• Added email notifications for duress code alerts using the Alarm Triggered email subject.
• Expanded log entry details to include partition information where not included.
• Added a Ready State to keypad devices.
• Added a Panic State to keypad devices for Fire, Ambulance, Police, Duress to allow panic triggers via Indigo.
• Added support for eight partitions.
• Added Global away arm command for all partitions.
• Programmed Ready LED for all partitions.
• Programmed Armed LED for all partitions.
• Programmed Bypass LED for all partitions.
• Programmed Trouble LED for all partitions.
• Programmed Memory LED for all partitions.
• Added a partition property for alarm zones. Please assign all your zones to the same partitions as they are assigned on the DSC panel.
• Added device validation for keypad and partition number to avoid duplicate partition numbers.
• Added keypad property to include keypad custom names, which allows partition labeling in the log.
• Added user code name labeling, which shows in the log the user by name who disarmed the alarm. For instance: User 040 ‘Master’.
• Changed keypad press command to 071 to allow partition specific keypresses of up to 6 characters.
• Added option to send a DSC command based on variable text. This is very useful on Indigo Touch, since the text of a variable can be changed on your iPhone and then used as a keypress command.
• Added bypass state to all zones.
• Added action for bypassing a specific zone.
• Added action for clearing all bypassed zones.
• Added action for bypass recall.
• Added bypass zone monitoring for partition 1 (Unfortunately the DSC panel does not updated the bypass status for zones in other partitions).
• Added new icon to indicate bypassed zones (partition 1 only). A blue star will be shown if a zone has been bypassed. This blue star can be overlayed the zone status icon in control pages to easily identify bypassed zones.The Bypass LED will work on all partitions and will come on when the system is armed.
• Added new icons for Disarm, Arm, ArmAway and GlobalArm for control pages and a larger background image for phone 5 and 6.
• Added speak and speak-to variable-function for panic alerts.
• Added trigger for user and partition-specific disarms. This allows you to setup Indigo triggers if the kids or a guest disarmed the system with their code.
• Fixed error checking in configUI to include alert and trouble email addresses.
• Added trigger for zone tripped violation (this allows processing of all-partition tripped zone events through Indigo), e.g. via Applescript and iMessage.
• Added trigger for telephone line ring tone detected, which might be useful for other Indigo events.

Page 1 of 1

Who is online

Users browsing this forum: No registered users and 1 guest