nRF5 SDK for Thread and Zigbee v3.2.0
Data Structures | Macros | Typedefs | Functions
ZCL Identify cluster

Data Structures

struct  zb_zcl_identify_effect_req_s
 Structured representsation of Trigger effect command payload. More...
 
struct  zb_zcl_identify_effect_value_param_s
 Declare change Identify attribute for User Application. More...
 
struct  zb_zcl_identify_effect_user_app_schedule_e
 
struct  zb_zcl_identify_req_s
 Structured representation of Identify command payload. More...
 
struct  zb_zcl_identify_query_res_s
 Structured representation of Identify Query Response command payload. More...
 

Macros

#define ZB_ZCL_IDENTIFY_SEND_IDENTIFY_REQ(buffer, time, addr, dst_addr_mode, dst_ep, ep, prfl_id, def_resp, cb)
 Send Identify command. More...
 
#define ZB_ZCL_IDENTIFY_SEND_IDENTIFY_QUERY_REQ(buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, def_resp, cb)
 Send Identify Query command. More...
 
#define ZB_ZCL_IDENTIFY_SEND_IDENTIFY_QUERY_RES(buffer, time, addr, dst_addr_mode, dst_ep, ep, prfl_id, seq_num)
 Send Identify Query Response command. More...
 
#define ZB_ZCL_IDENTIFY_GET_IDENTIFY_REQ(data_ptr, buffer, status)
 Identify cluster Identify command payload structured read. More...
 
#define ZB_ZCL_IDENTIFY_GET_IDENTIFY_QUERY_RES(data_ptr, buffer, status)
 Identify cluster Identify Query Response command payload structured read. More...
 

Typedefs

typedef struct
zb_zcl_identify_req_s 
zb_zcl_identify_req_t
 Structured representation of Identify command payload.
 
typedef struct
zb_zcl_identify_query_res_s 
zb_zcl_identify_query_res_t
 Structured representation of Identify Query Response command payload.
 

Functions

zb_uint8_t zb_zcl_start_identifying (zb_uint8_t endpoint, zb_uint16_t timeout)
 Start identify process on given endpoint. More...
 
void zb_zcl_stop_identifying (zb_uint8_t endpoint)
 Stop identify process on given endpoint Complimentary function to zb_zcl_start_identifying. Used to force identify termination before timeout provided to zb_zcl_start_identifying is elapsed. More...
 
zb_uint8_t zb_zcl_is_identifying (zb_uint8_t endpoint)
 Indicates that endpoint supports Identify cluster and is identifying. More...
 

Identify cluster attributes

enum  zb_zcl_identify_attr_e { ZB_ZCL_ATTR_IDENTIFY_IDENTIFY_TIME_ID = 0x0000 }
 Identify cluster attribute identifier. More...
 
#define ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE   0x0000
 Default value for Identify attribute.
 

Identify cluster command structures and definitions

enum  zb_zcl_identify_cmd_e { ZB_ZCL_CMD_IDENTIFY_IDENTIFY_ID = 0x00, ZB_ZCL_CMD_IDENTIFY_IDENTIFY_QUERY_ID = 0x01, ZB_ZCL_CMD_IDENTIFY_TRIGGER_EFFECT_ID = 0x40, ZB_ZCL_CMD_IDENTIFY_IDENTIFY_QUERY_RSP_ID = 0x00 }
 Command identifiers for "Identify" cluster. More...
 
enum  zb_zcl_identify_trigger_effect_e {
  ZB_ZCL_IDENTIFY_EFFECT_ID_BLINK = 0x00, ZB_ZCL_IDENTIFY_EFFECT_ID_BREATHE = 0x01, ZB_ZCL_IDENTIFY_EFFECT_ID_OKAY = 0x02, ZB_ZCL_IDENTIFY_EFFECT_ID_CHANNEL_CHANGE = 0xb,
  ZB_ZCL_IDENTIFY_EFFECT_ID_FINISH_EFFECT = 0xfe, ZB_ZCL_IDENTIFY_EFFECT_ID_STOP = 0xff
}
 
enum  zb_zcl_identify_trigger_variant_e { ZB_ZCL_IDENTIFY_EFFECT_ID_VARIANT_DEFAULT = 0x00 }
 
typedef struct
zb_zcl_identify_effect_req_s 
zb_zcl_identify_effect_req_t
 Structured representsation of Trigger effect command payload.
 
#define ZB_ZCL_IDENTIFY_SEND_TRIGGER_VARIANT_REQ(buffer, addr, dst_addr_mode, dst_ep, ep, prof_id, def_resp, cb, effect_id, effect_var)
 Send Trigger effect command. More...
 
#define ZB_ZCL_IDENTIFY_GET_TRIGGER_VARIANT_REQ(data_ptr, buffer, status)
 Parses Trigger effect command. More...
 

Inform User App about ZCL Identify cluster command and change attributes.

Internal structures and define-procedure for inform User App about ZCL Identify cluster command and change attributes.

typedef struct
zb_zcl_identify_effect_value_param_s 
zb_zcl_identify_effect_value_param_t
 Declare change Identify attribute for User Application.
 
typedef struct
zb_zcl_identify_effect_user_app_schedule_e 
zb_zcl_identify_effect_user_app_schedule_t
 
#define ZB_ZCL_IDENTIFY_EFFECT_SCHEDULE_USER_APP(buffer, pcmd_info, effectId, effectVar)
 

Detailed Description

Identify cluster implementation supports Identify command and Identify Query request-response command pair. All these commands have simple payload. Both Identify and Identify Query request are being processed, and Identify Query response is being generated in ZCL internals.

Example
Identify sending:
ZB_ZCL_IDENTIFY_SEND_IDENTIFY_REQ(zcl_cmd_buf, TIME_TO_IDENTIFY,
DST_ADDR, DST_ADDR_MODE, DST_ENDPOINT, HA_SWITCH_ENDPOINT,
Identify Query request sending:
zcl_cmd_buf,
DST_ADDR,
DST_ADDR_MODE,
DST_ENDPOINT,
HA_SWITCH_ENDPOINT,
NULL);
Identify Query response parsing:

For more information see 5.5.3_groups, 5.4.2_identify samples

Macro Definition Documentation

#define ZB_ZCL_IDENTIFY_EFFECT_SCHEDULE_USER_APP (   buffer,
  pcmd_info,
  effectId,
  effectVar 
)
Value:
{ \
ZB_MEMMOVE(&(data->cmd_info), (pcmd_info), sizeof(zb_zcl_parsed_hdr_t)); \
data->param.effect_id = (effectId); \
data->param.effect_variant = (effectVar); \
ZB_SCHEDULE_CALLBACK(zb_zcl_identify_effect_invoke_user_app, ZB_REF_FROM_BUF((buffer))); \
}
#define ZB_SCHEDULE_CALLBACK(func, param)
Definition: zboss_api_core.h:351
Definition: zb_zcl_common.h:949
#define ZB_GET_BUF_PARAM(zbbuf, type)
Definition: zboss_api_core.h:965
struct zb_zcl_identify_effect_user_app_schedule_e zb_zcl_identify_effect_user_app_schedule_t
#define ZB_REF_FROM_BUF(buf)
get buffer reference which can be passed to scheduler callback
Definition: zboss_api_core.h:754
Definition: zb_zcl_identify.h:227
#define ZB_ZCL_IDENTIFY_GET_IDENTIFY_QUERY_RES (   data_ptr,
  buffer,
  status 
)
Value:
{ \
if (ZB_BUF_LEN((buffer)) != sizeof(zb_zcl_identify_query_res_t)) \
{ \
} \
else \
{ \
ZB_HTOLE16(&((data_ptr)->timeout), &(src_ptr->timeout)); \
} \
}
Definition: zb_zcl_common.h:319
struct zb_zcl_identify_query_res_s zb_zcl_identify_query_res_t
Structured representation of Identify Query Response command payload.
#define ZB_BUF_BEGIN(zbbuf)
Definition: zboss_api_core.h:767
#define ZB_BUF_LEN(zbbuf)
Definition: zboss_api_core.h:776
Structured representation of Identify Query Response command payload.
Definition: zb_zcl_identify.h:345
Definition: zb_zcl_common.h:318

Identify cluster Identify Query Response command payload structured read.

Parameters
data_ptr- pointer to a variable of type zb_zcl_identify_query_res_t
buffercontaining the packet (by pointer).
status- variable to put parse status to (see zb_zcl_parse_status_t).
#define ZB_ZCL_IDENTIFY_GET_IDENTIFY_REQ (   data_ptr,
  buffer,
  status 
)
Value:
{ \
if (ZB_BUF_LEN((buffer)) != sizeof(zb_zcl_identify_req_t)) \
{ \
} \
else \
{ \
ZB_HTOLE16(&((data_ptr)->timeout), &(src_ptr->timeout)); \
} \
}
Definition: zb_zcl_common.h:319
struct zb_zcl_identify_req_s zb_zcl_identify_req_t
Structured representation of Identify command payload.
#define ZB_BUF_BEGIN(zbbuf)
Definition: zboss_api_core.h:767
#define ZB_BUF_LEN(zbbuf)
Definition: zboss_api_core.h:776
Definition: zb_zcl_common.h:318
Structured representation of Identify command payload.
Definition: zb_zcl_identify.h:339

Identify cluster Identify command payload structured read.

Parameters
data_ptr- pointer to a variable of type zb_zcl_identify_req_t
buffercontaining the packet (by pointer).
status- variable to put parse status to (see zb_zcl_parse_status_t).
#define ZB_ZCL_IDENTIFY_GET_TRIGGER_VARIANT_REQ (   data_ptr,
  buffer,
  status 
)
Value:
{ \
if (ZB_BUF_LEN((buffer)) != sizeof(zb_zcl_identify_effect_req_t)) \
{ \
} \
else \
{ \
ZB_MEMCPY((data_ptr), src_ptr, sizeof(zb_zcl_identify_effect_req_t)); \
} \
}
Structured representsation of Trigger effect command payload.
Definition: zb_zcl_identify.h:154
Definition: zb_zcl_common.h:319
struct zb_zcl_identify_effect_req_s zb_zcl_identify_effect_req_t
Structured representsation of Trigger effect command payload.
#define ZB_BUF_BEGIN(zbbuf)
Definition: zboss_api_core.h:767
#define ZB_BUF_LEN(zbbuf)
Definition: zboss_api_core.h:776
Definition: zb_zcl_common.h:318

Parses Trigger effect command.

Attention
Assumes that ZCL header already cut.
Parameters
data_ptr- pointer to a variable of type zb_zcl_identify_effect_req_s.
buffercontaining the packet (by pointer).
status- variable to put parse status to (see zb_zcl_parse_status_t).
#define ZB_ZCL_IDENTIFY_SEND_IDENTIFY_QUERY_REQ (   buffer,
  addr,
  dst_addr_mode,
  dst_ep,
  ep,
  prfl_id,
  def_resp,
  cb 
)
Value:
{ \
zb_uint8_t* ptr = ZB_ZCL_START_PACKET_REQ(buffer) \
ZB_ZCL_CONSTRUCT_SPECIFIC_COMMAND_REQ_FRAME_CONTROL(ptr, def_resp) \
ZB_ZCL_CONSTRUCT_COMMAND_HEADER_REQ( \
ZB_ZCL_FINISH_PACKET(buffer, ptr) \
ZB_ZCL_SEND_COMMAND_SHORT( \
buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, ZB_ZCL_CLUSTER_ID_IDENTIFY, cb); \
}
#define ZB_ZCL_GET_SEQ_NUM()
Return next sequence number for ZCL frame.
Definition: zb_zcl_common.h:1250
Definition: zb_zcl_identify.h:99
Definition: zb_zcl_common.h:204
#define ZB_ZCL_FINISH_PACKET(zbbuf, ptr)
Definition: zb_zcl_common.h:1654
unsigned char zb_uint8_t
Project-local 1-byte unsigned int type.
Definition: zb_types.h:116

Send Identify Query command.

Parameters
bufferto put packet to
addr- address to send packet to
dst_addr_mode- addressing mode
dst_ep- destination endpoint
ep- sending endpoint
prfl_id- profile identifier
def_resp- flag "Default response required"
cb- callback for getting command send status
#define ZB_ZCL_IDENTIFY_SEND_IDENTIFY_QUERY_RES (   buffer,
  time,
  addr,
  dst_addr_mode,
  dst_ep,
  ep,
  prfl_id,
  seq_num 
)
Value:
{ \
ZB_ZCL_FINISH_PACKET(buffer, ptr) \
ZB_ZCL_SEND_COMMAND_SHORT( \
buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, ZB_ZCL_CLUSTER_ID_IDENTIFY, NULL); \
}
#define ZB_ZCL_START_PACKET(zbbuf)
Initializes zb_buf_t buffer and returns pointer to the beginning of array.
Definition: zb_zcl_common.h:1332
#define ZB_ZCL_CONSTRUCT_COMMAND_HEADER(data_ptr, tsn, cmd_id)
Construct ZCL header.
Definition: zb_zcl_common.h:1207
Definition: zb_zcl_common.h:204
#define ZB_ZCL_PACKET_PUT_DATA16_VAL(ptr, val)
Definition: zb_zcl_common.h:1371
#define ZB_ZCL_FINISH_PACKET(zbbuf, ptr)
Definition: zb_zcl_common.h:1654
unsigned char zb_uint8_t
Project-local 1-byte unsigned int type.
Definition: zb_types.h:116
Definition: zb_zcl_identify.h:101
#define ZB_ZCL_CONSTRUCT_SPECIFIC_COMMAND_RES_FRAME_CONTROL(buf_ptr)
Construct ZCL header frame control value for cluster-specific command response.
Definition: zb_zcl_common.h:1194

Send Identify Query Response command.

Parameters
bufferto put packet to
timethe device will be identifying
addr- address to send packet to
dst_addr_mode- addressing mode
dst_ep- destination endpoint
ep- sending endpoint
prfl_id- profile identifier
seq_num- sequence number
#define ZB_ZCL_IDENTIFY_SEND_IDENTIFY_REQ (   buffer,
  time,
  addr,
  dst_addr_mode,
  dst_ep,
  ep,
  prfl_id,
  def_resp,
  cb 
)
Value:
{ \
zb_uint8_t* ptr = ZB_ZCL_START_PACKET_REQ(buffer) \
ZB_ZCL_CONSTRUCT_SPECIFIC_COMMAND_REQ_FRAME_CONTROL(ptr, def_resp) \
ZB_ZCL_CONSTRUCT_COMMAND_HEADER_REQ(ptr, ZB_ZCL_GET_SEQ_NUM(), ZB_ZCL_CMD_IDENTIFY_IDENTIFY_ID); \
ZB_ZCL_FINISH_PACKET(buffer, ptr) \
ZB_ZCL_SEND_COMMAND_SHORT( \
buffer, addr, dst_addr_mode, dst_ep, ep, prfl_id, ZB_ZCL_CLUSTER_ID_IDENTIFY, cb); \
}
#define ZB_ZCL_GET_SEQ_NUM()
Return next sequence number for ZCL frame.
Definition: zb_zcl_common.h:1250
Definition: zb_zcl_common.h:204
#define ZB_ZCL_PACKET_PUT_DATA16_VAL(ptr, val)
Definition: zb_zcl_common.h:1371
Definition: zb_zcl_identify.h:98
#define ZB_ZCL_FINISH_PACKET(zbbuf, ptr)
Definition: zb_zcl_common.h:1654
unsigned char zb_uint8_t
Project-local 1-byte unsigned int type.
Definition: zb_types.h:116

Send Identify command.

Parameters
bufferto put packet to
timethe device will be identifying
addr- address to send packet to
dst_addr_mode- addressing mode
dst_ep- destination endpoint
ep- sending endpoint
prfl_id- profile identifier
def_resp- flag "Default response required"
cb- callback for getting command send status
#define ZB_ZCL_IDENTIFY_SEND_TRIGGER_VARIANT_REQ (   buffer,
  addr,
  dst_addr_mode,
  dst_ep,
  ep,
  prof_id,
  def_resp,
  cb,
  effect_id,
  effect_var 
)
Value:
{ \
zb_uint8_t* ptr = ZB_ZCL_START_PACKET_REQ(buffer) \
ZB_ZCL_CONSTRUCT_SPECIFIC_COMMAND_REQ_FRAME_CONTROL(ptr, def_resp) \
ZB_ZCL_CONSTRUCT_COMMAND_HEADER_REQ(ptr, ZB_ZCL_GET_SEQ_NUM(), ZB_ZCL_CMD_IDENTIFY_TRIGGER_EFFECT_ID); \
ZB_ZCL_PACKET_PUT_DATA8(ptr, (effect_id)); \
ZB_ZCL_PACKET_PUT_DATA8(ptr, (effect_var)); \
ZB_ZCL_FINISH_PACKET(buffer, ptr) \
ZB_ZCL_SEND_COMMAND_SHORT( \
buffer, addr, dst_addr_mode, dst_ep, ep, prof_id, ZB_ZCL_CLUSTER_ID_IDENTIFY, cb); \
}
#define ZB_ZCL_PACKET_PUT_DATA8(ptr, val)
Put 8-bit value to packet.
Definition: zb_zcl_common.h:1353
#define ZB_ZCL_GET_SEQ_NUM()
Return next sequence number for ZCL frame.
Definition: zb_zcl_common.h:1250
Definition: zb_zcl_common.h:204
#define ZB_ZCL_FINISH_PACKET(zbbuf, ptr)
Definition: zb_zcl_common.h:1654
unsigned char zb_uint8_t
Project-local 1-byte unsigned int type.
Definition: zb_types.h:116
Definition: zb_zcl_identify.h:100

Send Trigger effect command.

Parameters
bufferto put packet to
addr- address to send packet to
dst_addr_mode- addressing mode
dst_ep- destination endpoint
ep- sending endpoint
prof_id- profile identifier
def_resp- flag "Default response required"
cb- callback for getting command send status
effect_id- effect identify, see zb_zcl_identify_trigger_effect_e
effect_var- effect variant, see zb_zcl_identify_trigger_variant_e

Typedef Documentation

Struct for invoke User App & continue after

Enumeration Type Documentation

Identify cluster attribute identifier.

See also
ZCL spec, subclause 3.5.2.2
Enumerator
ZB_ZCL_ATTR_IDENTIFY_IDENTIFY_TIME_ID 

Identify time attribute

Command identifiers for "Identify" cluster.

See also
ZCL spec, subclauses 3.5.2.3, 3.5.2.4
Enumerator
ZB_ZCL_CMD_IDENTIFY_IDENTIFY_ID 

Identify command

ZB_ZCL_CMD_IDENTIFY_IDENTIFY_QUERY_ID 

Identify query command

ZB_ZCL_CMD_IDENTIFY_TRIGGER_EFFECT_ID 

"Trigger effect" command identifier.

ZB_ZCL_CMD_IDENTIFY_IDENTIFY_QUERY_RSP_ID 

Identify query response

Effect identifier enum

See also
ZCL spec 3.5.2.2.3.1
Enumerator
ZB_ZCL_IDENTIFY_EFFECT_ID_BLINK 

Effect identifier field value: Light is turned on/off once Effect identifier field value: Light turned on/off over 1 second and repeated 15 times

ZB_ZCL_IDENTIFY_EFFECT_ID_BREATHE 

Effect identifier field value: Colored light turns green for 1 second; non-colored light flashes twice

ZB_ZCL_IDENTIFY_EFFECT_ID_OKAY 

Effect identifier field value: Colored light turns orange for 8 seconds; non-colored light switches to maximum brightness for 0.5s and then minimum brightness for 7.5s

ZB_ZCL_IDENTIFY_EFFECT_ID_CHANNEL_CHANGE 

Effect identifier field value: Complete the current effect sequence before terminating. E.g., if in the middle of a breathe effect (as above), first complete the current 1s breathe effect and then terminate the effect

ZB_ZCL_IDENTIFY_EFFECT_ID_FINISH_EFFECT 

Effect identifier field value: Terminate the effect as soon as possible

Effect identifier enum

See also
ZCL spec 3.5.2.2.3.2
Enumerator
ZB_ZCL_IDENTIFY_EFFECT_ID_VARIANT_DEFAULT 

Effect variant field value: Default

Function Documentation

zb_uint8_t zb_zcl_is_identifying ( zb_uint8_t  endpoint)

Indicates that endpoint supports Identify cluster and is identifying.

Parameters
endpointnumber to analyze
Returns
ZB_TRUE if endpoint is in the "identifying" state, ZB_FALSE otherwise.
zb_uint8_t zb_zcl_start_identifying ( zb_uint8_t  endpoint,
zb_uint16_t  timeout 
)

Start identify process on given endpoint.

Parameters
endpoint- endpoint to start identifying on
timeout- time (in seconds) after which identifying will stop
void zb_zcl_stop_identifying ( zb_uint8_t  endpoint)

Stop identify process on given endpoint Complimentary function to zb_zcl_start_identifying. Used to force identify termination before timeout provided to zb_zcl_start_identifying is elapsed.

Parameters
endpointEndpoint

Documentation feedback | Developer Zone | Subscribe | Updated