Skip to content

Release v4.0.0

Latest

Choose a tag to compare

@marcus-j-davies marcus-j-davies released this 18 Jan 13:35
· 1 commit to main since this release
  • Versions

    • ZWave JS Driver Version: 15.3.0
    • ZWave JS Server Version: 3.1.0 (Schema Version 43)
  • 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
    • enableSoftReset has been moved to features.softReset on the ZWaveOptions class
    • 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 ability to save ZWaveOptions to a JSON string and back
    • 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 metadata updated event to the ZWaveNode class.
    • Added ManuallyIdleNotificationValue method to the ZWaveNode class.
    • 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 ConfigManager methods to the Driver 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