Matter is an IP-based, royalty-free connectivity protocol standard that enables communication among a wide range of smart devices.

Posts under Matter tag

130 Posts

Post

Replies

Boosts

Views

Activity

Support for custom Matter endpoints, clusters and attributes
I am working on an app for a home automation device. If I were using HomeKit exclusively I could add custom services or custom characteristics on standard services and these things would all be reported to my app via HomeKit. There is sample code from Apple that demonstrates how to do this. When a Matter device is commissioned using HomeKit you might expect custom clusters and/or custom attributes in a standard cluster would be translated to appropriate HomeKit services and characteristics, but this doesn't appear to be the case. Is there a way to have HomeKit do this? If not it seems I would need to use Matter directly rather than via HomeKit to access custom features. But if I commission the device using Matter in my app then I understand a new fabric is created and the device would not show in the Home app. Maybe the user needs to commission the device twice, once with my custom app and once with the Home app? That seems like a poor user experience to me. Perhaps that is the price paid for using a cross-platform standard? Is there a better way to get the same level of customization using Matter that I am able to get using HomeKit?
16
0
3.3k
Oct ’25
Questions about displaying sensor data (Temperature/HCHO/TVOC) for Matter device in HomeKit
I am currently developing an air quality monitoring device that supports the Matter protocol and is intended to integrate with HomeKit. During the development process, I've encountered a couple of issues regarding sensor data display within the Home app and would appreciate any insights from the community. Issue 1: Temperature Sensor Display We have observed that when the temperature sensor is implemented as a cluster within the device, its data fails to appear in the Home app interface. However, if it is configured as an independent endpoint, it displays correctly. Is this a specific requirement of HomeKit regarding the structure of clusters and endpoints in Matter devices? Issue 2: Support for HCHO and TVOC Sensor Display Does HomeKit currently support displaying real-time data from HCHO (Formaldehyde) and TVOC sensors? If so, are there specific cluster specifications or data types that need to be followed?
1
0
170
Oct ’25
Unable to download the latest EnableBluetoothCentralMatterClientDeveloperMode.mobileconfig certificate."
Hi Team, I’ve tried downloading the EnableBluetoothCentralMatterClientDeveloperMode.mobileconfig certificate from multiple sources, but all the links I found point to expired versions. Could you please help me with the URL to the latest version of this certificate? Here are the links I’ve already tried, but none of them worked: https://project-chip.github.io/connectedhomeip-doc/guides/darwin.html#profile-installation https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/darwin.md Apple Site Looking forward to your support. Thanks, Mantosh Kumar
2
0
263
Sep ’25
Matter over wifi without matter client developer profile
My iOS app uses the Matter framework to commission devices over Wi-Fi (not Thread). With the Matter Client Developer Profile installed, commissioning works perfectly. However, in TestFlight builds without the profile, commissioning fails, even though the app includes the Matter Allow Setup Payload capability and the following in Info.plist: <key>NSBonjourServices</key> <array> <string>_matter._tcp</string> <string>_matterc._udp</string> <string>_matterd._udp</string> </array> How can I enable Matter device commissioning using the Matter framework in production/TestFlight builds without the Matter Client Developer Profile? Please provide guidance or specific configurations needed for production environments
3
0
306
Aug ’25
Matter communication roundtrip times
I am working on an app (iOS, iPadOS & macOS (Mac Catalyst)) for a Home Automation device. I am using HomeKit APIs to access commissioned devices and provided APIs to get a MatterNodeID and then a MTRBaseDevice so I can query the device. Since the current APIs for accessing Matter devices this way do not support subscriptions I am using the readAttributes() method of the MTRBaseDevice to get information from the device. There can be significant lag time in these reads and I realize my network speed and congestion can contribute to this. The time lag makes me wonder how readAttributes() obtains the data? Does the method query the Home hub which replies using cached data, or does the hub in turn query the device to insure it is providing the latest data? I am pretty sure all this communication goes through the hub because it works whether I am on the same network as the device or in a location far, far away.
1
0
313
Jul ’25
Home app color temperature lamp color temperature synchronization issue
Connect the Zigbee color temperature light bridge to the Home app through the Matter Bridge (a device with a screen), and adjust the color temperature of the light on the screen. However, the color temperature of the corresponding device on the Home app is not synchronized, as shown in the following figure What information is missing from the Home app when my device reports color temperature during control?
1
0
242
Jul ’25
Mapping issue between physical buttons of the Matter switch and buttons on the Apple App
Hi, We are developing a Matter switch product. The switch contains 4 buttons, and each button supports click, double click, and held actions. Currently, the device can be successfully commissioned with a HomePod mini, and in the Apple Home app, it is displayed as 4 buttons with options for click, double click, and held for each. The only issue is that the order of the 4 buttons in the Home app does not correspond to the endpoint order (endpoint 1–4). For example, the following mapping might occur: endpoint 1 → button 2 endpoint 2 → button 3 ... We found a related issue on the Apple Developer Forums that matches what we're experiencing: https://developer.apple.com/forums/thread/772367?utm_source=chatgpt.com According to the official response, the problem seems to be caused by insufficient metadata being reported by the device. Could you please provide more specific guidance on what exact information needs to be reported from the device side? We have already tried adding the Fixed Label and User Label clusters to the device, but they don't seem to have any effect. Ideally, we would like the button labels in the Home app add our custom names in the correct order, as below: button 1 (right_button) button 2 (up_button) button 3 (down_button) button 4 (left_button) This would provide a much better user experience. Thank you in advance!
1
1
310
Jul ’25
isBridged & uniqueIdentifiersForBridgedAccessories not set for bridged matter accessories and the respective bridge device
since macOS 15.5 and iOS 18.5 bridged matter devices have isBridged set to false and the respective bridge device has an empty uniqueIdentifiersForBridgedAccessories list. before these updates both were set as expected. i also noticed that the bridged matter devices include all endpoints for all bridged devices. not only the ones for themselves.
3
0
280
Jun ’25
Matter request extension no long working for Thread devices
My app has been working fine until just recently, now it can not add Matter devices over Thread (Wifi commissioning still works). I didn't change anything on my side, so not sure if an update maybe changed things? In any case, reading through my logs (and i have the matter/thread debug profiles installed). it seems like the device is added to the thread network fine, and it looks to me like the phone is successfully commissioning the device to the Apple setup fabric, but then it seems to choke on this line and i don't think the device is actually added to the keychain/matter db, so it fails later on . error 12:18:03.369036-0700 homed [2610726604/1195614123(679130348)] failed to find metric hmmtrAccessoryMetricNameCommissioningAccessory to complete I can confirm the device does join my thread border router as its pingable, and it does not seem to be in setup mode anymore (light stops flashing), so i assume it thinks its commissioned. The device i'm pairing is a Onvis (matter certified) outlet to an espressif build of a OTBR. My phone is running 18.4.1 if that matters (no pun intended) . I have also cleared out existing Matter pairings from the phone, as well ensured the device was factory reset before every try. Here is a snippet of the log towards the end where is looks like pairing works, but then errors out. I would post more but my post has a 7k character limit. default 12:18:02.836555-0700 homed Success status report received. Session was established default 12:18:02.836734-0700 homed SecureSession[0x9bb100f00, LSID:64711]: State change 'kEstablishing' --> 'kActive' default 12:18:02.837438-0700 homed Successfully finished commissioning step 'kFindOperationalForStayActive' default 12:18:02.837467-0700 homed Commissioning stage next step: 'kFindOperationalForStayActive' -> 'ICDSendStayActive' default 12:18:02.837500-0700 homed Performing next commissioning step 'ICDSendStayActive' default 12:18:02.837574-0700 homed Skipping kICDSendStayActive default 12:18:02.837627-0700 homed Successfully finished commissioning step 'ICDSendStayActive' default 12:18:02.837650-0700 homed Commissioning stage next step: 'ICDSendStayActive' -> 'kFindOperationalForCommissioningComplete' default 12:18:02.837670-0700 homed Performing next commissioning step 'kFindOperationalForCommissioningComplete' default 12:18:02.838036-0700 homed Found an existing secure session to [2:000000009B9C86CC]! default 12:18:02.838149-0700 homed Successfully finished commissioning step 'kFindOperationalForCommissioningComplete' default 12:18:02.838697-0700 homed Commissioning stage next step: 'kFindOperationalForCommissioningComplete' -> 'SendComplete' default 12:18:02.838893-0700 homed Performing next commissioning step 'SendComplete' default 12:18:02.839092-0700 homed <<< [E:35494i S:64711 M:193726318] (S) Msg TX from 0000000086BCA241 to 2:000000009B9C86CC [47A0] [UDP:[fd01:11b8:de1c:1:968a:c465:6fe8:e12a]:5540] --- Type 0001:08 (IM:InvokeCommandRequest) (B:59) default 12:18:02.839133-0700 homed ??1 [E:35494i S:64711 M:193726318] (S) Msg Retransmission to 2:000000009B9C86CC scheduled for 2910ms from now [State:Active II:800 AI:800 AT:4000] default 12:18:02.839257-0700 homed <<< [E:35493i S:0 M:19014618 (Ack:7538941)] (U) Msg TX from 3251BD376C43B658 to 0:0000000000000000 [0000] [UDP:[fd01:11b8:de1c:1:968a:c465:6fe8:e12a]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:26) default 12:18:03.356373-0700 homed >>> [E:35494i S:64711 M:174417481 (Ack:193726318)] (S) Msg RX from 2:000000009B9C86CC [47A0] to 0000000086BCA241 --- Type 0001:09 (IM:InvokeCommandResponse) (B:70) default 12:18:03.356559-0700 homed Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 default 12:18:03.356584-0700 homed Received CommissioningComplete response, errorCode=0 default 12:18:03.356622-0700 homed Successfully finished commissioning step 'SendComplete' default 12:18:03.356648-0700 homed Commissioning stage next step: 'SendComplete' -> 'Cleanup' default 12:18:03.356746-0700 homed Performing next commissioning step 'Cleanup' default 12:18:03.356803-0700 homed Successfully finished commissioning step 'Cleanup' default 12:18:03.356916-0700 homed Closing all BLE connections default 12:18:03.357084-0700 homed Auto-closing end point's BLE connection. default 12:18:03.358146-0700 homed SecureSession[0x9bb1003c0, LSID:64710]: State change 'kActive' --> 'kPendingEviction' default 12:18:03.358652-0700 homed Commissioning complete for node ID 0x000000009B9C86CC: success default 12:18:03.358678-0700 homed <MTRDeviceController_Concrete: 0x9b8e33100, uuid: 3F6C2281-D873-4D82-BE3E-722446EA66E7, suspended: NO> DeviceControllerDelegate Commissioning complete. NodeId 0x000000009b9c86cc Status src/controller/CHIPDeviceController.cpp:2932: Success ... default 12:18:03.367999-0700 homed <MTRDeviceController_Concrete: 0x9b8e33100, uuid: 3F6C2281-D873-4D82-BE3E-722446EA66E7, suspended: NO> 1 delegates called for -[MTRDeviceController controller:commissioningComplete:nodeID:metrics:] error 12:18:03.369036-0700 homed [2610726604/1195614123(679130348)] failed to find metric hmmtrAccessoryMetricNameCommissioningAccessory to complete error 12:18:03.426636-0700 HomeUIService Unexpected accessory setup progress CASE Session Sanity Check Passed default 12:18:03.426850-0700 homed Could not find home with valid fabric ID corresponding to fabric UUID: FB19AA02-5E34-40C5-BB9D-B1B1AF51E08B ... error 12:18:03.460841-0700 homed [188914BD-5163-425C-9E59-CAE9BFA1A288] Could not find system commissioner pairing for newly staged server with identifier f1:64:16:3f:79:b8 in all pairings: ( .. default 12:18:03.460906-0700 homed Answering incoming message HMASC.m.confirmDeviceCredential (186EE57F-330B-435F-A949-0E4C5D6954AB) from client 'HomeUIService' that expects a response with error Error Domain=HMErrorDomain Code=2 "(null)" error 12:18:03.461167-0700 HomeUIService [BD890E19] Failed to stage CHIP accessory pairing in steps: Error Domain=HMErrorDomain Code=2 "(null)" error 12:18:03.462121-0700 HomeUIService -[HSSetupStateMachineCHIPPartnerConfiguration stageCHIPAccessory]_block_invoke Failed to stage CHIP accessory: Error Domain=HMErrorDomain Code=2 "(null)" default 12:18:03.462172-0700 HomeUIService -[HSSetupStateMachineConfiguration setPairingError:] *** Setting pairingError *** = Error Domain=HMErrorDomain Code=2 "(null)"
3
0
319
May ’25
Matter Generic Switch not resuming subscription on reboot
I'm developing a Matter-over-thread generic switch with 2 generic switch endpoints. This is configured as an Intermittently Connected Device with Long Idle Time. I have an Apple TV serving as the thread border router. I'm able to commission the device successfully in the Home app and assign actions to each of the buttons however when the device is rebooted the subscription doesn't appear to resume successfully and the buttons no longer work. I've tested this on various SOC's with their respective SDKs including ESP32-C6, nrf52840 and EFR32MG24 and the behaviour was consistent across all of them. It was working originally when I first started out on the ESP32-C6, then the issue popped up first when I was testing the nrf52840. In that SDK I set persistent subscriptions explicitly and it seemed to resolve the issue until it popped up again when I found that unplugging and restarting the Apple TV completely which appeared to fix the issue with subscriptions not resuming. Recently I've added a Home Pod Mini Gen 2 to the matter fabric so there are now two TBR on the network and restarting both the Apple TV and the HomePod doesn't appear to resolve the issue anymore and the subscriptions are not resuming across all three SOC's on device reboot I'm wondering if there might be something preventing the subscriptions from resuming?
2
0
240
May ’25
Matter device data pipeline
I'm device manufacturer and in future planning to get my device matter certified. If I want my device data for analytics purpose into my cloud than what is the best way possible. My research says that the most latest approach suggested by apple is, developing a custom mobile app using device homekit sdk and subscribe to device state and send it to my cloud. If I go that route, will it work even though the device was onboarded via homekit app and homekit hub device is also there. I want to make sure that both path will be active, device to hub to home app and device to custom app to my cloud, and both on matter ecosystem. The homekit sdk and matter support mentioned here https://developer.apple.com/apple-home/matter, are these two same thing?
1
0
219
May ’25
Best way to pass a HomeKit or Matter setup code to the Home App Programatically
Apologies in advance for the long post. I'm new to HomeKit and Matter but not to development, I'm trying to write a SwiftUI app for my smart home to store all of my HomeKit and Matter setup barcodes along with other bits of information. The intention is to scan the QR codes with my App and then save that QR payload in a simple Database along with other manually entered device details. Example payloads: X-HM://00GWIN0B5PHPG <-- Eufy V120 HomeKit Camera MT:GE.01-C-03FOPP6B110 <-- Moes GU10 Matter Bulb I have it 99% working, my app is even able to discern the manual pairing code from the above payloads. However one of the key feature of this is that I want to open a device entry in my app and tap the HomeKit or Matter code displayed in my app and and either: a) Ideally pass it off to the Apple Home app to initiate pairing just like the native Camera App can. b) Create a custom flow in my app using the HomeKit or Matter API's to initiate paring from within my app. So ideally just like the flow that happens when you scan a setup QR with the normal camera and tap "Open in Home". However I want to trigger this flow with just knowing the Payload and not with scanning it via the camera. I was hoping there might be something as simple as a URL scheme that I could call with the payload as a variable and it then deep links and switches to the Home app, but I haven't found any info relating to this that actually works. This is some code I have tried with the HomeKit API but this also results in an error: import HomeKit func startHomePairing(with setupCode: String) { // Handle HomeKit setup guard let payload = HMAccessorySetupPayload(url: URL(string: setupCode)!) else { print("Invalid HomeKit setup code or format.") return } let setupRequest = HMAccessorySetupRequest() setupRequest.payload = payload let setupManager = HMAccessorySetupManager() // Perform the setup request and handle the result setupManager.performAccessorySetup(using: setupRequest) { result, error in if let error = error { // Error handling: print the error details print("Error starting setup: \(error.localizedDescription)") // Print more details for debugging print("Full Error: \(error)") } else { // Success: pairing was successful print("Successfully launched Home app for HomeKit setup.") } } } But when passing in the QR payloads above it give the following .. HomeKit Code [0CAB3B05] Failed to perform accessory setup using request: Error Domain=HMErrorDomain Code=17 "(null)" Matter Code Failed to create HMSetupAccessoryPayload from setup payload URL MT:GE.01-C-03FOPP6B110: Error Domain=HMErrorDomain Code=3 "(null)" I have added the "HomeKit" and "Matter Allow Setup Payload" capabilities to my app, I have also ensured I have these in the .plist .. <key>NSHomeKitUsageDescription</key> <string>Access required to HomeKit to initiate pairing for new accessories</string> I also added a call to ensure my app appears in the Settings / Privacy / HomeKit section. I originally thought was a seemingly simple task, but I am really struggling with how to make it work!
4
0
307
Apr ’25
MTRBaseDevice InvokeCommand method
I am calling InvokeCommand on a MTRBaseDevice I received from HomeKit. The device receiving the command is using Matter 1.3 and is expecting a Boolean State Configuration new to that version of the spec. That may be the reason why I get the following error: MTRInteractionErrorDomain Code=133 "The cluster command is malformed, has missing fields, or fields with invalid values.Command not carried out." I am sending the following as the commandField parameter: ["type": "UnsignedInteger", "value": 1] When I look into those values more deeply, the value is specified as an NSNumber holding an Int16 value of 1. I created the NSNumber using a Uint8(1). The docs suggest this should result in an NSNumber treated as an unsigned char, but the debugger reports it as a Int16. I tried changing the type in the command field to "SignedInteger" and this had no effect on the error I receive. So I suppose the problem could also be that my parameters always get a signed value when an unsigned value is expected. Is this something I can correct using the current APIs, or do I need to wait for Matter 1.3 support?
3
0
414
Mar ’25
Configuring the 72nd action for the Matter switch on AppleHome will fail
I use Homepod Mini as the gateway and have bound 9 Matter lights and 7 Matter switches. Each of my switches has 12 buttons, and each button supports three functions: single click, double click, and long press. Therefore, a total of 252 actions can be configured for 7 * 12 * 3. Currently, a total of 71 actions are configured for the 7 Matter switches. When configuring the 72nd action, the app will prompt that the operation cannot be completed. But if you delete a few previously configured actions, such as 68 actions, then you can configure 3 more actions (69, 70, 71). However, as long as you configure the 72nd action, the app will prompt that the operation cannot be completed, as if the available space is occupied. What is the reason for this?
2
0
338
Mar ’25
Matter code to control a device?
I would like to explore developing apps to integrate with Matter, but it seems that there are limited code examples available. To start with I would like to create a MacOs or iOS application to control a Matter device like a light bulb. I would as an example just like to know how to turn the light on or off. Where should I start?
0
0
192
Mar ’25
Support for custom Matter endpoints, clusters and attributes
I am working on an app for a home automation device. If I were using HomeKit exclusively I could add custom services or custom characteristics on standard services and these things would all be reported to my app via HomeKit. There is sample code from Apple that demonstrates how to do this. When a Matter device is commissioned using HomeKit you might expect custom clusters and/or custom attributes in a standard cluster would be translated to appropriate HomeKit services and characteristics, but this doesn't appear to be the case. Is there a way to have HomeKit do this? If not it seems I would need to use Matter directly rather than via HomeKit to access custom features. But if I commission the device using Matter in my app then I understand a new fabric is created and the device would not show in the Home app. Maybe the user needs to commission the device twice, once with my custom app and once with the Home app? That seems like a poor user experience to me. Perhaps that is the price paid for using a cross-platform standard? Is there a better way to get the same level of customization using Matter that I am able to get using HomeKit?
Replies
16
Boosts
0
Views
3.3k
Activity
Oct ’25
Questions about displaying sensor data (Temperature/HCHO/TVOC) for Matter device in HomeKit
I am currently developing an air quality monitoring device that supports the Matter protocol and is intended to integrate with HomeKit. During the development process, I've encountered a couple of issues regarding sensor data display within the Home app and would appreciate any insights from the community. Issue 1: Temperature Sensor Display We have observed that when the temperature sensor is implemented as a cluster within the device, its data fails to appear in the Home app interface. However, if it is configured as an independent endpoint, it displays correctly. Is this a specific requirement of HomeKit regarding the structure of clusters and endpoints in Matter devices? Issue 2: Support for HCHO and TVOC Sensor Display Does HomeKit currently support displaying real-time data from HCHO (Formaldehyde) and TVOC sensors? If so, are there specific cluster specifications or data types that need to be followed?
Replies
1
Boosts
0
Views
170
Activity
Oct ’25
Unable to download the latest EnableBluetoothCentralMatterClientDeveloperMode.mobileconfig certificate."
Hi Team, I’ve tried downloading the EnableBluetoothCentralMatterClientDeveloperMode.mobileconfig certificate from multiple sources, but all the links I found point to expired versions. Could you please help me with the URL to the latest version of this certificate? Here are the links I’ve already tried, but none of them worked: https://project-chip.github.io/connectedhomeip-doc/guides/darwin.html#profile-installation https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/darwin.md Apple Site Looking forward to your support. Thanks, Mantosh Kumar
Replies
2
Boosts
0
Views
263
Activity
Sep ’25
Matter over wifi without matter client developer profile
My iOS app uses the Matter framework to commission devices over Wi-Fi (not Thread). With the Matter Client Developer Profile installed, commissioning works perfectly. However, in TestFlight builds without the profile, commissioning fails, even though the app includes the Matter Allow Setup Payload capability and the following in Info.plist: <key>NSBonjourServices</key> <array> <string>_matter._tcp</string> <string>_matterc._udp</string> <string>_matterd._udp</string> </array> How can I enable Matter device commissioning using the Matter framework in production/TestFlight builds without the Matter Client Developer Profile? Please provide guidance or specific configurations needed for production environments
Replies
3
Boosts
0
Views
306
Activity
Aug ’25
Matter communication roundtrip times
I am working on an app (iOS, iPadOS & macOS (Mac Catalyst)) for a Home Automation device. I am using HomeKit APIs to access commissioned devices and provided APIs to get a MatterNodeID and then a MTRBaseDevice so I can query the device. Since the current APIs for accessing Matter devices this way do not support subscriptions I am using the readAttributes() method of the MTRBaseDevice to get information from the device. There can be significant lag time in these reads and I realize my network speed and congestion can contribute to this. The time lag makes me wonder how readAttributes() obtains the data? Does the method query the Home hub which replies using cached data, or does the hub in turn query the device to insure it is providing the latest data? I am pretty sure all this communication goes through the hub because it works whether I am on the same network as the device or in a location far, far away.
Replies
1
Boosts
0
Views
313
Activity
Jul ’25
Home app color temperature lamp color temperature synchronization issue
Connect the Zigbee color temperature light bridge to the Home app through the Matter Bridge (a device with a screen), and adjust the color temperature of the light on the screen. However, the color temperature of the corresponding device on the Home app is not synchronized, as shown in the following figure What information is missing from the Home app when my device reports color temperature during control?
Replies
1
Boosts
0
Views
242
Activity
Jul ’25
Mapping issue between physical buttons of the Matter switch and buttons on the Apple App
Hi, We are developing a Matter switch product. The switch contains 4 buttons, and each button supports click, double click, and held actions. Currently, the device can be successfully commissioned with a HomePod mini, and in the Apple Home app, it is displayed as 4 buttons with options for click, double click, and held for each. The only issue is that the order of the 4 buttons in the Home app does not correspond to the endpoint order (endpoint 1–4). For example, the following mapping might occur: endpoint 1 → button 2 endpoint 2 → button 3 ... We found a related issue on the Apple Developer Forums that matches what we're experiencing: https://developer.apple.com/forums/thread/772367?utm_source=chatgpt.com According to the official response, the problem seems to be caused by insufficient metadata being reported by the device. Could you please provide more specific guidance on what exact information needs to be reported from the device side? We have already tried adding the Fixed Label and User Label clusters to the device, but they don't seem to have any effect. Ideally, we would like the button labels in the Home app add our custom names in the correct order, as below: button 1 (right_button) button 2 (up_button) button 3 (down_button) button 4 (left_button) This would provide a much better user experience. Thank you in advance!
Replies
1
Boosts
1
Views
310
Activity
Jul ’25
isBridged & uniqueIdentifiersForBridgedAccessories not set for bridged matter accessories and the respective bridge device
since macOS 15.5 and iOS 18.5 bridged matter devices have isBridged set to false and the respective bridge device has an empty uniqueIdentifiersForBridgedAccessories list. before these updates both were set as expected. i also noticed that the bridged matter devices include all endpoints for all bridged devices. not only the ones for themselves.
Replies
3
Boosts
0
Views
280
Activity
Jun ’25
What does this error mean: Error Domain=com.apple.MatterSupport Code=1 "(null)"
Hi, I have tried to add Eve energy plug but still pairing failed, it reported always same error. Error Domain=com.apple.MatterSupport Code=1 "(null)" Could anyone help? Regards
Replies
1
Boosts
1
Views
1.1k
Activity
May ’25
Removing Matter device artefacts.
How to remove Matter accessory connection artefacts? This appears after connecting and then removing a Matter test accessory. Please see attached screenshot:
Replies
2
Boosts
0
Views
322
Activity
May ’25
How to display the manufacturer's APP in the device information in the Home APP
We are developing a matter device. How can we display our own APP under the Home device information?
Replies
1
Boosts
0
Views
148
Activity
May ’25
Matter request extension no long working for Thread devices
My app has been working fine until just recently, now it can not add Matter devices over Thread (Wifi commissioning still works). I didn't change anything on my side, so not sure if an update maybe changed things? In any case, reading through my logs (and i have the matter/thread debug profiles installed). it seems like the device is added to the thread network fine, and it looks to me like the phone is successfully commissioning the device to the Apple setup fabric, but then it seems to choke on this line and i don't think the device is actually added to the keychain/matter db, so it fails later on . error 12:18:03.369036-0700 homed [2610726604/1195614123(679130348)] failed to find metric hmmtrAccessoryMetricNameCommissioningAccessory to complete I can confirm the device does join my thread border router as its pingable, and it does not seem to be in setup mode anymore (light stops flashing), so i assume it thinks its commissioned. The device i'm pairing is a Onvis (matter certified) outlet to an espressif build of a OTBR. My phone is running 18.4.1 if that matters (no pun intended) . I have also cleared out existing Matter pairings from the phone, as well ensured the device was factory reset before every try. Here is a snippet of the log towards the end where is looks like pairing works, but then errors out. I would post more but my post has a 7k character limit. default 12:18:02.836555-0700 homed Success status report received. Session was established default 12:18:02.836734-0700 homed SecureSession[0x9bb100f00, LSID:64711]: State change 'kEstablishing' --> 'kActive' default 12:18:02.837438-0700 homed Successfully finished commissioning step 'kFindOperationalForStayActive' default 12:18:02.837467-0700 homed Commissioning stage next step: 'kFindOperationalForStayActive' -> 'ICDSendStayActive' default 12:18:02.837500-0700 homed Performing next commissioning step 'ICDSendStayActive' default 12:18:02.837574-0700 homed Skipping kICDSendStayActive default 12:18:02.837627-0700 homed Successfully finished commissioning step 'ICDSendStayActive' default 12:18:02.837650-0700 homed Commissioning stage next step: 'ICDSendStayActive' -> 'kFindOperationalForCommissioningComplete' default 12:18:02.837670-0700 homed Performing next commissioning step 'kFindOperationalForCommissioningComplete' default 12:18:02.838036-0700 homed Found an existing secure session to [2:000000009B9C86CC]! default 12:18:02.838149-0700 homed Successfully finished commissioning step 'kFindOperationalForCommissioningComplete' default 12:18:02.838697-0700 homed Commissioning stage next step: 'kFindOperationalForCommissioningComplete' -> 'SendComplete' default 12:18:02.838893-0700 homed Performing next commissioning step 'SendComplete' default 12:18:02.839092-0700 homed <<< [E:35494i S:64711 M:193726318] (S) Msg TX from 0000000086BCA241 to 2:000000009B9C86CC [47A0] [UDP:[fd01:11b8:de1c:1:968a:c465:6fe8:e12a]:5540] --- Type 0001:08 (IM:InvokeCommandRequest) (B:59) default 12:18:02.839133-0700 homed ??1 [E:35494i S:64711 M:193726318] (S) Msg Retransmission to 2:000000009B9C86CC scheduled for 2910ms from now [State:Active II:800 AI:800 AT:4000] default 12:18:02.839257-0700 homed <<< [E:35493i S:0 M:19014618 (Ack:7538941)] (U) Msg TX from 3251BD376C43B658 to 0:0000000000000000 [0000] [UDP:[fd01:11b8:de1c:1:968a:c465:6fe8:e12a]:5540] --- Type 0000:10 (SecureChannel:StandaloneAck) (B:26) default 12:18:03.356373-0700 homed >>> [E:35494i S:64711 M:174417481 (Ack:193726318)] (S) Msg RX from 2:000000009B9C86CC [47A0] to 0000000086BCA241 --- Type 0001:09 (IM:InvokeCommandResponse) (B:70) default 12:18:03.356559-0700 homed Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0005 default 12:18:03.356584-0700 homed Received CommissioningComplete response, errorCode=0 default 12:18:03.356622-0700 homed Successfully finished commissioning step 'SendComplete' default 12:18:03.356648-0700 homed Commissioning stage next step: 'SendComplete' -> 'Cleanup' default 12:18:03.356746-0700 homed Performing next commissioning step 'Cleanup' default 12:18:03.356803-0700 homed Successfully finished commissioning step 'Cleanup' default 12:18:03.356916-0700 homed Closing all BLE connections default 12:18:03.357084-0700 homed Auto-closing end point's BLE connection. default 12:18:03.358146-0700 homed SecureSession[0x9bb1003c0, LSID:64710]: State change 'kActive' --> 'kPendingEviction' default 12:18:03.358652-0700 homed Commissioning complete for node ID 0x000000009B9C86CC: success default 12:18:03.358678-0700 homed <MTRDeviceController_Concrete: 0x9b8e33100, uuid: 3F6C2281-D873-4D82-BE3E-722446EA66E7, suspended: NO> DeviceControllerDelegate Commissioning complete. NodeId 0x000000009b9c86cc Status src/controller/CHIPDeviceController.cpp:2932: Success ... default 12:18:03.367999-0700 homed <MTRDeviceController_Concrete: 0x9b8e33100, uuid: 3F6C2281-D873-4D82-BE3E-722446EA66E7, suspended: NO> 1 delegates called for -[MTRDeviceController controller:commissioningComplete:nodeID:metrics:] error 12:18:03.369036-0700 homed [2610726604/1195614123(679130348)] failed to find metric hmmtrAccessoryMetricNameCommissioningAccessory to complete error 12:18:03.426636-0700 HomeUIService Unexpected accessory setup progress CASE Session Sanity Check Passed default 12:18:03.426850-0700 homed Could not find home with valid fabric ID corresponding to fabric UUID: FB19AA02-5E34-40C5-BB9D-B1B1AF51E08B ... error 12:18:03.460841-0700 homed [188914BD-5163-425C-9E59-CAE9BFA1A288] Could not find system commissioner pairing for newly staged server with identifier f1:64:16:3f:79:b8 in all pairings: ( .. default 12:18:03.460906-0700 homed Answering incoming message HMASC.m.confirmDeviceCredential (186EE57F-330B-435F-A949-0E4C5D6954AB) from client 'HomeUIService' that expects a response with error Error Domain=HMErrorDomain Code=2 "(null)" error 12:18:03.461167-0700 HomeUIService [BD890E19] Failed to stage CHIP accessory pairing in steps: Error Domain=HMErrorDomain Code=2 "(null)" error 12:18:03.462121-0700 HomeUIService -[HSSetupStateMachineCHIPPartnerConfiguration stageCHIPAccessory]_block_invoke Failed to stage CHIP accessory: Error Domain=HMErrorDomain Code=2 "(null)" default 12:18:03.462172-0700 HomeUIService -[HSSetupStateMachineConfiguration setPairingError:] *** Setting pairingError *** = Error Domain=HMErrorDomain Code=2 "(null)"
Replies
3
Boosts
0
Views
319
Activity
May ’25
Matter Generic Switch not resuming subscription on reboot
I'm developing a Matter-over-thread generic switch with 2 generic switch endpoints. This is configured as an Intermittently Connected Device with Long Idle Time. I have an Apple TV serving as the thread border router. I'm able to commission the device successfully in the Home app and assign actions to each of the buttons however when the device is rebooted the subscription doesn't appear to resume successfully and the buttons no longer work. I've tested this on various SOC's with their respective SDKs including ESP32-C6, nrf52840 and EFR32MG24 and the behaviour was consistent across all of them. It was working originally when I first started out on the ESP32-C6, then the issue popped up first when I was testing the nrf52840. In that SDK I set persistent subscriptions explicitly and it seemed to resolve the issue until it popped up again when I found that unplugging and restarting the Apple TV completely which appeared to fix the issue with subscriptions not resuming. Recently I've added a Home Pod Mini Gen 2 to the matter fabric so there are now two TBR on the network and restarting both the Apple TV and the HomePod doesn't appear to resolve the issue anymore and the subscriptions are not resuming across all three SOC's on device reboot I'm wondering if there might be something preventing the subscriptions from resuming?
Replies
2
Boosts
0
Views
240
Activity
May ’25
Matter device data pipeline
I'm device manufacturer and in future planning to get my device matter certified. If I want my device data for analytics purpose into my cloud than what is the best way possible. My research says that the most latest approach suggested by apple is, developing a custom mobile app using device homekit sdk and subscribe to device state and send it to my cloud. If I go that route, will it work even though the device was onboarded via homekit app and homekit hub device is also there. I want to make sure that both path will be active, device to hub to home app and device to custom app to my cloud, and both on matter ecosystem. The homekit sdk and matter support mentioned here https://developer.apple.com/apple-home/matter, are these two same thing?
Replies
1
Boosts
0
Views
219
Activity
May ’25
Best way to pass a HomeKit or Matter setup code to the Home App Programatically
Apologies in advance for the long post. I'm new to HomeKit and Matter but not to development, I'm trying to write a SwiftUI app for my smart home to store all of my HomeKit and Matter setup barcodes along with other bits of information. The intention is to scan the QR codes with my App and then save that QR payload in a simple Database along with other manually entered device details. Example payloads: X-HM://00GWIN0B5PHPG <-- Eufy V120 HomeKit Camera MT:GE.01-C-03FOPP6B110 <-- Moes GU10 Matter Bulb I have it 99% working, my app is even able to discern the manual pairing code from the above payloads. However one of the key feature of this is that I want to open a device entry in my app and tap the HomeKit or Matter code displayed in my app and and either: a) Ideally pass it off to the Apple Home app to initiate pairing just like the native Camera App can. b) Create a custom flow in my app using the HomeKit or Matter API's to initiate paring from within my app. So ideally just like the flow that happens when you scan a setup QR with the normal camera and tap "Open in Home". However I want to trigger this flow with just knowing the Payload and not with scanning it via the camera. I was hoping there might be something as simple as a URL scheme that I could call with the payload as a variable and it then deep links and switches to the Home app, but I haven't found any info relating to this that actually works. This is some code I have tried with the HomeKit API but this also results in an error: import HomeKit func startHomePairing(with setupCode: String) { // Handle HomeKit setup guard let payload = HMAccessorySetupPayload(url: URL(string: setupCode)!) else { print("Invalid HomeKit setup code or format.") return } let setupRequest = HMAccessorySetupRequest() setupRequest.payload = payload let setupManager = HMAccessorySetupManager() // Perform the setup request and handle the result setupManager.performAccessorySetup(using: setupRequest) { result, error in if let error = error { // Error handling: print the error details print("Error starting setup: \(error.localizedDescription)") // Print more details for debugging print("Full Error: \(error)") } else { // Success: pairing was successful print("Successfully launched Home app for HomeKit setup.") } } } But when passing in the QR payloads above it give the following .. HomeKit Code [0CAB3B05] Failed to perform accessory setup using request: Error Domain=HMErrorDomain Code=17 "(null)" Matter Code Failed to create HMSetupAccessoryPayload from setup payload URL MT:GE.01-C-03FOPP6B110: Error Domain=HMErrorDomain Code=3 "(null)" I have added the "HomeKit" and "Matter Allow Setup Payload" capabilities to my app, I have also ensured I have these in the .plist .. <key>NSHomeKitUsageDescription</key> <string>Access required to HomeKit to initiate pairing for new accessories</string> I also added a call to ensure my app appears in the Settings / Privacy / HomeKit section. I originally thought was a seemingly simple task, but I am really struggling with how to make it work!
Replies
4
Boosts
0
Views
307
Activity
Apr ’25
Some issues regarding the utilization of Matter Support
During the commissioning process of our app, the following two errors frequently occur: 1.Could not find system commissioner pairing for newly staged server with identifier <private> in all pairings 2.Failed to open pairing window on the device I have uploaded the log with the ID: FB17343511 Could you assist us in resolving this issue? Thank you.
Replies
0
Boosts
0
Views
151
Activity
Apr ’25
Matter 1.3 smart plug energy consumption, iOS 18.4 betas:
Hello, I have iOS 18.4 beta, where can I see the energy consumption, by Matter 1.3?, in Apple Home application?, I see it is in beta, thanks Michal.
Replies
0
Boosts
0
Views
98
Activity
Mar ’25
MTRBaseDevice InvokeCommand method
I am calling InvokeCommand on a MTRBaseDevice I received from HomeKit. The device receiving the command is using Matter 1.3 and is expecting a Boolean State Configuration new to that version of the spec. That may be the reason why I get the following error: MTRInteractionErrorDomain Code=133 "The cluster command is malformed, has missing fields, or fields with invalid values.Command not carried out." I am sending the following as the commandField parameter: ["type": "UnsignedInteger", "value": 1] When I look into those values more deeply, the value is specified as an NSNumber holding an Int16 value of 1. I created the NSNumber using a Uint8(1). The docs suggest this should result in an NSNumber treated as an unsigned char, but the debugger reports it as a Int16. I tried changing the type in the command field to "SignedInteger" and this had no effect on the error I receive. So I suppose the problem could also be that my parameters always get a signed value when an unsigned value is expected. Is this something I can correct using the current APIs, or do I need to wait for Matter 1.3 support?
Replies
3
Boosts
0
Views
414
Activity
Mar ’25
Configuring the 72nd action for the Matter switch on AppleHome will fail
I use Homepod Mini as the gateway and have bound 9 Matter lights and 7 Matter switches. Each of my switches has 12 buttons, and each button supports three functions: single click, double click, and long press. Therefore, a total of 252 actions can be configured for 7 * 12 * 3. Currently, a total of 71 actions are configured for the 7 Matter switches. When configuring the 72nd action, the app will prompt that the operation cannot be completed. But if you delete a few previously configured actions, such as 68 actions, then you can configure 3 more actions (69, 70, 71). However, as long as you configure the 72nd action, the app will prompt that the operation cannot be completed, as if the available space is occupied. What is the reason for this?
Replies
2
Boosts
0
Views
338
Activity
Mar ’25
Matter code to control a device?
I would like to explore developing apps to integrate with Matter, but it seems that there are limited code examples available. To start with I would like to create a MacOs or iOS application to control a Matter device like a light bulb. I would as an example just like to know how to turn the light on or off. Where should I start?
Replies
0
Boosts
0
Views
192
Activity
Mar ’25