Skip to content

Releases: zwave-js/node-zwave-js

Release v6.0.0-beta.0

10 Jan 16:25
Compare
Choose a tag to compare
Release v6.0.0-beta.0 Pre-release
Pre-release

Breaking changes · Migration guide

  • Logging can now be configured through driver options. However, the environment variables for logging are no longer evaluated lazily, so they now need to be set before requiring zwave-js.
  • The second (string) parameter of the "interview failed" event handler was removed
  • The type ValueMetadataBase has been renamed to ValueMetadataAny. The old type ValueMetadataAny was merged into ValueMetadataBase.
  • The retry strategy for sending commands to nodes has been revised. By default, a message is no longer re-transmitted when the node has acknowledged its receipt, since it is unlikely that the retransmission will change anything. The old behavior can be restored by setting the attempts.retryAfterTransmitReport driver option to true.
    To compensate for the change and give the response enough time to reach the controller, the default for timeouts.response has been increased from 1600 to 10000.
  • The driver now distinguishes between stateful and event values. The latter are now exclusively exposed through the "value notification" event.
  • The deprecated nodeInterviewAttempts option was removed
  • The options fs and cacheDir have been renamed to storage.driver and storage.cacheDir.
  • Loggers are now managed on a per-driver basis. This means you can use zwave-js to talk to different controllers and have separate logs for each.
  • The lookupXYZ methods are no longer exposed by @zwave-js/config. Use the configManager property of your driver instance instead.

Config file changes

  • The index file was removed from the repo and is now generated on demand
  • Several improvements for GE dimmers and switches
  • Added missing config parameters to IDLock 150
  • Added Innovelli LZW36 and First Alert ZCOMBO-G
  • Added Technisat Dimmer and series switch
  • Added Lifeline association to Danfoss MT 2649
  • Added product id/type to NAS-WR01ZE
  • Added Inovelli LZW31 Black Series Dimmer
  • Added Aeotec ZW187 Recessed Door Sensor 7
  • Added checks for partial parameters
  • Added Aeotec ZWA009 aerQ Temperature and Humidity Sensor
  • Added Honeywell 39348/ZW4008
  • Added Zooz zst10-700 z-wave usb stick
  • New versions of @zwave-js/config are now automatically released every night if only config files were changed since the last release.
    You can run npm update @zwave-js/config in the zwave-js install dir to pull the latest config files. For now, a driver restart is required afterwards.

Features

  • Added basic support for 700-series controllers
  • Added a compatibility option to disable the Basic CC mapping
  • An option was added to enable logging to the console, even if it is not a TTY
  • An option was added to control the filesystem access throttling
  • Improved the label for Level low property in BatteryCC
  • Unimplemented CCs may now be sent
  • The version of zwave-js is now exported as libVersion from the main entry point
  • Implemented Battery CC V3
  • Added support for Hail CC

Bugfixes

  • Fixed an off-by-one error in the Binary Sensor Supported Report bitmask.
    Note: If your devices are affected by this bug, re-interview them to remove corrupted values.
  • Expire nonces for keepS0NonceUntilNext devices until after the next nonce was received by the device
  • The interview is no longer aborted when a device does not respond to the Wakeup Capability query
  • Fixed a crash that could happen when compressing the value DB with an existing backup file.
  • Fixed a wrong value ID for Multilevel Switch CC targetValue

Changes under the hood

  • Test releases for PRs can now be created with a command
  • PRs titles are now enforced to comply with conventional commits
  • Config json files are now automatically formatted in VSCode and linted
  • We've added @zwave-js-bot to help us manage the repo and to help you contribute

Release v6.0.0-alpha.3

04 Jan 21:45
Compare
Choose a tag to compare
Pre-release

Breaking changes · Migration guide

  • Logging can now be configured through driver options. However, the environment variables for logging are no longer evaluated lazily, so they now need to be set before requiring zwave-js.
  • The second (string) parameter of the "interview failed" event handler was removed
  • The type ValueMetadataBase has been renamed to ValueMetadataAny. The old type ValueMetadataAny was merged into ValueMetadataBase.
  • The retry strategy for sending commands to nodes has been revised. By default, a message is no longer re-transmitted when the node has acknowledged its receipt, since it is unlikely that the retransmission will change anything. The old behavior can be restored by setting the attempts.retryAfterTransmitReport driver option to true.
    To compensate for the change and give the response enough time to reach the controller, the default for timeouts.response has been increased from 1600 to 10000.
  • The driver now distinguishes between stateful and event values. The latter are now exclusively exposed through the "value notification" event.
  • The deprecated nodeInterviewAttempts option was removed
  • The options fs and cacheDir have been renamed to storage.driver and storage.cacheDir.

Config file changes

  • Added Technisat Dimmer and series switch
  • Added Lifeline association to Danfoss MT 2649
  • Added product id/type to NAS-WR01ZE
  • Added Inovelli LZW31 Black Series Dimmer
  • Added Aeotec ZW187 Recessed Door Sensor 7
  • Added checks for partial parameters
  • Added Aeotec ZWA009 aerQ Temperature and Humidity Sensor
  • New versions of @zwave-js/config are now automatically released every night if only config files were changed since the last release.
    You can run npm update @zwave-js/config in the zwave-js install dir to pull the latest config files. For now, a driver restart is required afterwards.

Features

  • Added a compatibility option to disable the Basic CC mapping
  • An option was added to enable logging to the console, even if it is not a TTY
  • An option was added to control the filesystem access throttling
  • Improved the label for Level low property in BatteryCC
  • Unimplemented CCs may now be sent

Bugfixes

  • Fixed an off-by-one error in the Binary Sensor Supported Report bitmask.
    Note: If your devices are affected by this bug, re-interview them to remove corrupted values.
  • Expire nonces for keepS0NonceUntilNext devices until after the next nonce was received by the device
  • The interview is no longer aborted when a device does not respond to the Wakeup Capability query
  • Fixed a crash that could happen when compressing the value DB with an existing backup file.

Changes under the hood

  • Test releases for PRs can now be created with a command
  • PRs titles are now enforced to comply with conventional commits

Release v6.0.0-alpha.2

01 Jan 23:08
Compare
Choose a tag to compare
Pre-release

Breaking changes · Migration guide

  • Logging can now be configured through driver options. However, the environment variables for logging are no longer evaluated lazily, so they now need to be set before requiring zwave-js.
  • The second (string) parameter of the "interview failed" event handler was removed
  • The type ValueMetadataBase has been renamed to ValueMetadataAny. The old type ValueMetadataAny was merged into ValueMetadataBase.
  • The retry strategy for sending commands to nodes has been revised. By default, a message is no longer re-transmitted when the node has acknowledged its receipt, since it is unlikely that the retransmission will change anything. The old behavior can be restored by setting the attempts.retryAfterTransmitReport driver option to true.
    To compensate for the change and give the response enough time to reach the controller, the default for timeouts.response has been increased from 1600 to 10000.
  • The driver now distinguishes between stateful and event values. The latter are now exclusively exposed through the "value notification" event.
  • The deprecated nodeInterviewAttempts option was removed
  • The options fs and cacheDir have been renamed to storage.driver and storage.cacheDir.

Config file changes

  • Added Technisat Dimmer and series switch
  • Add Lifeline association to Danfoss MT 2649
  • Add product id/type to NAS-WR01ZE
  • New versions of @zwave-js/config are now automatically released every night if only config files were changed since the last release.
    You can run npm update @zwave-js/config in the zwave-js install dir to pull the latest config files. For now, a driver restart is required afterwards.

Features

  • An option was added to enable logging to the console, even if it is not a TTY
  • An option was added to control the filesystem access throttling
  • Improved the label for Level low property in BatteryCC

Bugfixes

  • Fixed an off-by-one error in the Binary Sensor Supported Report bitmask.
    Note: If your devices are affected by this bug, re-interview them to remove corrupted values.
  • Expire nonces for keepS0NonceUntilNext devices until after the next nonce was received by the device

Release v6.0.0-alpha.1

30 Dec 20:13
Compare
Choose a tag to compare
Pre-release

Breaking changes · Migration guide

  • Logging can now be configured through driver options. However, the environment variables for logging are no longer evaluated lazily, so they now need to be set before requiring zwave-js.
  • The second (string) parameter of the "interview failed" event handler was removed
  • The type ValueMetadataBase has been renamed to ValueMetadataAny. The old type ValueMetadataAny was merged into ValueMetadataBase.
  • The retry strategy for sending commands to nodes has been revised. By default, a message is no longer re-transmitted when the node has acknowledged its receipt, since it is unlikely that the retransmission will change anything. The old behavior can be restored by setting the attempts.retryAfterTransmitReport driver option to true.
    To compensate for the change and give the response enough time to reach the controller, the default for timeouts.response has been increased from 1600 to 10000.
  • The driver now distinguishes between stateful and event values. The latter are now exclusively exposed through the "value notification" event.
  • The deprecated nodeInterviewAttempts option was removed
  • The options fs and cacheDir have been renamed to storage.driver and storage.cacheDir.

Config file changes

  • Added Technisat Dimmer and series switch

Features

  • An option was added to enable logging to the console, even if it is not a TTY
  • An option was added to control the filesystem access throttling
  • Improved the label for Level low property in BatteryCC

Bugfixes

  • Fixed an off-by-one error in the Binary Sensor Supported Report bitmask.
    Note: If your devices are affected by this bug, re-interview them to remove corrupted values.

Release v5.7.0

23 Dec 20:45
Compare
Choose a tag to compare

Config file changes

  • Added Aeotec thermostatic Valve ZWA021
  • Added Q-Light Puck and Zerodim 2pol
  • Added Q-Light Zerodim
  • Fixed wrong label and description for Z-Wave.Me UZB

Bugfixes

  • When a node does not respond because it is asleep, the corresponding transaction is no longer rejected and moved to the wakeup queue instead. This should restore the pre-5.0.0 behavior.
  • Added missing label to Binary Sensor CC
  • Added missing % unit to Battery level
  • Timeouts when querying User Codes and the current Lock status are now ignored
  • User Code CC Reports without a user code are no longer discarded when the user status is Available. This should improve compatibility with some non-compliant nodes
  • The targetValue for the Binary Switch, Multilevel Switch and Basic CCs is now persisted in the Value DB when setting values through the API.

Features

  • Config files can now be used specify additional CCs that a node does not advertise in its NIF.
  • Added support for fallback config files without a firmware version. These can be used to set some parameters for devices which wouldn't complete the Version CC interview otherwise

Release v5.6.1

18 Dec 12:41
Compare
Choose a tag to compare

Config file changes

  • Add Heiman Smoke detector
  • New product ID for Fibaro Heat controller
  • Add product config for AEOTEC Range Extender 7

Bugfixes

  • Missing responses from the node when requesting the current values during the Indicator CC no longer abort the interview

Release v5.6.0

14 Dec 19:58
Compare
Choose a tag to compare

Config file changes

  • Added a config file for HeatIt Z-TRM3
  • Added a config file for Eurotronic Air quality sensor
  • The Application CC value IDs of the root endpoint are now preserved for the Qubino Flush 2 Relay

Features

  • Added the compat config option preserveRootApplicationCCValueIDs to disable hiding the root endpoint's application CC value IDs
  • The helper method guessFirmwareFileFormat was added to guess the firmware format based on the file contents
  • The value IDs of the Z-Wave+ CC are now internal and can instead be accessed through the corresponding properties on the ZWaveNode and Endpoint instances
  • The value IDs of the Node Naming and Location CC are now internal and can instead be accessed through the corresponding properties on the ZWaveNode instance
  • Added support for sending multicast and broadcast commands (non-secure only)

Bugfixes

  • Driver.destroy() no longer does anything after the first call
  • Sound Switch Tone Play Report commands now parse the volume if it exists
  • The log entries for Notification CC Reports now contain the correct notification event/state
  • The value IDs of Multi Channel Association CC are now marked as internal
  • When encapsulating commands, the secure flag is now correctly propagated
  • Fixed a bug where commands that belong to a different transaction could be mismatched, resulting in unexpected messages
  • The mapping of root to endpoint 1 now works correctly if the node does not support Multi Channel Association CC at all
  • When the Multilevel Switch CC level change commands indicate that Supervision is not supported, this is now remembered and the command gets retried without supervision.
  • Removed some debug logging which could blow up the log file size
  • Notification CC Reports are now parsed correctly when the V1 Alarm bytes are not zero
  • Color Switch CC: Setting the warm white targetValue no longer falsely claims that the propertyKey is missing
  • Added support for *.gbl firmware files and Aeotec updater executables which include a checksum and a target chip byte.
  • Removing a node association no longer throws an error when both multi channel and normal associations are supported.
  • getDefinedValueIDs no longer returns value IDs that are only controlled by a node

Changes under the hood

  • Types, interfaces and enum declarations in the docs can now be automatically copied and updated from the TypeScript sources
  • Fixed some leaky tests

Release v5.5.0

24 Nov 15:58
Compare
Choose a tag to compare

Config file changes

  • Added a config file for Jasco ZW3010
  • Added new Notification definitions
  • Added new Indicator definitions

Features

  • Implemented the replaceFailedNode API
  • Added a third argument to the "interview failed" event handler which includes an object with additional details about the interview attempt (see docs).
    WARNING: The current signature is deprecated and will be changed in the next major version!
  • Metadata can now be customized by CCs with the ccSpecific property. This is used in several CCs to allow applications to identify which value a value ID describes (e.g. sensor type, meter type, etc...)

Bugfixes

  • The logs of ConfigurationCC::PropertiesGet now include the correct next parameter #
  • The targetValue of switch-type CCs is no longer overwritten with undefined when a report without target value is received

Changes under the hood

  • Switched to npm@7 workspaces to get rid of TypeScript's paths config and support project-relative auto-imports

Release v5.4.1-alpha.0

24 Nov 11:15
Compare
Choose a tag to compare
Pre-release

Config file changes

  • Added a config file for Jasco ZW3010
  • Added new Notification definitions
  • Added new Indicators

Features

  • Implemented the replaceFailedNode API
  • Added a third argument to the "interview failed" event handler which includes an object with additional details about the interview attempt (see docs).
    WARNING: The current signature is deprecated and will be changed in the next major version!
  • Metadata can now be customized by CCs with the ccSpecific property. This is used in several CCs to allow applications to identify which value a value ID describes (e.g. sensor type, meter type, etc...)

Bugfixes

  • The logs of ConfigurationCC::PropertiesGet now include the correct next parameter #

Changes under the hood

  • Switched to npm@7 workspaces to get rid of TypeScript's paths config and support project-relative auto-imports

Release v5.4.0

14 Nov 17:12
Compare
Choose a tag to compare

Config file changes

  • Fibaro Keyfob no longer uses special chars in param labels
  • Changed the valueSize of param 9 for Shenzhen Neo PD03Z from 2 to 1

Features

  • Added the compat config option keepS0NonceUntilNext to disable automatic nonce invalidation for bugged devices (e.g. ID Lock) which reuse nonces in some situations

Bugfixes

  • If a node association is duplicated between Association CC and Multi Channel Association CC, it is now removed from both when using Controller.removeAssociations
  • Add missing production dependency semver to @zwave-js/config
  • The duration property for the Binary Switch, Color Switch, Multilevel Switch and Scene Activation CCs is now writeable
  • The Central Scene CC interview is now skipped if a device does not respond to the supported scenes request
  • Empty user codes are now also handled as strings instead of Buffer objects
  • The targetValue property for the Binary Switch, Multilevel Switch and Basic CCs is now created, even if is undefined.
  • The type CommandClass is now exported from zwave-js/CommandClass
  • The interview process for Configuration CC V3+ now continues even if the response to NameGet and/or InfoGet commands is missing or incomplete
  • The interview process for Association Group Info now continues even if a response is missing or incomplete
  • Multi Channel Lifeline Associations are no longer created automatically if the device does not support the Multi Channel CC
  • Fixed an issue where marking nodes with active transaction as asleep would mess up the serial communication with the controller
  • The receiver of an S0 nonce is now stored and after a successful reply, all nonces for said issuer are now invalidated
  • Unsuccessful controller commands now return the response message instead of throwing

Changes under the hood

  • The log messages for unsuccessful controller commands no longer claim that the controller did not respond