---
title: MTRDeviceControllerServerProtocol
framework: matter
role: symbol
role_heading: Protocol
path: matter/mtrdevicecontrollerserverprotocol
---

# MTRDeviceControllerServerProtocol

## Declaration

```swift
protocol MTRDeviceControllerServerProtocol : NSObjectProtocol
```

## Topics

### Instance Methods

- [downloadLog(withController:nodeId:type:timeout:completion:)](matter/mtrdevicecontrollerserverprotocol/downloadlog(withcontroller:nodeid:type:timeout:completion:).md)
- [getAnyDeviceController(completion:)](matter/mtrdevicecontrollerserverprotocol/getanydevicecontroller(completion:).md)
- [getDeviceController(withFabricId:completion:)](matter/mtrdevicecontrollerserverprotocol/getdevicecontroller(withfabricid:completion:).md)
- [invokeCommand(withController:nodeId:endpointId:clusterId:commandId:fields:timedInvokeTimeout:completion:)](matter/mtrdevicecontrollerserverprotocol/invokecommand(withcontroller:nodeid:endpointid:clusterid:commandid:fields:timedinvoketimeout:completion:).md)
- [readAttribute(withController:nodeId:endpointId:clusterId:attributeId:params:completion:)](matter/mtrdevicecontrollerserverprotocol/readattribute(withcontroller:nodeid:endpointid:clusterid:attributeid:params:completion:).md)
- [readAttributeCache(withController:nodeId:endpointId:clusterId:attributeId:completion:)](matter/mtrdevicecontrollerserverprotocol/readattributecache(withcontroller:nodeid:endpointid:clusterid:attributeid:completion:).md)
- [stopReports(withController:nodeId:completion:)](matter/mtrdevicecontrollerserverprotocol/stopreports(withcontroller:nodeid:completion:).md)
- [subscribe(withController:nodeId:minInterval:maxInterval:params:shouldCache:completion:)](matter/mtrdevicecontrollerserverprotocol/subscribe(withcontroller:nodeid:mininterval:maxinterval:params:shouldcache:completion:).md)
- [subscribeAttribute(withController:nodeId:endpointId:clusterId:attributeId:minInterval:maxInterval:params:establishedHandler:)](matter/mtrdevicecontrollerserverprotocol/subscribeattribute(withcontroller:nodeid:endpointid:clusterid:attributeid:mininterval:maxinterval:params:establishedhandler:).md)
- [writeAttribute(withController:nodeId:endpointId:clusterId:attributeId:value:timedWriteTimeout:completion:)](matter/mtrdevicecontrollerserverprotocol/writeattribute(withcontroller:nodeid:endpointid:clusterid:attributeid:value:timedwritetimeout:completion:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
