Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

homebridge-envisalink-ademco

haywirecoder209MIT2.0.15

Homebridge Plug-in Envisalink for Ademco/Honeywell

homebridge-plugin, homebridge, homekit, envisalink, ademco, alarm, vista 20p, vista 15p, vista 10p, vista

readme

Homebridge-Envisalink-Ademco

verified-by-homebridge NPM Version npm


This module was designed to work with Ademco Envisalink module with the Vista series alarm panels. It supports alarm operations (e.g. Arm, disarm, night, and stay), bypassing of zones, and special function keys (e.g. Fire, Panic, Medical) and exposes the alarm system sensors to homebridge. Note: This module uses the Envisalink Third Party Interface (TPI). Make sure TPI is enabled (i.e. Alert is checked) for your module.

Limits:

  • Ademco panels provide limited zone information to their peripherals. The panel only provides real-time information when a zone is faulted (open) but not when it is restored (close). However, the virtual key panel is continuously updated with zone information. This module auto-sets the faulted zone (open) to restored (close) based on the value set by the openZoneTimeout attribute. Default configuration would result in the zone closing 30 seconds after the virtual key panel no longer reports a fault for the specific zone.

  • When the system is "Armed" the panel no longer reports the state of each zone. All zones will age out and be considered restored once armed. Note: A bypass zone will automatically show as fault (open) once the alarm is disarmed.

  • Envisalink TPI interface only supports one connection. Once this plug-in is connected, any other connections will result in an error. Vice-versa, if Envisalink is being used for another purpose this module will not be able to connect. Confirm you have a stable network connection to the Envisalink module before installing this plug-in. While the auto-reconnect logic option is available, it is designed for occasional network issues.

  • This plug-in uses two indicators for NIGHT STAY. "Arm-Instant (Zero Delay-Stay)" is similar to the STAY mode, but without the entry delay feature and is usually associated with NIGHT STAY. The plug-in also uses virtual key panel txt as a indicator of night mode.

  • To receive updates for RF Low battery, AC failure, Low Panel Battery and Bypass reporting must be enabled for the Envisakit module. Refer to https://www.eyezon.com/EZMAIN/evl4honeywell.php section "Panel Programming Options".

Please Note: It is recommended not to use the master user or installer code in the configure file. Create a separate alarm user with the proper access permissions (please refer to your panel guide).

Configuration options

Attributes Description
host Envisalink server host IP Address. Note: Plug-in and homebridge will shut down if not configured.
port Envisalink server Port address. The default is 4025.
deviceType Device Model. The default is "Honeywell Vista".
password Envisalink server password. The default is "user".
pin Your local alarm PIN. Recommend creating a separate alarm user for this plug-in. The default pin is 1234
partitions List of partitions to monitor in Homekit.
openZoneTimeout (optional) Time out value for zone provided in second. The default is 30 seconds.
sessionsWatcher (optional) Automatic disconnect and recreate a new session if the module detects a hang session. This is done by periodically (i.e. heartbeatInterval) checking the last updates from the virtual keypad. Setting this value to true will result in the "autoReconnect" setting being ignored in the configuration file and setting "autoReconnect" always to true. The default is true.
heartbeatInterval (optional) Heartbeat interval to determine if the envisalink session is hung. Please note: Setting this value below 30 seconds may cause incorrect identification of a hang state. The default is 30 seconds.
commandTimeOut (optional) Time-out value for alarm command to return provided in second. The default is 10 seconds.
autoReconnect (optional) Automatic reconnect to server if network channel is broken. This value is automatically set to true if sessionWatcher is enabled. The default is true.
chimeToggle (optional) Create a switch to enable and disable the Chime bell. The panel only allows a change in bell status when the alarm is not armed. The default is false.
batteryRunTime (optional) User-supplied run time of main system battery backup in hours. This value allows the plug-in to estimate the remaining time when the system switches to a backup battery.
ignoreFireTrouble (optional) When the virtual keypad send a fire trouble, treat it as a warning and allow the system arm the alarm. The default is false.
ignoreSystemTrouble (optional) When the virtual keypad send a system trouble, treat it as a warning and allow the system arm the alarm. The default is false.
maintenanceMode (optional) Disable communication with envisakit module. The default is false. Note: This will disable all updates.
zones (optional) List of zones to appear and monitor in Homekit
bypass (optional) Creates a bypass control (a switch) to bypass zones that are open (faulted)
| If "quickbypass" is not enabled, the bypass switch can only bypass the zone that is being monitored in Homekit, and the zone entry "bypassenable" attribute is set to true.
| "quickbypass" Can be used to bypass all fault zones. This feature must be enabled in Ademco panel (refer to panel guide).
speedkeys (optional) Create controls (switches) to replicate the special function keys on the Ademco keypad

partitions

  • name : partition name - if not present default value to "house"
  • partitionNumber: partition number - if not present consecutive number is used, which is not ideal. Not needed in a single partition configuration.
  • partitionPIN: partition PIN/Code - if not present master configure PIN is used. Not needed in a single partition configuration.

zones (Optional section -- At least one zone must be defined if used)

  • name: zone name - This is a required value for each entry
  • sensorType : co | door | glass | leak | motion | smoke | window - This is a required value for each entry
  • partition : sensor partition number. - This is a required value for each entry
  • zoneNumber : panel zone number for the sensor. - The presence of this attribute triggers consecutive zone numbering or non-consecutive zone numbering (see example). This attribute is required if your system has unused zones, using non-consecutive zone numbering, or wants to selectively show zones within homekit
  • bypassEnabled : true | false - A true value allows zones to be bypassed. This setting works in concert with the bypass control option (below). This is an optional element and defaults to false. The alarm system will not allow fire or emergency zones to be bypassed.

bypass (Optional section)

  • enabledbyPass: true | false - A true value creates a global bypass switch in homekit to bypass faulted zones with bypassEnabled set to true. A false value (default) allows for the creation of a zone-specific switch associated with each zone with bypassEnabled. The direct zone bypass switch can bypass zones that are faulted and/or normal. Un-bypassing one zone will unbypass all zones; this is a limitation of the alarm panel. Note: Once your system is disarmed, the bypass zones will have to be bypassed again to arm your system again.
  • quickbypass : true | false - Must be pre-configured on the alarm panel (please refer to your alarm panel programming guide). If programmed, "Quick Bypass" allows you to easily bypass all open (faulted) zones without having to configure zones individually and perform operations quickly. This is a required value for this section

speedkeys (Optional section)

  • name: Name of special function key to display in Homekit - This is a required value for this section
  • speedcommand: A | B | C | D | Custom - Indicates which special function key (e.g. A, B, C, and D keys) will be associated with this switch. The special keys are located to the left of the numeric keys and can be programmed with special functions at the alarm panel. Custom allows the use of a command field to input a custom automated input sequence that imitates keypad inputs. This is a required value for this section
  • command: Input custom automated input sequence that imitates keypad inputs. Special @pin notation will be replaced with configuration master PIN/Code. This is required if custom is selected as speedcommand.

An example configuration is below.

...

"platforms": [

{

    "platform": "Envisalink-Ademco",
    "host": "192.168.YYY.XXX",
    "deviceType": "20P",
    "password": "---envisalink password (default is user)---",
    "pin": "---panel pin for arming/disarming---",
    "partitions": [
    {
        "name": "House"
    }

    ],
    "zones": [
        {
        "name": "Front Door",
        "sensorType": "door",   
        "partition": 1
        },
        {
        "name": "Master Bedroom Window",
        "sensorType": "window",
        "partition": 1,
        "bypassEnabled": true
        }
    ],
    "bypass": [
        {
        "enabledbyPass": true,
        "quickbypass": false
        }
    ],
    "speedkeys" : [
        {
        "name": "Panic",
        "speedcommand": "A"
        },
        {
        "name": "Special key",
        "speedcommand": "custom",
        "command": "@pin03"
        }
    ]
}
...

Non-Consecutive Zones

If your system has unused zones, simply include a zoneNumber integer property on each zone you have in the config. Make sure you put the property in each zone. This is the recommended configuration if you don't wish to monitor (display) all the zones within HomeKit or don't know the ordering of your system zone.

Example:

`javascript

...

"zones": [ { "name": "Front Entry", "sensorType": "door", "partition": 1, "zoneNumber": 9, "bypassEnabled": true }, { "name": "Patio Door", "sensorType": "door", "partition": 1, "zoneNumber": 12, "bypassEnabled": true }, { "name": "Bedroom Window", "sensorType": "window", "partition": 1, "zoneNumber": 16, "bypassEnabled": false }, { "name": "Garage Door", "sensorType": "door", "partition": 1, "zoneNumber": 5 } ]

...

changelog

Change Log

All notable changes to this project will be documented in this file. This project uses Semantic Versioning.

v2.0.15 (2024-09-15)

Break fixes

  • Fix re-connection logic for unexpected disconnect (issue #29)

v2.0.14 (2024-06-12)

Enhancements

  • Enhance re-connection monitoring, re-connected logic, and reporting.

Break fixes

  • Bypass something misreporting zone bypass.

v2.0.13 (2024-03-05)

Enhancements

  • Enable for support reporting "Night" mode using keypad information thanks @barros001 for the suggestion.

Break fixes

  • Alarm UI not updating until switching other application and going to another view. (issue #52).

v2.0.12 (2024-02-18)

Enhancements

  • Updates to readme and references
  • Fire and System trouble raise general fault in homekit.
  • Fire and System trouble can now be set to not block the setting of the Alarm. Note: Prior to 2.0.12, this was always set to block the activation of the Alarm.

Break fixes

  • Partition issue cause restart when alarm times out was reached in arming/disarmed process.
  • Fire trouble generating Alarms in Homekit.

v2.0.11 (2023-12-03)

Enhancements

  • More automation friendly. Warning message for duplicated activities (e.g Arming when system is already Armed...etc) issue #45. Are now gone, plug-in ignored request that would result in same alarm state.
  • Dependency updates.

v2.0.10 (2023-07-20)

Break fixes

  • Turn off debug logging for chime button.

v2.0.9 (2023-07-18)

Break fixes

  • Fix 'Security System Target State: characteristic undefined' error during an alarm state.
  • Correct various typo and undefine value.
  • Fix various issue with Chime button state (issue #43)

Enhancements

  • Add support for dynamic monitor of a zone Type 12 - Monitor Zone. Zone will show as open and generate a homekit fault for the zone.

v2.0.8 (2023-06-04)

Break fixes

  • Fix the issue when some zones were bypassed non-bypass zone were showing as close.

Enhancements

  • Enhance warning message when the alarm system failed to complete the requested activity.

v2.0.7 (2023-05-16)

Break fixes

  • Fix the problem with zone 0-9 random closures (issue #39).

v2.0.6 (2023-05-02)

Break fixes

  • Fix the problem associated with the bypass switch not defaulting to false if missing.

v2.0.5 (2023-04-30)

Enhancements

  • Add functionality to allow bypassing a specific zone that is fault and/or normal. (issue #38)

v2.0.4 (2023-01-29)

Enhancements

  • Add additional method to obtain low battery and AC status using the virtual keypad. (issue #34)

Break fixes

  • Correct characteristic 'Security System Current State' error. (issue #36)

v2.0.3 (2022-10-22)

Break fixes

  • Fix logic flow which resulted in error message when Bypass switch is disabled. (issue #31)
  • Fix issue which cause the plug-in to restart due to an undefined variable.

v2.0.2 (2022-10-01)

Changes

  • Documentation updates.
  • Enabling Session Watcher will always enable automatic reconnection this reduces possible confusion.

Enhancements

  • Control logic enhancement to assure arming/disarm always return to Homekit in a timely manner.

v2.0.1 (2022-09-10)

Changes

  • Spelling, grammar and white spacing fixes. Thanks @reedloden.
  • Minor enhancement to config UX.

v2.0.0 (2022-08-21)

Enhancements

  • Complete re-write/re-factoring to modern dynamic platform, remove deprecated code, updated depended libraries and optimization of code. Improved response time all around and lay the foundation for future release.

    WARNING: When upgrading from any prior version of the plugin to version 2.0.0+, you need to re-assign accessories to rooms and rebuild/correct existing automation which included these accessories. This is a one-time event and is not a bug. This is the result of upgrading to the Homebridge modern dynamic platform, which generated new unique internal ID.

  • Panel "Not Ready" or "Alarm In Memory" result in a general faults. Please note: Apple Home application doesn't show visual indicators for faults, it does appears in the setting security system tile. 3rd party applications such as Eve Home do show visual an indicator.

  • Envisalink TPI connection changed from General Fault to Tamper events in Homekit. This is now inline with other alarm errors from the panel. A configuration value in UX can now be used to suppress the event.

Break fixes

  • Corrected issue with Bypass functionality not working with multiple zone bypass

v1.2.2 (2022-04-05)

Enhancements

  • Envisalink TPI connection issues now surface in Homekit as a general faults. Please note: Apple Home application doesn't show visual indicators for faults, it does appears in the setting security system tile. 3rd party applications such as Eve Home do show visual indicator.

Break fixes

  • Corrected Typo in config.scheme.json and coding issue which prevented auto re-connect from functioning property (#23). If your issue where auto connect is not enabling, please set attribute via the configure tool (autoReconnect=true).

v1.2.1 (2022-02-10)

Enhancements

  • Add Device Model Vista 21ip (#21) to config.scheme.json.

v1.2.0 (2022-02-04)

Enhancements

  • Add support for low battery status for both panel and sensors
  • Add support for custom macro keys. This allow creation of switches that execute custom keypad commands.
  • Add system tamper notification support via Homekit.
  • Add Support for partition numbering, custom partition PIN/CODE and changing partitions for operations. This allow partitions to be skip (issue #17) and targeted activities for partition. BETA: Multiple partition plug-in feedback/validation needed.
  • Configuration UI update to support partition numbering, partition PIN and selection of panel/device type. Please note: selecting proper panel type is important for 128 panel users.

Changes

  • IMPORTANT: "Keys" section has been replace with "speedKeys" to allow for custom macro keys. The original "Keys" configuration must be re-configure in configure file/UX. In addition to save space speedkey are group together by default.
  • IMPORTANT: Option to create a Bypass switch has been updated. It will need to be re-enabled in configure file/UX.
  • Streamline configuration UX.

Break fixes

  • Fix issues which was suppressing partition controls messages in core Envisakit engine (issue #17).
  • Bypass zones must be fix formatted to either 2 digit or 3 digit for larger panels.
  • Fix issue with function key display error upon execution. Correction include as part of speedkey configuration.

v1.1.26 (2021-10-05)

Enhancements

  • Add Support for Chime On/Off switch in HomeKit (issue #16).
  • Add option to place plug-in in maintenance mode. This disabled communication with Envisakit module, allowing for maintenance of the module without losing configuration and/or filling up the Homebridge logs with errors/warnings.

Changes

  • Correct "Characteristic not in required or optional characteristic section for service Switch" warning (issue #14).
  • Envisalink data stream format error have been changed from an "Error" to a "Warning".
  • Phase 1 code cleanup and optimization.

v1.1.24 (2020-02-25)

Changes

  • Documentation and tag mis-match. CO2 configuration tag replace with CO to align with standard. Manual correction will be needed in the configuration file for those using Carbon Monoxide Detector type from v1.1.23 (e.g. Replace C02 with CO).

v1.1.23 (2021-02-05)

Enhancements

  • Add Support for Carbon Monoxide Detector (#11).
  • Add Support for Glass break Detector as a motion sensor.

v1.1.22 (2020-12-17)

Break fixes

  • Fix issues introduce with 1.1.21. Correction to management of zone status.

v1.1.21 (2020-12-11)

Break fixes

  • Correct issue with false open from virtual panel event.

v1.1.20 (2020-10-31)

Break fixes

  • Correct issue which could result incorrect entry within config.json file.

Changes

  • Minor error handling routine changes. Change will ignored mis-configured section of configuration files.

v1.1.19 (2020-10-15)

Break fixes

  • Correct issue which auto-restart option was ignored.

Changes

  • Add new configuration option to disable Envisalink module session watcher.
  • Improve functionality and response speed of Bypass switch.

v1.1.8 (2020-09-20)

Changes

  • Important: Timeout values (openZoneTimeout, heartbeatInterval, commandTimeOut) are now set to seconds rather than milliseconds. This will NOT be automatically updated in the configuration file. If value is in milliseconds module will use default values.
  • Expose heartbeat session check values in configuration file and UX.

Break fixes

  • Configuration file zone attribute for bypass was not correctly expose in UX.

v1.1.7 (2020-08-12)

Changes

  • Added support to detect silent drop connections to Envisakit module and re-connect if autoconnect is enabled.

Break fixes

  • Correct TypeError which cause module to terminate and shutdown homebridge.

v1.1.6 (2020-08-01)

Break fixes

  • Correct configuration removing leading zero for alarm PIN.
  • Addition to assure alarm PIN is all digit and proper length.

Changes

  • Package engine requirement updated to Nodejs version 12+

v1.1.4 (2020-07-27)

Break fixes

  • Configuration file fix for bypass feature

v1.1.3 (2020-07-26)

Enhancements

  • Added support for Bypassing fault zones
  • Added support for keypanel special function keys (e.g. Fire, Medical, Panic...etc)
  • Enhancements to update method for alarm status, allowing for more realtime updates to status
  • Enhancements to UX configuration

Changes

  • Serial numbering schema (* Note: This may require updating previous automation and room assignment in Homekit)

Break fixes

  • Error handling when connection was not present, cause module to terminate.

v1.0.15 (2020-07-02)

Changes

  • Re-factor of source code for easies of troubleshooting and future enhancements

Break fixes

  • Fix polling logic for sensors

v1.0.12 (2020-06-07)

Changes

  • Added new configuration options for command timeout and sensor polling frequency

v1.0.8 (2020-06-05)

Changes

  • Added easy config for Config UI X.
  • Change attribute for zones "type" attribute has been changed to "sensorType" this is to enabled the UX configuration manager.

v1.0.0 (2020-06-03)

Release