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

Posts under Matter tag

41 Posts
Sort by:
Post not yet marked as solved
0 Replies
151 Views
Hi, I am working on developing a MATTER device, for which I am using iPhone and Homepod mini. How do I capture the debug logs from Homepod Mini
Posted Last updated
.
Post not yet marked as solved
0 Replies
219 Views
My matter accessory define an endpoint of type light, with a custom cluster. if I connect my accessory using Home app, I'm I supposed to find HMService/HMCharacteristic corresponding to my custom matter cluster? Is there any requirement on the custom cluster to have it visible in HomeKit ? Thanks.
Posted Last updated
.
Post not yet marked as solved
0 Replies
241 Views
Greetings! I've added a Matter accessory via the Apple Home app. In my app, I'm attempting to commission this device and add it to my fabric. However, when I try to open the commissioning window, I receive an error stating, MTRBaseDevice doesn't support openCommissioningWindowWithDiscriminator over XPC. It appears that opening a commissioning window via an XPC connection is not yet supported. Is there another method to commission the device? Can I retrieve the setup payload from the MTRBaseDevice object or the shared MTRDeviceController? Here's the simplified version of my code: var home: HMHome // HMHome received via HMHomeManager var accessory: HMAccessory = home.accessory[0] // my Matter-supported accessory let deviceController = MTRDeviceController.sharedController( withID: home.matterControllerID as NSCopying, xpcConnect: home.matterControllerXPCConnectBlock ) let device = MTRBaseDevice( nodeID: accessory.matterNodeID as NSNumber, controller: deviceController ) device.openCommissioningWindow( withDiscriminator: 0, duration: 900, queue: .main) { payload, error in if let payload { // payload not received } else if let error { // I'm getting here "Error Domain=MTRErrorDomain Code=6 "(null)"" // and "MTRBaseDevice doesn't support openCommissioningWindowWithDiscriminator over XPC" logged in the console print(error) }
Posted Last updated
.
Post not yet marked as solved
0 Replies
159 Views
When the Homekit device is added to the home app and the device settings interface is opened, the supplier app will be displayed. We are currently developing a Matter product and would like to implement this feature. We consulted with the Matter testing agency and they said they need to communicate with Apple. However, they did not find a solution after consulting with Apple customer service. No one knows how to do it?
Posted Last updated
.
Post not yet marked as solved
1 Replies
591 Views
How to commission a device to our fabric after adding it using Matter.Support We have the following configuration: eero border router our own thermostat device that we are developing no home pod or home TV are used We have followed this guide https://developer.apple.com/documentation/mattersupport/adding-matter-support-to-your-ecosystem and implemented Matter Extension, as Matter.Framework is no more allowed to pair device. In Matter Extension the following callbacks are fired: override func selectThreadNetwork(from threadScanResults: [MatterAddDeviceExtensionRequestHandler.ThreadScanResult]) async throws -> MatterAddDeviceExtensionRequestHandler.ThreadNetworkAssociation override func commissionDevice(in home: MatterAddDeviceRequest.Home?, onboardingPayload: String, commissioningID: UUID) async throws In our demo app the following function completes without errors try await request.perform() The thermostat device seems to be successfully commissioned. In https://developer.apple.com/documentation/mattersupport/adding-matter-support-to-your-ecosystem there is a comment that says: Use Matter.Framework APIs to pair the accessory to your application with the provided onboardingPayload. How should this thing be done ? We tried to start the matter controller in the old way: func start() -> Bool { if (self.matterController == nil) { let storage = MatterStorage.shared let factory = MTRDeviceControllerFactory.sharedInstance() let factoryParams = MTRDeviceControllerFactoryParams(storage: storage) do { try factory.start(factoryParams) } catch { return false } let keys = FabricKeys() let params = MTRDeviceControllerStartupParams(signing: keys, fabricId: UInt64(fabricId), ipk: keys.ipk) params.vendorID = NSNumber(value: self.vendorId) self.matterController = try? factory.createController(onExistingFabric: params) let controllerNid = self.matterController?.controllerNodeID if (self.matterController == nil) { self.matterController = try? factory.createController(onNewFabric: params) } } return (self.matterController != nil) } Certificate are generated locally as in Matter Darwin example. We tried to call let params = MTRCommissioningParameters() matterController?.commissionNode(withID: NSNumber(value: self.deviceNid), commissioningParams: params) in commissionDevice of Matter Extension but we get error: Invalid object state.
Posted
by DenZuck.
Last updated
.
Post not yet marked as solved
0 Replies
252 Views
func perform() async throws What are the abnormal errors thrown by the above ? Can you provide a clear list? error:Error Domain=com.apple.MatterSupport Code=1 "(null)" Where can I find the error information in the document? MatterSupport / MatterAddDeviceRequest / perform() What does this error mean: Error Domain=com.apple.MatterSupport Code=1
Posted Last updated
.
Post not yet marked as solved
0 Replies
293 Views
Reproduction steps Xcode15.1 iPhone14Pro/iOS16.3 commission with MatterSupport implementation @objc class func commission(with setupPayload: MTRSetupPayload?) throws { MTRLog("MatterSupport start request") let topology: MatterAddDeviceRequest.Topology = .init( ecosystemName: "SmartHome", homes: [ // .init(displayName: "smart office"), // .init(displayName: "smart living"), ] ) let request = MatterAddDeviceRequest( topology: topology, setupPayload: setupPayload ) Task { do { try await request.perform() } catch { throw error } } } Always failed with Error on commissioning step 'FindOperational': '../../../../../../../../Sources/CHIPFramework/connectedhomeip/src/credentials/CHIPCert.cpp:488: CHIP Error 0x0000004A: CA certificate not found' relate issue: https://github.com/project-chip/connectedhomeip/issues/31309
Posted
by RobinGao.
Last updated
.
Post marked as solved
1 Replies
326 Views
I created a Matter device with a fan endpoint with fan_control attribute. When I setup this device via Google Home, I see the percent control for the fan. However, when I setup via the iOS Home app, I only see an on/off switch. Is the fan_control.percent_current Matter attribute supported? Or any of the fan_control attributes?
Posted Last updated
.
Post not yet marked as solved
3 Replies
1.6k Views
I'd like to learn how a Matter "Binding" can be created on iOS, e.g. via the "Matter" Framework. I'm aware of the Matter Framework "Documentation" here. But since it's missing any real description or documentation it's not helpful to me atm. Any examples/ tutorials/ explanations are greatly appreciated.
Posted Last updated
.
Post not yet marked as solved
8 Replies
1.1k Views
To be able to paire a matter device on ios I need to installed on my iPhone the matter client developper profile as indicate on the apple documentation Adding Matter support to your ecosystem | Apple Developer Documentation (To test your app on the iOS or macOS device that initiates the pairing, download the developer profile now, then install it.) When I do that it works perfectly. Otherwise the documentation says that the profile is only needed for development but when I want to use my app from the apple store (validate by Apple) and when I remove the profile it doesn't work anymore. What do I have to do to paire Matter device on iphone without the Matter client developer profile.
Posted Last updated
.
Post not yet marked as solved
1 Replies
366 Views
I've been getting into Matter framework and succeeded to add a matter device into Apple Home app. Then, I use a HomeKit base app to get that device and would like to control that device directly through Matter framework. This is how I create a MTR Device Controller static func create(withHmAccessory hmAccessory: HMAccessory, ofHome hmHome: HMHome) -> HomekitLockAccessory { if #available(iOS 16.4, *) { let matterNodeId = hmHome.matterControllerID as NSCopying let controller = MTRDeviceController.sharedController( withID: matterNodeId, xpcConnect: hmHome.matterControllerXPCConnectBlock ) return MatterHomekitLockAccessory(hmAccessory: hmAccessory, controller: controller) } return HomekitLockAccessory(hmAccessory: hmAccessory) } the controller never gets running and I'm not able to get that controllerNodeId from it. Here is error log
Posted
by Ty-Tran.
Last updated
.
Post not yet marked as solved
0 Replies
314 Views
How to set matter device endpoints default name? eg. I have Light Panel with 2 endpoints. endpoint 1 name: Open; endpoint 2 name: Close; I've tried FixedLabel, but it not work.
Posted
by jack1123.
Last updated
.
Post not yet marked as solved
0 Replies
385 Views
I tried to add my Eve Weather and Door & Window. It failed continuously and immediately with below log. Nov 23 16:24:50 iPhone-2 homed(HomeKitMatter)[173] <Error>: [589021415/1061261160] CHIP Stack is not running Nov 23 16:24:50 iPhone-2 homed(HomeKitMatter)[173] <Error>: [589021415/1061261160] CHIP Accessory pairing failed with error Error Domain=HAPErrorDomain Code=3 Nov 23 16:24:50 iPhone-2 homed(HomeKitDaemon)[173] <Error>: [188914BD-5163-425C-9E59-CAE9BFA1A288] Failed to stage CHIP accessory pairing for request UUID <private>: Error Domain=HMErrorDomain Code=18 "Pairing Failed" UserInfo={NSLocalizedDescription=Pairing Failed, NSUnderlyingError=0xc508b7df0 {Error Domain=HAPErrorDomain Code=3}} Nov 23 16:24:50 iPhone-2 homed(HomeKitDaemon)[173] <Notice>: Answering incoming message HMASC.m.stageCHIPAccessoryPairingInSteps (2D3E9A84-52E8-4614-8B79-A23A5DBC245D) from client 'HomeUIService' that does expect a response with error Error Domain=HMErrorDomain Code=18 "Pairing Failed" UserInfo={NSLocalizedDescription=Pairing Failed, NSUnderlyingError=0xc508b7df0 {Error Domain=HAPErrorDomain Code=3 "(null)"}} Nov 23 16:24:50 iPhone-2 homed(HomeKitMetrics)[173] <Error>: [188914BD-5163-425C-9E59-CAE9BFA1A288] tag="stagedPairingFailure" desc="Failed to stage CHIP accessory for request UUID" errorDomain="HMErrorDomain" errorCode="18" underlyingErrorDomain="HAPErrorDomain" underlyingErrorCode="3" Nov 23 16:24:50 iPhone-2 HomeUIService(HomeKit)[521] <Error>: [CF47D609-EF2F-44E3-96EC-89906F4F33C4] Failed to stage CHIP accessory pairing in steps: Error Domain=HMErrorDomain Code=18 UserInfo={NSLocalizedDescription=<private>, NSUnderlyingError=0x283431fe0 {Error Domain=HAPErrorDomain Code=3}}
Posted
by jm4-lee.
Last updated
.
Post not yet marked as solved
0 Replies
432 Views
Hello. I'd like to ask below issue. I have two SmartThings hub and one Matter device. After I add it to the first hub, and then share this to the second hub with QR code, it always fails with below log. (SmartThings app shows both MPC and QR code when sharing a device) with MPC code, it works fine with QR code, it always fails in HomeUIService default 23:15:16.895670+0900 homed >>> [E:42896i S:51446 M:229068112 (Ack:46785785)] (S) Msg RX from 0:FFFFFFFB00000000 [0000] --- Type 0001:09 (IM:InvokeCommandResponse) default 23:15:16.897723+0900 homed Received Command Response Data, Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0001 default 23:15:16.897753+0900 homed Failsafe disarmed default 23:15:16.897789+0900 homed Successfully finished commissioning step 'Cleanup' default 23:15:16.897823+0900 homed DeviceControllerDelegate Commissioning complete. NodeId 965088193 Status ../../../../../../../../Sources/CHIPFramework/connectedhomeip/src/controller/CHIPDeviceController.cpp:1405: CHIP Error 0x0000007E: Trying to add a NOC for a fabric that already exists default 23:15:16.897892+0900 proximitycontrold < 91167F44>: Needs to restart ranging session as guest default 23:15:16.897933+0900 homed SecureSession[0xda63c2b50]: Moving from state 'kActive' --> 'kPendingEviction' error 23:15:16.898150+0900 homed Creating NSError from ../../../../../../../../Sources/CHIPFramework/connectedhomeip/src/controller/CHIPDeviceController.cpp:1405: CHIP Error 0x0000007E: Trying to add a NOC for a fabric that already exists error 23:15:16.899257+0900 homed [965088193/1870446891] CHIP Accessory pairing failed: Error Domain=MTRErrorDomain Code=11 "The device is already a member of this fabric." UserInfo={NSLocalizedDescription=The device is already a member of this fabric.} error 23:15:16.901186+0900 homed [188914BD-5163-425C-9E59-CAE9BFA1A288] Failed to stage CHIP accessory pairing for request UUID <private>: Error Domain=HMErrorDomain Code=13 "Accessory is already paired" UserInfo={NSLocalizedDescription=Accessory is already paired, NSUnderlyingError=0xda63f4600 {Error Domain=HAPErrorDomain Code=18}} error 23:15:16.901587+0900 HomeUIService [34760036-B05B-475C-9C00-592445A9A053] Failed to stage CHIP accessory pairing in steps: Error Domain=HMErrorDomain Code=13 UserInfo={NSLocalizedDescription=<private>, NSUnderlyingError=0x2824bac70 {Error Domain=HAPErrorDomain Code=18}} default 23:15:16.901762+0900 homed Answering incoming message HMASC.m.confirmDeviceCredential (795677CF-21ED-4E60-A5D5-3A7BF67BACCB) from client 'HomeUIService' that does expect a response with error Error Domain=HMErrorDomain Code=13 "Accessory is already paired" UserInfo={NSLocalizedDescription=Accessory is already paired, NSUnderlyingError=0xda63f4600 {Error Domain=HAPErrorDomain Code=18 "(null)"}} default 23:15:16.902126+0900 HomeUIService -[HSSetupStateMachineCHIPPartnerConfiguration stageCHIPAccessory]_block_invoke Staged CHIP accessory without stagedCHIPAccessoryPairingIdentifier as it is already paired. error 23:15:16.902254+0900 homed [188914BD-5163-425C-9E59-CAE9BFA1A288] tag="stagedPairingFailure" desc="Failed to stage CHIP accessory for request UUID" errorDomain="HMErrorDomain" errorCode="13" underlyingErrorDomain="HAPErrorDomain" underlyingErrorCode="18" error 23:15:16.975718+0900 homed Creating NSError from /Library/Caches/com.apple.xbs/Sources/CHIPFramework/connectedhomeip/src/darwin/Framework/CHIP/MTRDeviceController.mm:701: CHIP Error 0x00000003: Incorrect state error 23:15:16.975922+0900 homed [965088193/1870446891] Error: Error Domain=MTRErrorDomain Code=6 "Invalid object state." UserInfo={NSLocalizedDescription=Invalid object state.}. Failed to establish a connection to the device for unpairing. The device will not be notified of removal error 23:15:16.979939+0900 homed Failed to remove keychain entry for accessory <HMDUnpairedHAPAccessory> - error Error Domain=HMErrorDomain Code=13 "Accessory is already paired" UserInfo={NSLocalizedDescription=Accessory is already paired, NSUnderlyingError=0xda63f4600 {Error Domain=HAPErrorDomain Code=18}}
Posted
by jm4-lee.
Last updated
.
Post not yet marked as solved
0 Replies
431 Views
Hello. I'd like to report something different behavior with before. In previous versions of iOS (16.1~), after completing Apple Home app → SmartThings iOS app Multi Fabric onboarding, there was only one iOS system fabric in the device's fabric list as shown below. Apple Home app Apple Keychain (iOS system fabric commissioned by the Apple Home app or SmartThings iOS app) SmartThings In iOS 16.6.1, after completing Apple Home app → ST iOS app Multi Fabric onboarding, the device's fabric list has been changed to include two iOS system fabrics as shown below. Apple Home app Apple Keychain (iOS system fabric commissioned by the Apple Home app) Apple Keychain (iOS system fabric commissioned by the SmartThings iOS app) SmartThings At this time, if the user removes the device from the SmartThings iOS app, only SmartThings fabric (4) will be deleted and Apple Keychain (3) will remain. Apple Home app Apple Keychain (iOS system fabric commissioned by the Apple Home app) Apple Keychain (iOS system fabric commissioned by the SmartThings iOS app) I'm afraid that it will fail if I try to add my device to Google Home or Alexa. Because max fabric count is 5 and it counts Apple keychain also. Is this behavior expected? Thanks.
Posted
by jm4-lee.
Last updated
.
Post not yet marked as solved
1 Replies
495 Views
Hi, I'm professionally developing a Matter window covering, which needs support for an additional switch. Matter provides a way to customize devices by adding additional clusters to an existing endpoint. In my example, I would like to have a Window Covering Device on endpoints 1 & 2 (Cluster 0x0102) with each having an additional OnOff-Cluster (0x0006). The OnOff-Switch would change the device's behaviour internally. I also tried to use composed devices by having a Window Covering Device (on endpoints 1 & 3) combined with either a OnOff Plug-In Device and a OnOff Light (on endpoints 2 & 4) with a proper configuration of the PartsList-attributes. Both of these variations are working kind of. Drawbacks of the solutions: The Icons shown in Home are quit miss-leading. If the user chooses the "show as separate tiles"-option, the link between the slider and the switch get lost (I would hope, that the composed devices wouldn't separate). The names of the widgets get chosen randomly, so that "Shutter 1" is associated with "Light 2" and vice versa... I hoped, that if the Slider and the Switch would be on the same endpoint, I kind of magically works. But I isn't. The Switch is simply not shown (or did I miss id somewhere?). Is this under construction? Or is it already supported, but I did not implement it correctly? Please could you assist? BTW: My implementation is using the esp-matter SDK from Espressif. I tested my implementation with the CHIP-Tool and think I could verify the proper implementation. Thanks in advance.
Posted Last updated
.
Post not yet marked as solved
0 Replies
341 Views
There are a number of window covering types that have tilt only capabilities, such some venetian blinds. The matter specification allows for a window covering to have tilt only functionality and attributes. When I add one of the tilt only Matter accessories to the Home app, I get "This accessory is not responding" If I go into Accessory Details and Settings, I am still able to use the tilt slider (see photo), however the target tilt percentage is always sent as 100% (90 degrees) or 0% (0 degrees). There is no granularity.
Posted Last updated
.