Matter onboarding issue with esp32-c3 and Home Assistant 2023.1.0b4

Hello,

I am trying to use the new Matter feature in Home Assistant, but I am having difficulties getting it to work. I am using the following setup:

  • Home Assistant Core 2013.1.0b4
  • Matter Server 2.0.0
  • esp32-c3 device as a Matter device
  • Compiled light example from esp-matter with esp-idf 4.4.2 using the command idf.py build erase-flash flash monitor, as well as tried using the firmware from the Nabu Casa Matter Example installer ( Matter Example Apps )

I have been closely following the Matter Workshop video on Youtube ( Matter in Home Assistant workshop - YouTube ) and attempting to use the new Matter integration in the Devices & Services page for onboarding, as the integration does not currently have the services mentioned in the video. However, the commissioning process fails according to both the esp32-c3 and Matter Server logs, and the Home Assistant Core logs do not show anything noticeable.

I am wondering if there is something wrong with my setup or if anyone else has been able to successfully use Home Assistant Matter. Additionally, I am curious about when we can expect this highly anticipated feature to be fully functional.

Thank you for any assistance.

P.S.

The last part of esp32-c3 log is:

E (429480) chip[SVR]: Failsafe timer expired
I (429480) chip[SC]: SecureSession[0x3fc974d0]: Moving from state 'kActive' --> 'kPendingEviction'
E (429500) chip[SVR]: Commissioning failed (attempt 1): 32
I (429500) chip[BLE]: Releasing end point's BLE connection back to application.
I (429510) chip[DIS]: Updating services using commissioning mode 1
I (429510) chip[DIS]: CHIP minimal mDNS started advertising.
I (429520) chip[DIS]: Advertise operational node C0C19F37A1EF0B0A-0000000000000001
I (429540) chip[DIS]: CHIP minimal mDNS configured as 'Operational device'; instance name: C0C19F37A1EF0B0A-0000000000000001.
I (429540) chip[DIS]: mDNS service published: _matter._tcp
I (429550) chip[DIS]: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1
I (429560) chip[DIS]: CHIP minimal mDNS configured as 'Commissionable node device'; instance name: 7CFEEAE5DA79FA62.
I (429570) chip[DIS]: mDNS service published: _matterc._udp
E (429570) chip[ZCL]: OpCreds: Got FailSafeTimerExpired
E (429590) chip[ZCL]: OpCreds: Proceeding to FailSafeCleanup on fail-safe expiry!
E (429590) chip[FP]: Reverting pending fabric data for fabric 0x1
I (429600) chip[DL]: Confirm received for CHIPoBLE TX characteristic indication (con 1) status= 14 
I (429610) chip[DL]: Write request/command received for CHIPoBLE TX CCCD characteristic (con 1 ) indicate = 0
I (429610) chip[DL]: CHIPoBLE unsubscribe received
E (429600) chip[FP]: Warning: metadata not found during delete of fabric 0x1
I (429640) chip[FP]: Fabric (0x1) deleted.
I (429640) chip[ZCL]: OpCreds: Fabric index 0x1 was removed
I (429640) chip[DIS]: Updating services using commissioning mode 1
I (429650) chip[DIS]: CHIP minimal mDNS started advertising.
I (429650) chip[DIS]: Advertise commission parameter vendorID=65521 productID=32768 discriminator=3840/15 cm=1
I (429660) chip[DIS]: CHIP minimal mDNS configured as 'Commissionable node device'; instance name: 7CFEEAE5DA79FA62.
I (429680) chip[DIS]: mDNS service published: _matterc._udp
I (429710) chip[TS]: Pending Last Known Good Time: 2023-01-02T15:36:04
I (429710) chip[TS]: Previous Last Known Good Time: 2023-01-02T15:36:04
I (429720) chip[TS]: Reverted Last Known Good Time to previous value
E (429720) chip[FP]: Warning: metadata not found during delete of fabric 0x1
E (429740) chip[ZCL]: OpCreds: failed to delete fabric at index 1: d8
I (429740) esp_matter_attribute: ********** Endpoint 0x0000's Cluster 0x0030's Attribute 0x0000 is 0 **********
I (429750) app_main: Commissioning failed, fail safe timer expired
E (429750) chip[DL]: Long dispatch time: 265 ms, for event type 32782
I (429760) chip[FS]: Fail-safe cleanly disarmed
I (429760) chip[DL]: Configuring CHIPoBLE advertising (interval 25 ms, connectable)
I (429770) NimBLE: GAP procedure initiated: advertise; 
I (429780) NimBLE: disc_mode=2
I (429790) NimBLE:  adv_channel_map=0 own_addr_type=1 adv_filter_policy=0 adv_itvl_min=40 adv_itvl_max=40
I (429800) NimBLE: 

I (429800) chip[DL]: CHIPoBLE advertising started
I (429800) app_main: Commissioning window opened

The last part of the matter server log is:

2023-01-02 17:33:18 core-matter-server chip.CTL[123] ERROR Parameters supplied: wifi (no) thread (no)
2023-01-02 17:33:18 core-matter-server chip.CTL[123] ERROR Device supports: wifi (yes) thread(no)
2023-01-02 17:33:18 core-matter-server chip.CTL[123] INFO Going from commissioning step 'SendNOC' with lastErr = '../src/controller/AutoCommissioner.cpp:260: CHIP Error 0x0000002F: Invalid argument' -> 'Cleanup'
2023-01-02 17:33:18 core-matter-server chip.CTL[123] INFO Performing next commissioning step 'Cleanup' with completion status = '../src/controller/AutoCommissioner.cpp:260: CHIP Error 0x0000002F: Invalid argument'
2023-01-02 17:33:18 core-matter-server chip.CTL[123] INFO Expiring failsafe on proxy 0x7f8003d750
2023-01-02 17:33:18 core-matter-server chip.EM[123] INFO <<< [E:53137i M:50061918] (S) Msg TX to 0:FFFFFFFB00000000 [0000] --- Type 0001:08 (IM:InvokeCommandRequest)
2023-01-02 17:33:18 core-matter-server chip.IN[123] INFO (S) Sending msg 50061918 on secure session with LSID: 11634
2023-01-02 17:33:18 core-matter-server chip.EM[123] INFO >>> [E:53137i M:97064417] (S) Msg RX from 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse)
2023-01-02 17:33:18 core-matter-server chip.DMG[123] INFO Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001
2023-01-02 17:33:18 core-matter-server chip.CTL[123] INFO Failsafe disarmed
2023-01-02 17:33:18 core-matter-server chip.CTL[123] INFO Successfully finished commissioning step 'Cleanup'
2023-01-02 17:33:18 core-matter-server chip.DIS[123] INFO Closing all BLE connections
2023-01-02 17:33:18 core-matter-server chip.BLE[123] INFO Auto-closing end point's BLE connection.
2023-01-02 17:33:18 core-matter-server chip.DL[123] INFO Closing BLE GATT connection (con 0x7f7c03d0f0)
2023-01-02 17:33:18 core-matter-server chip.SC[123] INFO SecureSession[0x7f8002a3b0]: Moving from state 'kActive' --> 'kPendingEviction'
2023-01-02 17:33:18 core-matter-server matter_server.server.client_handler[123] ERROR [547881663744] Error handling message: CommandMessage(message_id='b753e4a887864285b975236a29368575', command='commission_with_code', args={'code': 'MT:Y.K9042C00KA0648G00'})
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/matter_server/server/client_handler.py", line 185, in _run_handler
    result = await result
  File "/usr/local/lib/python3.9/dist-packages/matter_server/server/device_controller.py", line 122, in commission_with_code
    raise NodeCommissionFailed(
matter_server.common.models.error.NodeCommissionFailed: Commission with code failed for node 1
2023-01-02 17:33:20 core-matter-server chip.BLE[123] ERROR no endpoint for unsub complete
2023-01-02 17:33:20 core-matter-server chip.DL[123] INFO Bluez notify CHIPoBluez connection disconnected
2023-01-02 17:33:40 core-matter-server chip.DIS[123] ERROR Timeout waiting for mDNS resolution.
2 Likes

I found out that this example works well with both Home Assistant and Google Assistant:

I’m new to Matter and I’m going through the process of using command line tools.

What stood out in the logs:

ERROR Parameters supplied: wifi (no) thread (no)
ERROR Device supports: wifi (yes) thread(no)

In order for a Matter device to be commissioned it needs to connect to either a WiFi or Thread network. As you’re using an ESP32, they use WiFi, which you can see in the Device supports log.

I cannot help with your exact issue, but perhaps this will point you in the right direction? Looks like you need to provide the device with the WiFi credentials os that you can continue the commissioning.

Hope this helps.

I tried that example, but during the build, I keep getting ZAP errors. I don’t think that I have ZAP installed correctly. Any hints on how to get it to work?

Hi, I hope this helps. You have to run ./install.sh, and it will perform the ZAP installation as well.