Shelly RPC Cluster
The Shelly RPC cluster is a custom Zigbee cluster with ID 0xFC01 that acts as a channel for the Shelly RPC protocol. It accepts incoming frames and makes outgoing ones available for collection. Devices supporting this cluster normally expose it as part of the Zigbee endpoint 239. Device-specific details are available here.
Attributes
The server supports the attributes listed in the following table:
Identifier | Name | Data Type | Access |
---|---|---|---|
0 | Data | character string | read/write |
1 | TxCtl | unsigned 32-bit integer | write-only |
2 | RxCtl | unsigned 32-bit integer | read-only |
Attribute description
The Data attribute is used both to submit frames to the device and to read frames back from the device.
Before sending a frame, the length of the frame must be written in the TxCtl attribute. Then, the data can be transmitted to the device by sequential write requests to the Data attribute. Chunking can be arbitrary, but the result must add up to the specified length exactly, at which point the frame will be processed. Writing to TxCtl clears out any half-written frame that might be buffered, so the writer needs to ensure that there is only one frame in flight at any time.
The RxCtl attribute contains the length of the frame that the device wishes to transmit back. If this value is not zero, frame data will be returned in response to sequential read requests to the Data attribute. In this case, chunking will be determined by the device.