This page describes the commands supported by the RapidHA serial protocol. The payload byte values are detailed in the command descriptions. Some commands have no payloads.
...
Note | ||
---|---|---|
| ||
New sleep control frames under the Utility command group (PH: 0x55) provide the user with a wake-up handshaking scheme, as well as total and accurate control of application sleep cycles. |
Anchor | ||||
---|---|---|---|---|
|
Table of Contents | ||||
---|---|---|---|---|
|
...
This section describes a wide range of command functionality that works on a system-wide level under the Primary Header 0x55.
Anchor | ||||
---|---|---|---|---|
|
The Reset command is sent from the Host to the Module, and prompts the Module to reboot. The command has no payload.
...
The Application Version Count Response is sent from the Module to the Host. The response payload length is 1 octet.
Payload for Application Version Count Response Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Version String Count | A count of the total number of Application Version Strings available from the running application. |
Expected Host Action
None.
Anchor | ||||
---|---|---|---|---|
|
The Application Version Request is sent from the Host to the Module to query a given Application Version String describing either the Application Bootloader Version, the core RapidHA Version or the Virtual Host Application Version. The request payload length is 1 octet.
Payload for Application Version Request Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Version Index | 0x00 - Retrieve Bootloader Version |
Effect on Receipt
The Module will respond with an Application Version Response.
Anchor | ||||
---|---|---|---|---|
|
The Application Version Response is sent from the Module to the Host. The response payload length is variable.
Payload of Application Version Response Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Version String Index | The array index (0 based) that this command relates to. |
1 | Version Type | The type of version string returned. See Version Types. |
2..(n + 3) | Version | The version being returned. The length n is specified in the first octet of the field. A total of n bytes will follow this length byte containing data which shall be interpreted based on the Version Type. |
Expected Host Action
None.
Anchor Application Version Types Application Version Types
Version Types
Application Version Types | |
Application Version Types |
Type ID | Type Name | Length (Octets) |
---|---|---|
0x00 | LSB Binary Type | 4 |
0x01 | MSB Binary Type | 4 |
0x02 | String Type | Variable |
0x03 | LSB Binary Type | 2 |
0x04 - 0xFE | Reserved | N/A |
0xFF | Invalid | N/A |
LSB Binary Type
A type value of LSB Binary Type indicates that the version string is being provided as a series of binary encoded bytes that represent the version string in a dotted version format with the least significant byte provided first. For example, a binary value of 0x01,0x02,0x03,0x04 provided using this encoding would be translated to 4.3.2.1 (or possibly 4.3.2rc1) when displayed to the user. This is the default encoding for version numbers.
MSB Binary Type
A type value of MSB Binary Type indicates that the version string is being provided as a series of binary encoded bytes that represent the version string in a dotted version format with the most significant byte provided first. For example, a binary value of 0x05,0x06,0x07, 0x08 provided using this encoding would be translated to 5.6.7.8 (or possibly 5.6.7rc8) when displayed to the user.
String Type
A type value of String Type indicates that the version string is being provided as an ASCII encoded string of length n. The value will not be null terminated as the length is provided. For example, a binary value of 0x31,0x2e,0x32,0x2e,0x30,0x72,0x63,0x31 provided using this encoding would be translated to 1.2.0rc1.
Invalid
A type value of Invalid indicates that the requested element is invalid. Typically this indicates that a request was made for an index which lies outside of the valid range of version string indices.
Anchor | ||||
---|---|---|---|---|
|
The Restore Defaults frame is sent from the Host to the Module and serves to restore the Module to its factory default settings. The command has no payload.
Effect on Receipt
The Module restores all non-volatile elements to their factory default settings, leaves the network if it is joined to one or dissolves the network if it has formed one, and then reboots.
Anchor | ||||
---|---|---|---|---|
|
The Host shall send the Host Startup Ready command to the Module after it starts up and is ready for communication. The command has no payload.
Effect on Receipt
On receiving the command, the Module will respond with the Startup Sync Request command. If the Module is in the Already Running state (see payload for Startup Sync Request ), it signifies that this command was received due to an unexpected reset of the Host. In this case, the Module will have retained all its application cache and attribute values, but will suspend network operations and return to the Startup Synchronization phase.
Anchor | ||||
---|---|---|---|---|
|
The Startup Sync Request command is sent by the Module on startup or as a response to the Host Startup Ready command. Upon issuing this command, the Module suspends execution of the full application until the Host has completed all desired configuration and updates against it.
The Module resends this command every five seconds until the Host sends the Startup Sync Complete command in response, signaling the completion of the configuration and update process.
Payload for Startup Sync Request Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Running State | 0x00 = Starting Up |
1 | Configuration State | 0x00 = Factory Default |
The Running State indicates whether the Module has just powered up or is already running. If the Running State indicates the latter, it signifies that the Host experienced a unilateral reset.
The Configuration State indicates the application configuration state of the Module. The Factory Default state indicates that the Module is operating for the first time post-production, or subsequent to the reception of the Restore to Default command from the Host. The Needs Endpoint Configuration state indicates that the Module has restored all default configurations (Manufacturer ID, etc.), but still requires the Host to configure application endpoints, clusters and attributes. This state will occur after a soft or hard reset of the Module, regardless of the amount of non-volatile memory available.
Expected Host Action
The Host may receive the Startup Sync Request either during a synchronized power up or after a unilateral reset of the Module. The Host shall process both scenarios in the same manner.
If the Running State of the Module is Already Running the Host is not required to configure endpoints, clusters and attributes and perform updates on the values of the latter. Instead, the Host should query attribute values and cached event data from the Module in order to synchronize its internal state with that of the application.
If the Configuration State of the Module is Factory Default, the Host shall perform a full configuration of the application, specifying the IEEE functional device type, security configuration, endpoints, etc. If the Configuration State is Needs Endpoint Configuration, the Host shall configure the application endpoints, clusters and attributes accordingly. If Configuration State is Fully Configured, no further configuration action is required of the Host.
Anchor | ||||
---|---|---|---|---|
|
The Host shall send the Startup Sync Complete command to the Module in response to a Startup Sync Request and upon completion of all startup configurations and updates to the latter. The command has no payload.
Effect on Receipt
The Module acknowledges reception of the command with a Status Response indicating Success, after which it runs the full application. If the Module was previously joined to a network it will rejoin that network. Additionally, application configurations are backed up to non-volatile memory for restoration on the next startup.
Please note that Host configurations for endpoints, clusters and attributes are not preserved in non-volatile memory; thus they must be reconfigured after any soft or hard reset of the Module.
Status Response to Startup Sync Complete Command
Status Response | Enum | Description |
---|---|---|
Success | 0x00 | Module received the command and will start the full application. |
Anchor | ||||
---|---|---|---|---|
|
...
Anchor | ||||
---|---|---|---|---|
|
The Status Response command may be issued either by the Module to the Host, or by the Host to the Module, in order to acknowledge the reception of a command.
Payload for Status Response Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Status | 0x00 = Success |
Anchor | ||||
---|---|---|---|---|
|
...
The Host may then either send a serial message within the 50ms wake window or issue the Sleepy Control Stay Awake Duration Write command to force the application stay awake for a longer specified duration.
Byte Index | Field Name | Notes |
---|---|---|
0.. 18 | Filler Bytes | Stuff all payload bytes with 0xFF |
Anchor | ||||
---|---|---|---|---|
|
The Error frame is sent by the Module to the Host to report an application error.
Payload for Error Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Error Condition | An enumeration of Error Conditions: Network Error Conditions: 0x00 – Reserved Reset Error Conditions: 0x10 – Reset Error Synchronization Error Conditions: 0x20 – Synchronization Error Bootload Error Conditions: 0xB0 – Local Bootload Error |
1 | Sub-Error | Sub-Errors associated with the given Error Condition. Associated with FORMING_NETWORK_ERROR (0x04) Associated with LOCAL_BOOTLOAD_ERROR (0xB0) Associated with OTA_BOOTLOAD_ERROR (0xB1) |
Expected Host Action
Error conditions are reported for diagnostic purposes. Depending on the given error received, there may or may not be an expected action for the Host to take in response.
...
Back to Top
Network Commissioning Frames (0x01)
The Network Commissioning command set allows the Host to prompt the Module to either form a network or join an existing network. A third option exists for performing HA 1.2 EZ-Mode Commissioning, defined as an automated process that prompts the application to join an existing network and, failing to find one, to form its own.
Frame Name | Secondary Header Byte | Allowed Context | Sent By Host/Module |
---|---|---|---|
Join Network | 0x00 | Network Down Only | Host |
Form Network | 0x01 | Network Down Only | Host |
Permit Join | 0x03 | Network Up Only | Host |
Leave Network | 0x04 | All Contexts | Host |
Rejoin Network | 0x05 | Network Up Only | Host |
Network Status Request | 0x08 | All Contexts | Host |
Network Status Response | 0x09 | N/A | Module |
Trust Center Device Update | 0x10 | Network Up Only | Module |
Network Auto Join | 0x11 | Network Down Only | Host |
Network Reset Auto Join | 0x12 | All Contexts | Host |
Anchor | ||||
---|---|---|---|---|
|
...
Payload for Join Network Command
Byte Index | Field Name | Notes |
---|---|---|
0..3 | Channel Mask | Four-byte channel mask. Each bit represents channels 0 – 31. Example: Channel 11 = 0x00000800 or interpreted as a 32-bit bitmap - 0000 0000 0000 0000 0000 1000 0000 0000 - bit 11 would be flipped Channel 13 = 0x00002000 or interpreted as a 32-bit bitmap - 0000 0000 0000 0000 0010 0000 0000 0000 - bit 13 would be flipped ZigBee HA and SE operate on only channels 11 through 26. It should be noted that channel 26 is restricted. |
4 | Auto Options | Bit 0 = 1 – Auto PAN ID If both bits are “1” and multiple networks exist on the channel, |
5,6 | Short PAN ID | The Short PAN ID of the network that the Module must join. |
7..14 | Extended PAN ID | The Extended PAN ID of the network Module must join to. |
Effect on Receipt
The Module will sequentially scan all channels defined by the Channel Mask. The Module will attempt to join any network with an open Permit Join window and matching the PAN IDs as specified in the command payload. If a join attempt fails, the Module will resume scanning until it has tried all available and applicable networks. The possible Status Responses generated by the Module in response to this command are listed in the following table.
Anchor | ||||
---|---|---|---|---|
|
Status Response | Enum | Description |
---|---|---|
Success | 0x00 | The Module successfully processed the command, and shall start the scan and join sequence. |
Invalid Call | 0x01 | The Module is already on a network. The command is only valid when the application’s network state is Network Down. |
Invalid Data | 0x02 | No channels have been selected in the Channel Mask defined in the command. |
Anchor | ||||
---|---|---|---|---|
|
...
This section describes commands that set and report on security keys.
Frame Name | Secondary Header Byte | Allowed Context | Sent By Host/Module |
---|---|---|---|
Preconfigured Key Option Write | 0x00 | Network Down Only | Host |
Preconfigured Key Option Request | 0x01 | All Contexts | Host |
Preconfigured Key Option Response | 0x02 | N/A | Module |
Install Code Request | 0x03 | All Contexts | Host |
Install Code Response | 0x04 | N/A | Module |
Link Key Write | 0x05 | Network Down Only | Host |
Link Key Request | 0x06 | All Contexts | Host |
Link Key Response | 0x07 | N/A | Module |
Network Key Write | 0x08 | Network Down Only | Host |
Network Key Request | 0x09 | All Contexts | Host |
Network Key Response | 0x0A | N/A | Module |
Anchor | ||||
---|---|---|---|---|
|
...
This section describes the commands used to configure RapidHA’s IEEE functional device type, as well as the endpoints, clusters and attributes that will logically exist on that device.
Frame Name | Secondary Header Byte | Allowed Context | Sent By Host/Module |
---|---|---|---|
Device Type Write | 0x00 | Startup Config Only | |
Device Type Request | 0x01 | All Contexts | |
Device Type Response | 0x02 | All Contexts | |
Add Endpoint | 0x10 | Startup Config Only | |
Endpoint List Request | 0x11 | All Contexts | |
Endpoint List Response | 0x12 | All Contexts | |
Endpoint Descriptor Request | 0x13 | All Contexts | |
Endpoint Descriptor Response | 0x14 | All Contexts | |
Add Attributes to Cluster | 0x20 | Startup Config Only | |
Attribute List Request | 0x21 | All Contexts | |
Attribute List Response | 0x22 | All Contexts | |
Attribute Request | 0x23 | All Contexts | |
Attribute Response | 0x24 | All Contexts | |
Attribute Write | 0x25 | All Contexts | |
Attribute Report Passthrough Control | 0x26 | All Contexts | |
Clear Endpoint Config | 0x30 | Startup Config Only | |
Register Commands Passthrough | 0x80 | Startup Config Only |
Anchor | ||||
---|---|---|---|---|
|
...
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 |
...
This section describes the two ways, unicast and broadcast, for the Host to send a ZDO command. It also describes the commands sent by the Module to communicate ZDO-level information to the Host.
Frame Name | Secondary Header Byte | Allowed Context | Sent By Host/Module |
---|---|---|---|
Send ZDO Unicast | 0x01 | Network Up Only | Host |
Send ZDO Broadcast | 0x02 | Network Up Only | Host |
ZDO Send Status | 0x03 | All Contexts | Module |
ZDO APS Ack | 0x04 | All Contexts | Module |
ZDO Response Received | 0x05 | All Contexts | Module |
ZDO Response Timeout | 0x06 | All Contexts | Module |
ZDO Device Announce Received | 0x1E | All Contexts | Module |
Anchor | ||||
---|---|---|---|---|
|
...
This section describes the three ways, unicast, multicast and broadcast, available to the Host to send a ZCL command. In addition, it describes the commands used by the Host to read and write attributes that were previously configured using the ZigBee Support Configurations commands. This section also includes commands sent from the Module to convey responses and statuses from commands previously sent by the Host. It also describes the command used by the Module to pass through ZCL commands that have been registered by the Host using the Register Commands Passthru command.
Frame Name | Secondary Header Byte | Allowed Context | Sent By Host/Module |
---|---|---|---|
Send ZCL Unicast | 0x00 | Network Up Only | Host |
Send ZCL Multicast | 0x01 | Network Up Only | Host |
Send ZCL Broadcast | 0x02 | Network Up Only | Host |
ZCL Send Status | 0x03 | All Contexts | Module |
ZCL APS Ack | 0x10 | All Contexts | Module |
ZCL Response Received | 0x11 | All Contexts | Module |
ZCL Response Timeout | 0x12 | All Contexts | Module |
Received Attribute Write | 0x14 | All Contexts | Module |
ZCL Passthru Message | 0x20 | All Contexts | Module |
ZCL Read Attribute Request | 0x30 | Network Up Only | Host |
ZCL Read Attribute Response | 0x31 | All Contexts | Module |
ZCL Write Attribute Request | 0x32 | Network Up Only | Host |
ZCL Write Attribute Response | 0x33 | All Contexts | Module |
Anchor | ||||
---|---|---|---|---|
|
...
The mandatory commands associated with a given General Cluster are made available only if that cluster is first appended to the application endpoint configuration. For example, the Identify Start and Identify Stop commands will become available to the Host only after it configures an application endpoint with the Identify server cluster.
Frame Name | Secondary Header Byte | Allowed Context | Sent By Host/Module |
---|---|---|---|
Received Reset to Factory Default | 0x00 | All Contexts | Module |
Identify Start | 0x10 | All Contexts | Module |
Identify Stop | 0x11 | All Contexts | Module |
Time Client Get Time | 0x40 | All Contexts | Host |
Time Client Get Time Response | 0x41 | All Contexts | Module |
Time Client Time Changed | 0x42 | All Contexts | Module |
Network Time Sync Period Write | 0x43 | All Contexts | Host |
Network Time Sync Period Request | 0x44 | All Contexts | Host |
Network Time Sync Period Response | 0x45 | All Contexts | Module |
Anchor | ||||
---|---|---|---|---|
|
...
The mandatory commands associated with a given HA cluster are only made available if that cluster is first appended to the application endpoint configuration. For example, the On/Off State Update command will only become available to the Host after it configures an application endpoint with the On/Off server cluster.
Frame Name | Secondary Header Byte | Allowed Context | Sent By Host/Module |
---|---|---|---|
On Off State Update | 0x00 | Network Up Only | Module |
Move to Level | 0x20 | Network Up Only | Module |
Level Move | 0x21 | Network Up Only | Module |
Level Step | 0x22 | Network Up Only | Module |
Level Stop | 0x23 | Network Up Only | Module |
Check Battery Attribute | 0x24 | Network Up Only | Host |
Move to level with On/Off Status | 0x25 | Network Up Only | Module |
Lock Door | 0x60 | Network Up Only | Module |
Unlock Door | 0x61 | Network Up Only | Module |
Lock Confirm | 0x63 | Network Up Only | Host |
Anchor | ||||
---|---|---|---|---|
|
...
Payload for Level Stop Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Endpoint ID | Endpoint ID of the application Level Control server cluster. |
Expected Host Action
The Host shall stop all Level Control movement on the specified hardware endpoint.
...
- (Indicating Level 100, Transition Time 0, On/Off Status ON) F1 12 25 BB 05 16 64 00 00 01 72 01 [RHAMoveToLevel]
Anchor | ||||
---|---|---|---|---|
|
...
Payload for Lock Confirm Command
Byte Index | Field Name | Notes |
---|---|---|
0 | Lock State | 0x00 = Unlocked |
Effect on Receipt
The Module will update the value of the application Lock State attribute and report the success of the Lock or Unlock action to the network device that issued the original command.
...
The commands in this section facilitate serial bootload upgrade of the application operating on the Module. These commands have been implemented per HA 1.2 guidelines.
Frame Name | Secondary Header Byte | Allowed Context | Sent By Host/Module |
---|---|---|---|
Query Next Image Response | 0x02 | All Contexts | Host |
Image Block Request | 0x03 | All Contexts | Module |
Image Block Response | 0x05 | All Contexts | Host |
Upgrade End Request | 0x06 | All Contexts | Module |
Upgrade End Response | 0x07 | All Contexts | Host |
Anchor | ||||
---|---|---|---|---|
|
...