Skip to main content

Matter Adapters

Matter adapters bridge the TypeScript SDK to native Matter code (CSR, commissioning, LAN control, subscriptions, discovery).

You do not need to implement them yourself. Use the RainMaker Home app adapters — they are ready to pass into ESPRMMatterBase.configure().

Source: esp-rainmaker-home/src/native-adaptors


What to use

Config fieldHome app fileUsed for
matterCommissioningAdaptor (required for commissioning)ESPMatterAdapter.tsCSR, commissioning, postMessage
matterControlAdapterESPMatterControlAdapter.tsLocal Control (matter_local)
matterSubscriptionAdapterESPMatterSubscriptionAdapter.tsMatter Subscription
matterLocalDiscoveryAdapterMatterDiscoverAdapter.tsLAN reachability / matter_local
(optional helpers)ESPMatterUtilityAdapter.tsUser NoC / fabric helpers

Base SDK adapters (storage, provisioning, MQTT, …) are in the same folder — e.g. ESPAsyncStorage.ts.

note

Remote Control does not need a Matter control adapter. It uses the built-in matter_controller handler — see Remote Control.


Configure

import { ESPRMMatterBase } from "@espressif/rainmaker-matter-sdk";
import { matterCommissioningAdaptor } from "./native-adaptors/implementations/ESPMatterAdapter";
import asyncStorageAdapter from "./native-adaptors/implementations/ESPAsyncStorage";
import { matterControlAdapter } from "./native-adaptors/implementations/ESPMatterControlAdapter";
import { matterSubscriptionAdapter } from "./native-adaptors/implementations/ESPMatterSubscriptionAdapter";
import { matterLocalDiscoveryAdapter } from "./native-adaptors/implementations/MatterDiscoverAdapter";

ESPRMMatterBase.configure({
baseUrl: "https://api.rainmaker.espressif.com",
version: "v1",
customStorageAdapter: asyncStorageAdapter,
matterCommissioningAdaptor,
matterVendorId: "0x131B",
matterControlAdapter,
matterSubscriptionAdapter,
matterLocalDiscoveryAdapter,
});

// After login, if using subscriptions:
await ESPRMMatterBase.initializeMatterSubscription();

More detail

TopicPage
Commission AdaptorCommission Adaptor
Native Bridge (Android / iOS)Native Bridge
Local vs remote controlControlling
Base SDK adaptersBase SDK Adapters

On this page