Cynics at Large Indigo: Cynical Honey

Cynical Honey Plugin

Download Cynical Honey (Release Notes)

This plugin allows Indigo to manage various types of Honeywell/Ademco Vista security systems. You can arm and disarm the system, read and control keypads, and examine the state of each zone. Even better, Cynical Honey can turn every one of your zones - door and window sensors, motion sensors, etc. - into an Indigo device that can in turn trigger events. A well designed security system can "see" the entire periphery of your house and much of the inside. Now Indigo can, too.

This is a beta-test release. It contains bugs. More bugs than the older plugins. Proceed with caution.


Then you're ready to use actions to control the arming status of your partition(s), and triggers on state changes of your zones.

A Word On Terminology

Security systems have their own language, and Cynical Honey tries to be consistent with this. So let's review what some words mean around security panels:

The box containing the electronic brain of your security system, often hidden in some closet somewhere. That's where the installer goes when something goes wrong. You hardly ever have to touch the thing.
This is what you arm and disarm, and what goes screech in the night when the intruders come. Most panels only have a single active partition, but Honeywell panels support up to eight partitions that can be armed and disarmed separately.
A set of sensors of some kind (door, window, motion, glass break - it doesn't matter) being observed together. Ideally each sensor has its own zone, so that you can observe it separately. If multiple sensors are wired together in one zone, you can't tell them apart from the computer. When a sensor in a zone activates, the zone is said to be tripping.
This is the thing on your wall that you type into. You may have multiple ones, but each keypad acts for a particular partition - it displays its status and lets you change it.

Security Considerations

Cynical Honey can monitor the state of your security system without any special authorization - the fact that it has a serial connection to the panel is sufficient. This is enough to use zone sensors for observation, and lets you change your house's behavior depending on the system's arming status. (Of course, if you always turn a light on when your system disarms, intrepid burglars may figure that out.)

In order to change the arming status of your system, you must provide an authorized security code (and user). You can store this directly in the arming actions you create, or put them into an Indigo variable and use a plugin formula in each action. Keep in mind that by storing an authorized code in Indigo, you are allowing Indigo to control your security system. Obviously this means that if someone hacks your computer, they can disarm your system. Less obviously, it allows you to program your Indigo system to arm and disarm your system without specifying a security code. Think about this carefully. You could program a handheld remote to disarm your system with a single button press from outside your house - but if that's an X-10 remote, someone else just has to turn a dial to have the same ability. The security of your house will depend on the security of your Indigo installation.

If you give Indigo control over your security system, consider creating a distinct security code and user with just enough privileges to achieve your purpose. Consult your security system's documentation for details (look for "creating users").

Please, don't be stupid. Convenience is great, but think it through.

Supported Devices

Cynical Honey requires a Honeywell security panel with a serial port. Some panels (like the Vista 128 series) have built-in serial ports. Others require an attached 4100SM module to provide this port. These interfaces are fairly consistent, and the plugin should work for most of them. Of course, I have only tested it on mine, a Vista 128.


System Device

To talk to a panel connected to a local serial port (via a USB adapter), enter the full path to the serial device (starting with a slash). The plugin will configure the serial port appropriately.

To talk to a panel that is connected to a network serial adapater, enter the address and port (separated by a colon) of the interface device. You need to configure the serial parameters on that network device.

The system device's state tracks the receiver's general state.

It usually takes a few seconds for the exploring phase to conclude. This is where the plugin interrogates the panel to find all its partitions and zones and determine how they're configured.

If you ever change the configuration of your security system - adding or removing sensors, moving zones between partitions, etc. - be sure to restart the plugin when you are done.

Partition Device

A Partition device represents a set of zones that are armed and disarmed together. Honeywell systems can have up to eight partitions, though most systems only have one.

The arming status of a partition is exposed as part of its state state:

In away mode, the partition is fully armed. In stay mode, only the perimeter is armed and the interior is bypassed. What constitutes perimeter and interior zones was determined by your system installer. For more information on how arming works, consult the manual for your security system.

Zone Device

An Zone is the smallest set of independently controlled sensors in your system. Ideally, each sensor is a separate zone, though sometimes multiple sensors are wired together to save money. In that case, all such sensors are treated as a single one, and any one can trip the zone.

The status of a zone is exposed as part of its state state:

In addition, a zone is a standard sensor device.

A zone normally switches between the open and ready states. That's obvious for door and window sensors. A motion sensor is open while it detects motion; it goes back to ready when motion stops. A glass break sensor would read open when it detects glass breakage, and so forth.

A zone is bypassed to keep it from causing alarms. This happens automatically to interior sensor in stay mode, or can be done manually to arm a partition with windows open.

A state of trouble indicates that there's something wrong with the zone. For example, a wireless sensor will be in this state if it is low on battery or has lost contact altogether.

Monitor Device

a Monitor device groups any number of zones together and summarizes their status. Event triggers can fire when any zone in a Monitor group opens or otherwise changes state in interesting ways. Monitors also have a state that directly provides a readable list of all zones that are currently in interesting states, for display in control pages and such.

At any moment, a Monitor selects all zones that are chosen in its Zones list and that are in one of the states whose checkbox is checked. If any zones are selected, the Monitor's state is alert; if none are selected, the state is ready.

The active_list device state is a comma-separated list of the names of selected zones. If no zones are selected, this state is the empty string.

Keypad Device

A Keypad device is a virtual keypad to the security system. It is configured for a particular partition. A keypad has a display text and a set of three LED lights, and you can press buttons on it.

The system does not automatically update the display text. You need to execute the Update Keypad action to ensure that the keypad state is up to date.


Arm Action

Arms a (single) partition so that tripping any of its zones will cause an alarm. This is the same as arming on a keypad associated with this partition.

You must enter an authorized security code and user number to arm the system. If you create multiple arming and disarming actions, it may be best to store these values in Indigo variables and use plugin formulas in the actions.

Most panels ignore the User setting and figure out the user number from the Code entered. The setting exists in case your panel cares for some reason.

Disarm Action

Disarms a (single) partition so that tripping its zones does not cause an alarm.

Arm Multiple Action

Simultaneously arms a set of partitions (of a single security system).

The security code must be authorized to manage all the partitions selected. If it is not, unauthorized partitions will be ignored.

Disarm Multiple Action

Simultaneously disarms a set of partitions.

Update Keypad Action

Updates the state of a virtual keypad device so it shows its current state.

Type into Keypad Action

Sends a string of keystrokes to a security panel. This is the same as walking up to a physical keypad for this partition and (quickly) pressing the buttons specified. After pressing all the virtual buttons, the status of the keypad automatically updates (once).

In most situations, it is safer and more efficient to use Indigo actions to change the state of the security system. Device state updates regardless of how a change is made. Note that partial input (say, a security code without a following action) will display on a physical keypad but will time out after a few seconds, just like real keypresses.

Send Low-Level Command Action

This is the expert option. It lets you send any low-level command to the security panel. The plugin will still process responses normally, so you could send an Arm command "in the raw" and status will still update correctly. You will need documentation for your particular security panel to make sense of this command.

Release Notes

About This Area 29 Oct 2019 20:37