nRF5 SDK for Thread and Zigbee v3.2.0
Macros
On/Off Output

Macros

#define ZB_HA_DEVICE_VER_ON_OFF_OUTPUT   0
 
#define ZB_HA_DECLARE_ON_OFF_OUTPUT_CLUSTER_LIST(cluster_list_name,on_off_attr_list,basic_attr_list,identify_attr_list,groups_attr_list,scenes_attr_list)
 Declare cluster list for On/Off output device. More...
 
#define ZB_HA_DECLARE_ON_OFF_OUTPUT_EP(ep_name, ep_id, cluster_list)
 Declare endpoint for On/off output device. More...
 
#define ZB_HA_DECLARE_ON_OFF_OUTPUT_CTX(device_ctx, ep_name)   ZBOSS_DECLARE_DEVICE_CTX_1_EP(device_ctx, ep_name)
 Declare On/Off Output device context. More...
 

Detailed Description

On/Off Output device has 5 clusters (see spec 7.4.3):

On/Off Output device sample

Example
Declaring clusters
/********************* Declare attributes **************************/
/* On/Off cluster attributes data */
zb_uint8_t g_attr_on_off = ZB_FALSE;
ZB_ZCL_DECLARE_ON_OFF_ATTRIB_LIST(on_off_attr_list, &g_attr_on_off);
/* Basic cluster attributes data */
ZB_ZCL_DECLARE_BASIC_ATTRIB_LIST(basic_attr_list, &g_attr_zcl_version, &g_attr_power_source);
/* Identify cluster attributes data */
zb_uint16_t g_attr_identify_time = 0;
ZB_ZCL_DECLARE_IDENTIFY_ATTRIB_LIST(identify_attr_list, &g_attr_identify_time);
/* Groups cluster attributes data */
zb_uint8_t g_attr_name_support = 0;
ZB_ZCL_DECLARE_GROUPS_ATTRIB_LIST(groups_attr_list, &g_attr_name_support);
/* Scenes cluster attribute data */
zb_uint8_t g_attr_scenes_scene_count;
zb_uint8_t g_attr_scenes_current_scene;
zb_uint16_t g_attr_scenes_current_group;
zb_uint8_t g_attr_scenes_scene_valid;
zb_uint8_t g_attr_scenes_name_support;
ZB_ZCL_DECLARE_SCENES_ATTRIB_LIST(scenes_attr_list, &g_attr_scenes_scene_count,
&g_attr_scenes_current_scene, &g_attr_scenes_current_group,
&g_attr_scenes_scene_valid, &g_attr_scenes_name_support);
/********************* Declare device **************************/
on_off_attr_list, basic_attr_list, identify_attr_list, groups_attr_list,
scenes_attr_list);
ZB_HA_DECLARE_ON_OFF_OUTPUT_EP(on_off_output_ep, HA_OUTPUT_ENDPOINT, on_off_output_clusters);
ZB_HA_DECLARE_ON_OFF_OUTPUT_CTX(on_off_output_ctx, on_off_output_ep);
Registering device list
ZB_AF_REGISTER_DEVICE_CTX(&on_off_output_ctx);
ZB_AF_SET_ENDPOINT_HANDLER(HA_OUTPUT_ENDPOINT, zcl_custom_cmd_handler);
Example of command handler
zb_uint8_t zcl_custom_cmd_handler(zb_uint8_t param)
{
zb_buf_t *zcl_cmd_buf = (zb_buf_t *)ZB_BUF_FROM_REF(param);
zcl_cmd_buf,
/* Store some values - cmd_info will be overwritten */
zb_uint8_t processed = ZB_FALSE;
zb_uint16_t dst_addr = ZB_ZCL_PARSED_HDR_SHORT_DATA(cmd_info).src_addr;
zb_uint8_t endpoint = ZB_ZCL_PARSED_HDR_SHORT_DATA(cmd_info).src_endpoint;
zb_uint8_t seq_num = cmd_info->seq_number;

The complete set of On/Off Output device samples can be found in /snippet/ha_on_off_output_sample.c.

Macro Definition Documentation

#define ZB_HA_DECLARE_ON_OFF_OUTPUT_CLUSTER_LIST (   cluster_list_name,
  on_off_attr_list,
  basic_attr_list,
  identify_attr_list,
  groups_attr_list,
  scenes_attr_list 
)

Declare cluster list for On/Off output device.

Parameters
cluster_list_name- cluster list variable name
on_off_attr_list- attribute list for On/Off cluster
basic_attr_list- attribute list for Basic cluster
identify_attr_list- attribute list for Identify cluster
groups_attr_list- attribute list for Groups cluster
scenes_attr_list- attribute list for Scenes cluster
#define ZB_HA_DECLARE_ON_OFF_OUTPUT_CTX (   device_ctx,
  ep_name 
)    ZBOSS_DECLARE_DEVICE_CTX_1_EP(device_ctx, ep_name)

Declare On/Off Output device context.

Parameters
device_ctx- device context variable name.
ep_name- endpoint variable name.
#define ZB_HA_DECLARE_ON_OFF_OUTPUT_EP (   ep_name,
  ep_id,
  cluster_list 
)
Value:
ZB_ZCL_DECLARE_ON_OFF_OUTPUT_SIMPLE_DESC( \
ep_name, \
ep_id, \
ZB_HA_ON_OFF_OUTPUT_IN_CLUSTER_NUM, \
ZB_HA_ON_OFF_OUTPUT_OUT_CLUSTER_NUM); \
ZBOSS_DEVICE_DECLARE_REPORTING_CTX(reporting_info## device_ctx_name, \
ZB_HA_ON_OFF_OUTPUT_REPORT_ATTR_COUNT); \
ep_id, \
0, \
NULL, \
ZB_ZCL_ARRAY_SIZE( \
cluster_list, \
cluster_list, \
(zb_af_simple_desc_1_1_t*)&simple_desc_##ep_name, \
ZB_HA_ON_OFF_OUTPUT_REPORT_ATTR_COUNT, reporting_info## device_ctx_name, \
0, NULL)
ZCL cluster description.
Definition: zb_zcl_common.h:143
Definition: zboss_api_af.h:287
#define ZBOSS_DEVICE_DECLARE_REPORTING_CTX(rep_ctx, rep_count)
Definition: zboss_api_af.h:579
#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:490
Definition: zboss_api_af.h:201

Declare endpoint for On/off output device.

Parameters
ep_name- endpoint variable name
ep_id- endpoint ID
cluster_list- endpoint cluster list
#define ZB_HA_DEVICE_VER_ON_OFF_OUTPUT   0

On/Off Output device version


Documentation feedback | Developer Zone | Subscribe | Updated