nRF5 SDK for Thread and Zigbee v4.0.0
ZCL Control4 Network cluster

Control4 Network cluster attributes

enum  zb_zcl_control4_networking_attr_e {
  ZB_ZCL_ATTR_CONTROL4_NETWORKING_DEVICE_TYPE_ID = 0x0000, ZB_ZCL_ATTR_CONTROL4_NETWORKING_ANNOUNCE_WINDOW_ID = 0x0001, ZB_ZCL_ATTR_CONTROL4_NETWORKING_MTORR_PERIOD_ID = 0x0002, ZB_ZCL_ATTR_CONTROL4_NETWORKING_FIRMWARE_VERSION_ID = 0x0004,
  ZB_ZCL_ATTR_CONTROL4_NETWORKING_REFLASH_VERSION_ID = 0x0005, ZB_ZCL_ATTR_CONTROL4_NETWORKING_BOOT_COUNT_ID = 0x0006, ZB_ZCL_ATTR_CONTROL4_NETWORKING_PRODUCT_STRING_ID = 0x0007, ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_NODE_ID_ID = 0x0008,
  ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_LONG_ID_ID = 0x0009, ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_COST_ID = 0x000a, ZB_ZCL_ATTR_CONTROL4_NETWORKING_MESH_CHANNEL_ID = 0x000c, ZB_ZCL_ATTR_CONTROL4_NETWORKING_AVG_RSSI_ID = 0x0013,
  ZB_ZCL_ATTR_CONTROL4_NETWORKING_AVG_LQI_ID = 0x0014, ZB_ZCL_ATTR_CONTROL4_NETWORKING_BATTERY_LEVEL_ID = 0x0015, ZB_ZCL_ATTR_CONTROL4_NETWORKING_RADIO_4_BARS_ID = 0x0016
}
 
enum  zb_zcl_control4_networking_device_type_e { ZB_ZCL_CONTROL4_NETWORKING_DEVICE_TYPE_END_DEVICE = 0x03, ZB_ZCL_CONTROL4_NETWORKING_DEVICE_TYPE_SLEEPY_END_DEVICE = 0x04 }
 
#define ZB_ZCL_CONTROL4_NETWORKING_REFLASH_VERSION_VENDOR_SPECIFIC   0xff
 
#define ZB_ZCL_CONTROL4_NETWORKING_BOOT_COUNT_DEF_VALUE   0
 
#define ZB_ZCL_CONTROL4_NETWORKING_ANNOUNCE_WINDOW_MIN_VALUE   ((zb_uint16_t)0x000f)
 
#define ZB_ZCL_CONTROL4_NETWORKING_ANNOUNCE_WINDOW_DEF_VALUE   ((zb_uint16_t)0x012c)
 
#define ZB_ZCL_CONTROL4_NETWORKING_MTORR_PERIOD_MIN_VALUE   ((zb_uint16_t)0x000f)
 
#define ZB_ZCL_CONTROL4_NETWORKING_MTORR_PERIOD_DEF_VALUE   ((zb_uint16_t)0x012c)
 
#define ZB_ZCL_CONTROL4_NETWORKING_ACCESS_POINT_NODE_ID_DEF_VALUE   ((zb_uint16_t)0xffff)
 
#define ZB_ZCL_CONTROL4_NETWORKING_ACCESS_POINT_LONG_ID_DEF_VALUE   {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
 
#define ZB_ZCL_CONTROL4_NETWORKING_ACCESS_POINT_COST_DEF_VALUE   0xff
 
#define ZB_ZCL_CONTROL4_NETWORKING_MESH_CHANNEL_MIN_VALUE   0x0b
 
#define ZB_ZCL_CONTROL4_NETWORKING_MESH_CHANNEL_MAX_VALUE   0x19
 
#define ZB_ZCL_CONTROL4_NETWORKING_AVG_RSSI_MIN_VALUE   -128
 
#define ZB_ZCL_CONTROL4_NETWORKING_AVG_RSSI_MAX_VALUE   0
 
#define ZB_ZCL_CONTROL4_NETWORKING_BATTERY_LEVEL_MIN_VALUE   0
 
#define ZB_ZCL_CONTROL4_NETWORKING_BATTERY_LEVEL_MAX_VALUE   100
 
#define ZB_ZCL_CONTROL4_NETWORKING_RADIO_4_BARS_MAX_VALUE   4
 
#define ZB_ZCL_DECLARE_CONTROL4_NETWORKING_ATTRIB_LIST_SRV(attr_list, device_type, firmware_version,reflash_version, boot_count, product_string, access_point_node_ID, access_point_long_ID,access_point_cost, mesh_channel)
 Declare attribute list for C4 Network cluster. More...
 
#define ZB_ZCL_DECLARE_CONTROL4_NETWORKING_ATTRIB_LIST_SRV_EXT(attr_list, device_type, firmware_version,announce_window, MTORR_period,reflash_version, boot_count, product_string, access_point_node_ID, access_point_long_ID,access_point_cost, mesh_channel,avg_RSSI, avg_LQI, battery_level, radio_4_bars)
 Declare extended attribute list for C4 Network cluster. More...
 

Control4 Network cluster commands

enum  zb_zcl_control4_networking_cmd_e { ZB_ZCL_CMD_CONTROL4_NETWORKING_IMMEDIATE_ANNOUNCE_ID = 0x00 }
 
enum  zb_zcl_control4_network_state_e { ZB_ZCL_CONTROL4_NETWORK_STATE_IDLE, ZB_ZCL_CONTROL4_NETWORK_STATE_SEARCHING_ZAP, ZB_ZCL_CONTROL4_NETWORK_STATE_RUNNING, ZB_ZCL_CONTROL4_NETWORK_STATE_STOPPED }
 
typedef enum
zb_zcl_control4_network_state_e 
zb_zcl_control4_network_state_t
 
zb_ret_t zb_zcl_control4_network_cluster_start (void)
 
void zb_zcl_control4_network_cluster_stop (void)
 
zb_zcl_control4_network_state_t zb_zcl_control4_network_cluster_get_state (void)
 
void zb_zcl_control4_network_cluster_read_attr_resp_handler (zb_bufid_t param)
 
#define ZB_ZCL_CLUSTER_ID_CONTROL4_NETWORKING_CLIENT_ROLE_GENERATED_CMD_LIST   ZB_ZCL_CMD_CONTROL4_NETWORKING_IMMEDIATE_ANNOUNCE_ID \
 
#define ZB_ZCL_CLUSTER_ID_CONTROL4_NETWORKING_SERVER_ROLE_RECEIVED_CMD_LIST   ZB_ZCL_CLUSTER_ID_CONTROL4_NETWORKING_CLIENT_ROLE_GENERATED_CMD_LIST
 
#define ZB_CONTROL4_NETWORK_SRV_ENDPOINT   0xc4
 
#define ZB_CONTROL4_NETWORK_CLI_ENDPOINT   0x01
 
#define ZB_ZCL_CONTROL4_NETWORK_SRV_DECLARE_CLUSTER_LIST(cluster_list_name,c4_network_attr_list)
 
#define ZB_ZCL_CONTROL4_NETWORK_CLI_DECLARE_CLUSTER_LIST(cluster_list_name)
 
#define ZB_ZCL_CONTROL4_NETWORK_SRV_DECLARE_SIMPLE_DESC(ep_name)
 Declare simple descriptor for C4 Network Cluster endpoint (server side) More...
 
#define ZB_ZCL_CONTROL4_NETWORK_CLI_DECLARE_SIMPLE_DESC(ep_name)
 Declare simple descriptor for C4 Network Cluster endpoint (client side) More...
 
#define ZB_ZCL_CONTROL4_NETWORK_SRV_DECLARE_EP(ep_name, cluster_list)
 Declare Server endpoint for C4 Network Cluster. More...
 
#define ZB_ZCL_CONTROL4_NETWORK_CLI_DECLARE_EP(ep_name, cluster_list)
 Declare Client endpoint for C4 Network Cluster. More...
 

Detailed Description

Warning
Using this cluster makes an application not conforming to the Zigbee PRO specification

This cluster provides an application level interface between Zigbee devices and a Control4 Controller.

This is implemented using Control4 specific profile ZB_AF_CONTROL4_PROFILE_ID.

Control4 Network cluster also uses Many-To-One routing requests.

Macro Definition Documentation

#define ZB_ZCL_CONTROL4_NETWORK_CLI_DECLARE_CLUSTER_LIST (   cluster_list_name)
Value:
zb_zcl_cluster_desc_t cluster_list_name[] = \
{ \
ZB_ZCL_CLUSTER_DESC( \
ZB_ZCL_CLUSTER_ID_CONTROL4_NETWORKING, \
0, \
NULL, \
) \
}
ZCL cluster description.
Definition: zb_zcl_common.h:144
#define ZB_ZCL_MANUF_CODE_INVALID
Internal invalid manufacturer code value.
Definition: zb_zcl_common.h:318
Definition: zb_zcl_common.h:190
#define ZB_ZCL_CONTROL4_NETWORK_CLI_DECLARE_EP (   ep_name,
  cluster_list 
)
Value:
ZB_CONTROL4_NETWORK_CLI_ENDPOINT, ZB_AF_CONTROL4_PROFILE_ID, \
0, \
NULL, \
ZB_ZCL_ARRAY_SIZE(cluster_list, zb_zcl_cluster_desc_t), \
cluster_list, \
(zb_af_simple_desc_1_1_t*)&simple_desc_##ep_name, \
0, NULL, \
0, NULL)
ZCL cluster description.
Definition: zb_zcl_common.h:144
#define ZB_AF_DECLARE_ENDPOINT_DESC(ep_name,ep_id,profile_id,reserved_length,reserved_ptr,cluster_number,cluster_list,simple_desc,rep_count,rep_ctx,lev_ctrl_count,lev_ctrl_ctx)
Initialize endpoint descriptor.
Definition: zboss_api_af.h:426
#define ZB_ZCL_CONTROL4_NETWORK_CLI_DECLARE_SIMPLE_DESC(ep_name)
Declare simple descriptor for C4 Network Cluster endpoint (client side)
Definition: zb_zcl_control4_networking.h:399
Definition: zboss_api_af.h:204

Declare Client endpoint for C4 Network Cluster.

Parameters
ep_name- endpoint variable name
cluster_list- endpoint cluster list
#define ZB_ZCL_CONTROL4_NETWORK_CLI_DECLARE_SIMPLE_DESC (   ep_name)
Value:
ZB_AF_SIMPLE_DESC_TYPE(1, 0) simple_desc_##ep_name = \
{ \
ZB_CONTROL4_NETWORK_CLI_ENDPOINT, \
ZB_AF_CONTROL4_PROFILE_ID, \
0, 1, 0, 1, 0, \
{ \
ZB_ZCL_CLUSTER_ID_CONTROL4_NETWORKING \
} \
}
#define ZB_DECLARE_SIMPLE_DESC(in_clusters_count, out_clusters_count)
Definition: zboss_api_af.h:188
#define ZB_AF_SIMPLE_DESC_TYPE(in_num, out_num)
Definition: zboss_api_af.h:174

Declare simple descriptor for C4 Network Cluster endpoint (client side)

Parameters
ep_name- endpoint variable name
#define ZB_ZCL_CONTROL4_NETWORK_SRV_DECLARE_CLUSTER_LIST (   cluster_list_name,
  c4_network_attr_list 
)
Value:
zb_zcl_cluster_desc_t cluster_list_name[] = \
{ \
ZB_ZCL_CLUSTER_DESC( \
ZB_ZCL_CLUSTER_ID_CONTROL4_NETWORKING, \
ZB_ZCL_ARRAY_SIZE(c4_network_attr_list, zb_zcl_attr_t), \
(c4_network_attr_list), \
) \
}
ZCL cluster description.
Definition: zb_zcl_common.h:144
#define ZB_ZCL_MANUF_CODE_INVALID
Internal invalid manufacturer code value.
Definition: zb_zcl_common.h:318
ZCL attribute definiton structure.
Definition: zb_zcl_common.h:613
Definition: zb_zcl_common.h:188
#define ZB_ZCL_CONTROL4_NETWORK_SRV_DECLARE_EP (   ep_name,
  cluster_list 
)
Value:
ZB_CONTROL4_NETWORK_SRV_ENDPOINT, ZB_AF_CONTROL4_PROFILE_ID, \
0, \
NULL, \
ZB_ZCL_ARRAY_SIZE(cluster_list, zb_zcl_cluster_desc_t), \
cluster_list, \
(zb_af_simple_desc_1_1_t*)&simple_desc_##ep_name, \
0, NULL, 0, NULL)
#define ZB_ZCL_CONTROL4_NETWORK_SRV_DECLARE_SIMPLE_DESC(ep_name)
Declare simple descriptor for C4 Network Cluster endpoint (server side)
Definition: zb_zcl_control4_networking.h:383
ZCL cluster description.
Definition: zb_zcl_common.h:144
#define ZB_AF_DECLARE_ENDPOINT_DESC(ep_name,ep_id,profile_id,reserved_length,reserved_ptr,cluster_number,cluster_list,simple_desc,rep_count,rep_ctx,lev_ctrl_count,lev_ctrl_ctx)
Initialize endpoint descriptor.
Definition: zboss_api_af.h:426
Definition: zboss_api_af.h:204

Declare Server endpoint for C4 Network Cluster.

Parameters
ep_name- endpoint variable name
cluster_list- endpoint cluster list
#define ZB_ZCL_CONTROL4_NETWORK_SRV_DECLARE_SIMPLE_DESC (   ep_name)
Value:
ZB_AF_SIMPLE_DESC_TYPE(0, 1) simple_desc_##ep_name = \
{ \
ZB_CONTROL4_NETWORK_SRV_ENDPOINT, \
ZB_AF_CONTROL4_PROFILE_ID, \
0, 1, 0, 0, 1, \
{ \
ZB_ZCL_CLUSTER_ID_CONTROL4_NETWORKING \
} \
}
#define ZB_DECLARE_SIMPLE_DESC(in_clusters_count, out_clusters_count)
Definition: zboss_api_af.h:188
#define ZB_AF_SIMPLE_DESC_TYPE(in_num, out_num)
Definition: zboss_api_af.h:174

Declare simple descriptor for C4 Network Cluster endpoint (server side)

Parameters
ep_name- endpoint variable name
#define ZB_ZCL_DECLARE_CONTROL4_NETWORKING_ATTRIB_LIST_SRV (   attr_list,
  device_type,
  firmware_version,
  reflash_version,
  boot_count,
  product_string,
  access_point_node_ID,
  access_point_long_ID,
  access_point_cost,
  mesh_channel 
)
Value:
ZB_ZCL_START_DECLARE_ATTRIB_LIST(attr_list) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_DEVICE_TYPE_ID, (device_type)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_FIRMWARE_VERSION_ID, (firmware_version)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_REFLASH_VERSION_ID, (reflash_version)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_BOOT_COUNT_ID, (boot_count)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_PRODUCT_STRING_ID, (product_string)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_NODE_ID_ID, (access_point_node_ID)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_LONG_ID_ID, (access_point_long_ID)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_COST_ID, (access_point_cost)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_MESH_CHANNEL_ID, (mesh_channel)) \
ZB_ZCL_FINISH_DECLARE_ATTRIB_LIST

Declare attribute list for C4 Network cluster.

Parameters
attr_list- attribute list name
device_type- pointer to variable to store Device Type attribute value
firmware_version- pointer to variable to store Firmware Version attribute value
reflash_version- pointer to variable to store Reflash Version attribute value
boot_count- pointer to variable to store Boot Count attribute value
product_string- pointer to variable to store Product String attribute value
access_point_node_ID- pointer to variable to store Access Point Node ID attribute value
access_point_long_ID- pointer to variable to store Access Point Long ID attribute value
access_point_cost- pointer to variable to store Access Point Cost ID attribute value
mesh_channel- pointer to variable to store Mesh Channel attribute value
#define ZB_ZCL_DECLARE_CONTROL4_NETWORKING_ATTRIB_LIST_SRV_EXT (   attr_list,
  device_type,
  firmware_version,
  announce_window,
  MTORR_period,
  reflash_version,
  boot_count,
  product_string,
  access_point_node_ID,
  access_point_long_ID,
  access_point_cost,
  mesh_channel,
  avg_RSSI,
  avg_LQI,
  battery_level,
  radio_4_bars 
)
Value:
ZB_ZCL_START_DECLARE_ATTRIB_LIST(attr_list) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_DEVICE_TYPE_ID, (device_type)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_ANNOUNCE_WINDOW_ID, (announce_window)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_MTORR_PERIOD_ID, (MTORR_period)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_FIRMWARE_VERSION_ID, (firmware_version)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_REFLASH_VERSION_ID, (reflash_version)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_BOOT_COUNT_ID, (boot_count)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_PRODUCT_STRING_ID, (product_string)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_NODE_ID_ID, (access_point_node_ID)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_LONG_ID_ID, (access_point_long_ID)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_ACCESS_POINT_COST_ID, (access_point_cost)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_MESH_CHANNEL_ID, (mesh_channel)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_AVG_RSSI_ID, (avg_RSSI)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_AVG_LQI_ID, (avg_LQI)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_BATTERY_LEVEL_ID, (battery_level)) \
ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_CONTROL4_NETWORKING_RADIO_4_BARS_ID, (radio_4_bars)) \
ZB_ZCL_FINISH_DECLARE_ATTRIB_LIST

Declare extended attribute list for C4 Network cluster.

Parameters
attr_list- attribute list name
device_type- pointer to variable to store Device Type attribute value
firmware_version- pointer to variable to store Firmware Version attribute value
announce_window- pointer to variable to store Announce Window attribute value
MTORR_period- pointer to variable to store MTORR Period attribute value
reflash_version- pointer to variable to store Reflash Version attribute value
boot_count- pointer to variable to store Boot Count attribute value
product_string- pointer to variable to store Product String attribute value
access_point_node_ID- pointer to variable to store Access Point Node ID attribute value
access_point_long_ID- pointer to variable to store Access Point Long ID attribute value
access_point_cost- pointer to variable to store Access Point Cost ID attribute value
mesh_channel- pointer to variable to store Mesh Channel attribute value
avg_RSSI- pointer to variable to store Avg RSSSI attribute value
avg_LQI- pointer to variable to store Avg LQI attribute value
battery_level- pointer to variable to store Battery Level attribute value
radio_4_bars- pointer to variable to store Radio 4-Bar attribute value

Typedef Documentation

Control4 Network Cluster states

Enumeration Type Documentation

Control4 Network Cluster states

Enumerator
ZB_ZCL_CMD_CONTROL4_NETWORKING_IMMEDIATE_ANNOUNCE_ID 

"Immediate announce command" command.

Enumerator
ZB_ZCL_CONTROL4_NETWORKING_DEVICE_TYPE_END_DEVICE 

"Non-sleepy end device" value

ZB_ZCL_CONTROL4_NETWORKING_DEVICE_TYPE_SLEEPY_END_DEVICE 

"Sleepy end device" value

Function Documentation

zb_zcl_control4_network_state_t zb_zcl_control4_network_cluster_get_state ( void  )

Get Control4 Network Cluster state

void zb_zcl_control4_network_cluster_read_attr_resp_handler ( zb_bufid_t  param)

Handle Read Attribute Response from Control4 Network Cluster

zb_ret_t zb_zcl_control4_network_cluster_start ( void  )

Start Control4 Network Cluster

void zb_zcl_control4_network_cluster_stop ( void  )

Stop Control4 Network Cluster


Documentation feedback | Developer Zone | Subscribe | Updated