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

Posts under Matter tag

35 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

Matter Device OTA upgrade issue
I am using a Matter Device to do the OTA test with iPhone 8 Plus, HomePod mini, and the Home App. however, there is some abnormal behavior. The problem is that: The Matter device in the pop-up message is still the old firmware version after the OTA upgrade successfully. A few minutes later, the firmware version is updated in the device info but Apple Home still pop-up that a new firmware version is available for the Matter device with the same new version. When I restart the HomePod mini, no more updates are available for my device. is the HomePod cached the firmware version? The firmware version display format is incorrect? I remember the firmware format is in string e.g. 1.6.138. I could confirm this issue happened on HomePod mini V17.4. example: The old firmware version of the Matter device should be 251689472 in number and 1.5.122.0 in string. The new firmware version of the Matter device after OTA should be 1.6.138.0 in string and 268470784 in number (OTA upgrade with new firmware version) **Please let me know if more information is needed. ** Environment: iPhone 8 Plus, IOS 16.7.5 Apple HomePod Mini V17.5
0
0
87
5d
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?
3
0
268
Jun ’24
Pairing with MatterSupport framework
In my RequestHandler.swift, this is extension of MatterAddDeviceExtensionRequestHandler After commission device is completion. I call getBaseDevice method in the MTRDeviceController. func controller(_ controller: MTRDeviceController, commissioningComplete error: Error?, nodeID: NSNumber?) { if error != nil { os_log(.default, "TrinhVM: commissioningComplete error -> \(error!.localizedDescription)") } else { os_log(.default, "TrinhVM: commissioningComplete ->\(nodeID)") chipController.getBaseDevice(1, queue: DispatchQueue.main, completionHandler: { chipDevice, error in if chipDevice == nil { os_log(.debug, "Status: Failed to establish a connection with the device") } else { os_log(.error, "Status: Success to establish a connection with the device: \(chipDevice?.description ?? "")") let onOff = MTRBaseClusterOnOff(device: chipDevice, endpointID: 1, queue: DispatchQueue.main) // Send the "on" command to the device onOff?.on { error in let resultString: String if let error = error { resultString = String(format: "An error occurred: 0x%02lx", error._code) } else { resultString = "On command success" } debugPrint(resultString) } } }) } } It's working well, the status is always "Status: Success to establish a connection with the device". And I can control the lightbulb here with chipDevice (chipDevice is MTRBaseDevice). But, after the commission device has finished in the extension, get back the application scheme. I call method: chipController.getBaseDevice(1, queue: DispatchQueue.main, completionHandler: { chipDevice, error in if chipDevice == nil { os_log(.debug, "Status: Failed to establish a connection with the device") } else { os_log(.error, "Status: Success to establish a connection with the device: \(chipDevice?.description ?? "")") let onOff = MTRBaseClusterOnOff(device: chipDevice, endpointID: 1, queue: DispatchQueue.main) // Send the "on" command to the device onOff?.on { error in let resultString: String if let error = error { resultString = String(format: "An error occurred: 0x%02lx", error._code) } else { resultString = "On command success" } debugPrint(resultString) } } }) It's always show timeout error . Mdns: Resolve failure (src/platform/Darwin/DnssdImpl.cpp:476: CHIP Error 0x00000074: The operation has been cancelled) OperationalSessionSetup[1:0000000000000015]: operational discovery failed: src/lib/address_resolve/AddressResolve_DefaultImpl.cpp:119: CHIP Error 0x00000032: Timeout Creating NSError from src/lib/address_resolve/AddressResolve_DefaultImpl.cpp:119: CHIP Error 0x00000032: Timeout (context: (null)) "Failed to establish a connection with the device Optional(Error Domain=MTRErrorDomain Code=9 \"Transaction timed out.\" UserInfo={NSLocalizedDescription=Transaction timed out.})" I don't know why the same method, works in RequestHandler.swift but not in AppScheme. Any support for this issue. Thank and best regards.
1
1
377
Jun ’24
Commission Matter accessory added via Apple Home
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) }
0
0
533
Feb ’24
Home App Jump to Supplier App Issue
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?
0
0
359
Feb ’24
Error on commissioning step 'FindOperational' -CA certificate not found
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
0
0
473
Jan ’24
[Matter] MTRController is not running
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
1
1
569
Dec ’23
CHIP Stack is not running
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}}
0
0
573
Nov ’23
[Matter] homed always raise error in case of multi fabric scenario
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}}
0
0
655
Nov ’23
[Matter] Abnormal behavior of Apple Keychain fabric in iOS
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.
0
0
630
Nov ’23
Matter: Support for additional clusters?
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.
1
1
783
Nov ’23
Matter tilt only Window Coverings and the Home App
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.
1
0
491
Oct ’23