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.
Installation
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)
IT-100
- + Alarm Keypad LCD messages are sent to the plugin for display in control pages.
- + Supports DSC Thermostats.
- - Serial Interface. Requires USB to Serial Adapter.