-
-
Notifications
You must be signed in to change notification settings - Fork 635
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(cc): add value event and notifications for Multilevel Switch CC Set and Start/StopLevelChange #4282
Conversation
added fingerprint for AU/NZ model of Aeotec ZWA003
…d MultilevelSwitchCCStopLevelChange
🚧 It seems like this PR has lint errors 🚧
I should be able to fix them for you. If you want me to, just comment |
@zwave-js-bot fix lint
…On Sat, 26 Feb 2022 at 6:40 AM, zwave-js-assistant[bot] < ***@***.***> wrote:
🚧 It seems like this PR has lint errors 🚧
I should be able to fix them for you. If you want me to, just comment
@zwave-js-bot fix lint
—
Reply to this email directly, view it on GitHub
<#4282 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAOMN63CBI2FC6ETAWEPL2DU465JZANCNFSM5PK3Q5HQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
🐌 Please wait for the lint check to complete, then try again. |
This doesn't pass the linter:
and tests are failing too - you can run them locally using |
@@ -497,6 +506,17 @@ export class MultilevelSwitchCC extends CommandClass { | |||
|
|||
await this.refreshValues(); | |||
|
|||
// create compat event value if necessary | |||
if (node.deviceConfig?.compat?.treatBasicSetAsEvent) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MultilevelSwitchCC should have a separate compat flag (not named ...Basic...
)
public targetValue: number; | ||
public duration: Duration | undefined; | ||
@ccValue() | ||
@ccValueMetadata({ | ||
...ValueMetadata.ReadOnlyLevel, | ||
label: "Current value", | ||
}) | ||
public readonly currentValue: Maybe<number> | undefined; | ||
|
||
@ccValue({ forceCreation: true }) | ||
@ccValueMetadata({ | ||
...ValueMetadata.Level, | ||
label: "Target value", | ||
}) | ||
public readonly targetValue: number | undefined; | ||
|
||
@ccValue({ minVersion: 2 }) | ||
@ccValueMetadata({ | ||
...ValueMetadata.ReadOnlyDuration, | ||
label: "Remaining duration until target value", | ||
}) | ||
public readonly duration: Duration | undefined; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems wrong. A MultilevelSwitchCCSet
doesn't have a currentValue
property and its properties shouldn't be readonly.
const payload = [this.targetValue]; | ||
if (this.version >= 2 && this.duration) { | ||
payload.push(this.duration.serializeSet()); | ||
const payload: number[] = [ | ||
typeof this.currentValue !== "number" ? 0xfe : this.currentValue, | ||
]; | ||
if (this.version >= 2 && this.targetValue && this.duration) { | ||
payload.push(this.targetValue, this.duration.serializeReport()); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changing the code that sends MultilevelSwitchCCSet
isn't necessary to understand them when they are received.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is probably why tests are failing.
if (command instanceof MultilevelSwitchCCStartLevelChange) { | ||
this.driver.controllerLog.logNode(this.id, { | ||
endpoint: command.endpointIndex, | ||
message: | ||
"treating MultilevelSwitchCCStartLevelChange::Set as a value event", | ||
}); | ||
this._valueDB.setValue( | ||
getMultilevelSwitchCCCompatEventValueId(command.endpointIndex), | ||
command.direction, | ||
{ | ||
stateful: false, | ||
}, | ||
); | ||
return; | ||
} | ||
if (command instanceof MultilevelSwitchCCStopLevelChange) { | ||
this.driver.controllerLog.logNode(this.id, { | ||
endpoint: command.endpointIndex, | ||
message: | ||
"treating MultilevelSwitchCCStopLevelChange::Set as a value event", | ||
}); | ||
this._valueDB.setValue( | ||
getMultilevelSwitchCCCompatEventValueId(command.endpointIndex), | ||
"stop", | ||
{ | ||
stateful: false, | ||
}, | ||
); | ||
return; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's not water down the meaning of the event value too much, it should be limited to the value received via a Set command.
I'd prefer having start/stopLevelChange as a new notification
type, like for Powerlevel CC and Entry Control CC - see point 3. in my comment in the issue.
const sourceEndpoint = | ||
this.getEndpoint(command.endpointIndex ?? 0) ?? this; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This isn't used
@AlCalzone Thanks for the feedback, I believe that I've made most of the changes you've suggested. I'd be keen if you have any thoughts on the event structure, with the way I'm passing the event type through the notification. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for taking so long to review this. A few more changes please.
🚧 It seems like this PR has lint errors 🚧
I should be able to fix them for you. If you want me to, just comment |
@zwave-js-bot fix lint |
Thanks a lot! |
### Breaking changes · [Migration guide](https://zwave-js.github.io/node-zwave-js/#/getting-started/migrating-to-v9) * The `route` parameter in `SendDataBridgeRequest` has been removed, since it isn't supported in any known SDK version (#3741) * Faster timeout while waiting for a response to a GET request (#3756) * Renamed properties and methods of the `Controller` class and related message classes (#3761) * Converted the `isControllerNode` method on the `ZWaveNode` class to a readonly property (#3972) * (possibly breaking) Upgraded `serialport` library to version 10.x (#4225) * The legacy network cache file `<homeid>.json` was converted to an appendonly `.jsonl` file in order to prevent data loss (#4263) ### Features * The node statistics now include RSSI and the actual routes taken (LWR, NLWR) for communication (#4022) * A utility method `rssiToString` was added to convert RSSI values to a human readable string * Export some commonly used string formatting utilities (#4318) * Add support for `Irrigation CC` (#4270) * The controller's `sdkVersion` property now includes the build number (or minor version) if supported (#4355) * Added a compat flag to expose received `MultilevelSwitchCCSet` commands via the `event` property (#4282) * Received `MultilevelSwitchCC` `Start/StopLevelChange` commands are now emitted as notifications (#4282) ### Bugfixes * Error reporting is now opt-in (#4279) and should no longer force-exit the application when an unhandled rejection occurs (#4291) * Increase the default controller response timeout to 10s to work around an issue where some 500 series controllers take too long to confirm execution of a SendData command when the target node is unresponsive (#4259) * Fix parsing of BridgeApplicationCommandRequest that do not contain an RSSI reading (#4337) * Fixed an issue with automatic clock correction where rounding the time up could lead to the clock being 1 hour late (#4346) * Notification event parameters containing a `UserCodeCC` report now correctly indicate the user ID again (#4356) ### Config file changes * Correct device description for Leviton DZMX1 (#4317) * Add metadata to Zooz ZSE18 (#4338) * Add metadata to AEON Labs DSB29 (#4334) * Add metadata to Vision Security GZ8101 (#4350) * Add metadata to AEON Labs DSC26 (#4343) * Add metadata to Ecolink DWZWAVE25 (#4339) * Merge redundant config files for Fibaro Walli Double Switch (#4370) * Add value 2 to Aeotec ZW100 param 81, FW 1.10-1.12 (#4361) * Add parameters and correct default values for Fibaro Smart Module FGS214 and Double Smart Module FGS224 (#4345) * Correct value size for Zooz ZEN20 v2 (#4358) ### Changes under the hood * Lots of dependency updates * We no longer use `lerna` for monorepo management. It is largely unmaintained and doesn't support `yarn`'s `workspace:` protocol (#4071)
### Breaking changes · [Migration guide](https://zwave-js.github.io/node-zwave-js/#/getting-started/migrating-to-v9) * The `route` parameter in `SendDataBridgeRequest` has been removed, since it isn't supported in any known SDK version (#3741) * Faster timeout while waiting for a response to a GET request (#3756) * Renamed properties and methods of the `Controller` class and related message classes (#3761) * Converted the `isControllerNode` method on the `ZWaveNode` class to a readonly property (#3972) * (possibly breaking) Upgraded `serialport` library to version 10.x (#4225) * The legacy network cache file `<homeid>.json` was converted to an appendonly `.jsonl` file in order to prevent data loss (#4263) ### Features * The node statistics now include RSSI and the actual routes taken (LWR, NLWR) for communication (#4022) * A utility method `rssiToString` was added to convert RSSI values to a human readable string * Export some commonly used string formatting utilities (#4318) * Add support for `Irrigation CC` (#4270) * The controller's `sdkVersion` property now includes the build number (or minor version) if supported (#4355) * Added a compat flag to expose received `MultilevelSwitchCCSet` commands via the `event` property (#4282) * Received `MultilevelSwitchCC` `Start/StopLevelChange` commands are now emitted as notifications (#4282) * Added an `sdkVersion` property for nodes (#4371) ### Bugfixes * Error reporting is now opt-in (#4279) and should no longer force-exit the application when an unhandled rejection occurs (#4291) * Increase the default controller response timeout to 10s to work around an issue where some 500 series controllers take too long to confirm execution of a SendData command when the target node is unresponsive (#4259) * Fix parsing of BridgeApplicationCommandRequest that do not contain an RSSI reading (#4337) * Fixed an issue with automatic clock correction where rounding the time up could lead to the clock being 1 hour late (#4346) * Notification event parameters containing a `UserCodeCC` report now correctly indicate the user ID again (#4356) * Fixed an issue in the NVM migration routine that could lead to nonsensical radio settings which can only be changed by editing the NVM file manually (#4368) * Prevent infinite loop in health check when the node responds but there is no progress (#4372) * Route health checks can no longer have sleeping nodes as the target (#4373) * Lifeline health checks now wait for sleeping nodes to wake up instead of considering the wait time latency (#4376) * Route health check rounds now indicate when there were zero failed pings (#4377) ### Config file changes * Correct device description for Leviton DZMX1 (#4317) * Add metadata to Zooz ZSE18 (#4338) * Add metadata to AEON Labs DSB29 (#4334) * Add metadata to Vision Security GZ8101 (#4350) * Add metadata to AEON Labs DSC26 (#4343) * Add metadata to Ecolink DWZWAVE25 (#4339) * Merge redundant config files for Fibaro Walli Double Switch (#4370) * Add value 2 to Aeotec ZW100 param 81, FW 1.10-1.12 (#4361) * Add parameters and correct default values for Fibaro Smart Module FGS214 and Double Smart Module FGS224 (#4345) * Correct value size for Zooz ZEN20 v2 (#4358) * Preserve all endpoints for Qubino ZMNKAD1 Luxy Smart Switch (#4366) ### Changes under the hood * Lots of dependency updates * We no longer use `lerna` for monorepo management. It is largely unmaintained and doesn't support `yarn`'s `workspace:` protocol (#4071)
### Breaking changes · [Migration guide](https://zwave-js.github.io/node-zwave-js/#/getting-started/migrating-to-v9) * The `route` parameter in `SendDataBridgeRequest` has been removed, since it isn't supported in any known SDK version (#3741) * Faster timeout while waiting for a response to a GET request (#3756) * Renamed properties and methods of the `Controller` class and related message classes (#3761) * Converted the `isControllerNode` method on the `ZWaveNode` class to a readonly property (#3972) * (possibly breaking) Upgraded `serialport` library to version 10.x (#4225) * The legacy network cache file `<homeid>.json` was converted to an appendonly `.jsonl` file in order to prevent data loss (#4263) ### Features * The node statistics now include RSSI and the actual routes taken (LWR, NLWR) for communication (#4022) * A utility method `rssiToString` was added to convert RSSI values to a human readable string * Export some commonly used string formatting utilities (#4318) * Add support for `Irrigation CC` (#4270) * The controller's `sdkVersion` property now includes the build number (or minor version) if supported (#4355) * Also expose `sdkVersion` on the controller node (#4388) * Added a compat flag to expose received `MultilevelSwitchCCSet` commands via the `event` property (#4282) * Received `MultilevelSwitchCC` `Start/StopLevelChange` commands are now emitted as notifications (#4282) * Added an `sdkVersion` property for nodes (#4371) * `LogContext` and related types are now exported (#4378) * Map `Basic CC Set` to appropriate CCs for devices with `Remote Switch` device class (#4382) * User codes and network keys are no longer logged (#4383) ### Bugfixes * Error reporting is now opt-in (#4279) and should no longer force-exit the application when an unhandled rejection occurs (#4291) * Increase the default controller response timeout to 10s to work around an issue where some 500 series controllers take too long to confirm execution of a SendData command when the target node is unresponsive (#4259) * Fix parsing of BridgeApplicationCommandRequest that do not contain an RSSI reading (#4337) * Fixed an issue with automatic clock correction where rounding the time up could lead to the clock being 1 hour late (#4346) * Notification event parameters containing a `UserCodeCC` report now correctly indicate the user ID again (#4356) * Fixed an issue in the NVM migration routine that could lead to nonsensical radio settings which can only be changed by editing the NVM file manually (#4368) * Prevent infinite loop in health check when the node responds but there is no progress (#4372) * Route health checks can no longer have sleeping nodes as the target (#4373) * Lifeline health checks now wait for sleeping nodes to wake up instead of considering the wait time latency (#4376) * Route health check rounds now indicate when there were zero failed pings (#4377) ### Config file changes * Correct device description for Leviton DZMX1 (#4317) * Add metadata to Zooz ZSE18 (#4338) * Add metadata to AEON Labs DSB29 (#4334) * Add metadata to Vision Security GZ8101 (#4350) * Add metadata to AEON Labs DSC26 (#4343) * Add metadata to Ecolink DWZWAVE25 (#4339) * Merge redundant config files for Fibaro Walli Double Switch (#4370) * Add value 2 to Aeotec ZW100 param 81, FW 1.10-1.12 (#4361) * Add parameters and correct default values for Fibaro Smart Module FGS214 and Double Smart Module FGS224 (#4345) * Correct value size for Zooz ZEN20 v2 (#4358) * Preserve all endpoints for Qubino ZMNKAD1 Luxy Smart Switch (#4366) * Enable Multilevel Switch `event` value for Aeotec ZW111 (#4380) ### Changes under the hood * Lots of dependency updates * We no longer use `lerna` for monorepo management. It is largely unmaintained and doesn't support `yarn`'s `workspace:` protocol (#4071) * The bot now considers `zip` a valid extension for Z-Wave JS logfiles
### Breaking changes · [Migration guide](https://zwave-js.github.io/node-zwave-js/#/getting-started/migrating-to-v9) * The `route` parameter in `SendDataBridgeRequest` has been removed, since it isn't supported in any known SDK version (#3741) * Faster timeout while waiting for a response to a GET request (#3756) * Renamed properties and methods of the `Controller` class and related message classes (#3761) * Converted the `isControllerNode` method on the `ZWaveNode` class to a readonly property (#3972) * (possibly breaking) Upgraded `serialport` library to version 10.x (#4225) * The legacy network cache file `<homeid>.json` was converted to an appendonly `.jsonl` file in order to prevent data loss (#4263) ### Features * The node statistics now include RSSI and the actual routes taken (LWR, NLWR) for communication (#4022) * A utility method `rssiToString` was added to convert RSSI values to a human readable string * Export some commonly used string formatting utilities (#4318) * Add support for `Irrigation CC` (#4270) * The controller's `sdkVersion` property now includes the build number (or minor version) if supported (#4355) * Also expose `sdkVersion` on the controller node (#4388) * Added a compat flag to expose received `MultilevelSwitchCCSet` commands via the `event` property (#4282) * Received `MultilevelSwitchCC` `Start/StopLevelChange` commands are now emitted as notifications (#4282) * Added an `sdkVersion` property for nodes (#4371) * `LogContext` and related types are now exported (#4378) * Map `Basic CC Set` to appropriate CCs for devices with `Remote Switch` device class (#4382) * User codes and network keys are no longer logged (#4383) ### Bugfixes * Error reporting is now opt-in (#4279) and should no longer force-exit the application when an unhandled rejection occurs (#4291) * Increase the default controller response timeout to 10s to work around an issue where some 500 series controllers take too long to confirm execution of a SendData command when the target node is unresponsive (#4259) * Fix parsing of BridgeApplicationCommandRequest that do not contain an RSSI reading (#4337) * Fixed an issue with automatic clock correction where rounding the time up could lead to the clock being 1 hour late (#4346) * Notification event parameters containing a `UserCodeCC` report now correctly indicate the user ID again (#4356) * Fixed an issue in the NVM migration routine that could lead to nonsensical radio settings which can only be changed by editing the NVM file manually (#4368) * Prevent infinite loop in health check when the node responds but there is no progress (#4372) * Route health checks can no longer have sleeping nodes as the target (#4373) * Lifeline health checks now wait for sleeping nodes to wake up instead of considering the wait time latency (#4376) * Route health check rounds now indicate when there were zero failed pings (#4377) ### Config file changes * Correct device description for Leviton DZMX1 (#4317) * Add metadata to Zooz ZSE18 (#4338) * Add metadata to AEON Labs DSB29 (#4334) * Add metadata to Vision Security GZ8101 (#4350) * Add metadata to AEON Labs DSC26 (#4343) * Add metadata to Ecolink DWZWAVE25 (#4339) * Merge redundant config files for Fibaro Walli Double Switch (#4370) * Add value 2 to Aeotec ZW100 param 81, FW 1.10-1.12 (#4361) * Add parameters and correct default values for Fibaro Smart Module FGS214 and Double Smart Module FGS224 (#4345) * Correct value size for Zooz ZEN20 v2 (#4358) * Preserve all endpoints for Qubino ZMNKAD1 Luxy Smart Switch (#4366) * Enable Multilevel Switch `event` value for Aeotec ZW111 (#4380) * Add metadata to AEON Labs DSB09 (#4391) ### Changes under the hood * Lots of dependency updates * We no longer use `lerna` for monorepo management. It is largely unmaintained and doesn't support `yarn`'s `workspace:` protocol (#4071) * The bot now considers `zip` a valid extension for Z-Wave JS logfiles * Added missing `toLogEntry` implementations (#4389) * Implemented a transformer-based codegen to auto-implement method argument checks based on types (#4394)
### Breaking changes · [Migration guide](https://zwave-js.github.io/node-zwave-js/#/getting-started/migrating-to-v9) * The `route` parameter in `SendDataBridgeRequest` has been removed, since it isn't supported in any known SDK version (#3741) * Faster timeout while waiting for a response to a GET request (#3756) * Renamed properties and methods of the `Controller` class and related message classes (#3761) * Converted the `isControllerNode` method on the `ZWaveNode` class to a readonly property (#3972) * (possibly breaking) Upgraded `serialport` library to version 10.x (#4225) * The legacy network cache file `<homeid>.json` was converted to an appendonly `.jsonl` file in order to prevent data loss (#4263) ### Features * The node statistics now include RSSI and the actual routes taken (LWR, NLWR) for communication (#4022) * A utility method `rssiToString` was added to convert RSSI values to a human readable string * Export some commonly used string formatting utilities (#4318) * Add support for `Irrigation CC` (#4270) * The controller's `sdkVersion` property now includes the build number (or minor version) if supported (#4355, #4398) * Also expose `sdkVersion` on the controller node (#4388) * Added a compat flag to expose received `MultilevelSwitchCCSet` commands via the `event` property (#4282) * Received `MultilevelSwitchCC` `Start/StopLevelChange` commands are now emitted as notifications (#4282) * Added an `sdkVersion` property for nodes (#4371) * `LogContext` and related types are now exported (#4378) * Map `Basic CC Set` to appropriate CCs for devices with `Remote Switch` device class (#4382) * User codes and network keys are no longer logged (#4383) ### Bugfixes * Error reporting is now opt-in (#4279) and should no longer force-exit the application when an unhandled rejection occurs (#4291) * Increase the default controller response timeout to 10s to work around an issue where some 500 series controllers take too long to confirm execution of a SendData command when the target node is unresponsive (#4259) * Fix parsing of BridgeApplicationCommandRequest that do not contain an RSSI reading (#4337) * Fixed an issue with automatic clock correction where rounding the time up could lead to the clock being 1 hour late (#4346) * Notification event parameters containing a `UserCodeCC` report now correctly indicate the user ID again (#4356) * Fixed an issue in the NVM migration routine that could lead to nonsensical radio settings which can only be changed by editing the NVM file manually (#4368) * Prevent infinite loop in health check when the node responds but there is no progress (#4372) * Route health checks can no longer have sleeping nodes as the target (#4373) * Lifeline health checks now wait for sleeping nodes to wake up instead of considering the wait time latency (#4376) * Route health check rounds now indicate when there were zero failed pings (#4377) * Multi Channel encapsulation now correctly uses V1 commands if this is the highest supported version of a node (#4387) ### Config file changes * Correct device description for Leviton DZMX1 (#4317) * Add metadata to Zooz ZSE18 (#4338) * Add metadata to AEON Labs DSB29 (#4334) * Add metadata to Vision Security GZ8101 (#4350) * Add metadata to AEON Labs DSC26 (#4343) * Add metadata to Ecolink DWZWAVE25 (#4339) * Merge redundant config files for Fibaro Walli Double Switch (#4370) * Add value 2 to Aeotec ZW100 param 81, FW 1.10-1.12 (#4361) * Add parameters and correct default values for Fibaro Smart Module FGS214 and Double Smart Module FGS224 (#4345) * Correct value size for Zooz ZEN20 v2 (#4358) * Preserve all endpoints for Qubino ZMNKAD1 Luxy Smart Switch (#4366) * Enable Multilevel Switch `event` value for Aeotec ZW111 (#4380) * Add metadata to AEON Labs DSB09 (#4391) ### Changes under the hood * Lots of dependency updates * We no longer use `lerna` for monorepo management. It is largely unmaintained and doesn't support `yarn`'s `workspace:` protocol (#4071) * The bot now considers `zip` a valid extension for Z-Wave JS logfiles * Added missing `toLogEntry` implementations (#4389) * Implemented a transformer-based codegen to auto-implement method argument checks based on types (#4394, #4396) * In VSCode, the project now gets precompiled before running the test script (#4397)
### Breaking changes · [Migration guide](https://zwave-js.github.io/node-zwave-js/#/getting-started/migrating-to-v9) * The `route` parameter in `SendDataBridgeRequest` has been removed, since it isn't supported in any known SDK version (#3741) * Faster timeout while waiting for a response to a GET request (#3756) * Renamed properties and methods of the `Controller` class and related message classes (#3761) * Converted the `isControllerNode` method on the `ZWaveNode` class to a readonly property (#3972) * (possibly breaking) Upgraded `serialport` library to version 10.x (#4225) * The legacy network cache file `<homeid>.json` was converted to an appendonly `.jsonl` file in order to prevent data loss (#4263) * Almost all CC API methods now validate their arguments and will throw if they don't match the expected type (#4405) ### Features * The node statistics now include RSSI and the actual routes taken (LWR, NLWR) for communication (#4022) * A utility method `rssiToString` was added to convert RSSI values to a human readable string * Export some commonly used string formatting utilities (#4318) * Add support for `Irrigation CC` (#4270) * The controller's `sdkVersion` property now includes the build number (or minor version) if supported (#4355, #4398) * Also expose `sdkVersion` on the controller node (#4388) * Added a compat flag to expose received `MultilevelSwitchCCSet` commands via the `event` property (#4282) * Received `MultilevelSwitchCC` `Start/StopLevelChange` commands are now emitted as notifications (#4282) * Added an `sdkVersion` property for nodes (#4371) * `LogContext` and related types are now exported (#4378) * Map `Basic CC Set` to appropriate CCs for devices with `Remote Switch` device class (#4382) * User codes and network keys are no longer logged (#4383) ### Bugfixes * Error reporting is now opt-in (#4279) and should no longer force-exit the application when an unhandled rejection occurs (#4291) * Increase the default controller response timeout to 10s to work around an issue where some 500 series controllers take too long to confirm execution of a SendData command when the target node is unresponsive (#4259) * Fix parsing of BridgeApplicationCommandRequest that do not contain an RSSI reading (#4337) * Fixed an issue with automatic clock correction where rounding the time up could lead to the clock being 1 hour late (#4346) * Notification event parameters containing a `UserCodeCC` report now correctly indicate the user ID again (#4356) * Fixed an issue in the NVM migration routine that could lead to nonsensical radio settings which can only be changed by editing the NVM file manually (#4368) * Prevent infinite loop in health check when the node responds but there is no progress (#4372) * Route health checks can no longer have sleeping nodes as the target (#4373) * Lifeline health checks now wait for sleeping nodes to wake up instead of considering the wait time latency (#4376) * Route health check rounds now indicate when there were zero failed pings (#4377) * Multi Channel encapsulation now correctly uses V1 commands if this is the highest supported version of a node (#4387) * The versions of CCs that are not supported by the root device but only endpoints are now correctly queried (#4419) ### Config file changes * Correct device description for Leviton DZMX1 (#4317) * Add metadata to Zooz ZSE18 (#4338) * Add metadata to AEON Labs DSB29 (#4334) * Add metadata to Vision Security GZ8101 (#4350) * Add metadata to AEON Labs DSC26 (#4343) * Add metadata to Ecolink DWZWAVE25 (#4339) * Merge redundant config files for Fibaro Walli Double Switch (#4370) * Add value 2 to Aeotec ZW100 param 81, FW 1.10-1.12 (#4361) * Add parameters and correct default values for Fibaro Smart Module FGS214 and Double Smart Module FGS224 (#4345) * Correct value size for Zooz ZEN20 v2 (#4358) * Preserve all endpoints for Qubino ZMNKAD1 Luxy Smart Switch (#4366) * Enable Multilevel Switch `event` value for Aeotec ZW111 (#4380) * Add metadata to AEON Labs DSB09 (#4391) * Correct value for Brightness After Power Failure for LZW31-SN (#4409) * Add value 3 to param 4 for Zooz Zen16 (#4404) * Add values for Alarm and Doorbell Sound Selection to Shenzhen Neo Siren Alarm (#4400) ### Changes under the hood * Lots of dependency updates * We no longer use `lerna` for monorepo management. It is largely unmaintained and doesn't support `yarn`'s `workspace:` protocol (#4071) * The bot now considers `zip` a valid extension for Z-Wave JS logfiles * Added missing `toLogEntry` implementations (#4389) * Implemented a transformer-based codegen to auto-implement method argument checks based on types (#4394, #4396) * In VSCode, the project now gets precompiled before running the test script (#4397)
Roughly nine months after the [last major release](https://github.com/zwave-js/node-zwave-js/releases/tag/v8.0.1), we've reached a new milestone. Z-Wave JS is now 4 years old, its usage has more than doubled over the course of the `v8.x` release line and it is still growing steadily. There are many exciting things yet to come, so stay tuned! ### Breaking changes · [Migration guide](https://zwave-js.github.io/node-zwave-js/#/getting-started/migrating-to-v9) * The `route` parameter in `SendDataBridgeRequest` has been removed, since it isn't supported in any known SDK version (#3741) * Faster timeout while waiting for a response to a GET request (#3756) * Renamed properties and methods of the `Controller` class and related message classes (#3761) * Converted the `isControllerNode` method on the `ZWaveNode` class to a readonly property (#3972) * (possibly breaking) Upgraded `serialport` library to version 10.x (#4225) * The legacy network cache file `<homeid>.json` was converted to an appendonly `.jsonl` file in order to prevent data loss (#4263) * Almost all CC API methods now validate their arguments and will throw if they don't match the expected type (#4405) ### Features * The node statistics now include RSSI and the actual routes taken (LWR, NLWR) for communication (#4022) * A utility method `rssiToString` was added to convert RSSI values to a human readable string * Export some commonly used string formatting utilities (#4318) * Add support for `Irrigation CC` (#4270) * The controller's `sdkVersion` property now includes the build number (or minor version) if supported (#4355, #4398) * Also expose `sdkVersion` on the controller node (#4388) * Added a compat flag to expose received `MultilevelSwitchCCSet` commands via the `event` property (#4282) * Received `MultilevelSwitchCC` `Start/StopLevelChange` commands are now emitted as notifications (#4282) * Added an `sdkVersion` property for nodes (#4371) * `LogContext` and related types are now exported (#4378) * Map `Basic CC Set` to appropriate CCs for devices with `Remote Switch` device class (#4382) * User codes and network keys are no longer logged (#4383) ### Bugfixes * Error reporting is now opt-in (#4279) and should no longer force-exit the application when an unhandled rejection occurs (#4291) * Increase the default controller response timeout to 10s to work around an issue where some 500 series controllers take too long to confirm execution of a SendData command when the target node is unresponsive (#4259) * Fix parsing of BridgeApplicationCommandRequest that do not contain an RSSI reading (#4337) * Fixed an issue with automatic clock correction where rounding the time up could lead to the clock being 1 hour late (#4346) * Notification event parameters containing a `UserCodeCC` report now correctly indicate the user ID again (#4356) * Fixed an issue in the NVM migration routine that could lead to nonsensical radio settings which can only be changed by editing the NVM file manually (#4368) * Prevent infinite loop in health check when the node responds but there is no progress (#4372) * Route health checks can no longer have sleeping nodes as the target (#4373) * Lifeline health checks now wait for sleeping nodes to wake up instead of considering the wait time latency (#4376) * Route health check rounds now indicate when there were zero failed pings (#4377) * Multi Channel encapsulation now correctly uses V1 commands if this is the highest supported version of a node (#4387) * The versions of CCs that are not supported by the root device but only endpoints are now correctly queried (#4419) ### Config file changes * Correct device description for Leviton DZMX1 (#4317) * Add metadata to Zooz ZSE18 (#4338) * Add metadata to AEON Labs DSB29 (#4334) * Add metadata to Vision Security GZ8101 (#4350) * Add metadata to AEON Labs DSC26 (#4343) * Add metadata to Ecolink DWZWAVE25 (#4339) * Merge redundant config files for Fibaro Walli Double Switch (#4370) * Add value 2 to Aeotec ZW100 param 81, FW 1.10-1.12 (#4361) * Add parameters and correct default values for Fibaro Smart Module FGS214 and Double Smart Module FGS224 (#4345) * Correct value size for Zooz ZEN20 v2 (#4358) * Preserve all endpoints for Qubino ZMNKAD1 Luxy Smart Switch (#4366) * Enable Multilevel Switch `event` value for Aeotec ZW111 (#4380) * Add metadata to AEON Labs DSB09 (#4391) * Correct value for Brightness After Power Failure for LZW31-SN (#4409) * Add value 3 to param 4 for Zooz Zen16 (#4404) * Add values for Alarm and Doorbell Sound Selection to Shenzhen Neo Siren Alarm (#4400) ### Changes under the hood * Lots of dependency updates * We no longer use `lerna` for monorepo management. It is largely unmaintained and doesn't support `yarn`'s `workspace:` protocol (#4071) * The bot now considers `zip` a valid extension for Z-Wave JS logfiles * Added missing `toLogEntry` implementations (#4389) * Implemented a transformer-based codegen to auto-implement method argument checks based on types (#4394, #4396) * In VSCode, the project now gets precompiled before running the test script (#4397)
Hi,
Would really appreciate some feedback on this so I can keep working on it.
fixes: #4064