Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
5604671
Migrate
marcus-j-davies Nov 29, 2025
bf45b27
fix
marcus-j-davies Nov 30, 2025
ad52660
almost there
marcus-j-davies Nov 30, 2025
5270b0e
Bump, check
marcus-j-davies Jan 18, 2026
963d08d
Remove semver
marcus-j-davies Jan 20, 2026
e6cebf7
Cleanup re-connect logic
marcus-j-davies Jan 20, 2026
fe983fd
Further clean up (fixes)
marcus-j-davies Jan 20, 2026
9d945d1
Re-engineer Error Handling
marcus-j-davies Jan 21, 2026
38c6dc2
Threading
marcus-j-davies Jan 21, 2026
0315f07
More threading changes
marcus-j-davies Jan 22, 2026
e14eb45
Handle more WS exit codes + null check in terminated events
marcus-j-davies Jan 22, 2026
020f6f2
Update CHANGELOG.md
marcus-j-davies Jan 23, 2026
945ec53
Optimisations
marcus-j-davies Jan 24, 2026
78ae2d1
Update CHANGELOG.md
marcus-j-davies Jan 24, 2026
9b4c820
Further TCS's to be created from the single method
marcus-j-davies Jan 24, 2026
ef2d3f1
Optimise all inclusion & Replace requirements
marcus-j-davies Jan 24, 2026
40664a9
NET10
marcus-j-davies Jan 24, 2026
099955b
Update CHANGELOG.md
marcus-j-davies Jan 24, 2026
e42a41f
Merge branch 'main' into 5.0.0
marcus-j-davies Jan 24, 2026
b018ad4
Address conflicts
marcus-j-davies Jan 24, 2026
1a146c9
Options
marcus-j-davies Jan 24, 2026
2dd604c
Update ZWaveOptions.cs
marcus-j-davies Jan 24, 2026
53d47a9
Move S2
marcus-j-davies Jan 25, 2026
db80439
Demo app
marcus-j-davies Jan 25, 2026
142f7c6
Update CHANGELOG.md
marcus-j-davies Jan 25, 2026
8c19b3d
Update Information.xaml
marcus-j-davies Jan 25, 2026
60454ac
Demo app. - Handlers
marcus-j-davies Jan 25, 2026
acbc4b0
More Props
marcus-j-davies Jan 25, 2026
112149d
Demo App image switch (theme)
marcus-j-davies Jan 25, 2026
ad82b38
Node Array
marcus-j-davies Jan 25, 2026
64f9fd1
Update Nodes.xaml
marcus-j-davies Jan 25, 2026
ee36c53
Update Nodes.xaml
marcus-j-davies Jan 25, 2026
fddf3e5
INotifyPropertyChanged
marcus-j-davies Jan 26, 2026
d7de3d2
Update CHANGELOG.md
marcus-j-davies Jan 26, 2026
874d531
interview stage completed
marcus-j-davies Jan 26, 2026
6332fb6
Better names
marcus-j-davies Jan 27, 2026
0d60518
Collection OnProChange
marcus-j-davies Jan 27, 2026
216b65b
Update Nodes.xaml
marcus-j-davies Jan 27, 2026
715245c
Nodes Collection
marcus-j-davies Jan 27, 2026
6e75d73
Demo Fixes
marcus-j-davies Jan 28, 2026
9703c96
Demo compile clean up + PSI Error
marcus-j-davies Jan 28, 2026
5990c46
Error Handle
marcus-j-davies Jan 28, 2026
4f89d6d
Update CHANGELOG.md
marcus-j-davies Jan 28, 2026
0979ebd
Sort errors
marcus-j-davies Jan 29, 2026
ad1705a
Update App.xaml.cs
marcus-j-davies Jan 30, 2026
24058d4
Lib
marcus-j-davies Jan 31, 2026
59e9e6b
Restart
marcus-j-davies Jan 31, 2026
64ce546
Update Driver.cs
marcus-j-davies Jan 31, 2026
7c68146
Update Nodes.xaml.cs
marcus-j-davies Jan 31, 2026
339fe75
further error handling
marcus-j-davies Jan 31, 2026
b58274c
Update CHANGELOG.md
marcus-j-davies Jan 31, 2026
49ab549
Update CHANGELOG.md
marcus-j-davies Jan 31, 2026
48ce41f
Error Handling
marcus-j-davies Feb 1, 2026
d01951f
Update CHANGELOG.md
marcus-j-davies Feb 1, 2026
636af01
Update NodesCollection.cs
marcus-j-davies Feb 1, 2026
fb39bd2
Read Me
marcus-j-davies Feb 1, 2026
0c8343b
Update README.md
marcus-j-davies Feb 1, 2026
9a1acd2
Update README.md
marcus-j-davies Feb 1, 2026
de28dea
Update README.md
marcus-j-davies Feb 1, 2026
0c31c57
Update README.md
marcus-j-davies Feb 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,3 @@
**/.pnp.*

PSI/server.js
PSI/package-lock.json
package-lock.json
7 changes: 7 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": []
}
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
118 changes: 118 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,121 @@
- v5.0.0

- **Versions**
- ZWave JS Driver Version: 15.20.0
- ZWave JS Server Version: 3.5.0 (Schema Version 44)

- **Breaking Changes**
- Dropped frameworks, the following frameworks are now as follows:
- net6.0
- net7.0
- net8.0
- net9.0
- net10.0
- netstandard2.1

- Moved the S2 callbacks to the ```ZWaveOptions``` class
This falls inline with the Driver API Settings object, So ```InclusionOptions``` no longer has these properties.
Additionally, running the library in Client mode, now requires the Driver construct take an argument of the callbacks object.
this also applies to ```ZWaveOptions.FromSerialized```

A null check is executed during any inclusion that require these callbacks.

- Driver class init signature changes
- ```public Driver(string SerialPort, ZWaveOptions Options, int ServerCommunicationPort = 50001)```
- ```public Driver(Uri Server, InclusionUserCallbacks S2Callbacks, int SchemaVersion = 0)```

- Re-engineered error/connection handling.
All Driver/Server error handling, is now handled through 2 events:
- **ServerConnectionError** :
This error is triggered, when the Libary is not able to connect to the Driver Runtime, or loses connection:

```csharp
ServerConnectionError(string ErrorCode, string Message, Action<bool, int?> Retry)
```

The possible error codes via this event are as follows:

```csharp
ERR.00 : Unknown Error (Supports Retry)
ERR.01 : Connection Timeout (Supports Retry)
ERR.02 : Schema Mismatch
ERR.03 : Error During Server Start up
```
```ERR.03``` For an example, could be due to a missing PSI, or a ZWave JS reported error during it's ```start``` promise


Where the error code, supports a retry, ```Retry``` will not be ```null```
Arguments: **Should Retry**, **New Timeout Value** (if <1, defaults to 15s)

Effectively, the host application, is now respoabile for reconnection attempts

- **ZWaveJSError** :
Any error emited by the Driver. It is important to note: this could also be a precusor to ```ServerConnectionError```

```csharp
ZWaveJSError(int ErrorCode, string Message)
```

- All interaction error codes have been updated.
These are the response error codes for the ```CMDResult```, if the command failed.
```csharp
ERR.04 : S2 Call backs missing
ERR.05 : Invalid Strategy
ERR.06 : Missing Security Keys
ERR.07 : Invalid Key Length
ERR.08 : Missing API key (Commercial use)
ERR.09 : Use of incorrect override
```
Keep in mind, Zwave JS can produce an error response (and code) also.

- The ```Controller.Nodes.AsArray()``` method has been replaced with a property of ```Controller.Nodes.Collection```

- The following methods/events have been renamed
- ```ZWJSS_SetRawConfigParameterValue``` -> ```SetRawConfigParameterValue```
- ```ZWJSS_StartListeningLogs``` -> ```StartListeningLogs```
- ```ZWJSS_StopListeningLogs``` -> ```StopListeningLogs```
- ```ZWJSS_LoggingEvent``` -> ```LoggingEvent```

- **Fixes**
- Correctly handle the mechanisms behind ```Driver.SoftReset()``` and ```Driver.HardReset()```.
Internally, the library is now restarted in response to a non-public internal ```driver ready``` signal.
Note: This intentionally re-triggers the public ```DriverReady``` event, allowing consumers to re-attach to events throughout the library.
- Dont start the PSI socket server on ```driver ready``` if already started.

- **Internal Changes**
- All responses to method calls are now dispatched asynchronously on the thread pool, so user code triggered by these responses cannot block the WebSocket message handler.
- Previously, the node, controller, and driver callbacks each created their own task after completing their prep work. Now the task is created upfront, and both the prep work and the callback execute inside that single task
- Various optimisations to the code base for easiyer maintenance.
- Reverted to using the actively maintained Websocket.Client library. Previously, we were relying on an outdated source‑based code copy
- A large portion of the Websocket startup, has been moved and is now located inside the ```Driver.Start()``` method,
This allows better (controlled) error handling. It was previously inside the Driver ctor.

- **New Features**
- Added the ability to set the PSI root folder via ```Server.PSIRoot```, this is to address some OSX quirks, with App Bundles.
it should only be the folder path, and not the executable name.
- Exposed further Zwave Options
- ```preferences```
- ```attempts.smartStartInclusion```
- ```attempts.firmwareUpdateOTW```
- Added ```Driver.IsHostedMode``` property
- Added ```Driver.ServerSchemaVersion``` property
- Added ```Controller.sdkVersion``` property
- Added ```Controller.firmwareVersion``` property
- Added ```Controller.HomeIdAsHex``` property
- Added ```ZWaveNode.InterviewStageCompleted``` event
- Implemented ```INotifyPropertyChanged``` support for the below.
this improves support for MVVM and allows UI bindings to update automatically.
- ```ZWaveNode.statistics```
- ```ZWaveNode.status```
- ```ZWaveNode.ready```
- ```ZWaveNode.interviewStage```
- ```Controller.statistics```
- ```Controller.isRebuildingRoutes```
- ```Controller.Nodes.Collection```
- Added a new ```Lib``` class.
This is home to some helper methods, the first is ```SerialPorts()``` to get a list of ports on the host system.


- v4.0.0

- Versions
Expand Down
38 changes: 0 additions & 38 deletions Debug Notes/Debug Notes.txt

This file was deleted.

37 changes: 0 additions & 37 deletions Debug Notes/SomeDevice/SomeDevice.json

This file was deleted.

Loading