Matter commissioning via the iOS app

I am trying to understand the flow of Matter commissioning when using the companion app.

I’ve been reading the documentation and see what when commissioning is started, an extension called MatterAddDeviceExtensionRequestHandler is used. In the commissionDevice function, the app seems to simply make an API call back to the Home Assistant instance.

The MatterController in HA then starts on-network commissioning.

I’m trying to get my head around how this works. At the time the commissionDevice function is invoked, has the device been configured with network credentials, but no NOC?? So the device would be on-network, without any certificates being installed?

I’m trying to make something similar for an ESP32 application I’m building. I want the RCA and other Fabric bits to remain on my ESP32 without iOS getting involved. Is this possible?

I don’t know the underlying calls but the Companion App heavily depends on the underlying iOS’s Matter/Thread Framework. The mobile device (CA and Framework) actually does the Matter commissioning of the device first to itself (the mobile device). The device will then be part of the mobile device’s Matter fabric. If that is successful, then the mobile device “shares” the Matter device with HA Matter Server which in turn does the Matter commissioning to its fabric and now the device is connected to a second Matter fabric.

That makes sense.

Apple’s documentation doesn’t seem to have that written down, but the flow is happening as you describe.

Just need to figure out why the mDNS doesn’t work now :slight_smile:

Thx