跳到主要内容

Phase 6 — Device commissioned + RainMaker metadata

Layer: Native CHIP

After NOC install, CHIP finishes Matter commissioning on-device. The shared buildCommissioningCompletionListener in ChipClient runs post-commission work for both ChipTool and any legacy GPS-driven awaitCommissionDevice path.

Inside ChipClient (on onCommissioningComplete, errorCode == 0)

  • Reads device metadata / RainMaker-specific attributes from the device.
  • May write ACL entries (operate CAT) via Matter clusters.
  • Sets lastCommissionedNodeId, lastCommissionedDeviceName.
  • Builds confirm payload → triggerHeadlessConfirmCommissionTask(metadata).

The suspend function awaitPairDeviceOverBle does not resume here — it waits for Phase 7 (onCommissioningFullyComplete).

Events to React Native (ChipTool path)

On the default ChipTool back-end there is no intermediate COMMISSIONING_COMPLETE from a system Matter UI. The next RN-visible success is Phase 7 with source: HEADLESS_JS.

Legacy GooglePlayServices build

If MATTER_COMMISSIONING_METHOD=GooglePlayServices, ESPMatterCommissioningService still posts an intermediate COMMISSIONING_COMPLETE with source: GPS_SERVICE after CHIP succeeds. Your hook must ignore that via isMatterCommissioningTerminalComplete() — see Phase 8.

See Terminal success by platform.

What could go wrong

Metadata read from device fails → confirm Headless task never starts → UI stays on commissioning until timeout. Treating any non-HEADLESS_JS complete as terminal success (only relevant on the legacy GPS build).

On this page