This section describes the commands used to configure RapidConnect IEEE functional device type, as well as the endpoints, clusters and attributes that will logically exist on that device.
- ( PH:0x03, SH:0x00 ) - Device Type Write Command
- ( PH:0x03, SH:0x01 ) - Device Type Request Command
- ( PH:0x03, SH:0x02 ) - Device Type Response Command
- ( PH:0x03, SH:0x10 ) - Add Endpoint Command
- ( PH:0x03, SH:0x11 ) - Endpoint List Request Command
- ( PH:0x03, SH:0x12 ) - Endpoint List Response Command
- ( PH:0x03, SH:0x13 ) - Endpoint Descriptor Request Command
- ( PH:0x03, SH:0x14 ) - Endpoint Descriptor Response Command
- ( PH:0x03, SH:0x20 ) - Add Attributes to Cluster Command
- ( PH:0x03, SH:0x21 ) - Attribute List Request Command
- ( PH:0x03, SH:0x22 ) - Attribute List Response Command
- ( PH:0x03, SH:0x23 ) - Attribute Request Command
- ( PH:0x03, SH:0x24 ) - Attribute Response Command
- ( PH:0x03, SH:0x25 ) - Attribute Write Command
- ( PH:0x03, SH:0x26 ) - Attribute Report Passthrough Control
- ( PH:0x03, SH:0x30 ) - Clear Endpoint Config Command
- ( PH:0x03, SH:0x80 ) - Register Commands Passthru Command
( PH:0x03, SH:0x00 ) - Device Type Write Command
The Device Type Write command is sent by the Host to the Module in order to configure the application’s IEEE functional device type. The Host is only required to issue this command once after synchronizing with a factory default Module for the first time, as the configuration is preserved in the application’s non-volatile memory.
The Module may be configured to behave as either a Full-Function Device (FFD) or Reduced-Function Device (RFD). An FFD has facilities for routing network messages as either a coordinator or a router, while an RFD may only join a network as a non-routing end node
If the Host configures the Module as an RFD, it may additionally configure the application to serve as either a non-sleepy or sleepy end device, with the latter configuration serving to conserve power should the given device be battery powered or otherwise consumption-sensitive.
Payload for Device Type Write Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Device Function Type | Default value 0x00 (FFD) 0x00 = FFD (router or coordinator) |
1 | Sleepy | 0x00 = Non-Sleepy (this is the default value) 0x01 = Sleepy (only valid with RFDs) |
Effect on Receipt
If the command is valid, the Module will update the setting and save it to non-volatile memory while also relaying a Device Type Response to the Host to confirm the setting. The following table lists the possible Status Responses on reception of the command.
Status Responses to Device Type Write Command
Status Response | Enum | Description |
---|---|---|
Success | 0x00 | IEEE functional device type has been updated and backed up to non-volatile memory. |
Invalid Call | 0x01 | The Module is already on a network and cannot modify its device type. |
Invalid Data | 0x02 | Field values are outside of valid range or are otherwise inapplicable in their current combination. |
Allowed Context | Sent By Host/Module |
---|---|
Startup Config | Host |
( PH:0x03, SH:0x01 ) - Device Type Request Command
The Device Type Request is sent by the Host to the Module in order to query the application IEEE functional device type. The command has no payload.
Effect on Receipt
The Module will respond with a Device Type Response.
Allowed Context | Sent By Host/Module |
---|---|
All Contexts | Host |
( PH:0x03, SH:0x02 ) - Device Type Response Command
The Device Type Response is sent by the Module to the Host in response to a Device Type Request.
Payload for Device Type Response Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Device Function Type | 0x00 = FFD (router or coordinator) |
1 | Sleepy | 0x00 = Non-Sleepy |
Allowed Context | Sent By Host/Module |
---|---|
- | Module |
( PH:0x03, SH:0x10 ) - Add Endpoint Command
The Add Endpoint command is sent by the Host to the Module in order to configure an application endpoint. This includes defining the Endpoint ID, Profile ID, Device ID, Device Version and the lists of server and client clusters supported on that endpoint.
Every known cluster included in the command (i.e., those already defined in the ZCL or HA specifications) will be automatically populated by the application with its mandatory attributes, which will likewise be enabled.
The Add Endpoint command may also be used to update the definition of an existing endpoint by specifying its Endpoint ID in the payload. If an update operation does not include previously specified clusters, those clusters are removed along with their associated attributes.
Payload for Add Endpoint Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Endpoint ID | Valid range 1 - 240 |
1,2 | Profile ID | 0x0104 |
3,4 | Device ID | See this page for a list of Device IDs used in the HA profile. |
5 | Device Version | |
6 | Number of Server Clusters | The number of server clusters, n |
7..6+2n | List of Server Clusters | List of 2-byte Cluster IDs, LSB first |
7+2n | Number of Client Clusters | The number of client clusters, m |
8+2n..7+2(n+m) | List of Client Clusters | List of 2-byte Cluster IDs, LSB first |
Effect on Receipt
The Module will verify that the Endpoint ID is valid and that there is sufficient memory for the new endpoint and its associated clusters. Likewise, the application will automatically configure all mandatory attributes for specified known clusters. The following table lists the possible Status Responses on reception of the command.
Status Responses to Add Endpoint Command
Status Response | Enum | Description |
---|---|---|
Success | 0x00 | The endpoint was successfully added or updated. |
Invalid Data | 0x02 | The Endpoint ID is not within valid range. |
Storage Full | 0x04 | Attribute storage has reached maximum capacity; none of the definitions were added. |
Incorrect Length | 0x07 | The frame is incomplete. |
Network Up | Adding an endpoint while the network is up is not allowed. |
Allowed Context | Sent By Host/Module |
---|---|
Startup Config | Host |
( PH:0x03, SH:0x11 ) - Endpoint List Request Command
The Endpoint List Request is sent by the Host to the Module in order to query the application endpoint list. The Host may apply this command to verify the configuration of application endpoints after having created them. The command has no payload.
Effect on Receipt
The Module will respond with an Endpoint List Response conveying a list of Endpoint ID’s. There are no Status Responses issued on reception of this command.
Allowed Context | Sent By Host/Module |
---|---|
All Contexts | Host |
( PH:0x03, SH:0x12 ) - Endpoint List Response Command
The Endpoint List Response is sent by the Module to the Host in response to an Endpoint List Request. The command conveys the Endpoint ID’s of all the configured endpoints supported by the application.
Payload for Endpoint List Response Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Number of Endpoints | The number of endpoints, n |
1..n | List of Endpoint IDs | 1 byte each |
Expected Host Action
None.
Allowed Context | Sent By Host/Module |
---|---|
- | Module |
( PH:0x03, SH:0x13 ) - Endpoint Descriptor Request Command
The Endpoint Descriptor Request is sent by the Host to the Module in order to query the definition of a given application endpoint. The Host may apply this command to verify the full configuration of an application Endpoints after having creating it.
Payload for Endpoint Descriptor Request Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Endpoint ID | The Endpoint ID of the Endpoint to query. |
Effect on Receipt
The Module will respond with an error if it does not support the specified endpoint. Otherwise, it relays the appropriate Endpoint Descriptor Response to the Host. The following table lists the possible Status Responses on reception of the command.
Status Response to Endpoint Descriptor Request Command
Status Response | Enum | Description |
---|---|---|
Endpoint Not Found | 0x08 | The specified endpoint is not supported |
Allowed Context | Sent By Host/Module |
---|---|
All Contexts | Host |
( PH:0x03, SH:0x14 ) - Endpoint Descriptor Response Command
The Endpoint Descriptor Response is sent by the Module to the Host in response to an Endpoint Descriptor Request.
Payload for Endpoint Descriptor Response Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Endpoint ID | Valid range 1 - 240 |
1,2 | Profile ID | |
3,4 | Device ID | See this page for a list of Device IDs used in the HA profile. |
5 | Device Version | |
6 | Number of Server Clusters | The number of server clusters, n |
7..6+2n | List of Server Clusters | List of 2-byte Cluster IDs, LSB first |
7+2n | Number of Client Clusters | The number of client clusters, m |
8+2n..7+2n+2m | List of Client Clusters | List of 2-byte Cluster IDs, LSB first |
Expected Host Action
None.
Allowed Context | Sent By Host/Module |
---|---|
- | Module |
( PH:0x03, SH:0x20 ) - Add Attributes to Cluster Command
The Add Attribute to Cluster command is sent by the Host to the Module in order to append attribute definitions to a configured application cluster. The command may specify as many attributes as the maximum payload capacity of a RapidConnect frame allows. For a cluster with large number of attributes, the command may be issued as many times as required.
Please note the application automatically adds mandatory attributes to all configured known clusters, i.e., those already defined in the ZCL or HA specifications. Thus, a simple Host implementation may not need to send this command, or only send it to add optional attributes.
Payload for Add Attributes to Cluster Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Endpoint ID | |
1,2 | Cluster ID | |
3 | Cluster Server/Client | 0x00 = Client |
4 | Number of Attributes to Add | |
5..n | Attribute Definition Records | Record format is shown in the following table. |
Attribute Definition Record Format
Byte Index | Field Name | Notes |
---|---|---|
0,1 | Attribute ID | |
2 | Attribute Type | See the ZCL Data Types page for possible values. |
3 | Attribute Property Bitmask | Bit Description 0 0 = Not Readable |
Effect on Receipt
The Module will submit the payload of the received command to a series of checks:
- That there is sufficient memory available for all specified attributes
- That the target endpoint and cluster exist
- That the Data Type of each specified attribute is valid
- That the Payload is complete
On completion of these checks, the application will issue an appropriate Status Response indicating success or failure, as conveyed in the following table. Should the response indicate an error, the command will not take effect. Furthermore, the application will ignore duplicate definitions (i.e. corresponding exactly to an existing configuration) but will update existing attributes if the configuration specified is different. Each configured attribute is automatically populated with the default ZCL value for its given Data Type.
Status Responses to Add Attributes to Cluster Command
Status Response | Enum | Description |
---|---|---|
Success | 0x00 | All attribute definitions have been successfully added. |
Storage Full | 0x04 | Attribute storage has reached maximum capacity; no specified definitions added. |
Invalid Data Type | 0x06 | A specified Data Type does not conform to any defined ZCL Data Type. |
Incorrect Length | 0x07 | The frame is incomplete given what was specified. |
Endpoint Not Found | 0x08 | The endpoint cannot be found. |
Cluster Not Found | 0x09 | The cluster cannot be found. |
Allowed Context | Sent By Host/Module |
---|---|
StartUp Config | Host |
( PH:0x03, SH:0x21 ) - Attribute List Request Command
The Attribute List Request is sent by the Host to the Module in order to query the attributes on a given application cluster and endpoint.
Payload for Attribute List Request Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Endpoint ID | The target endpoint to query. |
1,2 | Cluster ID | The target cluster to query on the given endpoint. |
3 | Cluster Server/Client | 0x00 = Client |
Effect on Receipt
If the Module supports the target endpoint and cluster, it will relay an appropriate number of Attribute List Response commands to the Host. Otherwise, a Status Response is generated indicating an error, as described in the following table.
Status Response to Attribute List Request Command
Status Response | Enum | Description |
---|---|---|
Endpoint Not Found | 0x08 | The specified endpoint cannot be found. |
Cluster Not Found | 0x09 | The specified cluster cannot be found. |
Invalid Entry | 0x05 | The specified attribute is not supported. |
Allowed Context | Sent By Host/Module |
---|---|
All Contexts | Host |
( PH:0x03, SH:0x22 ) - Attribute List Response Command
The Attribute List Response command is sent by the Module to the Host in response to an Attribute List Request. The message conveys a list of attributes supported on the cluster and endpoint queried. Should the number of attributes exceed the payload capacity of the message, they will be conveyed as multiple responses, or pages.
Payload for Attribute List Response Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Endpoint ID | |
1,2 | Cluster ID | |
3 | Cluster Server/Client | 0x00 = Client |
4 | Total Number of Pages | The total number of pages (i.e., command frames) that will be sent to complete the response. |
5 | Current Page | The current page of a multi-page response. The first page is 1, a second page, if any, is 2, etc. |
6 | Number of Attributes | Number of attributes in the current page. |
7…n | List of Attribute IDs | Each Attribute ID is sent LSB first |
Expected Host Action
None.
Allowed Context | Sent By Host/Module |
---|---|
- | Module |
( PH:0x03, SH:0x23 ) - Attribute Request Command
The Attribute Request is sent by the Host to the Module in order to query the definition and value of an attribute on a given cluster and endpoint.
Payload for Attribute Request Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Endpoint ID | The target endpoint to query. |
1,2 | Cluster ID | The target cluster to query on the given endpoint. |
3 | Cluster Server/Client | 0x00 = Client |
4,5 | Attribute ID | The ID of the attribute to query. |
Effect on Receipt
If the Module supports the requested attribute, it will respond with an Attribute Response. Otherwise, the application will relay a Status Response indicating an error, as described in the following table.
Status Response to Attribute Request Status
Status Response | Enum | Description |
---|---|---|
No Entry Found | 0x05 | The attribute cannot be found. |
Endpoint Not Found | 0x08 | The endpoint cannot be found. |
Cluster Not Found | 0x09 | The cluster cannot be found. |
Allowed Context | Sent By Host/Module |
---|---|
All Contexts | Host |
( PH:0x03, SH:0x24 ) - Attribute Response Command
An Attribute Response is sent by the Module to the Host in response to an Attribute Request.
Payload for Attribute Response Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Endpoint ID | |
1,2 | Cluster ID | |
3 | Cluster Server/Client | 0x00 = Client |
4,5 | Attribute ID | |
6 | Attribute Property Bitmask | Bit Description 0 0 = Not Readable |
7 | Attribute Type | See the ZCL Data Types page for possible values. |
8..n | Attribute Value | Size dependent on Attribute Type. For strings, the length of the string will immediately precede the string itself. |
Expected Host Action
None.
Allowed Context | Sent By Host/Module |
---|---|
- | Module |
( PH:0x03, SH:0x25 ) - Attribute Write Command
The Attribute Write command is sent by the Host to the Module in order to set the value of an existing attribute residing on a target cluster and endpoint.
Payload for Attribute Write Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Endpoint ID | |
1,2 | Cluster ID | |
3 | Cluster Server/Client | 0x00 = Client |
4,5 | Attribute ID | |
6 | Attribute Type | See the ZCL Data Types page for possible values. |
7..n | Attribute Value | Size dependent on Attribute Type. For strings, the length of the string must immediately precede the string itself. |
Effect on Receipt
If the attribute is supported, the specified Attribute Type matches and the Attribute Value is the correct size, the Module will return a Status Response indicating Success. Otherwise, the response will indicate an error. The possible Status Responses are listed in the following table.
Status Responses to Attribute Write Command
Status Response | Enum | Description |
---|---|---|
Success | 0x00 | The attribute was successfully written. |
No Entry Found | 0x05 | The attribute cannot be found. |
Invalid Data Type | 0x06 | The Attribute Type does not conform to any defined ZCL data type. |
Incorrect Length | 0x07 | The size of the attribute value doesn’t match what is expected. |
Endpoint Not Found | 0x08 | The endpoint cannot be found. |
Cluster Not Found | 0x09 | The cluster cannot be found. |
Allowed Context | Sent By Host/Module |
---|---|
All Contexts | Host |
( PH:0x03, SH:0x26 ) - Attribute Report Passthrough Control
The Attribute Report Passthrough Control message is sent from the Host to the Module. The payload length is 1 octet.
Payload for Attribute Report Passthrough Control
Byte Index | Field Name | Notes |
---|---|---|
0 | Attribute Passthrough Control | 0x00 = Disabled |
Effect on Receipt
When enabled, RapidConnect will pass all ZCL Attribute Reports through via the ZCL Passthrough functionality.
Allowed Context | Sent By Host/Module |
---|---|
All Contexts | Host |
( PH:0x03, SH:0x30 ) - Clear Endpoint Config Command
The Clear Endpoint Config command is sent by the Host to the Module in order to wipe all applied configurations of endpoints, clusters, attributes and registered pass-through commands. The command has no payload.
Effect on Receipt
The Module shall clear all application endpoints, clusters, attributes and registered pass-through commands.
Allowed Context | Sent By Host/Module |
---|---|
Startup Config | Host |
( PH:0x03, SH:0x80 ) - Register Commands Passthru Command
The Register Commands Passthru message is sent by the Host to the Module to create an index of those cluster commands that the Module should pass through directly to the Host without additional processing. That is, the Host may specify supported commands that would otherwise result in additional action being taken by the Module on their reception, or commands not supported by the Module that would otherwise not be passed to the Host on their reception.
Specifying a Commands Count of 0x00 indicates that all received commands should be directly passed through to the Host.
Payload for Register Commands Passthru
Byte Index | Field Name | Notes |
---|---|---|
0 | Endpoint ID | Endpoint on which the cluster commands are supported. |
1,2 | Cluster ID | The cluster on which the commands are supported. |
3 | Cluster Server/Client | 0x00 = Client |
4 | Commands Count | 0x00 = Pass through all commands |
5..n | Command IDs List | The Command ID(s) of the command(s) to pass through. Each Command ID is 1 byte. |
Effect on Receipt
The Module will register the given commands in non-volatile memory and refer to the list on reception of ZCL commands. The following table lists the possible Status Responses on reception of the command.
Status Responses to Register Commands Passthru Command
Status Response | Enum | Description |
---|---|---|
Success | 0x00 | Commands were successfully registered. |
Storage Full | 0x04 | There was insufficient storage for the registration list. |
Incorrect Length | 0x07 | The size of the attribute value does not match what is expected. |
Endpoint Not Found | 0x08 | The endpoint cannot be found. |
Cluster Not Found | 0x09 | The cluster cannot be found. |
Allowed Context | Sent By Host/Module |
---|---|
Startup Config | Host |