github matter-js/matter.js 0.4.0
0.4.0 (2023-05-16)

latest releases: v0.16.11-alpha.0-20260224-2d77bd59c, v0.16.10, v0.16.10-alpha.0-20260222-770cc011f...
2 years ago

0.4.0 (2023-05-16)

  • Matter-Core functionality:
    • Deprecation: The classes MatterDevice and MatterController are deprecated to be used externally to the library and will be removed in later versions.
    • Deprecation: The CLI Examples LegacyDeviceNode and LegacyControllerNode will be removed in next version! Use the new variants please.
    • Feature: Generate global Attributes attributeList, acceptedCommandList and generatedCommandList when generating cluster servers (when used with New API!)
    • Feature: (@digitaldan) Added decoding of Pairingcodes to determine discriminator and pin for Controller usage
    • Feature: Provide the Endpoint as data field for command Handlers to allow to access the endpoint data and other clusters on that endpoint if needed
    • Feature: Add Implementations of Scenes and Groups-Clusters (still to be tested with Controllers in depth!)
    • Feature: Add ClusterExtend to allow building Feature-based conditional cluster definitions (and do that for OnOff/Network-Commissioning)
    • Feature: Refactored Endpoint/Fabric aware Attributes with Getter functions to use Endpoint instance
    • Feature: Added automatic API documentation generation (not included in npm package but can be build locally using npm run build-doc)
    • Feature: Improved Command Invoke Logging
    • Adjustment: Do not send empty arrays for empty subscription messages to further shorten the payload
    • Fix: Respond with Unsupported Command when a unknown command is received and log the error
    • Fix: Increase the array maximum size according to specs
    • Fix: Fixed internal TlvTag representation to allow also decoding of the internal object format of a Tlv stream
    • Fix: Adjust internal tag encoding to not use {} when empty
  • matter.js API:
    • Feature: Introduce new High level API, see API.md for details!
    • Breaking: Move DeviceTypes.ts from common to device directory and rename DEVICE to "DeviceTypes"
    • Breaking: ClusterClient interface names changed to get/set/subscribeNAMEAttribute to prevent overlapping with commands
    • Breaking: Revamp internal APIs and convert ClusterServer into an object approach to allow dynamic methods to be defined for get/set/subscribe and streamline the API between ClusterClient and ClusterServer
    • Introduce NamedHandler util class for an event style typed and named handler/callback approach
    • Use NamedHandler as commandHandler to forward command calls like identify to the Device classes and testEvenTriggered for commissionable node class
    • Add constructor value to hand over initial values of the onoff Cluster when initialing the default cluster
    • make sure BridgedBasicInformation cluster is always set when adding a bridged device and no data parameters were provided
    • (@lauckhart) Enhance Logging framework to also allow ANSI and HTML colored output and added some features, details see #129
  • matter-node.js:
    • Autoregister Crypto, Time and Network in their Node.js variants when including packages from @project-chip/matter-node.js root package but only if not yet registered (so can be overridden by the developer)
    • Examples/Reference implementations:
      • The reference implementations are moved to example directory and details moved into own README_EXAMPLES.md file
      • the "npm run matter" command got renamed to "npm run matter-device" (same for binary usage
      • Add hints for all imports in the examples to show what the corresponding "matter-node.js" import would be (because they can not be used directly for build reasons)
      • Added the "npm run matter-*" commands also to the base package.json
      • Added parameter -clearstorage to start with an empty storage

Don't miss a new matter.js release

NewReleases is sending notifications on new releases.