Skip to content

Commit 9b80fda

Browse files
Merge branch '4.0.0'
2 parents 2e22678 + 56730df commit 9b80fda

134 files changed

Lines changed: 5112 additions & 13184 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/BuildPSI.yml

Lines changed: 0 additions & 59 deletions
This file was deleted.

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
# Node Stuff
1010
**/node_modules/*
11-
**/dist/*
11+
**/build/*
1212

1313
# Yarn config and stuff
1414
**/.yarn/*
@@ -19,3 +19,6 @@
1919
!**/.yarn/versions
2020
**/.pnp.*
2121

22+
PSI/server.js
23+
PSI/package-lock.json
24+
package-lock.json

CHANGELOG.md

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,65 @@
1+
- v4.0.0
2+
3+
- Versions
4+
- ZWave JS Driver Version: 15.20.0
5+
- ZWave JS Server Version: 3.5.0 (Schema Version 44)
6+
7+
- Breaking Changes
8+
- Removed support for **NET45**
9+
The supported frameworks are as follows: **NET 48**, **NET 5.0**, **NET 6.0**, **NET 7.0**, **NETSTANDARD 2.0**, **NETSTANDARD 2.1**
10+
- The **NodeStatistics** arg on the ZWaveNode class event **StatisticsUpdated** has been renamed to **NodeStatisticsUpdatedArgs**
11+
- The **ControllerStatistics** arg on the Controller class event **StatisticsUpdated** has been renamed to **ControllerStatisticsUpdatedArgs**
12+
- The **InclusionResult** argument has been renamed to **InclusionResultArgs**
13+
- The **ValueUpdated** event now uses a dedicated class for the args parameter
14+
- The **ValueNotification** event now uses a dedicated class for the args parameter
15+
- The **NodeRemoved** event now contains a reason Enum as to why it was removed.
16+
- The **NetworkHealDone** and **NetworkHealProgress** events now use dedicated classes for the args parameter
17+
- The **BeginExclusion** method now requires an Exclusion Options instance
18+
- The Node **BeginFirmwareUpdate** method has been renamed to **UpdateFrimware**, and requires a class instance.
19+
- The Node **FirmwareUpdateProgress** event now passes an args parameter
20+
- The Node **FirmwareUpdateFinished** event now passes an args parameter
21+
- Setting the Node **name**, **location** and **keepAwake** values is now only possible with methods for each.
22+
This is to address some unintentional communication between the Driver runtime and the lib.
23+
- The method **GetAllEndpoints** has been removed, and is replaced with an **endpoints** property
24+
- The Controller property **isHealNetworkActive** has been renamed to **isRebuildingRoutes**
25+
- The Controller methods of **HealNode**, **BeginHealingNetwork**, **StopHealingNetwork** have been renamed to:
26+
**RebuildNodeRoutes**, **RebuildNodeRoutes**, **StopRebuildingRoutes**
27+
This inccludes the associated events
28+
29+
- New Features
30+
- Added **SetRawConfigParameterValue** method to the ZWaveNode class.
31+
- Added **RefreshValues** method to the ZWaveNode class.
32+
- Added **RefreshCCValues** method to the ZWaveNode class.
33+
- Added **WaitForWakeUp** method to the ZWaveNode class.
34+
- Added **Ping**, method to the ZwaveNode class.
35+
- Added **StartListeningLogs**, **StopListeningLogs** methods and the associated events to the Driver class.
36+
- Added **ValueAdded**, **ValueRemoved** events. **ValueRemoved** was never added until now, **ValueAdded**, previously used the **ValueUpdated** event
37+
- Added **endpointLabel** to the Endpoint class
38+
- Added **Interview** method, to the ZWaveNode class - this should only be used if "disableOnNodeAdded" is set to true
39+
- Allow specifying Refresh Info options, when re-interviewing a node.
40+
- Added **FirmwareUpdateOTW** method (and supporting events) to update the Controller Firmware
41+
- Added **SetRFRegion**, **GetRFRegion** methods to the Controller class
42+
- Added **SetPowerlevel**, **GetPowerlevel** methods to the Controller class
43+
- Added **GetAvailableFirmwareUpdates** methods to the Controller class
44+
- Added **FirmwareUpdateOTA** method to the Controller class, to update a node with the fetched Updates via **GetAvailableFirmwareUpdates**
45+
- Added **HardReset** method to the Driver class
46+
**Warning!!!** This will Reset your controller, and will result in a clean network with no included nodes.
47+
- Added **SoftReset** method to the Driver class
48+
- Added the **ccSpecific** property to the **ValueMetadata** class
49+
- Added the ability to add new server methods to the library during runtime.
50+
This is helpful if you want to use a method that is not yet implemented, or to support an older version of an exetrnal server
51+
52+
53+
54+
- Internal changes
55+
- Switched to an alternative websocket client package
56+
- Massive structural / performance improvements
57+
- Better (hopefully) recovery/connection error handling
58+
- Redeveloped the Demo Application / Debug App
59+
- Updated some of the defaults in the Zwave Options to mirror the Driver defaults
60+
- Internal logic to ensure the server satifies the specified expected schema requested by the library
61+
62+
163
- v3.1.0
264

365
- Versions
@@ -9,7 +71,7 @@
971
- The child classes of **ZWaveOptions** are now instanciated with default values when calling their constructors.
1072
- The **DownloadPSI** method now pulls down version locked binaries, to remove the potential for incompatible Binary/library combinations
1173

12-
- New Fearures
74+
- New Features
1375
- Added ARM prebuilt binary (Debian, RPi)
1476
- The **DownloadPSI** method - now has an optional override, allwowing the PSI to be focibly downloaded, i.e to ensure you have the correct version.
1577

Debug Notes/Debug Notes.txt

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
.env file (FWUS)
2+
-------------------------------------
3+
API_REQUIRE_KEY=false
4+
ADMIN_SECRET=1234567890
5+
6+
7+
Wrangler
8+
-------------------------------------
9+
cache_persist = false
10+
11+
12+
Build / Run
13+
-------------------------------------
14+
yarn
15+
yarn build
16+
yarn dev
17+
18+
19+
Upload Firmware Test
20+
-------------------------------------
21+
set ADMIN_SECRET=1234567890
22+
set BASE_URL=http://localhost:8787
23+
yarn build:index
24+
yarn upload
25+
26+
27+
S2 Keys (DO NOT USE IN PRODUCTION)
28+
-------------------------------------
29+
0d0003d7bda539f90b5553297d043fdd
30+
c7a2a891f6c786a679453608eb04ade5
31+
b959a89faedab01ce55fdf23d36e6361
32+
9142ddbbce0dc0cef42939acaac24f6e
33+
34+
35+
36+
37+
38+
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"devices": [
3+
{
4+
"brand": "Some MFG",
5+
"model": "Some Device",
6+
"manufacturerId": "0x0346",
7+
"productType": "0x0101",
8+
"productId": "0x0202"
9+
}
10+
],
11+
"upgrades": [
12+
{
13+
"version": "9.0",
14+
"channel": "stable",
15+
"changelog": "Bug Fixes:\n* Bug Fixes\n* More bug fixes",
16+
"files": [
17+
{
18+
"target": 0,
19+
"url": "https://z-wave.freshdesk.com/helpdesk/attachments/80257130806",
20+
"integrity": "sha256:f653271acaf3ed44563dd3bfb6d98cf8bdfe34d5d68d350cf099e95af1e9724b"
21+
}
22+
]
23+
},
24+
{
25+
"version": "9.5",
26+
"channel": "stable",
27+
"changelog": "Bug Fixes:\n* More More Bug Fixes\n* More More More bug fixes",
28+
"files": [
29+
{
30+
"target": 0,
31+
"url": "https://z-wave.freshdesk.com/helpdesk/attachments/80257130806",
32+
"integrity": "sha256:f653271acaf3ed44563dd3bfb6d98cf8bdfe34d5d68d350cf099e95af1e9724b"
33+
}
34+
]
35+
}
36+
]
37+
}

PSI/.eslintrc.js

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
module.exports = {
2+
extends: ['eslint:recommended'],
3+
parserOptions: {
4+
ecmaVersion: 2020,
5+
sourceType: 'module',
6+
allowImportExportEverywhere: true
7+
},
8+
env: {
9+
node: true,
10+
browser: true,
11+
es2021: true
12+
},
13+
rules: {
14+
'@typescript-eslint/no-this-alias': 0,
15+
'@typescript-eslint/no-non-null-assertion': 0,
16+
quotes: ['error', 'single', { avoidEscape: true }],
17+
'prefer-const': 2,
18+
'constructor-super': 2,
19+
'for-direction': 2,
20+
'getter-return': 2,
21+
'no-async-promise-executor': 0,
22+
'no-class-assign': 2,
23+
'no-compare-neg-zero': 2,
24+
'no-cond-assign': 2,
25+
'no-const-assign': 2,
26+
'no-constant-condition': 2,
27+
'no-control-regex': 2,
28+
'no-debugger': 2,
29+
'no-delete-var': 2,
30+
'no-dupe-args': 2,
31+
'no-dupe-class-members': 2,
32+
'no-dupe-else-if': 2,
33+
'no-dupe-keys': 2,
34+
'no-duplicate-case': 2,
35+
'no-empty': 2,
36+
'no-empty-character-class': 2,
37+
'no-empty-pattern': 2,
38+
'no-ex-assign': 2,
39+
'no-extra-boolean-cast': 2,
40+
'no-extra-semi': 2,
41+
'no-fallthrough': 2,
42+
'no-func-assign': 2,
43+
'no-global-assign': 2,
44+
'no-import-assign': 2,
45+
'no-inner-declarations': 2,
46+
'no-invalid-regexp': 2,
47+
'no-irregular-whitespace': 2,
48+
'no-misleading-character-class': 2,
49+
'no-mixed-spaces-and-tabs': 0,
50+
'no-new-symbol': 2,
51+
'no-obj-calls': 2,
52+
'no-octal': 2,
53+
'no-prototype-builtins': 2,
54+
'no-redeclare': 2,
55+
'no-regex-spaces': 2,
56+
'no-self-assign': 2,
57+
'no-setter-return': 2,
58+
'no-shadow-restricted-names': 2,
59+
'no-sparse-arrays': 2,
60+
'no-this-before-super': 2,
61+
'no-undef': 2,
62+
'no-unexpected-multiline': 2,
63+
'no-unreachable': 2,
64+
'no-unsafe-finally': 2,
65+
'no-unsafe-negation': 2,
66+
'no-unused-labels': 2,
67+
'no-unused-vars': 1,
68+
'no-useless-catch': 2,
69+
'no-useless-escape': 2,
70+
'no-with': 2,
71+
'require-yield': 2,
72+
'use-isnan': 2,
73+
'valid-typeof': 2,
74+
'no-case-declarations': 2
75+
}
76+
};

PSI/.prettierrc.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
module.exports = {
2+
arrowParens: 'always',
3+
printWidth: 120,
4+
semi: true,
5+
singleQuote: true,
6+
tabWidth: 2,
7+
trailingComma: 'none',
8+
useTabs: true,
9+
endOfLine: 'lf',
10+
bracketSpacing: true
11+
};

0 commit comments

Comments
 (0)