One Logo Pool Ball
Matter · IOS API REFERENCE

MTRDevice

class · iOS 16.1+ · SDK 27.1

class MTRDevice

Members (26)

init · iOS 16.4+

init

TypeScript
static initNodeIDController(nodeID: _Foundation_NSNumber, controller: MTRDeviceController): MTRDevice
Swift declaration
init(nodeID: NSNumber, controller: MTRDeviceController)
init · iOS 16.1+ · Deprecated in iOS 16.4

init

TypeScript
static initNodeIDDeviceController(nodeID: number, deviceController: MTRDeviceController): MTRDevice
Swift declaration
init(nodeID: UInt64, deviceController: MTRDeviceController)
method · iOS 18.0+

add

TypeScript
addQueue(delegate: Implements<MTRDeviceDelegate> | SDKHandle, queue: _Dispatch_DispatchQueue): void
Swift declaration
func add(_ delegate: any MTRDeviceDelegate, queue: dispatch_queue_t)
method · iOS 18.0+

add

TypeScript
addQueueInterestedPathsForAttributesInterestedPathsForEvents(delegate: Implements<MTRDeviceDelegate> | SDKHandle, queue: _Dispatch_DispatchQueue, interestedPathsForAttributes?: (Array<unknown>) | null, interestedPathsForEvents?: (Array<unknown>) | null): void
Swift declaration
func add(_ delegate: any MTRDeviceDelegate, queue: dispatch_queue_t, interestedPathsForAttributes: [Any]?, interestedPathsForEvents: [Any]?)
method · iOS 18.4+

descriptorClusters

TypeScript
descriptorClusters(): NativeMap<MTRAttributePath, Record<string, unknown>>
Swift declaration
func descriptorClusters() -> [MTRAttributePath : [String : Any]]
method · iOS 17.6+

downloadLog

TypeScript
downloadLog(type: MTRDiagnosticLogType, timeout: number, queue: _Dispatch_DispatchQueue, completion: ((arg0: (string) | null, arg1: (NativeError) | null) => void)): void
Swift declaration
func downloadLog(of type: MTRDiagnosticLogType, timeout: TimeInterval, queue: dispatch_queue_t) async throws -> URL
method · iOS 17.4+

invokeCommand

TypeScript
invokeCommandWithEndpointIDClusterIDCommandIDCommandFieldsExpectedValuesExpectedValueIntervalQueueCompletion(endpointID: _Foundation_NSNumber, clusterID: _Foundation_NSNumber, commandID: _Foundation_NSNumber, commandFields: (Record<string, unknown>) | null, expectedValues: (Array<Record<string, unknown>>) | null, expectedValueInterval: (_Foundation_NSNumber) | null, queue: _Dispatch_DispatchQueue, completion: ((arg0: (Array<Record<string, unknown>>) | null, arg1: (NativeError) | null) => void)): void
Swift declaration
func invokeCommand(withEndpointID endpointID: NSNumber, clusterID: NSNumber, commandID: NSNumber, commandFields: [String : Any]?, expectedValues: [[String : Any]]?, expectedValueInterval: NSNumber?, queue: dispatch_queue_t) async throws -> [[String : Any]]
method · iOS 16.1+ · Deprecated in iOS 16.4

invokeCommand

TypeScript
invokeCommandWithEndpointIDClusterIDCommandIDCommandFieldsExpectedValuesExpectedValueIntervalTimedInvokeTimeoutClientQueueCompletion(endpointID: _Foundation_NSNumber, clusterID: _Foundation_NSNumber, commandID: _Foundation_NSNumber, commandFields: unknown, expectedValues: (Array<Record<string, unknown>>) | null, expectedValueInterval: (_Foundation_NSNumber) | null, timeout: (_Foundation_NSNumber) | null, queue: _Dispatch_DispatchQueue, completion: ((arg0: (Array<Record<string, unknown>>) | null, arg1: (NativeError) | null) => void)): void
Swift declaration
func invokeCommand(withEndpointID endpointID: NSNumber, clusterID: NSNumber, commandID: NSNumber, commandFields: Any, expectedValues: [[String : Any]]?, expectedValueInterval: NSNumber?, timedInvokeTimeout timeout: NSNumber?, clientQueue queue: dispatch_queue_t) async throws -> [[String : Any]]
method · iOS 16.4+

invokeCommand

TypeScript
invokeCommandWithEndpointIDClusterIDCommandIDCommandFieldsExpectedValuesExpectedValueIntervalTimedInvokeTimeoutQueueCompletion(endpointID: _Foundation_NSNumber, clusterID: _Foundation_NSNumber, commandID: _Foundation_NSNumber, commandFields: unknown, expectedValues: (Array<Record<string, unknown>>) | null, expectedValueInterval: (_Foundation_NSNumber) | null, timeout: (_Foundation_NSNumber) | null, queue: _Dispatch_DispatchQueue, completion: ((arg0: (Array<Record<string, unknown>>) | null, arg1: (NativeError) | null) => void)): void
Swift declaration
func invokeCommand(withEndpointID endpointID: NSNumber, clusterID: NSNumber, commandID: NSNumber, commandFields: Any, expectedValues: [[String : Any]]?, expectedValueInterval: NSNumber?, timedInvokeTimeout timeout: NSNumber?, queue: dispatch_queue_t) async throws -> [[String : Any]]
method · iOS 18.4+

invokeCommands

TypeScript
invokeCommands(commands: Array<Array<MTRCommandWithRequiredResponse>>, queue: _Dispatch_DispatchQueue, completion: ((arg0: (Array<Record<string, unknown>>) | null, arg1: (NativeError) | null) => void)): void
Swift declaration
func invokeCommands(_ commands: [[MTRCommandWithRequiredResponse]], queue: dispatch_queue_t) async throws -> [[String : Any]]
method · iOS 17.0+

openCommissioningWindow

TypeScript
openCommissioningWindowWithDiscriminatorDurationQueueCompletion(discriminator: _Foundation_NSNumber, duration: _Foundation_NSNumber, queue: _Dispatch_DispatchQueue, completion: ((arg0: (MTRSetupPayload) | null, arg1: (NativeError) | null) => void)): void
Swift declaration
func openCommissioningWindow(withDiscriminator discriminator: NSNumber, duration: NSNumber, queue: dispatch_queue_t) async throws -> MTRSetupPayload
method · iOS 16.2+

openCommissioningWindow

TypeScript
openCommissioningWindowWithSetupPasscodeDiscriminatorDurationQueueCompletion(setupPasscode: _Foundation_NSNumber, discriminator: _Foundation_NSNumber, duration: _Foundation_NSNumber, queue: _Dispatch_DispatchQueue, completion: ((arg0: (MTRSetupPayload) | null, arg1: (NativeError) | null) => void)): void
Swift declaration
func openCommissioningWindow(withSetupPasscode setupPasscode: NSNumber, discriminator: NSNumber, duration: NSNumber, queue: dispatch_queue_t) async throws -> MTRSetupPayload
method · iOS 18.2+

readAttributePaths

TypeScript
readAttributePaths(attributePaths: Array<MTRAttributeRequestPath>): Array<Record<string, unknown>>
Swift declaration
func readAttributePaths(_ attributePaths: [MTRAttributeRequestPath]) -> [[String : Any]]
method · iOS 16.1+

readAttribute

TypeScript
readAttribute(endpointID: _Foundation_NSNumber, clusterID: _Foundation_NSNumber, attributeID: _Foundation_NSNumber, params?: (MTRReadParams) | null): (Record<string, unknown>) | null
Swift declaration
func readAttribute(withEndpointID endpointID: NSNumber, clusterID: NSNumber, attributeID: NSNumber, params: MTRReadParams?) -> [String : Any]?
method · iOS 18.0+

remove

TypeScript
remove(delegate: Implements<MTRDeviceDelegate> | SDKHandle): void
Swift declaration
func remove(_ delegate: any MTRDeviceDelegate)
method · iOS 16.1+ · Deprecated in iOS 18.0

setDelegate

TypeScript
setDelegate(delegate: Implements<MTRDeviceDelegate> | SDKHandle, queue: _Dispatch_DispatchQueue): void
Swift declaration
func setDelegate(_ delegate: any MTRDeviceDelegate, queue: dispatch_queue_t)
method · iOS 18.3+

wait

TypeScript
wait(values: NativeMap<MTRAttributePath, Record<string, unknown>>, timeout: number, queue: _Dispatch_DispatchQueue, completion: ((arg0: (NativeError) | null) => void)): MTRAttributeValueWaiter
Swift declaration
func wait(forAttributeValues values: [MTRAttributePath : [String : Any]], timeout: TimeInterval, queue: dispatch_queue_t, completion: @escaping ((any Error)?) -> Void) -> MTRAttributeValueWaiter
method · iOS 16.1+

writeAttribute

TypeScript
writeAttribute(endpointID: _Foundation_NSNumber, clusterID: _Foundation_NSNumber, attributeID: _Foundation_NSNumber, value: unknown, expectedValueInterval: _Foundation_NSNumber, timeout?: (_Foundation_NSNumber) | null): void
Swift declaration
func writeAttribute(withEndpointID endpointID: NSNumber, clusterID: NSNumber, attributeID: NSNumber, value: Any, expectedValueInterval: NSNumber, timedWriteTimeout timeout: NSNumber?)
get · iOS 17.6+

deviceCachePrimed

TypeScript
get deviceCachePrimed(): boolean
Swift declaration
var deviceCachePrimed: Bool { get }
get · iOS 17.4+

deviceController

TypeScript
get deviceController(): (MTRDeviceController) | null
Swift declaration
var deviceController: MTRDeviceController? { get }
get · iOS 16.5+

estimatedStartTime

TypeScript
get estimatedStartTime(): (globalThis.Date) | null
Swift declaration
var estimatedStartTime: Date? { get }
get · iOS 17.6+

estimatedSubscriptionLatency

TypeScript
get estimatedSubscriptionLatency(): (_Foundation_NSNumber) | null
Swift declaration
@NSCopying var estimatedSubscriptionLatency: NSNumber? { get }
get · iOS 18.4+

networkCommissioningFeatures

TypeScript
get networkCommissioningFeatures(): MTRNetworkCommissioningFeature
Swift declaration
var networkCommissioningFeatures: MTRNetworkCommissioningFeature { get }
get · iOS 18.3+

productID

TypeScript
get productID(): (_Foundation_NSNumber) | null
Swift declaration
@NSCopying var productID: NSNumber? { get }
get · iOS 16.1+

state

TypeScript
get state(): MTRDeviceState
Swift declaration
var state: MTRDeviceState { get }
get · iOS 18.3+

vendorID

TypeScript
get vendorID(): (_Foundation_NSNumber) | null
Swift declaration
@NSCopying var vendorID: NSNumber? { get }

Skipped declarations

1 declarations were excluded from these bindings. Each reason comes from the generator or the iOS SDK compiler.

MTRDevice.init()

inherited init: cannot prove legal (class declares 2 custom initializers)

All Matter types →