Each cluster that has commands also needs to have them implemented based on the chosen feature set.
Matter.js provides a specification-compliant implementation of all Matter 1.3 clusters. For many clusters our implementations perform high-level business logic. For other clusters you provide the needed business logic by extending the matter.js implementation. In all cases matter.js takes care of details like the Matter protocol, input and output validation and persistence. The developer can then decide if own functionality needs to be implemented and can overwrite and extend these implementations or just use them.
For examples for nearly all clusters check the All Clusters Test App.
Matter.js allows the following clusters to be used directly with a default implementation for all relevant commands - or the clusters do not need any commands and so the standard feature set of Matter.js for attributes is sufficient. All clusters contained in this list are also verified using the CI YAML project-chip certification tests.
PICS | Cluster name | Features | Matter-Version | Additional Information |
---|---|---|---|---|
ACL | Access Control | None | 1.3 | Fully implemented and compliant |
ACFREMON | Activated Carbon Filter Monitoring | All | 1.3 | No command implementations needed. |
CADMIN | Administrator Commissioning | All | 1.3 | Internal Root cluster implemented, no need to customize |
APBSC | Application Basic | None | 1.3 | No command implementations needed |
BC | Ballast Configuration | None | 1.3 | No command implementations needed, Cluster provisional |
BINFO | Basic Information | None | 1.3 | Internal Root cluster implemented, no need to customize, all events are automatically emitted by matter.js |
BOOL | Boolean State | None | 1.3 | No command implementations needed. If the StateChanged event is enabled it is emitted automatically on state change. |
BRBINFO | Bridged Device Basic Information | None | 1.3 | reachabilityChanged event is automatically emitted by matter.js |
CMOCONC | Carbon Dioxide (CO2) Concentration Measurement | All | 1.3 | No command implementations needed. |
CMOCONC | Carbon Monoxide (CO) Concentration Measurement | All | 1.3 | No command implementations needed. |
CC | Color Control | All | 1.3 | Default implementation supports all features. |
DESC | Descriptor | None | 1.3 | Internal Root cluster implemented, no need to customize, data are automatically managed by matter.js |
EEM | Electrical Energy Measurement | None | 1.3 | When the convenience method "setMeasurement" is used then also the required events are sent, else developer needs to trigger them. |
EPM | Electrical Power Measurement | All | 1.3 | No command implementations needed. Required events need to be triggered by the developer. |
DGETH | Ethernet Network Diagnostics | None | 1.3 | No command implementations needed when used without any features. The cluster data needs to be provided by the platform. |
FLABEL | Fixed Label | None | 1.3 | No command implementations needed |
FLW | Flow Measurement | None | 1.3 | No command implementations needed |
FLDCONC | Formaldehyde (CH2O) Concentration Measurement | All | 1.3 | No command implementations needed. |
CGEN | General Commissioning | None | 1.3 | Internal Root cluster implemented, provides convenience methods to register and clear Faults and to handle triggered Test Events. |
DGGEN | General Diagnostics | None | 1.3 | No command implementations needed when used without test event triggers. All mandatory attributes and events supported. Optional attributes, events and Test event triggers needs to be implemented by developer if needed. |
HEPAFREMON | HEPA Filter Monitoring | All | 1.3 | No command implementations needed. |
I | Identify | All | 1.3 | All mandatory commands implemented. Additionally, state isIdentifying and events start/stopIdentifying are available to easily extend the server. |
ILL | Illuminance Measurement | None | 1.3 | No command implementations needed |
RH | Leaf Wetness Measurement | None | 1.3 | No command implementations needed |
LVL | Level Control | All | 1.3 | Default implementation sets currentLevel and remainingTime attributes by respecting the feature requirements on best-effort basis. Use managedTransitionTimeHandling state to true to use transitions managed by matter.js. |
LCFG | Localization Configuration | None | 1.3 | The active locale is determined via JavaScript Intl package, can be overridden |
LOWPOWER | Low Power | None | 1.3 | The default implementation emits the internal event enterLowPowerMode that an implementation can listen too. Alternatively, you can override the sleep command by extending the cluster. |
CNET | Network Commissioning | None | 1.3 | No command implementations needed when using with Ethernet network, needs custom implementation for Wi-Fi or Thread, see examples |
NDOCONC | Nitrogen Dioxide (NO2) Concentration Measurement | All | 1.3 | No command implementations needed. |
MOD | Mode Select | OnOff | 1.3 | Default implementation sets the new mode when change command is used and automatically handles StartUpMode and OnMode. |
OCC | Occupancy Sensing | None | 1.3 | No command implementations needed |
OO | OnOff | All | 1.3 | LevelControl-For-Lighting feature is enabled automatically in default implementation. offWithEffect currently ignores requested effects and turns off. onWithRecallGlobalScene currently ignores the global scene and turns on. No special logic is implemented for DeadFrontBehavior feature because too use-case specific but can be used and logic adjusted as needed. |
OPCREDS | Operational Credentials | None | 1.3 | Internal Root cluster implemented, no need to customize |
OZCONC | Ozone (O3) Concentration Measurement | All | 1.3 | No command implementations needed. |
PMHCONC | PM1 Concentration Measurement | All | 1.3 | No command implementations needed. |
PMLCONC | PM10 Concentration Measurement | All | 1.3 | No command implementations needed. |
PMICONC | PM2.5 Concentration Measurement | All | 1.3 | No command implementations needed. |
PS | Power Source | None | 1.3 | No command implementations needed. Optional events needs to be emitted by the developer if needed |
PSCFG | Power Source Configuration | None | 1.3 | No command implementations needed |
PWRTL | Power Topology | None | 1.3 | No command implementations needed |
PRS | Pressure Measurement | None | 1.3 | No command implementations needed |
PXCFG | Proxy Configuration | None | 1.3 | No command implementations needed |
PCC | Pump Configuration and Control | None | 1.3 | No command implementations needed, Relevant Events need to be enabled and emitted by the developer when needed, Cluster client dependencies are not yet possible with matter.js |
RNCONC | Radon (Rn) Concentration Measurement | All | 1.3 | No command implementations needed. |
RNCONC | Radon (Rn) Concentration Measurement | All | 1.3 | No command implementations needed. |
RH | Relative Humidity Measurement | None | 1.1 | No command implementations needed |
SWTCH | Switch | All | 1.3 | Matter.js provides a full implementation with all features in a configurable way including release, long- and multi-press detection. Just set currentPosition state and all events will be triggered automatically. Alternatively, an additional state rawPosition is available which will be debounced based on a defined debounce delay. Check the SwitchCluster documentation for the details and additional state values. |
TMP | Temperature Measurement | None | 1.3 | No command implementations needed |
TSUIC | Thermostat User Interface | None | 1.3 | No command implementations needed |
LTIME | Time Format Localization | None | 1.3 | The hour format and calendar type are determined automatically using the JavaScript Intl package. |
TVOCCONC | Total Volatile Organic Compounds (TVOC) Concentration Measurement | All | 1.3 | No command implementations needed. |
TVOCCONC | Total Volatile Organic Compounds (TVOC) Concentration Measurement | All | 1.3 | No command implementations needed. |
LUNIT | Unit Localization | None | 1.3 | No command implementations needed. If not provided we set Celsius as Temperature unit |
ULABEL | User Label | None | 1.3 | No command implementations needed |
WAKEONLAN | WakeOnLan | None | 1.3 | No command implementations needed |
WNCV | Window Covering | All | 1.3 | All commands for all feature sets are implemented. Movements will by default be executed as fast as possible by just setting the new value, so own movement logic needs to be implemented. |
More will come over time and can also be contributed by the community!