Release 0.13 from 28.04.2025 #1967
Apollon77
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
matter.js 0.13 – Welcome Matter 1.4
We’re excited to announce the release of version 0.13 of matter.js, the Matter JavaScript SDK!
What’s new in Version 0.13
This release primarily focuses on upgrading the supported Matter version to 1.4.0, while also delivering numerous optimizations for stability and reliability. It also removes the long-deprecated legacy Device-Building API in favor of the new, modernized approach.
matter.js v0.13 now supports all new device types, clusters, and data types introduced in the Matter 1.4 specification. In addition, we’ve added or enhanced default implementations for several clusters and added required new Matter protocol features. A highlight of this release is the full support for mechanisms to prevent attribute change over-reporting — one of the most important improvements in Matter 1.4, in our view. With new examples, such as a vacuum cleaner device, we also demonstrate how clusters must interact to support more complex device types.
The Controller implementation and API have been enhanced with new features, making them more flexible based on valuable feedback from developers.
Beyond running the full suite of Matter SDK certification tests for devices built with matter.js, we’ve introduced automated testing for the matter.js Controller implementation, validating it against both matter.js and Matter-SDK devices.
Last but not least, this new version includes many optimizations aimed at improving stability and reliability across UDP and BLE communications, persistence, and the Matter protocol stack.
Looking ahead, we plan to focus on performance and memory usage improvements, expanding support for some missing Matter protocol features, and introducing a brand-new Controller API. Stay tuned — there’s much more to come!
Breaking changes
First, the regenerated models and code for clusters and device types may include breaking changes in names, constraints, and related areas. Please review the changelog carefully, as there are notable adjustments, particularly in the Color Control and Occupancy Sensing clusters.
Additionally, the OnOff and Level Control clusters in matter.js, which previously had some features automatically enabled, have been updated. In these clusters, the transition logic and extension APIs have been enhanced to support the new “quieter” quality modes and to allow greater flexibility in transitioning attribute values.
The legacy Device-Building API, which was replaced by the new API in version 0.8, has now been fully removed. As part of this, the main Storage class has switched to the asynchronous (Async) variant, and the no longer needed re-exports from @project-chip/matter.js, and other packages under the @project-chip npm scope, have been cleaned up.
Please use @project-chip/matter.js only if you are implementing a Controller — for all other use cases, continue to use @matter/main.
The Controller implementation also includes some API method signature changes to further clean up and streamline the API.
Get Involved
Update to matter.js 0.13 on npm, and share your experiences, feedback, and questions with us on GitHub or Discord — we’re happy to help!
For a complete list of changes, see the Release Notes below.
Changelog
IMPORTANT: This release upgrades Matter support from Matter 1.3 to the latest release, Matter 1.4.0. This includes BREAKING CHANGES in a number of areas due to specification changes. For the most part these changes are transparent because they involve low-level APIs, implicit type names, or Matter features that were never adopted elsewhere. However, some small code changes may be necessary depending on how you use Matter.js or when Datatypes or elements got renamed.
colorTempPhysicalMinMireds
andcolorTempPhysicalMaxMireds
now need to be set when using ColorControl because the former unrealistic default values were removed from the specification. Please set proper values for your device Hint: realistic color temperature Mireds values are usually roughly between 150 (6500K) and 500 (2000K).chip-testing
@matter/examples
@matter/general
Logger.logger
is replaced withLogger.destinations
. Properties of individual destinations are slightly different. A deprecated compatibility API should make this largely transparentDiagnostic.Message
directly and bypass matter.js's formattingQuietObservable
is an extended event source that emits events at reduced frequency based on configurationLogger
static interface now updates defaults and applies changes to all destinations@matter/main
@matter/node
OnOffServer
implementation no longer has the "Lighting" feature enabled by default! Please enable manually when the relevant device type where the cluster is used in requires it or use the Requirement-classes likeOnOffLightRequirements.OnOffServer
to get the correct features enabled automatically.LevelControlServer
implementation no longer has the "OnOff" feature enabled by default! Please enable manually when the relevant device type where the cluster is used in requires it or use the Requirement-classes likeDimmedLightRequirements.LevelControlServer
to get the correct features enabled automatically.LevelControlServer
API has a few small changes that may affect device implementors. Most notably thesetLevel
method is replaced withtransition
which handles both immediate and gradual level shiftssupportedOperatingModes
bitmap requires to clear bits for supported modes. To allow to set this bitmap correctly we added a helper bit-rangealwaysSet
(with value 2047) to set the unused bits. Please make sure to set the correct bits for your device according to the specification meaning.Transitions
utility class offers a flexible API for implementing Matter attributes that change gradually at a constant rateQ
(quieter) quality now support an extendedquiet
property that controls how often and when they emit. By defaultQ
attributes emit once per secondLevelControlServer
andColorControlServer
performs smoother transitions with configurable transition step sizes and Matter 1.4-compliant event emitting. It offers several new extension points for integrating with hardware and bridged devicesSwitchServer
default implementationOccupancySensingServer
is automatically filling some legacy attributes when features are correctly set as required by new revision 5 of the cluster$Changed
events now run in a separate context from the emitter and errors will not interfere with the emitterset()
@matter/nodejs
@matter/nodejs-ble
@matter/nodejs-shell
--qrCode
and--qrCodeIndex
to thecommission pair
command to also use QR Code strings for pairing@matter/protocol
updateReceived()
callback on subscriptions is triggered after all updated data event are sent out.getMultipleAttributesAndEvents()
to also return attributeStatus and eventStatus properties with errors returned from the read interactiongetMultipleAttributesAndStatus()
andgetMultipleEventsAndStatus()
to InteractionClient to allow to also returned attribute and event errors from the read interaction@project-chip/matter.js
commissionNode()
andcreateInteractionClient()
to provide options as object and not plain parametersrequestFromRemote
parameter (first parameter) in get*Attribute methods in ClusterClients changed behavior! providing "false" will now never try to read from remote, "true" will always try to read from remote and "undefined" will use the default behavior (read from remote if not available locally or fabric scoped read). Only relevant if you used this parameter with value "false". Other use cases stay unchanged.connectionAlive
to expose the subscription alive triggers (on changes or after max interval)@project-chip/* packages (beside above)
About matter.js
matter.js is an open-source project developing a JavaScript SDK that implements the Matter IoT Standard, created by the Connectivity Standards Alliance and its members. It’s designed to simplify building Matter-compatible devices, bridges, and controllers. With its Node.js-based architecture, matter.js runs on any OS that supports Node.js.
The included shell application makes it easy to explore and interact with Matter devices during development and testing. While the project is still evolving toward full Matter specification coverage, matter.js already supports key functionalities — and the first device built with it has been officially certified, with more certifications on the way.
Tens of thousands of users are already using matter.js in various (uncertified) open-source Smart Home projects, proving interoperability with major ecosystems like Amazon, Apple, Aqara, Google, and SmartThings.
Beta Was this translation helpful? Give feedback.
All reactions