Skip to content
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): implement Security S2 CC #1136

Merged
merged 21 commits into from
Aug 13, 2021
Merged

feat(cc): implement Security S2 CC #1136

merged 21 commits into from
Aug 13, 2021

Conversation

AlCalzone
Copy link
Member

@AlCalzone AlCalzone commented Nov 19, 2020

This PR implements support for Security S2. The following features are included:

  • Inclusion and key exchange
  • Singlecast communication
  • Detecting the granted security classes when taking over an existing network with S2 nodes

These features are not finished yet and will be included in a later PR:

  • S2 Multicast
  • SmartStart inclusion

Notable changes:

  • beginInclusion and replaceFailedNode got new method signatures. The old ones still work but are deprecated and will be removed in v9.x. See feat(cc): implement inclusion using Security S2 #3170 or the new documentation for details.
  • The "node added" event handler got a second argument to indicate whether a node was included with lower than intended security. See feat(cc): implement inclusion using Security S2 #3170 or the new documentation for details.
  • A node's isSecure property now indicates if the node has any security class assigned, which can be S0 or S2. Details on the granted security classes can be fetched with node.hasSecurityClass and node.getHighestSecurityClass.
  • The documentation gives some guidelines on the required UI for interactive S2 inclusion

fixes: #1123

@zwave-js-assistant
Copy link

🚧 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

@AlCalzone AlCalzone marked this pull request as ready for review August 10, 2021 20:41
@AlCalzone AlCalzone marked this pull request as draft August 10, 2021 21:07
@AlCalzone
Copy link
Member Author

Back to draft until Github Actions is back up.

@AlCalzone AlCalzone added this to the v8.1.0 milestone Aug 10, 2021
@AlCalzone AlCalzone marked this pull request as ready for review August 11, 2021 06:34
@AlCalzone AlCalzone closed this Aug 11, 2021
@AlCalzone AlCalzone reopened this Aug 11, 2021
@AlCalzone
Copy link
Member Author

@zwave-js-bot pack this

@zwave-js-bot
Copy link
Collaborator

👋 Hey @AlCalzone!
I've started to deploy this PR as a development build.
You can monitor the progress here.

@zwave-js-bot
Copy link
Collaborator

🎉 The packages have been published.
You can now install the test version with npm install zwave-js@8.0.9-0-pr-1136-0f55906.

@AlCalzone
Copy link
Member Author

@zwave-js-bot pack this

@zwave-js-bot
Copy link
Collaborator

👋 Hey @AlCalzone!
I've started to deploy this PR as a development build.
You can monitor the progress here.

@zwave-js-bot
Copy link
Collaborator

🎉 The packages have been published.
You can now install the test version with npm install zwave-js@8.0.9-0-pr-1136-c58c492.

@AlCalzone AlCalzone merged commit 2b05453 into master Aug 13, 2021
@AlCalzone AlCalzone deleted the cc/security-s2 branch August 13, 2021 22:30
AlCalzone added a commit that referenced this pull request Aug 15, 2021
### Features
Just one, but it's a big one: We added support for **Security S2** inclusion and singlecast communication 🎉.
As it looks like, **Z-Wave JS** is the first open source library to support **Security S2**.

If you plan to add support in your application, see the [documentation](https://zwave-js.github.io/node-zwave-js/#/getting-started/security-s2) and [PR description](#1136) for details - this also requires UI changes.

### Bugfixes
* The firmware target selection for targets other than 0 no longer incorrectly complains about an incorrect target
* Avoid writing into `node_modules` when updating an external configuration directory
* When an endpoint shares its lifeline with the root (i.e. has 0 max. associations), the root's associations are now ignored when determining how the endpoints's associations should be configured

### Config file changes
* Add another product ID variant to Yale YRD210
* Update and cleanup Fibaro Walli Double Switch
* Preserve root endpoint values for TZ06
* Allow manual entry for Zooz ZSE11 Param 12
* Add missing fingerprint to MCOHome MH9-CO2-WD
* Fix Heltun HE-RS01 parameters 41-45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement Security S2 CC
2 participants