Post

Replies

Boosts

Views

Activity

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
704
Jun ’24