---
title: MTRBaseDevice
framework: matter
role: symbol
role_heading: Class
path: matter/mtrbasedevice
---

# MTRBaseDevice

## Declaration

```swift
class MTRBaseDevice
```

## Topics

### Initializers

- [init(nodeID:controller:)](matter/mtrbasedevice/init(nodeid:controller:).md)

### Instance Properties

- [sessionTransportType](matter/mtrbasedevice/sessiontransporttype.md)

### Instance Methods

- [deregisterReportHandlers(with:completion:)](matter/mtrbasedevice/deregisterreporthandlers(with:completion:).md)
- [deregisterReportHandlers(withClientQueue:completion:)](matter/mtrbasedevice/deregisterreporthandlers(withclientqueue:completion:).md)
- [downloadLog(of:timeout:queue:completion:)](matter/mtrbasedevice/downloadlog(of:timeout:queue:completion:).md)
- [invokeCommand(withEndpointID:clusterID:commandID:commandFields:timedInvokeTimeout:queue:completion:)](matter/mtrbasedevice/invokecommand(withendpointid:clusterid:commandid:commandfields:timedinvoketimeout:queue:completion:).md)
- [invokeCommand(withEndpointId:clusterId:commandId:commandFields:timedInvokeTimeout:clientQueue:completion:)](matter/mtrbasedevice/invokecommand(withendpointid:clusterid:commandid:commandfields:timedinvoketimeout:clientqueue:completion:).md)
- [openCommissioningWindow(withDiscriminator:duration:queue:completion:)](matter/mtrbasedevice/opencommissioningwindow(withdiscriminator:duration:queue:completion:).md)
- [openCommissioningWindow(withSetupPasscode:discriminator:duration:queue:completion:)](matter/mtrbasedevice/opencommissioningwindow(withsetuppasscode:discriminator:duration:queue:completion:).md)
- [readAttribute(withEndpointId:clusterId:attributeId:params:clientQueue:completion:)](matter/mtrbasedevice/readattribute(withendpointid:clusterid:attributeid:params:clientqueue:completion:).md)
- [readAttributePaths(_:eventPaths:params:queue:completion:)](matter/mtrbasedevice/readattributepaths(_:eventpaths:params:queue:completion:).md)
- [readAttributes(withEndpointID:clusterID:attributeID:params:queue:completion:)](matter/mtrbasedevice/readattributes(withendpointid:clusterid:attributeid:params:queue:completion:).md)
- [readEvents(withEndpointID:clusterID:eventID:params:queue:completion:)](matter/mtrbasedevice/readevents(withendpointid:clusterid:eventid:params:queue:completion:).md)
- [subscribe(toAttributePaths:eventPaths:params:queue:reportHandler:subscriptionEstablished:resubscriptionScheduled:)](matter/mtrbasedevice/subscribe(toattributepaths:eventpaths:params:queue:reporthandler:subscriptionestablished:resubscriptionscheduled:).md)
- [subscribe(with:minInterval:maxInterval:params:cacheContainer:attributeReportHandler:eventReportHandler:errorHandler:subscriptionEstablished:resubscriptionScheduled:)](matter/mtrbasedevice/subscribe(with:mininterval:maxinterval:params:cachecontainer:attributereporthandler:eventreporthandler:errorhandler:subscriptionestablished:resubscriptionscheduled:).md)
- [subscribe(with:params:clusterStateCacheContainer:attributeReportHandler:eventReportHandler:errorHandler:subscriptionEstablished:resubscriptionScheduled:)](matter/mtrbasedevice/subscribe(with:params:clusterstatecachecontainer:attributereporthandler:eventreporthandler:errorhandler:subscriptionestablished:resubscriptionscheduled:).md)
- [subscribeAttribute(withEndpointId:clusterId:attributeId:minInterval:maxInterval:params:clientQueue:reportHandler:subscriptionEstablished:)](matter/mtrbasedevice/subscribeattribute(withendpointid:clusterid:attributeid:mininterval:maxinterval:params:clientqueue:reporthandler:subscriptionestablished:).md)
- [subscribeToAttributes(withEndpointID:clusterID:attributeID:params:queue:reportHandler:subscriptionEstablished:)](matter/mtrbasedevice/subscribetoattributes(withendpointid:clusterid:attributeid:params:queue:reporthandler:subscriptionestablished:).md)
- [subscribeToEvents(withEndpointID:clusterID:eventID:params:queue:reportHandler:subscriptionEstablished:)](matter/mtrbasedevice/subscribetoevents(withendpointid:clusterid:eventid:params:queue:reporthandler:subscriptionestablished:).md)
- [writeAttribute(withEndpointID:clusterID:attributeID:value:timedWriteTimeout:queue:completion:)](matter/mtrbasedevice/writeattribute(withendpointid:clusterid:attributeid:value:timedwritetimeout:queue:completion:).md)
- [writeAttribute(withEndpointId:clusterId:attributeId:value:timedWriteTimeout:clientQueue:completion:)](matter/mtrbasedevice/writeattribute(withendpointid:clusterid:attributeid:value:timedwritetimeout:clientqueue: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)
