Matter Nodes
After commissioning, devices appear as Matter-aware nodes. The SDK exposes ESPRMMatterNode (extends base ESPRMNode) with endpoint devices, cluster params, and Matter metadata from the RainMaker API.
Use fabric methods to list nodes; use node properties and helpers to inspect capabilities.
Device params (names, UI types, Matter attribute IDs) are built from your cluster config when node details are loaded — that is what drives the device control screen (toggles, sliders, modes).
List nodes
import { ESPRMMatterNode } from "@espressif/rainmaker-matter-sdk";
const nodes = await fabric.getNodesWithDetails();
for (const node of nodes) {
if (node instanceof ESPRMMatterNode) {
console.log(node.id, node.matterNodeId, node.matterDeviceName);
}
}
Returns ESPRMMatterNode for pure Matter nodes and ESPRMNode for RainMaker nodes on the same fabric.
const node = await userInstance.getNodeDetails("<RAINMAKER_NODE_ID>");
Key properties
| Property | Description |
|---|---|
| matterNodeId | Matter node ID for local control |
| matterDeviceName / matterDeviceType | From Basic Information |
| endpoints | Parsed list with serverClusters / clientClusters |
| matterMetadata | Raw metadata.Matter from the API |
| nodeType | pure_matter or RainMaker + Matter |
Endpoint 0 is root (utility clusters); endpoint 1+ map to ESPRMMatterDevice on nodeConfig.devices.
Cluster helpers
import { ESPRMMatterClusterId } from "@espressif/rainmaker-matter-sdk";
const metadata = await matterNode.getMatterMetadata();
const supportsOnOff = await matterNode.hasCluster(ESPRMMatterClusterId.OnOff);
const onOffEndpoint = await matterNode.getEndpointWithCluster(ESPRMMatterClusterId.OnOff);
const clusters = await matterNode.getServerClusters(1);
| Method | Purpose |
|---|---|
| getMatterMetadata() | Raw metadata.Matter (e.g. check isRainmaker) |
| hasCluster(clusterId) | Cluster on any endpoint |
| hasCluster(endpointId, clusterId) | Cluster on one endpoint |
| getEndpointWithCluster(clusterId) | First endpoint with a server cluster |
| getServerClusters(endpointId?) | Server cluster IDs |
| getClientClusters(endpointId?) | Client cluster IDs |
Use ESPRMMatterClusterId (e.g. OnOff, LevelControl, ColorControl) or raw numeric IDs.
For how Matter clusters become control-screen features, see Cluster config and device params.
For local or remote read/write on params, see Controlling.