All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- README.md was changed to include details about how upgraded firmware versions negate local network access, and what this means for our users.
- The output relay functionality which was broken since v1.2.9 has been restored.
- Some extra debug output was added.
- Plugin will now log in correctly for firmware versions from v_CN_0.109* and above, due to the changes described below.
- Session ID recognition and network module details recognition have been converted to version-agnostic. Now the plugin should look out for "sessionID" and the vendor details by regex-searching, and not based on line/index lookup.
- homebridge-caddx-interlogix is now officially part of the homebridge verified program ✌️ Thank you all for your support and help!
- The plugin now accepts the module network address both as an IP address and as a hostname.
- Added debug log messages for the entirety of network module management.
- Request timeouts and errors were not handled properly: the HTTP request library was swapped from superagent to axios to mitigate, and the redirection/verification functions of axios are used now to properly handle 30x redirects when the session expires.
- Added a mutex lock to the request mechanism to avoid duplicate session refreshes when two calls occur simultaneously and the session has expired, and to eliminate redundant network calls to the module and improve throughput.
- Small changes have been made to README.md, and the code base has been cleaned up a bit.
- Added a plugin-wide hard-coded 3000 ms delay before reattempting a network request or a new value update when encountering a request error. There have been complaints about the plugin returning either socket end or 403 Forbidden errors sporadically; these are related to server function. It appears that the NX-595E server is flaky and can, under circumstances, get flooded with requests and bog down until it self-resolves. This delay should fix all this aberrant behavior. It should be noted that once initial login happens, all subsequent request attempts should by now result in a catchable error that does not lead the plugin to stopping responding, but rather force a delay before attempting to poll again. As long as the server is functioning, the accessories related to the plugin should start working again.
- Introduced a new request error enumeration to compensate for lack thereof in superagent's minified library.
- Network request mechanism was made more lenient; now the plugin will try to reconnect in case of network failure, before stopping responding gracefully (instead of bringing the entire homebridge instance crashing down with it). Likewise, after successfully logging in, errors will not cause the plugin to go non-responsive, defaulting to the last know values instead (and retrying during the next polling attempt). Error reporting was made more robust; this version should fix the bugs introduced in v1.2.5.
- Fixed 302/304 responses in makeRequest to accomodate for automatic system logouts; this should repair the plugin failure introduced in v1.2.4
- Rewrote makeRequest mechanism to account for error handling and redirects while refreshing session ID.
- Reworked the entire error reporting mechanism to conform to homebridge's verified plugin program standards.
- Updated node dependency to LTS versions (v14.20.1 or 16.16.0 and above).
- Minor changes to README.md to clarify the way zone ignoring works.
- Fixed a bug where the plugin would crash when the session expires due to bad exception handling.
- Added %2D/"-" zone name ignoring convention to accomodate for certain firmware versions.
- First GitHub release! Will apply to homebridge verified plugin program ✌️
- Created CHANGELOG.md and moved the changelog there.
- Removed TLSv1 requirement from network calls code.
- Fixed a bug where smoke sensors set to be ignored would be created instead.
- Fixed a bug where output switches would be recreated every other homebridge restart, even when displayOutputSwitches is set to false.
- Attempt at fixing a bug during output accessory creation when displayOutputSwitches is set to false.
- SSL functionality has been disabled, as the NX-595E SSL version is deprecated and not supported by newer NodeJS/OpenSSL library versions; users are advised to log in to their systems and disable SSL.
- The new option displayOutputSwitches in config.json allows for disabling the output relay control switches.
- The plugin now supports controlling the output relays.
- SSL connections now require TLSv1 protocol.
- Initial SSL support added for connecting to the network module.
- displayBypassSwitches now defaults to false.
- Alarm flag enumerations now are more descriptive.
- Fixed a bug in the area state bitmask logic.
- Sensor tripping now supports sensor persistence.
- Lint error fix.
- Added support for bypassing zone sensors.
- Lint error fix.
- Added the option to override by zone index.
- The plugin now automatically prunes old accessories for sensors that have been removed, overridden, or ignored.
- Fixed a bug on the zone ignoring logic.
- Added capability to ignore zones.
- The plugin now supports designating sensors as smoke sensors when overriding.
- The plugin now does not prune unnamed zones for firmware versions up to .106
- The plugin now allows for unnamed zones, which enables compatibility with pre -.106 firmware versions.
- Added debug output for testing purposes.
- There is no way at present to determing which zones are assigned to which area using the NX-595E web interface, so the logic checking the arming status for areas before issuing a zone bypass command is pointless; it has been disabled for now.
- Fixed the zone bypass crashing issue.
- Attempt at fixing a bug where zone bypass commands were causing a plugin crash.
- Further attempts at fixing the crashing issue from v1.0.6 and v1.0.7
- Attempting to fix crashing behavior while parsing installations with non-sequential zone bank numbers; special thanks go to (@mabrodeur) for help with debugging.
- The plugin now supports non-sequential zone setup on the installer's side; props go to Jo Lienhoop (@) for reporting this issue.
- Fixed a bug where attempting to rearm an already armed area would crash the homebridge instance.
- Added zone bypassing capabilities.
- Arming commands will not go through if an area is not ready for arming.
- Added the option to override zone sensors and set them as either contact or motion sensors.
- Fixed URI decoding issues in zone and area names.
- Fixed a bug where empty zone names would force the zone name '%20'.