Releases: zwave-js/node-zwave-js
Releases · zwave-js/node-zwave-js
Release v6.0.0-beta.0
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 toValueMetadataAny
. The old typeValueMetadataAny
was merged intoValueMetadataBase
. - 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 totrue
.
To compensate for the change and give the response enough time to reach the controller, the default fortimeouts.response
has been increased from1600
to10000
. - 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
andcacheDir
have been renamed tostorage.driver
andstorage.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 theconfigManager
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 runnpm update @zwave-js/config
in thezwave-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
forLevel low
property inBatteryCC
- Unimplemented CCs may now be sent
- The version of
zwave-js
is now exported aslibVersion
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
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 toValueMetadataAny
. The old typeValueMetadataAny
was merged intoValueMetadataBase
. - 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 totrue
.
To compensate for the change and give the response enough time to reach the controller, the default fortimeouts.response
has been increased from1600
to10000
. - 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
andcacheDir
have been renamed tostorage.driver
andstorage.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 runnpm update @zwave-js/config
in thezwave-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
forLevel low
property inBatteryCC
- 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
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 toValueMetadataAny
. The old typeValueMetadataAny
was merged intoValueMetadataBase
. - 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 totrue
.
To compensate for the change and give the response enough time to reach the controller, the default fortimeouts.response
has been increased from1600
to10000
. - 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
andcacheDir
have been renamed tostorage.driver
andstorage.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 runnpm update @zwave-js/config
in thezwave-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
forLevel low
property inBatteryCC
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
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 toValueMetadataAny
. The old typeValueMetadataAny
was merged intoValueMetadataBase
. - 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 totrue
.
To compensate for the change and give the response enough time to reach the controller, the default fortimeouts.response
has been increased from1600
to10000
. - 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
andcacheDir
have been renamed tostorage.driver
andstorage.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
forLevel low
property inBatteryCC
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
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 isAvailable
. This should improve compatibility with some non-compliant nodes- The
targetValue
for theBinary Switch
,Multilevel Switch
andBasic
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
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
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 theZWaveNode
andEndpoint
instances - The value IDs of the
Node Naming and Location CC
are now internal and can instead be accessed through the corresponding properties on theZWaveNode
instance - Added support for sending multicast and broadcast commands (non-secure only)
Bugfixes
Driver.destroy()
no longer does anything after the first callSound Switch Tone Play Report
commands now parse the volume if it exists- The log entries for
Notification CC Report
s 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 theV1 Alarm
bytes are not zeroColor Switch CC
: Setting the warm whitetargetValue
no longer falsely claims that thepropertyKey
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
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 withundefined
when a report without target value is received
Changes under the hood
- Switched to
npm@7
workspaces to get rid of TypeScript'spaths
config and support project-relative auto-imports
Release v5.4.1-alpha.0
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'spaths
config and support project-relative auto-imports
Release v5.4.0
Config file changes
- Fibaro Keyfob no longer uses special chars in param labels
- Changed the
valueSize
of param 9 for Shenzhen Neo PD03Z from2
to1
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
andMulti Channel Association CC
, it is now removed from both when usingController.removeAssociations
- Add missing production dependency
semver
to@zwave-js/config
- The
duration
property for theBinary Switch
,Color Switch
,Multilevel Switch
andScene 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 theBinary Switch
,Multilevel Switch
andBasic
CCs is now created, even if isundefined
. - The type
CommandClass
is now exported fromzwave-js/CommandClass
- The interview process for
Configuration CC V3+
now continues even if the response toNameGet
and/orInfoGet
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