Skip to main content
Version: 1.0

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:

IdentifierNameData TypeAccess
0Datacharacter stringread/write
1TxCtlunsigned 32-bit integerwrite-only
2RxCtlunsigned 32-bit integerread-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.