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

Version 4.0.0 (Breaking) #31

Open
wants to merge 86 commits into
base: main
Choose a base branch
from
Open

Version 4.0.0 (Breaking) #31

wants to merge 86 commits into from

Conversation

marcus-j-davies
Copy link
Member

@marcus-j-davies marcus-j-davies commented Aug 20, 2023

WORK-IN-PROGRESS

  • Versions

    • ZWave JS Driver Version: 12.5.6
    • ZWave JS Server Version: 1.35.0 (Schema Version 35)
  • Breaking Changes

    • You now need to build your own PSI for the platforms you wish to target.
      Having to maintain the build actions/platforms to keep these updated is eating into the time I have left.
      Building a PSI is relatively uneventful - please see the READ ME on how to do this.
    • DownloadPSI method on the Helper class has been removed.
    • Removed support for NET45 and NET5.0
      The supported frameworks are as follows: NET 48, NET 6.0, NET 7.0, NET 80, NETSTANDARD 2.0, NETSTANDARD 2.1
    • The NodeStatistics arg on the ZWaveNode class event StatisticsUpdated has been renamed to NodeStatisticsUpdatedArgs
    • The ControllerStatistics arg on the Controller class event StatisticsUpdated has been renamed to ControllerStatisticsUpdatedArgs
    • The InclusionResult argument has been renamed to InclusionResultArgs
    • The ValueUpdated event now uses a dedicated class for the args parameter
    • The ValueNotification event now uses a dedicated class for the args parameter
    • The NodeRemoved event now contains a reason Enum as to why it was removed.
    • The NetworkHealDone and NetworkHealProgress events have been renamed to
      RebuildRoutesDone and RebuildRoutesProgress and not have dedicated classes for the args
    • The BeginExclusion method now requires an Exclusion Options instance
    • The Node BeginFirmwareUpdate method has been renamed to UpdateFrimware, and requires a class instance.
    • The Node FirmwareUpdateProgress event now passes an args parameter
    • The Node FirmwareUpdateFinished event now passes an args parameter
    • Setting the Node name, location and keepAwake values is now only possible with methods for each.
      This is to address some unintentional communication between the Driver runtime and the lib.
    • The method GetAllEndpoints has been removed, and is replaced with an endpoints property
  • New Features

    • Multiple Driver instances are now supported
    • Added Long Range (LR) support
    • Added deviceConfig property to the Controller class.
    • Added SetRawConfigParameterValue method to the ZWaveNode class.
    • Added RefreshValues method to the ZWaveNode class.
    • Added RefreshCCValues method to the ZWaveNode class.
    • Added WaitForWakeUp method to the ZWaveNode class.
    • Added Ping, method to the ZwaveNode class.
    • Added StartListeningLogs, StopListeningLogs methods and the associated events to the Driver class.
    • Added ValueAdded, ValueRemoved events. ValueRemoved was never added until now, ValueAdded, previously used the ValueUpdated event
    • Added endpointLabel to the Endpoint class
    • Added Interview method, to the ZWaveNode class - this should only be used if "disableOnNodeAdded" is set to true
    • Allow specifying Refresh Info options, when re-interviewing a node.
    • Added FirmwareUpdateOTW method (and supporting events) to update the Controller Firmware
    • Added SetRFRegion, GetRFRegion methods to the Controller class
    • Added SetPowerlevel, GetPowerlevel methods to the Controller class
    • Added GetAvailableFirmwareUpdates methods to the Controller class
    • Added FirmwareUpdateOTA method to the Controller class, to update a node with the fetched Updates via GetAvailableFirmwareUpdates
    • Added HardReset method to the Driver class
      Warning!!! This will Reset your controller, and will result in a clean network with no included nodes.
    • Added SoftReset method to the Driver class
    • Added the ccSpecific property to the ValueMetadata class
    • Added the ability to add new server methods to the library during runtime.
      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
  • Internal changes

    • Switched to an alternative websocket client package (which is now embedded)
    • Massive structural / performance improvements
    • All event handlers are now executed with their own Task instance
    • Better (hopefully) recovery/connection error handling
    • Updated some of the defaults in the Zwave Options to mirror the Driver defaults
    • Internal logic to ensure the server satifies the specified expected schema requested by the library

    Shoutout to...
    @spudwebb for the massive amounts of contribution for this release
    and @georgeinva2004 for testing the stuff I haven't (which is a lot 😬)
    and @AlCalzone for..... Ummm Zwave JS
    and @raman325 for the foundations needed to expose the Driver to other languages

marcus-j-davies and others added 7 commits October 11, 2023 11:14
* Create MethodFactory.cs

* Update CHANGELOG.md
Fix workflow
…ethod (#42)

* Make ZWaveNode.endpoints property public and remove GetAllEndpoints method

* Fix sets

* Update ZWaveNode.cs

* Update CHANGELOG.md

---------

Co-authored-by: Marcus Davies <55892693+marcus-j-davies@users.noreply.github.com>
marcus-j-davies and others added 2 commits November 3, 2023 08:51
* Heal Rename, Firmware Fixes, Schema Bump, Bool Converter Removal, JSON Processing

* Update CHANGELOG.md

* move triggers to a task, add deviceConfig to controller

* Heal renames

* Update embedded runtime build routines

* Delete PSI/package-lock.json

* Update package.json

* Update package.json

* Update build

* Update package.json

* Update package.json

* Firmware Update Service + small corrections

* Firmware Improvements

* so so close
@marcus-j-davies
Copy link
Member Author

marcus-j-davies commented Nov 3, 2023

@georgeinva2004

The latest code is now available for pull, which address's the issue with forcing a license key for non-commercial use (among others).

There is a recent PSI that will need to be used at the root of V4 (Win x64), as I have bumped the Schema.

If you get a chance, let me know of any issues.
I am close to doing a release!

@georgeinva2004
Copy link

georgeinva2004 commented Nov 3, 2023 via email

marcus-j-davies and others added 10 commits November 3, 2023 14:10
* Added Driver.SoftReset method.
Fixed BeginRebuildingRoutes,  StopRebuildingRoutes and RebuildNodeRoutes methods to use the correct commands.
Fixed typo in RebuildRoutesDone event.

* Removed the old command enums for healing the network and nodes.

* Add SoftReset to CHANGELOG

---------

Co-authored-by: Marcus Davies <55892693+marcus-j-davies@users.noreply.github.com>
* Added RefreshCCValues method to the ZWaveNode class.

* Update ZWaveNode.cs

Just adding my note to state I have checked the severe side signature

---------

Co-authored-by: Marcus Davies <55892693+marcus-j-davies@users.noreply.github.com>
* Add missing properties to ValueMetadata

* Add ValueFormat parameter to ZWJSS_SetRawConfigParameterValue method

* Align SetRawConfigParameterValue with Options object Variants

---------

Co-authored-by: Marcus Davies <55892693+marcus-j-davies@users.noreply.github.com>
* Refactor library to support multiple drivers.

* Patch server class to handle multiple hosts + check for used ports

* Bump schema + swtich to yao-pkg/pkg

---------

Co-authored-by: Marcus Davies <55892693+marcus-j-davies@users.noreply.github.com>
@marcus-j-davies marcus-j-davies linked an issue May 1, 2024 that may be closed by this pull request
marcus-j-davies and others added 3 commits May 1, 2024 19:50
* Socket & LR

* Fix Versions

* Nullable Fix

* Fix & Test

* Show Embedded runtime Driver console output during debug
… to the NodeStatistics class. (#67)

* Add NodeAlive event to the ZWaveNode class, and add lastSeen property to the NodeStatistics class.

* Add lastSeen to the ZWaveNode and Statistics classes as DateTime?
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.

ZWaveJS.NET does not support multiple drivers
4 participants