ZCL IP#
API and Callbacks for the ZCL IP Component.
This component provides functionality to encapsulate and extract ZCL packets over IP to a remote Internet-connected host.
API#
Generate the outgoing proxy packet.
Generate the outgoing keep alive.
Retrive incoming encapsulated ZCL proxy packet.
Retrive incoming keepalive.
Retrive incoming configure remote clusters.
Generate outgoing configure remote cluster.
Generate outgoing add device.
Generate outgoing configure remote binding.
Generate outgoing device discovery update.
Get packet length.
Get received packet pointer.
get received packet command ID
Get received proxy packet eui64 pointer.
Retrived incoming add device.
Macros#
API Documentation#
emberAfPluginZclIpGenerateOutgoingProxyPacket#
EmberStatus emberAfPluginZclIpGenerateOutgoingProxyPacket (EmberApsFrame * apsFrame, EmberNodeId nodeId, EmberEUI64 eui64, uint8_t * zclMessageBuffer, uint16_t zclMessageBufferLength)
Generate the outgoing proxy packet.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| EmberApsFrame * | N/A | apsFrame | |
| EmberNodeId | N/A | nodeId | |
| EmberEUI64 | N/A | eui64 | |
| uint8_t * | N/A | zclMessageBuffer | |
| uint16_t | N/A | zclMessageBufferLength |
Returns
EmberStatus status code
emberAfPluginZclIpGenerateOutgoingKeepalive#
EmberStatus emberAfPluginZclIpGenerateOutgoingKeepalive (uint32_t unixTime, uint32_t nextKeepaliveDelaySeconds)
Generate the outgoing keep alive.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| uint32_t | N/A | unixTime | |
| uint32_t | N/A | nextKeepaliveDelaySeconds |
Returns
EmberStatus status code
emberAfPluginZclIpRetrieveIncomingEncapsulatedZclProxyPacket#
EmberStatus emberAfPluginZclIpRetrieveIncomingEncapsulatedZclProxyPacket (EmberAfClusterCommand * returnCmd, EmberEUI64 returnEui64)
Retrive incoming encapsulated ZCL proxy packet.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| EmberAfClusterCommand * | N/A | returnCmd | |
| EmberEUI64 | N/A | returnEui64 |
Returns
EmberStatus status code
emberAfPluginZclIpRetrieveIncomingKeepalive#
EmberStatus emberAfPluginZclIpRetrieveIncomingKeepalive (uint32_t * unixTimeSinceEpoch, uint32_t * nextKeepaliveDelaySeconds)
Retrive incoming keepalive.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| uint32_t * | N/A | unixTimeSinceEpoch | |
| uint32_t * | N/A | nextKeepaliveDelaySeconds |
Returns
EmberStatus status code
emberAfPluginZclIpRetrieveIncomingConfigureRemoteClusters#
EmberStatus emberAfPluginZclIpRetrieveIncomingConfigureRemoteClusters (EmberAfRemoteClusterStruct * returnData, uint16_t maxCount, uint16_t * returnedCount)
Retrive incoming configure remote clusters.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| EmberAfRemoteClusterStruct * | N/A | returnData | struct for remote cluster data |
| uint16_t | N/A | maxCount | |
| uint16_t * | N/A | returnedCount |
Returns
EmberStatus status code
emberAfPluginZclIpGenerateOutgoingConfigureRemoteCluster#
EmberStatus emberAfPluginZclIpGenerateOutgoingConfigureRemoteCluster (uint16_t count, const EmberAfRemoteClusterStruct * records)
Generate outgoing configure remote cluster.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| uint16_t | N/A | count | |
| const EmberAfRemoteClusterStruct * | N/A | records | struct for remote cluster data |
Returns
EmberStatus status code
emberAfPluginZclIpGenerateOutgoingAddDevice#
EmberStatus emberAfPluginZclIpGenerateOutgoingAddDevice (EmberEUI64 newDeviceEui64, const EmberKeyData * newDeviceKeyData)
Generate outgoing add device.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| EmberEUI64 | N/A | newDeviceEui64 | |
| const EmberKeyData * | N/A | newDeviceKeyData |
Returns
EmberStatus status code
emberAfPluginZclIpGenerateOutgoingConfigureRemoteBinding#
EmberStatus emberAfPluginZclIpGenerateOutgoingConfigureRemoteBinding (EmberEUI64 targetEUI64, uint8_t sourceEndpoint, uint8_t destEndpoint, uint16_t clusterId, EmberEUI64 destEUI64, EmberEUI64 sourceEUI64)
Generate outgoing configure remote binding.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| EmberEUI64 | N/A | targetEUI64 | |
| uint8_t | N/A | sourceEndpoint | |
| uint8_t | N/A | destEndpoint | |
| uint16_t | N/A | clusterId | |
| EmberEUI64 | N/A | destEUI64 | |
| EmberEUI64 | N/A | sourceEUI64 |
Returns
EmberStatus status code
emberAfPluginZclIpGenerateOutgoingDeviceDiscoveryUpdate#
EmberStatus emberAfPluginZclIpGenerateOutgoingDeviceDiscoveryUpdate (const EmberAfDeviceInfo * device)
Generate outgoing device discovery update.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| const EmberAfDeviceInfo * | N/A | device | Pointer to device info struct |
Returns
EmberStatus status code
emberAfPluginZclIpGetPacketLength#
uint16_t emberAfPluginZclIpGetPacketLength (const uint8_t * zclIpPacket)
Get packet length.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| const uint8_t * | N/A | zclIpPacket |
Returns
uint16_t packet length
emberAfPluginZclIpGetReceivedPacketPointer#
uint8_t* emberAfPluginZclIpGetReceivedPacketPointer (void )
Get received packet pointer.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| void | N/A |
Returns
uint8_t* pointer to the received packet
emberAfPluginZclIpGetReceivedPacketCommandId#
uint16_t emberAfPluginZclIpGetReceivedPacketCommandId (void )
get received packet command ID
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| void | N/A |
Returns
uint16_t command ID
emberAfPluginZclIpGetReceivedProxyPacketEui64Pointer#
uint8_t* emberAfPluginZclIpGetReceivedProxyPacketEui64Pointer (void )
Get received proxy packet eui64 pointer.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| void | N/A |
Returns
uint8_t eui64 packet pointer
emberAfPluginZclIpRetrieveIncomingAddDevice#
EmberStatus emberAfPluginZclIpRetrieveIncomingAddDevice (EmberEUI64 newDeviceEui64, EmberKeyData * newDeviceKeyData)
Retrived incoming add device.
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| EmberEUI64 | N/A | newDeviceEui64 | |
| EmberKeyData * | N/A | newDeviceKeyData |
Returns
EmberStatus status code
emberAfPluginZclIpRetrieveIncomingConfigureRemoteBinding#
EmberStatus emberAfPluginZclIpRetrieveIncomingConfigureRemoteBinding (EmberAfRemoteBindingStruct * returnData)
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| EmberAfRemoteBindingStruct * | N/A | returnData | Pointer to the remote binding struct |
Retrive incoming configure remote binding
Returns
EmberStatus status code
emberAfPluginZclIpRetrieveIncomingDeviceDiscoveryUpdate#
EmberStatus emberAfPluginZclIpRetrieveIncomingDeviceDiscoveryUpdate (EmberAfDeviceInfo * device)
| Type | Direction | Argument Name | Description |
|---|---|---|---|
| EmberAfDeviceInfo * | N/A | device | pointer to the device info struct |
Retrive incoming device discovery update
Returns
EmberStatus status code
Macro Definition Documentation#
EM_AF_ZCL_IP_MINIMUM_PACKET_SIZE#
#define EM_AF_ZCL_IP_MINIMUM_PACKET_SIZEValue:
(EM_AF_ZCL_IP_COMMAND_ID_INDEX + EM_AF_ZCL_IP_COMMAND_ID_FIELD_LENGTH)
EM_AF_ZCL_IP_COMMAND_ZCL_PROXY_PACKET_ID#
#define EM_AF_ZCL_IP_COMMAND_ZCL_PROXY_PACKET_IDValue:
0x0001
EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_ID#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_IDValue:
0x0002
EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_ID#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_IDValue:
0x0004
EM_AF_ZCL_IP_KEEPALIVE_DELAY_SECONDS_INDEX#
#define EM_AF_ZCL_IP_KEEPALIVE_DELAY_SECONDS_INDEXValue:
10
EM_AF_ZCL_IP_KEEPALIVE_PACKET_SIZE#
#define EM_AF_ZCL_IP_KEEPALIVE_PACKET_SIZEValue:
(EM_AF_ZCL_IP_KEEPALIVE_DELAY_SECONDS_INDEX + EM_AF_ZCL_IP_KEEPALIVE_DELAY_SECONDS_SIZE)
EM_AF_ZCL_IP_PROXY_PACKET_MINIMUM_SIZE#
#define EM_AF_ZCL_IP_PROXY_PACKET_MINIMUM_SIZEValue:
(EM_AF_ZCL_IP_ZCL_PAYLOAD_INDEX)
EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_COUNT_INDEX#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_COUNT_INDEXValue:
6
EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_START_INDEX#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_START_INDEXValue:
8
EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_COMMAND_OVERHEAD#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_COMMAND_OVERHEADValue:
2
EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_CLUSTER_OFFSET#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_CLUSTER_OFFSETValue:
0
EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_PROFILE_OFFSET#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_PROFILE_OFFSETValue:
2
EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_DEVICE_ID_OFFSET#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_DEVICE_ID_OFFSETValue:
4
EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_ENDPOINT_OFFSET#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_ENDPOINT_OFFSETValue:
6
EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_TYPE_OFFSET#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_TYPE_OFFSETValue:
7
EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_TYPE_OFFSET_LENGTH#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_TYPE_OFFSET_LENGTHValue:
2
EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_LENGTH#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_CLUSTERS_RECORD_LENGTHValue:
EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_TARGET_EUI_OFFSET#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_TARGET_EUI_OFFSETValue:
6
EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_SOURCE_ENDPOINT_OFFSET#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_SOURCE_ENDPOINT_OFFSETValue:
14
EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_DEST_ENDPOINT_OFFSET#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_DEST_ENDPOINT_OFFSETValue:
15
EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_CLUSTER_ID_OFFSET#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_CLUSTER_ID_OFFSETValue:
16
EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_DEST_EUI_OFFSET#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_DEST_EUI_OFFSETValue:
18
EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_SOURCE_EUI_OFFSET#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_SOURCE_EUI_OFFSETValue:
26
EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_LENGTH#
#define EM_AF_ZCL_IP_CONFIGURE_REMOTE_BINDING_COMMAND_LENGTHValue:
34
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_EUI64_INDEX#
#define EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_EUI64_INDEXValue:
6
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_STATUS_INDEX#
#define EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_STATUS_INDEXValue:
14
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_CAPABILITIES_INDEX#
#define EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_CAPABILITIES_INDEXValue:
15
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_ENDPOINT_COUNT_INDEX#
#define EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_ENDPOINT_COUNT_INDEXValue:
16
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_ENDPOINT_INFO_INDEX#
#define EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_ENDPOINT_INFO_INDEXValue:
17
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_ENDPOINT_OFFSET#
#define EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_ENDPOINT_OFFSETValue:
0
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_PROFILE_ID_OFFSET#
#define EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_PROFILE_ID_OFFSETValue:
1
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_DEVICE_ID_OFFSET#
#define EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_DEVICE_ID_OFFSETValue:
3
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_CLUSTER_COUNT_OFFSET#
#define EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_CLUSTER_COUNT_OFFSETValue:
5
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_CLUSTER_ID_OFFSET#
#define EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_CLUSTER_ID_OFFSETValue:
6
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_ENDPOINT_INFO_MIN_LENGTH#
#define EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_ENDPOINT_INFO_MIN_LENGTHValue:
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_CLUSTER_ID_OFFSET
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_MIN_LENGTH#
#define EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_MIN_LENGTHValue:
EM_AF_ZCL_IP_DEVICE_DISCOVERY_UPDATE_COMMAND_ENDPOINT_INFO_INDEX