---
title: MTRDevice
framework: matter
role: symbol
role_heading: Class
path: matter/mtrdevice
---

# MTRDevice

## Declaration

```swift
class MTRDevice
```

## Topics

### Initializers

- [init(nodeID:controller:)](matter/mtrdevice/init(nodeid:controller:).md)
- [init(nodeID:deviceController:)](matter/mtrdevice/init(nodeid:devicecontroller:).md)

### Instance Properties

- [deviceCachePrimed](matter/mtrdevice/devicecacheprimed.md)
- [deviceController](matter/mtrdevice/devicecontroller.md)
- [estimatedStartTime](matter/mtrdevice/estimatedstarttime.md)
- [estimatedSubscriptionLatency](matter/mtrdevice/estimatedsubscriptionlatency.md)
- [state](matter/mtrdevice/state.md)
- [networkCommissioningFeatures](matter/mtrdevice/networkcommissioningfeatures.md)
- [productID](matter/mtrdevice/productid.md)
- [vendorID](matter/mtrdevice/vendorid.md)

### Instance Methods

- [downloadLog(of:timeout:queue:completion:)](matter/mtrdevice/downloadlog(of:timeout:queue:completion:).md)
- [invokeCommand(withEndpointID:clusterID:commandID:commandFields:expectedValues:expectedValueInterval:queue:completion:)](matter/mtrdevice/invokecommand(withendpointid:clusterid:commandid:commandfields:expectedvalues:expectedvalueinterval:queue:completion:).md)
- [invokeCommand(withEndpointID:clusterID:commandID:commandFields:expectedValues:expectedValueInterval:timedInvokeTimeout:clientQueue:completion:)](matter/mtrdevice/invokecommand(withendpointid:clusterid:commandid:commandfields:expectedvalues:expectedvalueinterval:timedinvoketimeout:clientqueue:completion:).md)
- [invokeCommand(withEndpointID:clusterID:commandID:commandFields:expectedValues:expectedValueInterval:timedInvokeTimeout:queue:completion:)](matter/mtrdevice/invokecommand(withendpointid:clusterid:commandid:commandfields:expectedvalues:expectedvalueinterval:timedinvoketimeout:queue:completion:).md)
- [openCommissioningWindow(withDiscriminator:duration:queue:completion:)](matter/mtrdevice/opencommissioningwindow(withdiscriminator:duration:queue:completion:).md)
- [openCommissioningWindow(withSetupPasscode:discriminator:duration:queue:completion:)](matter/mtrdevice/opencommissioningwindow(withsetuppasscode:discriminator:duration:queue:completion:).md)
- [readAttribute(withEndpointID:clusterID:attributeID:params:)](matter/mtrdevice/readattribute(withendpointid:clusterid:attributeid:params:).md)
- [setDelegate(_:queue:)](matter/mtrdevice/setdelegate(_:queue:).md)
- [writeAttribute(withEndpointID:clusterID:attributeID:value:expectedValueInterval:timedWriteTimeout:)](matter/mtrdevice/writeattribute(withendpointid:clusterid:attributeid:value:expectedvalueinterval:timedwritetimeout:).md)
- [add(_:queue:)](matter/mtrdevice/add(_:queue:).md)
- [add(_:queue:interestedPathsForAttributes:interestedPathsForEvents:)](matter/mtrdevice/add(_:queue:interestedpathsforattributes:interestedpathsforevents:).md)
- [descriptorClusters()](matter/mtrdevice/descriptorclusters().md)
- [invokeCommands(_:queue:completion:)](matter/mtrdevice/invokecommands(_:queue:completion:).md)
- [readAttributePaths(_:)](matter/mtrdevice/readattributepaths(_:).md)
- [remove(_:)](matter/mtrdevice/remove(_:).md)
- [wait(forAttributeValues:timeout:queue:completion:)](matter/mtrdevice/wait(forattributevalues:timeout:queue:completion:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
