Z-Stack ZCL API
Z-Stack ZCL API
TABLE OF CONTENTS
1. INTRODUCTION ..............................................................................................................................................1
1.1 PURPOSE .......................................................................................................................................................1
1.2 SCOPE ........................................................................................................................................................... 1
1.3 ACRONYMS ...................................................................................................................................................1
1.4 APPLICABLE DOCUMENTS.............................................................................................................................2
2. API OVERVIEW ................................................................................................................................................2
2.1 OVERVIEW ....................................................................................................................................................2
2.2 CLIENT/SERVER MODEL ...............................................................................................................................2
2.3 STACK DIAGRAM ..........................................................................................................................................3
2.4 APPLICATION/PROFILE REGISTRATION ......................................................................................................... 4
2.5 APPLICATION CREATION ...............................................................................................................................7
3. FOUNDATION LAYER ....................................................................................................................................9
3.1 INTRODUCTION .............................................................................................................................................9
3.2 SEND COMMAND ..........................................................................................................................................9
3.3 SEND READ ................................................................................................................................................. 10
3.4 SEND READ RESPONSE................................................................................................................................ 10
3.5 SEND WRITE ............................................................................................................................................... 11
3.6 SEND WRITE UNDIVIDED ............................................................................................................................ 11
3.7 SEND WRITE RESPONSE .............................................................................................................................. 12
3.8 SEND WRITE NO RESPONSE ........................................................................................................................ 12
3.9 SEND CONFIGURE REPORTING .................................................................................................................... 13
3.10 SEND CONFIGURE REPORTING RESPONSE ................................................................................................... 13
3.11 SEND READ REPORTING CONFIGURATION .................................................................................................. 14
3.12 SEND READ REPORTING CONFIGURATION RESPONSE ................................................................................. 14
3.13 SEND REPORT ............................................................................................................................................. 15
3.14 SEND DEFAULT RESPONSE .......................................................................................................................... 15
3.15 SEND DISCOVER.......................................................................................................................................... 16
3.16 SEND DISCOVER RESPONSE ........................................................................................................................ 16
3.17 REGISTER ATTRIBUTE LIST ......................................................................................................................... 17
3.18 REGISTER ATTRIBUTE DATA VALIDATION CALLBACK ............................................................................... 17
3.19 REGISTER CLUSTER LIBRARY HANDLER CALLBACK .................................................................................. 17
3.20 CLUSTER LIBRARY HANDLER CALLBACK ................................................................................................... 18
3.21 REGISTER CLUSTER OPTION LIST ............................................................................................................... 18
3.22 GET THE RAW AF INCOMING MESSAGE...................................................................................................... 18
4. GENERAL FUNCTIONAL DOMAIN ........................................................................................................... 19
4.1 INTRODUCTION ........................................................................................................................................... 19
4.2 SEND RESET TO FACTORY DEFAULTS (BASIC) ............................................................................................ 19
4.3 SEND IDENTIFY (IDENTIFY) ......................................................................................................................... 20
4.4 SEND IDENTIFY QUERY (IDENTIFY) ............................................................................................................ 20
4.5 SEND IDENTIFY QUERY RESPONSE (IDENTIFY) ........................................................................................... 21
4.6 SEND ADD GROUP (GROUP)........................................................................................................................ 21
4.7 SEND VIEW GROUP (GROUP) ...................................................................................................................... 22
4.8 SEND GET GROUP MEMBERSHIP (GROUP) .................................................................................................. 22
4.9 SEND REMOVE GROUP (GROUP) ................................................................................................................. 23
4.10 SEND REMOVE ALL GROUPS (GROUP) ........................................................................................................ 23
4.11 SEND ADD GROUP IF IDENTIFYING (GROUP) .............................................................................................. 24
4.12 SEND ADD GROUP RESPONSE (GROUP) ...................................................................................................... 24
4.13 SEND VIEW GROUP RESPONSE (GROUP) ..................................................................................................... 24
4.14 SEND GET GROUP MEMBERSHIP RESPONSE (GROUP) ................................................................................. 25
4.15 SEND REMOVE GROUP RESPONSE (GROUP) ................................................................................................ 26
LIST OF FIGURES
FIGURE 1: STACK DIAGRAM ...........................................................................................................................................3
1. Introduction
1.1 Purpose
The purpose of this document is to define the ZigBee Cluster Library (ZCL) API. This API allows the higher layers
(Profile and Application) to access the ZCL functionality. The ZCL is divided into the Foundation layer and several
functional domains, each domain addressing clusters relating to specific functionality. The functional domains are:
General
Closures
Heating, Ventilation and Air Conditioning (HVAC)
Lighting
Measurements and Sensing
Security and Safety
Smart Energy
Protocol Interfaces
Touchlink Commissioning
Green Power
This document covers only the Foundation layer and the General, Protocol Interfaces, Touchlink Commissioning
and Green Power functional domains.
1.2 Scope
This document enumerates all the function calls provided by the Foundation layer, Touchlink Commissioning and
Green Power General functional domain. It also enumerates the callback functions that need to be provided by the
higher layers.
1.3 Acronyms
AF Application Framework
APDU Application Protocol Data Unit
API Application Programming Interface
APS Application Support Sub-Layer
BACnet Building Automation and Control Network
Client A cluster interface which is listed in the output cluster list of the simple descriptor on an endpoint.
Typically this interface sends commands that manipulate the attributes on the corresponding server
cluster
Cluster A related collection of attributes and commands, which together define a communications interface
between two devices. The devices implement server and client sides of the interface respectively
HAL Hardware Abstraction Layer
MAC Media Access Control
NPDU Network Protocol Data Unit
NWK Network Layer
PAN Personal Area Network
RSSI Receiver Signal Strength Indication
Server A cluster interface which is listed in the input cluster list of the simple descriptor on an endpoint.
Typically this interface supports all or most of the attributes of the cluster
ZCL ZigBee Cluster Library
2. API Overview
2.1 Overview
The ZCL acts as a repository for cluster functionality that is developed by ZigBee. The Foundation layer and
General functional domain cluster functionality is covered in this document.
The Foundation layer provides APIs to the higher layers to:
1. Generate Request and Response commands
2. Register Application's attribute list
3. Register Application’s attribute data validation callback function
4. Register Cluster Library Handler callback functions
5. Register the Application task to receive the unprocessed Foundation command/response messages
The General and Protocol Interfaces functional domains provide APIs to the high layers to:
1. Generate Request and Response commands
2. Register Application’s Command callback functions
As an example, the Read and Write attribute commands, which allow devices to manipulate attributes, are sent from
the Client device and received by the Server device. Any response to those commands (i.e., the Read and Write
attribute response commands) are sent from the Server device and received by the Client device. Conversely, the
Report attribute command, which facilitates dynamic attribute reporting, is sent from the Server device to the Client
device that has been bound to the Server device.
The ZCL command messages received by the AF are put into the ZCL task’s queue. The ZCL task parses and
processes the profile commands, and hands the cluster-specific commands off to the corresponding cluster through
Cluster Library Handler callback function. The cluster processes the command and notifies, if required, the
application/profile through Command callback function.
The attribute list input parameter to zcl_registerAttrList() contains an entry of the following information
for each supported attribute:
// Attribute record
typedef struct
{
uint16 attrId; // Attribute ID
uint8 dataType; // Data Type - defined in AF.h
uint8 accessControl; // Read/write - bit field
void *dataPtr; // Pointer to data field
} zclAttribute_t;
typedef struct
{
uint16 clusterID; // Cluster ID
zclAttribute_t attr; // Attribute record
} zclAttrRec_t;
// Register Callbacks table entry - enter function pointers for callbacks that
// the application would like to receive
typedef struct
{
zclGCB_BasicReset_t pfnBasicReset;
zclGCB_IdentifyTriggerEffect_t pfnIdentifyTriggerEffect;
zclGCB_OnOff_t pfnOnOff;
zclGCB_OnOff_OffWithEffect_t pfnOnOff_OffWithEffect;
zclGCB_OnOff_OnWithRecallGlobalScene_t pfnOnOff_OnWithRecallGlobalScene;
zclGCB_OnOff_OnWithTimedOff_t pfnOnOff_OnWithTimedOff;
zclGCB_LevelControlMoveToLevel_t pfnLevelControlMoveToLevel;
zclGCB_LevelControlMove_t pfnLevelControlMove;
zclGCB_LevelControlStep_t pfnLevelControlStep;
zclGCB_LevelControlStop_t pfnLevelControlStop;
zclGCB_GroupRsp_t pfnGroupRsp;
zclGCB_SceneStoreReq_t pfnSceneStoreReq;
zclGCB_SceneRecallReq_t pfnSceneRecallReq;
zclGCB_SceneRsp_t pfnSceneRsp;
zclGCB_Alarm_t pfnAlarm;
zclGCB_GetEventLog_t pfnGetEventLog;
zclGCB_PublishEventLog_t pfnPublishEventLog;
zclGCB_Location_t pfnLocation;
zclGCB_LocationRsp_t pfnLocationRsp;
} zclGeneral_AppCallbacks_t;
// Register Callbacks table entry - enter function pointers for callbacks that
// the application would like to receive
typedef struct
{
zclClosures_DoorLock_t pfnDoorLock;
zclClosures_DoorLockRsp_t pfnDoorLockRsp;
zclClosures_DoorLockUnlockWithTimeout_t pfnDoorLockUnlockWithTimeout;
zclClosures_DoorLockGetLogRecord_t pfnDoorLockGetLogRecord;
zclClosures_DoorLockSetPINCode_t pfnDoorLockSetPINCode;
zclClosures_DoorLockGetPINCode_t pfnDoorLockGetPINCode;
zclClosures_DoorLockClearPINCode_t pfnDoorLockClearPINCode;
zclClosures_DoorLockClearAllPINCodes_t pfnDoorLockClearAllPINCodes;
zclClosures_DoorLockSetUserStatus_t pfnDoorLockSetUserStatus;
zclClosures_DoorLockGetUserStatus_t pfnDoorLockGetUserStatus;
zclClosures_DoorLockSetWeekDaySchedule_t pfnDoorLockSetWeekDaySchedule;
zclClosures_DoorLockGetWeekDaySchedule_t pfnDoorLockGetWeekDaySchedule;
zclClosures_DoorLockClearWeekDaySchedule_t pfnDoorLockClearWeekDaySchedule;
zclClosures_DoorLockSetYearDaySchedule_t pfnDoorLockSetYearDaySchedule;
zclClosures_DoorLockGetYearDaySchedule_t pfnDoorLockGetYearDaySchedule;
zclClosures_DoorLockClearYearDaySchedule_t pfnDoorLockClearYearDaySchedule;
zclClosures_DoorLockSetHolidaySchedule_t pfnDoorLockSetHolidaySchedule;
zclClosures_DoorLockGetHolidaySchedule_t pfnDoorLockGetHolidaySchedule;
zclClosures_DoorLockClearHolidaySchedule_t pfnDoorLockClearHolidaySchedule;
zclClosures_DoorLockSetUserType_t pfnDoorLockSetUserType;
zclClosures_DoorLockGetUserType_t pfnDoorLockGetUserType;
zclClosures_DoorLockSetRFIDCode_t pfnDoorLockSetRFIDCode;
zclClosures_DoorLockGetRFIDCode_t pfnDoorLockGetRFIDCode;
zclClosures_DoorLockClearRFIDCode_t pfnDoorLockClearRFIDCode;
zclClosures_DoorLockClearAllRFIDCodes_t pfnDoorLockClearAllRFIDCodes;
zclClosures_DoorLockUnlockWithTimeoutRsp_t pfnDoorLockUnlockWithTimeoutRsp;
zclClosures_DoorLockGetLogRecordRsp_t pfnDoorLockGetLogRecordRsp;
zclClosures_DoorLockSetPINCodeRsp_t pfnDoorLockSetPINCodeRsp;
zclClosures_DoorLockGetPINCodeRsp_t pfnDoorLockGetPINCodeRsp;
zclClosures_DoorLockClearPINCodeRsp_t pfnDoorLockClearPINCodeRsp;
zclClosures_DoorLockClearAllPINCodesRsp_t pfnDoorLockClearAllPINCodesRsp;
zclClosures_DoorLockSetUserStatusRsp_t pfnDoorLockSetUserStatusRsp;
zclClosures_DoorLockGetUserStatusRsp_t pfnDoorLockGetUserStatusRsp;
zclClosures_DoorLockSetWeekDayScheduleRsp_t pfnDoorLockSetWeekDayScheduleRsp;
zclClosures_DoorLockGetWeekDayScheduleRsp_t pfnDoorLockGetWeekDayScheduleRsp;
zclClosures_DoorLockClearWeekDayScheduleRsp_t pfnDoorLockClearWeekDayScheduleRsp;
zclClosures_DoorLockSetYearDayScheduleRsp_t pfnDoorLockSetYearDayScheduleRsp;
zclClosures_DoorLockGetYearDayScheduleRsp_t pfnDoorLockGetYearDayScheduleRsp;
zclClosures_DoorLockClearYearDayScheduleRsp_t pfnDoorLockClearYearDayScheduleRsp;
zclClosures_DoorLockSetHolidayScheduleRsp_t pfnDoorLockSetHolidayScheduleRsp;
zclClosures_DoorLockGetHolidayScheduleRsp_t pfnDoorLockGetHolidayScheduleRsp;
zclClosures_DoorLockClearHolidayScheduleRsp_t pfnDoorLockClearHolidayScheduleRsp;
zclClosures_DoorLockSetUserTypeRsp_t pfnDoorLockSetUserTypeRsp;
zclClosures_DoorLockGetUserTypeRsp_t pfnDoorLockGetUserTypeRsp;
zclClosures_DoorLockSetRFIDCodeRsp_t pfnDoorLockSetRFIDCodeRsp;
zclClosures_DoorLockGetRFIDCodeRsp_t pfnDoorLockGetRFIDCodeRsp;
zclClosures_DoorLockClearRFIDCodeRsp_t pfnDoorLockClearRFIDCodeRsp;
zclClosures_DoorLockClearAllRFIDCodesRsp_t pfnDoorLockClearAllRFIDCodesRsp;
zclClosures_DoorLockOperationEventNotification_t pfnDoorLockOperationEventNotification;
zclClosures_DoorLockProgrammingEventNotification_t pfnDoorLockProgrammingEventNotification;
} zclClosures_DoorLockAppCallbacks_t;
typedef struct
{
zclClosures_WindowCoveringSimple_t pfnWindowCoveringUpOpen;
zclClosures_WindowCoveringSimple_t pfnWindowCoveringDownClose;
zclClosures_WindowCoveringSimple_t pfnWindowCoveringStop;
zclClosures_WindowCoveringGotoValue_t pfnWindowCoveringGotoLiftValue;
zclClosures_WindowCoveringGotoPercentage_t pfnWindowCoveringGotoLiftPercentage;
zclClosures_WindowCoveringGotoValue_t pfnWindowCoveringGotoTiltValue;
zclClosures_WindowCoveringGotoPercentage_t pfnWindowCoveringGotoTiltPercentage;
} zclClosures_WindowCoveringAppCallbacks_t;
// Register Callbacks table entry - enter function pointers for callbacks that
// the application would like to receive
typedef struct
{
zclPICB_MatchProtocolAddr_t pfnPI_MatchProtocolAddr;
zclPICB_MatchProtocolAddrRsp_t pfnPI_MatchProtocolAddrRsp;
zclPICB_AdvertiseProtocolAddr_t pfnPI_AdvertiseProtocolAddr;
zclPICB_BACnetTransferNPDU_t pfnPI_BACnetTransferNPDU;
zclPICB_11073TransferAPDU_t pfnPI_11073TransferAPDU;
zclPICB_11073ConnectReq_t pfnPI_11073ConnectReq;
zclPICB_11073DisconnectReq_t pfnPI_11073DisconnectReq;
zclPICB_11073ConnectStatusNoti_t pfnPI_11073ConnectStatusNoti;
} zclPI_AppCallbacks_t;
// Register Callbacks table entry - enter function pointers for callbacks that
// the application would like to receive
typedef struct
{
bdbTL_GetGrpIDsReqCB_t pfnGetGrpIDsReq;
bdbTL_GetEPListReqCB_t pfnGetEPListReq;
bdbTL_EndpointInfoCB_t pfnEndpointInfo;
bdbTL_GetGrpIDsRspCB_t pfnGetGrpIDsRsp;
bdbTL_GetEPListRspCB_t pfnGetEPListRsp;
} bdbTL_AppCallbacks_t;
typedef struct
{
bdbTL_ScanReqCB_t pfnScanReq;
bdbTL_DeviceInfoReqCB_t pfnDeviceInfoReq;
bdbTL_IdentifyReqCB_t pfnIdentifyReq;
bdbTL_ResetToFNReqCB_t pfnResetToFNReq;
bdbTL_NwkStartReqCB_t pfnNwkStartReq;
bdbTL_NwkJoinRtrReqCB_t pfnNwkJoinRtrReq;
bdbTL_NwkJoinEDReqCB_t pfnNwkJoinEDReq;
bdbTL_NwkUpdateReqCB_t pfnNwkUpdateReq;
bdbTL_ScanRspCB_t pfnScanRsp;
bdbTL_DeviceInfoRspCB_t pfnDeviceInfoRsp;
bdbTL_NwkStartRspCB_t pfnNwkStartRsp;
bdbTL_NwkJoinRtrRspCB_t pfnNwkJoinRtrRsp;
bdbTL_NwkJoinEDRspCB_t pfnNwkJoinEDRsp;
} bdbTL_InterPANCallbacks_t;
2.5.1 zcl_<appname>.h
This header file should contain all the definitions needed for the new application. The application’s endpoint should
be defined in this module.
2.5.2 zcl_<appname>_data.c
This module should contain the declaration of:
1. All the cluster attributes that are supported by the application
2. The attribute table containing one entry of zclAttrRec_t type for each supported attribute
3. The input and output cluster ID tables, where these tables are filled with the application-specific input and
output cluster IDs respectively. These tables are used with the simple descriptor table
4. The application’s simple descriptor table of SimpleDescriptionFormat_t type defined in AF.h header
file
2.5.3 zcl_<appname>.c
This module should contain the following items:
1. The declaration of the application’s endpoint table of endPointDesc_t type defined in AF.h header file
2. Create all the command callback functions to handle any incoming command from the ZCL clusters. These
callback functions are used with the command callback tables
3. The declaration of the application’s command callback tables for the ZCL functional domains. The type of this
table for the General functional domain is zclGeneral_AppCallbacks_t, which is defined in
zcl_general.h header file
4. Create void zcl<AppName>_Init( byte task_id ) function for the application task. This
function’s responsibility is listed below
5. Create uint16 zcl<AppName>_event_loop( uint8 task_id, uint16 events ) function to
receive and process messages and key events put on the application task’s queue
The application’s initialization function zcl<AppName>_Init() should register:
1. The command callback tables with the corresponding functional domains. The function
zclGeneral_RegisterCmdCallbacks() defined in zcl_general.c module should be used to register the
General cluster command callbacks
2. The application's attribute list with ZCL Foundation using zcl_registerAttrList() API which is
defined in zcl.c module
3. The application’s endpoint with the AF layer using afRegister() API defined in AF.c module
4. The application’s task with the hardware to process all “press-key” events using RegisterForKeys() API
defined in OnBoard.c module (if the application handles any key event)
5. The application’s simple descriptor with the HA profile using bdb_RegisterSimpleDescriptor() API
defined in bdb.c module
2.5.4 OSAL_<AppName>.c
This module should contain void osalInitTasks ( void ) function, where all the tasks needed for the
application and the application task itself are added to the task list. The task addition is done using passing each
application an Application ID that increases over each initialized task (refer to any sample application). Here’s the
list of tasks and their addition order needed for a simple ZCL application:
1. MAC
2. Network
3. Green Power (in the case of Router and Coordinator devices)
4. HAL
5. MT (If needed by the application)
6. APS
7. APS Fragmentation
8. ZD Application
9. ZD Network Manager (If needed by the application)
10. ZCL
11. BDB
12. ZCL Application
Note: Changing the order of this tasks will affect the of the stack processing producing unpredictable behavior. Only
the tasks with comments are optional under the comments considerations.
3. Foundation Layer
3.1 Introduction
The Foundation layer provides general commands that are used for manipulating attributes and other general tasks
that are not specific to an individual cluster. These commands are:
Read attributes
Read attributes response
Write attributes
Write attributes undivided
Write attributes response
Write attributes no response
Configure reporting
Configure reporting response
Read reporting configuration
Read reporting configuration response
Report attributes
Default response
Discover attributes
Discover attributes response
3.2.1 Description
This function is used to send Profile and Cluster Specific Command messages.
3.2.2 Prototype
ZStatus_t zcl_SendCommand( uint8 srcEP, afAddrType_t *destAddr,
uint16 clusterID, uint8 cmd, uint8 specific,
uint8 direction, uint8 disableDefaultRsp,
uint16 manuCode, uint8 seqNum, uint8 cmdFormatLen,
uint8 *cmdFormat );
3.2.4 Return
ZStatus_t – enum found in ZComDef.h.
3.3.1 Description
This function is used to send a Read Attributes command.
3.3.2 Prototype
ZStatus_t zcl_SendRead( uint8 srcEP, afAddrType_t *destAddr,
uint16 clusterID, zclReadCmd_t *readCmd,
uint8 direction, uint8 disableDefaultRsp,
uint8 seqNum );
3.3.4 Return
ZStatus_t – enum found in ZComDef.h.
3.4.1 Description
This function is used to send a Read Attributes Response command.
3.4.2 Prototype
ZStatus_t zcl_SendReadRsp( uint8 srcEP, afAddrType_t *destAddr,
uint16 clusterID, zclReadRspCmd_t *readRspCmd,
uint8 direction, uint8 disableDefaultRsp,
uint8 seqNum );
3.4.3 Parameter Details
srcEP – The source endpoint.
destAddr - The destination address.
clusterID – The identifier of the cluster.
readRspCmd - The Read Response command to be sent.
direction - The client/server direction of the command.
disableDefaultRsp - Disable Default Response command.
seqNum - The identification number for the transaction.
3.4.4 Return
ZStatus_t – enum found in ZComDef.h.
3.5.1 Description
This function is used to send a Write Attributes command.
3.5.2 Prototype
ZStatus_t zcl_SendWrite( uint8 srcEP, afAddrType_t *destAddr,
uint16 clusterID, zclWriteCmd_t *writeCmd,
uint8 direction, uint8 disableDefaultRsp,
uint8 seqNum );
3.5.4 Return
ZStatus_t – enum found in ZComDef.h.
3.6.1 Description
This function is used to send a Write Attributes Undivided command.
3.6.2 Prototype
ZStatus_t zcl_SendWriteUndivided( uint8 srcEP, afAddrType_t *destAddr,
uint16 clusterID, zclWriteCmd_t *writeCmd,
uint8 direction, uint8 disableDefaultRsp,
uint8 seqNum );
3.6.4 Return
ZStatus_t – enum found in ZComDef.h.
3.7.1 Description
This function is used to send a Write Attributes Response command.
3.7.2 Prototype
ZStatus_t zcl_SendWriteRsp( uint8 srcEP, afAddrType_t *destAddr,
uint16 clusterID, zclWriteRspCmd_t *writeRspCmd,
uint8 direction, uint8 disableDefaultRsp,
uint8 seqNum );
3.7.4 Return
ZStatus_t – enum found in ZComDef.h.
3.8.1 Description
This function is used to send a Write Attributes No Response command.
3.8.2 Prototype
ZStatus_t zcl_SendWriteNoRsp( uint8 srcEP, afAddrType_t *destAddr,
uint16 clusterID, zclWriteCmd_t *writeCmd,
uint8 direction, uint8 disableDefaultRsp,
uint8 seqNum );
3.8.4 Return
ZStatus_t – enum found in ZComDef.h.
3.9.1 Description
This function is used to send a Configure Reporting command.
3.9.2 Prototype
ZStatus_t zcl_Send ConfigReportCmd( uint8 srcEP, afAddrType_t *destAddr,
uint16 clusterID, zclCfgReportCmd_t *cfgReportCmd,
uint8 direction, uint8 disableDefaultRsp, uint8 seqNum );
3.9.4 Return
ZStatus_t – enum found in ZComDef.h.
3.10.1 Description
This function is used to send a Configure Reporting Response command.
3.10.2 Prototype
3.10.4 Return
ZStatus_t – enum found in ZComDef.h.
3.11.1 Description
This function is used to send a Read Reporting Configuration command.
3.11.2 Prototype
3.11.4 Return
ZStatus_t – enum found in ZComDef.h.
3.12.1 Description
This function is used to send a Read Reporting Configuration Response command.
3.12.2 Prototype
3.12.4 Return
ZStatus_t – enum found in ZComDef.h.
3.13.1 Description
This function is used to send a Report Attributes command.
3.13.2 Prototype
3.13.4 Return
ZStatus_t – enum found in ZComDef.h.
3.14.1 Description
This function is used to send a Default Response command.
3.14.2 Prototype
3.14.4 Return
ZStatus_t – enum found in ZComDef.h.
3.15.1 Description
This function is used to send a Discover Attributes command.
3.15.2 Prototype
3.15.4 Return
ZStatus_t – enum found in ZComDef.h.
3.16.1 Description
This function is used to send a Discover Attributes Response command.
3.16.2 Prototype
3.16.4 Return
ZStatus_t – enum found in ZComDef.h.
3.17.1 Description
This function is used to register an Attribute List with ZCL Foundation.
3.17.2 Prototype
3.17.4 Return
ZStatus_t – enum found in ZComDef.h.
3.18.1 Description
This function is used to register an Attribute Data Validation Callback function with ZCL Foundation.
3.18.2 Prototype
ZStatus_t zcl_registerVaildateAttrData(
zclValidateAttrData_t pfnValidateAttrData );
3.18.4 Return
ZStatus_t – enum found in ZComDef.h.
3.19.1 Description
This function is used to register a Cluster Library Handler callback function with the ZCL Foundation layer.
3.19.2 Prototype
3.19.4 Return
ZStatus_t – enum found in ZComDef.h.
3.20.1 Description
This callback function is called to handle an incoming cluster-specific message from ZCL Foundation.
3.20.2 Prototype
3.20.4 Return
ZStatus_t – enum found in ZComDef.h.
3.21.1 Description
This function is used to register a Cluster Option List the ZCL Foundation layer. This API should be called to enable
‘Application Link Key’ security and/or ’APS ACK’ or a specific Cluster. The ‘Application Link Key’ is discarded if
security isn’t enabled on the device. The default behavior is ‘Network Key’ when security is enabled and no ‘APS
ACK’ for the ZCL messages.
3.21.2 Prototype
3.21.4 Return
ZStatus_t – enum found in ZComDef.h.
3.22.1 Description
This function is used during a callback function to retrieve a pointer to the raw AF incoming message. This function
can only be called during a ZCL callback function and the calling function MUST not change any data in the
message.
3.22.2 Prototype
3.22.4 Return
Returns a pointer to the original AF message or NULL if not currently processing an AF message.
4.1 Introduction
The General functional domain contains the following clusters:
Basic
Power Configuration
Device Temperature Configuration
Identity
Groups
Scenes
On/Off
On/Off Switch Configuration
Level Control
Alarms
Time
RSSI Indication
The Basic, Identity, Groups, Scenes, On/Off, Level Control, Alarms and RSSI Indication clusters provide
commands but the Power Configuration, Device Temperature Configuration, On/Off Switch Configuration and
Time clusters don’t provide any commands.
4.2.1 Description
This function is used to send a Reset to Factory Defaults Command.
4.2.2 Prototype
4.2.4 Return
ZStatus_t – enum found in ZComDef.h.
4.3.1 Description
This function is used to send an Identify command.
4.3.2 Prototype
4.3.4 Return
ZStatus_t – enum found in ZComDef.h.
4.4.1 Description
This function is used to send an Identify Query command.
4.4.2 Prototype
4.4.4 Return
ZStatus_t – enum found in ZComDef.h.
4.5.1 Description
This function is used to send an Identify Query Response command.
4.5.2 Prototype
4.5.4 Return
ZStatus_t – enum found in ZComDef.h.
4.6.1 Description
This function is used to send an Add Group command.
4.6.2 Prototype
4.6.4 Return
ZStatus_t – enum found in ZComDef.h.
4.7.1 Description
This function is used to send a View Group command.
4.7.2 Prototype
4.7.4 Return
ZStatus_t – enum found in ZComDef.h.
4.8.1 Description
This function is used to send a Get Group Membership command.
4.8.2 Prototype
4.8.4 Return
ZStatus_t – enum found in ZComDef.h.
4.9.1 Description
This function is used to send a Remove Group command.
4.9.2 Prototype
4.9.4 Return
ZStatus_t – enum found in ZComDef.h.
4.10.1 Description
This function is used to send a Remove All Groups command.
4.10.2 Prototype
4.10.4 Return
ZStatus_t – enum found in ZComDef.h.
4.11.1 Description
This function is used to send an Add Group If Identifying command.
4.11.2 Prototype
4.11.4 Return
ZStatus_t – enum found in ZComDef.h.
4.12.1 Description
This function is used to send an Add Group Response command.
4.12.2 Prototype
4.12.4 Return
ZStatus_t – enum found in ZComDef.h.
4.13.1 Description
This function is used to send a View Group Response command.
4.13.2 Prototype
4.13.4 Return
ZStatus_t – enum found in ZComDef.h.
4.14.1 Description
This function is used to send a Get Group Membership Response command.
4.14.2 Prototype
4.14.4 Return
ZStatus_t – enum found in ZComDef.h.
4.15.1 Description
This function is used to send a Remove Group Response command.
4.15.2 Prototype
4.15.4 Return
ZStatus_t – enum found in ZComDef.h.
4.16.1 Description
This function is used to send an Add Scene command.
4.16.2 Prototype
4.16.4 Return
ZStatus_t – enum found in ZComDef.h.
4.17.1 Description
This function is used to send a View Scene command.
4.17.2 Prototype
4.17.4 Return
ZStatus_t – enum found in ZComDef.h.
4.18.1 Description
This function is used to send a Remove Scene command.
4.18.2 Prototype
4.18.4 Return
ZStatus_t – enum found in ZComDef.h.
4.19.1 Description
This function is used to send a Remove All Scenes command.
4.19.2 Prototype
4.19.4 Return
ZStatus_t – enum found in ZComDef.h.
4.20.1 Description
This function is used to send a Store Scene command.
4.20.2 Prototype
4.20.4 Return
ZStatus_t – enum found in ZComDef.h.
4.21.1 Description
This function is used to send a Recall Scene command.
4.21.2 Prototype
4.21.4 Return
ZStatus_t – enum found in ZComDef.h.
4.22.1 Description
This function is used to send a Get Scene Membership command.
4.22.2 Prototype
4.22.4 Return
ZStatus_t – enum found in ZComDef.h.
4.23.1 Description
This function is used to send an Add Scene Response command.
4.23.2 Prototype
4.23.4 Return
ZStatus_t – enum found in ZComDef.h.
4.24.1 Description
This function is used to send a View Scene Response command.
4.24.2 Prototype
4.24.4 Return
ZStatus_t – enum found in ZComDef.h.
4.25.1 Description
This function is used to send a Remove Scene Response command.
4.25.2 Prototype
4.25.4 Return
ZStatus_t – enum found in ZComDef.h.
4.26.1 Description
This function is used to send a Remove All Groups command.
4.26.2 Prototype
4.26.4 Return
ZStatus_t – enum found in ZComDef.h.
4.27.1 Description
This function is used to send a Store Scene command.
4.27.2 Prototype
4.27.4 Return
ZStatus_t – enum found in ZComDef.h.
4.28.1 Description
This function is used to send a Get Scene Membership Response command.
4.28.2 Prototype
4.28.4 Return
ZStatus_t – enum found in ZComDef.h.
4.29.1 Description
This function is used to send an Off command.
4.29.2 Prototype
4.29.4 Return
ZStatus_t – enum found in ZComDef.h.
4.30.1 Description
This function is used to send an On command.
4.30.2 Prototype
4.30.4 Return
ZStatus_t – enum found in ZComDef.h.
4.31.1 Description
This function is used to send a Toggle command.
4.31.2 Prototype
4.31.4 Return
ZStatus_t – enum found in ZComDef.h.
4.32.1 Description
This function is used to send a Move to Level command.
4.32.2 Prototype
4.32.4 Return
ZStatus_t – enum found in ZComDef.h.
4.33.1 Description
This function is used to send a Move command.
4.33.2 Prototype
4.33.4 Return
ZStatus_t – enum found in ZComDef.h.
4.34.1 Description
This function is used to send a Step command.
4.34.2 Prototype
4.34.4 Return
ZStatus_t – enum found in ZComDef.h.
4.35.1 Description
This function is used to send a Reset Alarm command.
4.35.2 Prototype
4.35.4 Return
ZStatus_t – enum found in ZComDef.h.
4.36.1 Description
This function is used to send a Reset All Alarms command.
4.36.2 Prototype
4.36.4 Return
ZStatus_t – enum found in ZComDef.h.
4.37.1 Description
This function is used to send a Get Alarm command.
4.37.2 Prototype
4.37.4 Return
ZStatus_t – enum found in ZComDef.h.
4.38.1 Description
This function is used to send a Reset Alarm Log command.
4.38.2 Prototype
4.38.4 Return
ZStatus_t – enum found in ZComDef.h.
4.39.1 Description
This function is used to send an Alarm command.
4.39.2 Prototype
4.39.4 Return
ZStatus_t – enum found in ZComDef.h.
4.40.1 Description
This function is used to send a Get Alarm Response command.
4.40.2 Prototype
4.40.4 Return
ZStatus_t – enum found in ZComDef.h.
4.41.1 Description
This function is used to send a Set Absolute Location command.
4.41.2 Prototype
4.41.4 Return
ZStatus_t – enum found in ZComDef.h.
4.42.1 Description
This function is used to send a Set Device Configuration command.
4.42.2 Prototype
4.42.4 Return
ZStatus_t – enum found in ZComDef.h.
4.43.1 Description
This function is used to send a Get Device Configuration command.
4.43.2 Prototype
4.43.4 Return
ZStatus_t – enum found in ZComDef.h.
4.44.1 Description
This function is used to send a Get Location Data command.
4.44.2 Prototype
4.44.4 Return
ZStatus_t – enum found in ZComDef.h.
4.45.1 Description
This function is used to send a Device Configuration Response command.
4.45.2 Prototype
4.45.4 Return
ZStatus_t – enum found in ZComDef.h.
4.46.1 Description
This function is used to send a Location Data Response command.
4.46.2 Prototype
4.46.4 Return
ZStatus_t – enum found in ZComDef.h.
4.47.1 Description
This function is used to send a Location Data Notification command.
4.47.2 Prototype
4.47.4 Return
ZStatus_t – enum found in ZComDef.h.
4.48.1 Description
This function is used to send a Compact Location Data Notification command.
4.48.2 Prototype
4.48.4 Return
ZStatus_t – enum found in ZComDef.h.
4.49.1 Description
This function is used to send a RSSI Ping command.
4.49.2 Prototype
4.49.4 Return
ZStatus_t – enum found in ZComDef.h.
4.50.1 Description
This callback is called to see if the supplied value for the attribute data is within the specified range of the attribute.
4.50.2 Prototype
4.50.4 Return
Uint8 – TRUE if the attribute data is valid. FALSE otherwise.
4.51.1 Description
This function is used to register an Application’s Command callbacks with the General functional domain.
4.51.2 Prototype
4.51.4 Return
ZStatus_t – enum found in ZComDef.h.
4.52.1 Description
This callback is called to process an incoming Reset to Factory Defaults command. On receipt of this command, the
device resets all the attributes of all its clusters to their factory defaults.
4.52.2 Prototype
4.52.4 Return
None.
4.53.1 Description
This callback is called to process an incoming Identify command.
4.53.2 Prototype
4.53.4 Return
None.
4.54.1 Description
This callback is called to process an incoming Identify Response command.
4.54.2 Prototype
4.54.4 Return
None.
4.55.1 Description
This callback is called to process an incoming On, Off or Toggle command.
4.55.2 Prototype
4.55.4 Return
None.
4.56.1 Description
This callback is called to process an incoming Level Control - Move to Level command.
4.56.2 Prototype
4.56.4 Return
None.
4.57.1 Description
This callback is called to process an incoming Level Control - Move command.
4.57.2 Prototype
4.57.4 Return
None.
4.58.1 Description
This callback is called to process an incoming Level Control - Step command.
4.58.2 Prototype
4.58.4 Return
None.
4.59.1 Description
This callback is called to process an incoming Level Control - Stop command.
4.59.2 Prototype
4.59.4 Return
None.
4.60.1 Description
This callback is called to process an incoming Group Response command. This means that this application sent the
request message.
4.60.2 Prototype
4.60.4 Return
None.
4.61.1 Description
This callback is called to process an incoming Store Scene command. The application will fill in the "extField" with
what is needed to restore its current settings.
4.61.2 Prototype
4.61.4 Return
TRUE if extField is filled out, FALSE otherwise (in this case, there is no need to save the scene).
4.62.1 Description
This callback is called to process an incoming Recall Scene command. The application will use what's in the
"extField" to restore to these settings.
4.62.2 Prototype
4.62.4 Return
None.
4.63.1 Description
This callback is called to process an incoming Scene response message. This means that this application sent the
request for this response.
4.63.2 Prototype
4.63.4 Return
None.
4.64.1 Description
This callback is called to process an incoming Alarm request or response command.
4.64.2 Prototype
4.64.4 Return
None.
4.65.1 Description
This callback is called to process an incoming RSSI Location command.
4.65.2 Prototype
4.65.4 Return
None.
4.66.1 Description
This callback is called to process an incoming RSSI Location Response. This means that this application sent the
request for this response.
4.66.2 Prototype
4.66.4 Return
None.
4.67.1 Description
This callback is used to read the number of scenes in stored in the local device’s scene table (i.e., the Scene Count
attribute). This function should be registered with the ZCL Foundation layer (using the zcl_registerReadWriteCB()
API) when the data pointer ‘dataPtr’ of the Scene Count attribute is set to NULL in the attribute database to be
registered with ZCL. This callback function will be used by the ZCL task to process a ZCL Read Request operation
on the Scene Count attribute.
4.67.2 Prototype
4.67.4 Return
ZCL_STATUS_SUCCESS – Read operation was successful.
ZCL_STATUS_SOFTWARE_FAILURE – Read operation was unsuccessful.
The Closures functional domain provides the following two clusters, defined by the Home Automation Public
Application Profile:
The Door Lock Cluster provides an interface into a generic way to secure a door.
The Window Covering Cluster provides an interface for controlling and adjusting automatic window coverings such
as drapery motors, automatic shades, and blinds.
5.2.1 Description
This command causes the lock device to lock the door.
5.2.2 Prototype
ZStatus_t zclClosures_SendDoorLock( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum );
5.2.4 Return
ZStatus_t – enum found in ZComDef.h.
5.3.1 Description
This command causes the lock device to unlock the door.
5.3.2 Prototype
ZStatus_t zclClosures_SendDoorUnlock( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum );
5.3.4 Return
ZStatus_t – enum found in ZComDef.h.
5.4.1 Description
This command is sent in response to a lock command.
5.4.2 Prototype
ZStatus_t zclClosures_SendDoorLockRes( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum,
uint8 status );
5.4.4 Return
ZStatus_t – enum found in ZComDef.h.
5.5.1 Description
This command is sent in response to an unlock door command.
5.5.2 Prototype
ZStatus_t zclClosures_SendDoorUnlockRes( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum,
uint8 status );
5.5.4 Return
ZStatus_t – enum found in ZComDef.h.
5.6.1 Description
This function is used to send the Up/Open Command.
5.6.2 Prototype
ZStatus_t zclClosures_SendUpOpen( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum );
5.6.4 Return
ZStatus_t – enum found in ZComDef.h.
5.7.1 Description
This function is used to send the Down/Close Command.
5.7.2 Prototype
ZStatus_t zclClosures_SendDownClose( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum );
5.7.4 Return
ZStatus_t – enum found in ZComDef.h.
5.8.1 Description
This function is used to send the Stop Command.
5.8.2 Prototype
ZStatus_t zclClosures_SendStop( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum );
5.8.4 Return
ZStatus_t – enum found in ZComDef.h.
5.9.1 Description
This function is used to send the Go to Lift Setpoint Command.
5.9.2 Prototype
ZStatus_t zclClosures_SendGoToLiftSetpoint( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum,
uint8 liftSetpoint );
5.9.4 Return
ZStatus_t – enum found in ZComDef.h.
5.10.1 Description
This function is used to send the Go to Lift Setpoint Command.
5.10.2 Prototype
ZStatus_t zclClosures_SendGoToLiftValue( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum,
uint16 liftValue );
5.10.4 Return
ZStatus_t – enum found in ZComDef.h.
5.11.1 Description
This function is used to send the Go to Lift Percentage Command.
5.11.2 Prototype
ZStatus_t zclClosures_SendGoToLiftPercentage( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum,
uint8 percentageLiftValue );
5.11.4 Return
ZStatus_t – enum found in ZComDef.h.
5.12.1 Description
This function is used to send the Go to Tilt Setpoint Command.
5.12.2 Prototype
ZStatus_t zclClosures_SendGoToTiltSetpoint( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum,
uint8 tiltSetpoint );
5.12.4 Return
ZStatus_t – enum found in ZComDef.h.
5.13.1 Description
This function is used to send the Go to Tilt Setpoint Command.
5.13.2 Prototype
ZStatus_t zclClosures_SendGoToTiltValue( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum,
uint16 tiltValue );
5.13.4 Return
ZStatus_t – enum found in ZComDef.h.
5.14.1 Description
This function is used to send the Go to Tilt Percentage Command.
5.14.2 Prototype
ZStatus_t zclClosures_SendGoToTiltPercentage( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum,
uint8 percentageTiltValue );
5.14.4 Return
ZStatus_t – enum found in ZComDef.h.
5.15.1 Description
This function is used to send the Program Setpoint Command, in order to program specific Lift or Tilt setpoint with
certain value (VERSION 1), or to program specific Lift and Tilt setpoints with the current Lift and Tilt values
(VERSION 2).
5.15.2 Prototype
ZStatus_t zclClosures_SendProgramSetpoint( uint8 srcEP,
afAddrType_t *dstAddr,
uint8 disableDefaultRsp,
uint8 seqNum,
programSetpointPayload_t *programSetpoint );
5.15.4 Return
ZStatus_t – enum found in ZComDef.h.
5.16.1 Description
This callback is called to process an incoming Door Lock/Unlock command.
5.16.2 Prototype
typedef void (*zclClosures_DoorLock_t) ( zclIncoming_t *pInMsg,
zclDoorLock_t *pInCmd )
5.16.4 Return
None.
5.17.1 Description
This callback is called to process an incoming Door Lock/Unlock response
5.17.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockRsp_t) ( zclIncoming_t *pInMsg,
uint8 status );
5.17.4 Return
ZCL_STATUS_SUCCESS or ZCL_STATUS_FAILURE. The status byte only indicates if the message has
received successfully.
5.18.1 Description
This callback is called to process an incoming Unlock With Timeout command : This command causes the lock
device to unlock the door with a timeout parameter. After the time in seconds specified in the timeout field, the lock
device will relock itself automatically.
5.18.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockUnlockWithTimeout_t)
( zclIncoming_t *pInMsg, zclDoorLockUnlockTimeout_t *pCmd );
5.18.4 Return
ZStatus_t – enum found in ZComDef.h.
5.19.1 Description
This callback is called to process an incoming Get Log Record command.
5.19.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetLogRecord_t)
( zclIncoming_t *pInMsg, zclDoorLockGetLogRecord_t *pCmd );
5.19.4 Return
ZStatus_t – enum found in ZComDef.h.
5.20.1 Description
This callback is called to process an incoming Set PIN Code command.
5.20.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetPINCode_t);
( zclIncoming_t *pInMsg, zclDoorLockSetPINCode_t *pCmd )
5.20.4 Return
ZStatus_t – enum found in ZComDef.h.
5.21.1 Description
This callback is called to process an incoming Get PIN Code command.
5.21.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetPINCode_t)
( zclIncoming_t *pInMsg, zclDoorLockUserID_t *pCmd );
5.21.4 Return
ZStatus_t – enum found in ZComDef.h.
5.22.1 Description
This callback is called to process an incoming Clear PIN Code command.
5.22.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearPINCode_t)
( zclIncoming_t *pInMsg, zclDoorLockUserID_t *pCmd );
5.22.4 Return
ZStatus_t – enum found in ZComDef.h.
5.23.1 Description
This callback is called to process an incoming Clear All PIN Codes command.
5.23.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearAllPINCodes_t)
( zclIncoming_t *pInMsg );
5.23.4 Return
ZStatus_t – enum found in ZComDef.h.
5.24.1 Description
This callback is called to process an incoming Set User Status command.
5.24.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetUserStatus_t)
( zclIncoming_t *pInMsg, zclDoorLockSetUserStatus_t *pCmd );
5.24.4 Return
ZStatus_t – enum found in ZComDef.h.
5.25.1 Description
This callback is called to process an incoming Get User Status command.
5.25.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetUserStatus_t)
( zclIncoming_t *pInMsg, zclDoorLockUserID_t *pCmd );
5.25.4 Return
ZStatus_t – enum found in ZComDef.h.
5.26.1 Description
This callback is called to process an incoming Set Week Day Schedule command.
5.26.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetWeekDaySchedule_t)
( zclIncoming_t *pInMsg, zclDoorLockSetWeekDaySchedule_t *pCmd );
5.26.4 Return
ZStatus_t – enum found in ZComDef.h.
5.27.1 Description
This callback is called to process an incoming Get Week Day Schedule command.
5.27.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetWeekDaySchedule_t)
( zclIncoming_t *pInMsg, zclDoorLockSchedule_t *pCmd );
5.27.3 Parameter Details
pInMsg – Pointer to incoming message.
pCmd – Pointer to command payload.
5.27.4 Return
ZStatus_t – enum found in ZComDef.h.
5.28.1 Description
This callback is called to process an incoming Clear Week Day Schedule command.
5.28.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearWeekDaySchedule_t)
( zclIncoming_t *pInMsg, zclDoorLockSchedule_t *pCmd );
5.28.3 Parameter Details
pInMsg – Pointer to incoming message.
pCmd – Pointer to command payload.
5.28.4 Return
ZStatus_t – enum found in ZComDef.h.
5.29.1 Description
This callback is called to process an incoming Set Year Day Schedule command.
5.29.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetYearDaySchedule_t)
( zclIncoming_t *pInMsg, zclDoorLockSchedule_t *pCmd );
5.29.4 Return
ZStatus_t – enum found in ZComDef.h.
5.30.1 Description
This callback is called to process an incoming Get Year Day Schedule command.
5.30.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetYearDaySchedule_t)
( zclIncoming_t *pInMsg, zclDoorLockSchedule_t *pCmd );
5.30.4 Return
ZStatus_t – enum found in ZComDef.h.
5.31.1 Description
This callback is called to process an incoming Clear Year Day Schedule command.
5.31.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearYearDaySchedule_t)
( zclIncoming_t *pInMsg, zclDoorLockSchedule_t *pCmd );
5.31.4 Return
ZStatus_t – enum found in ZComDef.h.
5.32.1 Description
This callback is called to process an incoming Set Holiday Schedule command.
5.32.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetHolidaySchedule_t)
( zclIncoming_t *pInMsg, zclDoorLockSetHolidaySchedule_t *pCmd );
5.32.4 Return
ZStatus_t – enum found in ZComDef.h.
5.33.1 Description
This callback is called to process an incoming Get Holiday Schedule command.
5.33.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetHolidaySchedule_t)
( zclIncoming_t *pInMsg, zclDoorLockHolidayScheduleID_t *pCmd );
5.33.4 Return
ZStatus_t – enum found in ZComDef.h.
5.34.1 Description
This callback is called to process an incoming Clear Holiday Schedule command.
5.34.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearHolidaySchedule_t)
( zclIncoming_t *pInMsg, zclDoorLockHolidayScheduleID_t *pCmd );
5.34.4 Return
ZStatus_t – enum found in ZComDef.h.
5.35.1 Description
This callback is called to process an incoming Set User Type command.
5.35.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetUserType_t)
( zclIncoming_t *pInMsg, zclDoorLockSetUserType_t *pCmd );
5.35.4 Return
ZStatus_t – enum found in ZComDef.h.
5.36.1 Description
This callback is called to process an incoming Get User Type command.
5.36.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetUserType_t)
( zclIncoming_t *pInMsg, zclDoorLockUserID_t *pCmd );
5.36.4 Return
ZStatus_t – enum found in ZComDef.h.
5.37.1 Description
This callback is called to process an incoming Set RFID Code command.
5.37.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetRFIDCode_t)
( zclIncoming_t *pInMsg, zclDoorLockSetRFIDCode_t *pCmd );
5.37.4 Return
ZStatus_t – enum found in ZComDef.h.
5.38.1 Description
This callback is called to process an incoming Get RFID Code command.
5.38.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetRFIDCode_t)
( zclIncoming_t *pInMsg, zclDoorLockUserID_t *pCmd );
5.38.4 Return
ZStatus_t – enum found in ZComDef.h.
5.39.1 Description
This callback is called to process an incoming Clear RFID Code command.
5.39.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearRFIDCode_t)
( zclIncoming_t *pInMsg, zclDoorLockUserID_t *pCmd );
5.39.4 Return
ZStatus_t – enum found in ZComDef.h.
5.40.1 Description
This callback is called to process an incoming Clear All RFID Codes command.
5.40.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearAllRFIDCodes_t)
( zclIncoming_t *pInMsg );
5.40.4 Return
ZStatus_t – enum found in ZComDef.h.
5.41.1 Description
This callback is called to process an incoming Lock Door Response command.
5.41.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.41.4 Return
ZStatus_t – enum found in ZComDef.h.
5.42.1 Description
This callback is called to process an incoming Unlock With Timeout Response command.
5.42.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockUnlockWithTimeoutRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.42.4 Return
ZStatus_t – enum found in ZComDef.h.
5.43.1 Description
This callback is called to process an incoming Get Log Record Response command.
5.43.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetLogRecordRsp_t)
( zclIncoming_t *pInMsg, zclDoorLockGetLogRecordRsp_t *pCmd );
5.43.4 Return
ZStatus_t – enum found in ZComDef.h.
5.44.1 Description
This callback is called to process an incoming Set PIN Code Response command.
5.44.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetPINCodeRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.44.4 Return
ZStatus_t – enum found in ZComDef.h.
5.45.1 Description
This callback is called to process an incoming Get PIN Code Response command.
5.45.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetPINCodeRsp_t)
( zclIncoming_t *pInMsg, zclDoorLockGetPINCodeRsp_t *pCmd );
5.45.4 Return
ZStatus_t – enum found in ZComDef.h.
5.46.1 Description
This callback is called to process an incoming Clear PIN Code Response command.
5.46.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearPINCodeRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.46.4 Return
ZStatus_t – enum found in ZComDef.h.
5.47.1 Description
This callback is called to process an incoming Clear All PIN Codes Response command.
5.47.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearAllPINCodesRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.47.4 Return
ZStatus_t – enum found in ZComDef.h.
5.48.1 Description
This callback is called to process an incoming Set User Status Response command.
5.48.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetUserStatusRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.48.4 Return
ZStatus_t – enum found in ZComDef.h.
5.49.1 Description
This callback is called to process an incoming Get User Status Response command.
5.49.2 Prototype
typedef (*zclClosures_DoorLockGetUserStatusRsp_t)
( zclIncoming_t *pInMsg, zclDoorLockGetUserStatusRsp_t *pCmd );
5.49.4 Return
ZStatus_t – enum found in ZComDef.h.
5.50.1 Description
This callback is called to process an incoming Set Week Day Schedule Response command.
5.50.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetWeekDayScheduleRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.50.4 Return
ZStatus_t – enum found in ZComDef.h.
5.51.1 Description
This callback is called to process an incoming Get Week Day Schedule Response command.
5.51.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetWeekDayScheduleRsp_t)
( zclIncoming_t *pInMsg, zclDoorLockGetWeekDayScheduleRsp_t *pCmd );
5.51.4 Return
ZStatus_t – enum found in ZComDef.h.
5.52.1 Description
This callback is called to process an incoming Clear Week Day Schedule Response command.
5.52.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearWeekDayScheduleRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.52.3 Parameter Details
pInMsg – Pointer to incoming message.
status – Operation status SUCCESS or FAILURE.
5.52.4 Return
ZStatus_t – enum found in ZComDef.h.
5.53.1 Description
This callback is called to process an incoming Clear Week Day Schedule Response command.
5.53.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearWeekDayScheduleRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.53.3 Parameter Details
pInMsg – Pointer to incoming message.
status – Operation status SUCCESS or FAILURE.
5.53.4 Return
ZStatus_t – enum found in ZComDef.h.
5.54.1 Description
This callback is called to process an incoming Set Year Day Schedule Response command.
5.54.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetYearDayScheduleRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.54.4 Return
ZStatus_t – enum found in ZComDef.h.
5.55.1 Description
This callback is called to process an incoming Get Year Day Schedule Response command.
5.55.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetYearDayScheduleRsp_t)
( zclIncoming_t *pInMsg, zclDoorLockGetYearDayScheduleRsp_t *pCmd );
5.55.4 Return
ZStatus_t – enum found in ZComDef.h.
5.56.1 Description
This callback is called to process an incoming Clear Year Day Schedule Response command.
5.56.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearYearDayScheduleRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.56.4 Return
ZStatus_t – enum found in ZComDef.h.
5.57.1 Description
This callback is called to process an incoming Set Holiday Schedule Response command.
5.57.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetHolidayScheduleRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.57.4 Return
ZStatus_t – enum found in ZComDef.h.
5.58.1 Description
This callback is called to process an incoming Get Holiday Schedule Response command.
5.58.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetHolidayScheduleRsp_t)
( zclIncoming_t *pInMsg, zclDoorLockGetHolidayScheduleRsp_t *pCmd );
5.58.4 Return
ZStatus_t – enum found in ZComDef.h.
5.59.1 Description
This callback is called to process an incoming Clear Holiday Schedule Response command.
5.59.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearHolidayScheduleRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.59.4 Return
ZStatus_t – enum found in ZComDef.h.
5.60.1 Description
This callback is called to process an incoming Set User Type Response command.
5.60.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetUserTypeRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.60.4 Return
ZStatus_t – enum found in ZComDef.h.
5.61.1 Description
This callback is called to process an incoming Get User Type Response command.
5.61.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetUserTypeRsp_t)
( zclIncoming_t *pInMsg, zclDoorLockGetUserTypeRsp_t *pCmd );
5.61.4 Return
ZStatus_t – enum found in ZComDef.h.
5.62.1 Description
This callback is called to process an incoming Set RFID Code Response command.
5.62.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockSetRFIDCodeRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.62.4 Return
ZStatus_t – enum found in ZComDef.h.
5.63.1 Description
This callback is called to process an incoming Get RFID Code Response command.
5.63.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockGetRFIDCodeRsp_t)
( zclIncoming_t *pInMsg, zclDoorLockGetRFIDCodeRsp_t *pCmd );
5.63.4 Return
ZStatus_t – enum found in ZComDef.h.
5.64.1 Description
This callback is called to process an incoming Clear RFID Code Response command.
5.64.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearRFIDCodeRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.64.4 Return
ZStatus_t – enum found in ZComDef.h.
5.65.1 Description
This callback is called to process an incoming Clear All RFID Codes command.
5.65.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockClearAllRFIDCodesRsp_t)
( zclIncoming_t *pInMsg, uint8 status );
5.65.4 Return
ZStatus_t – enum found in ZComDef.h.
5.66.1 Description
This callback is called to process an incoming Operation Event Notification command.
5.66.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockOperationEventNotification_t)
( zclIncoming_t *pInMsg, zclDoorLockOperationEventNotification_t *pCmd );
5.66.4 Return
ZStatus_t – enum found in ZComDef.h.
5.67.1 Description
This callback is called to process an incoming Programming Event Notification command.
5.67.2 Prototype
typedef ZStatus_t (*zclClosures_DoorLockProgrammingEventNotification_t)
( zclIncoming_t *pInMsg, zclDoorLockProgrammingEventNotification_t *pCmd );
5.67.4 Return
ZStatus_t – enum found in ZComDef.h.
5.68.1 Description
This callback is called to process an incoming Window Covering cluster basic command.
5.68.2 Prototype
typedef void (*zclClosures_WindowCoveringSimple_t) ( void );
5.68.4 Return
None.
5.69.1 Description
This callback is called to process an incoming Window Covering cluster goto percentage command.
5.69.2 Prototype
typedef bool (*zclClosures_WindowCoveringGotoPercentage_t)
( uint8 percentage );
5.69.3 Parameter Details
Percentage – Percentage value.
5.69.4 Return
bool – TRUE or FALSE.
5.70.1 Description
This callback is called to process an incoming Window Covering cluster goto value command.
5.70.2 Prototype
typedef bool (*zclClosures_WindowCoveringGotoValue_t) ( uint16 value );
5.70.4 Return
bool – TRUE or FALSE.
5.71.1 Description
This callback is called to process an incoming Window Covering cluster goto setpoint command.
5.71.2 Prototype
typedef uint8 (*zclClosures_WindowCoveringGotoSetpoint_t) ( uint8 index );
5.71.4 Return
uint8 – 0 to 255 value.
5.72.1 Description
This callback is called to process an incoming Window Covering cluster program setpoint command.
5.72.2 Prototype
typedef bool (*zclClosures_WindowCoveringProgramSetpoint_t)
( programSetpointPayload_t *setpoint );
5.72.4 Return
bool – TRUE or FALSE.
6.1 Introduction
The Protocol Interfaces functional domain provides the following two clusters:
Generic Tunnel cluster
BACnet Protocol Tunnel cluster
11073 Protocol Tunnel cluster
The Generic Tunnel cluster is used when an associated protocol specific tunnel wishes to find out the ZigBee
address of the Generic Tunnel server cluster representing a protocol-specific device with a given protocol address.
The BACnet Protocol Tunnel cluster is used when a BACnet network layer wishes to transfer a BACnet NPDU
across a ZigBee tunnel to another BACnet network layer. The 11073 Protocol Tunnel cluster is used when a 11073
network layer wishes to transfer an 11073 APDU and associated metadata across a ZigBee tunnel to another 11073
network layer.
The Generic Tunnel cluster provides the minimum common commands and attributes required to tunnel any
protocol. The supported commands are:
Match Protocol Address
Match Protocol Address Response
Advertise Protocol Address
The BACnet Protocol Tunnel cluster provides the commands and attributes to tunnel the BACnet protocol. The only
supported command is:
Transfer NPDU
The 11073 Protocol Tunnel cluster provides the commands and attributes to tunnel the 11073 protocol. The
supported commands are:
Transfer APDU
Connect Request
Disconnect Request
Connect Status Notification
The BACnet Protocol Tunnel cluster requires the Generic Tunnel cluster’s MaximumIncomingTransferSize attribute
and MaximumOutgoingTransferSize attribute to be equal to or greater than 504 octets, hence, the
MAX_TRANSFER_SIZE (defined in ZDConfig.h header file) should be set accordingly and the Fragmentation
feature should be enabled by including the ZIGBEE_FRAGMENTATION compile flag in the project file. Similarly,
the 11073 Protocol Tunnel cluster requires these two attributes to be equal to or greater than the maximum APDU
size specified in the applicable ISO/IEEE 11073 device specialization document.
The Protocol Interfaces functional domain is implemented by zcl_pi.c and zcl_pi.h files.
6.2.1 Description
This function is used to send a Match Protocol Address command. This command is used when an associated
protocol specific tunnel wishes to find out the ZigBee address of the Generic Tunnel server cluster representing a
protocol-specific device with a given protocol address. The command is typically multicast to a group of inter-
communicating Generic Tunnel clusters.
6.2.2 Prototype
6.2.4 Return
ZStatus_t – enum found in ZComDef.h.
6.3.1 Description
This function is used to send a Match Protocol Address Response. This response is sent back upon receipt of a
Match Protocol Address command to indicate that the Protocol Address was successfully matched.
6.3.2 Prototype
6.3.4 Return
6.4.1 Description
This function is used to send an Advertise Protocol Address Command. This command is sent out typically upon
startup or whenever the Protocol Address attribute changes. It is typically multicast to a group of inter-
communicating Generic Tunnel clusters.
6.4.2 Prototype
6.4.4 Return
ZStatus_t – enum found in ZComDef.h.
6.5.1 Description
This function is used to send a BACnet Transfer NPDU Command. This command is used when a BACnet network
layer wishes to transfer a BACnet NPDU across a ZigBee tunnel to another BACnet network layer.
6.5.2 Prototype
6.5.4 Return
ZStatus_t – enum found in ZComDef.h.
6.6.1 Description
This function is used to send an 11073 Transfer APDU Command. This command is used when an 11073 network
layer wishes to transfer an 11073 APDU across a ZigBee tunnel to another 11073 network layer.
6.6.2 Prototype
6.6.4 Return
ZStatus_t – enum found in ZComDef.h.
6.7.1 Description
This function is used to send an 11073 Connect Request Command. This command is generated when a Data
Management device wishes to connect to an 11073 agent device. This may be in response to receiving a connect
status notification command from that agent device with the connect status field set to RECONNECT_REQUEST.
6.7.2 Prototype
managerEP - The source endpoint from which Data Management device is transmitting this frame.
disableDefaultRsp - Disable Default Response command.
seqNum - The identification number for the transaction.
6.7.4 Return
ZStatus_t – enum found in ZComDef.h.
6.8.1 Description
This function is used to send an 11073 Disconnect Request Command. This command is generated when a Data
Management device wishes to disconnect a tunnel connection existing on an agent device.
6.8.2 Prototype
6.8.4 Return
ZStatus_t – enum found in ZComDef.h.
6.9 Send 11073 Connect Status Notification Command (11073 Protocol Tunnel)
6.9.1 Description
This function is used to send an 11073 Connect Status Notification Command. This command is generated by an
agent device in response to a connect request command, disconnect command, or in response to some other event
that causes the tunnel to become connected or disconnected. It is also sent by the agent device to request the Data
Management device to reconnect a tunnel.
6.9.2 Prototype
6.9.4 Return
ZStatus_t – enum found in ZComDef.h.
6.10.1 Description
This function is used to register an Application’s Command callbacks with the Protocol Interfaces functional
domain.
6.10.2 Prototype
6.10.4 Return
ZStatus_t – enum found in ZComDef.h.
6.11.1 Description
This callback is called to process an incoming Match Protocol Address command.
6.11.2 Prototype
6.11.4 Return
None.
6.12.1 Description
This callback is called to process an incoming Match Protocol Address Response. . This means that this application
has sent the corresponding command for this response.
6.12.2 Prototype
6.12.4 Return
None.
6.13.1 Description
This callback is called to process an incoming Advertise Protocol Address command.
6.13.2 Prototype
6.13.4 Return
None.
6.14.1 Description
This callback is called to process an incoming BACnet Transfer NPDU command.
6.14.2 Prototype
6.14.4 Return
None.
6.15.1 Description
This callback is called to process an incoming 11073 Transfer APDU command.
6.15.2 Prototype
6.15.4 Return
None.
6.16.1 Description
This callback is called to process an incoming 11073 Connect Request command.
6.16.2 Prototype
6.16.4 Return
None.
6.17.1 Description
This callback is called to process an incoming 11073 Disconnect Request command.
6.17.2 Prototype
6.17.4 Return
None.
6.18.1 Description
This callback is called to process an incoming 11073 Connect Status Notification command.
6.18.2 Prototype
6.18.4 Return
None.
7. Touchlink Commissioning
7.1.1 Description
This function is used to register inter-PAN command callbacks.
7.1.2 Prototype
ZStatus_t bdbTL_RegisterInterPANCmdCallbacks
(bdbTL_InterPANCallbacks_t *callbacks);
7.1.4 Return
ZStatus_t – enum found in ZComDef.h.
7.2.1 Description
This function is used to send a Scan Request.
7.2.2 Prototype
7.2.4 Return
ZStatus_t – enum found in ZComDef.h.
7.3.1 Description
This function is used to send a Device Information Request.
7.3.2 Prototype
7.3.4 Return
ZStatus_t – enum found in ZComDef.h.
7.4.1 Description
This function is used to send an Identify Request.
7.4.2 Prototype
7.4.4 Return
ZStatus_t – enum found in ZComDef.h.
7.5.1 Description
This function is used to send a Reset to Factory New Request.
7.5.2 Prototype
7.5.4 Return
ZStatus_t – enum found in ZComDef.h.
7.6.1 Description
This function is used to send a Network Start Request.
7.6.2 Prototype
7.6.4 Return
ZStatus_t – enum found in ZComDef.h.
7.7.1 Description
This function is used to send a Network Join Router/End Device Request.
7.7.2 Prototype
7.7.4 Return
ZStatus_t – enum found in ZComDef.h.
7.8.1 Description
This function is used to send a Network Update Request.
7.8.2 Prototype
7.8.4 Return
ZStatus_t – enum found in ZComDef.h.
7.9.1 Description
This function is used to send a Get Group Identifiers Request.
7.9.2 Prototype
7.9.4 Return
ZStatus_t – enum found in ZComDef.h.
7.10.1 Description
This function is used to send a Get Endpoint List Request.
7.10.2 Prototype
7.10.4 Return
ZStatus_t – enum found in ZComDef.h.
7.11.1 Description
This function is used to send a Scan Response.
7.11.2 Prototype
7.11.4 Return
ZStatus_t – enum found in ZComDef.h.
7.12.1 Description
This function is used to send a Device Information Response.
7.12.2 Prototype
7.12.4 Return
ZStatus_t – enum found in ZComDef.h.
7.13.1 Description
This function is used to send a Network Start Response.
7.13.2 Prototype
7.13.4 Return
ZStatus_t – enum found in ZComDef.h.
7.14.1 Description
This function is used to send a Network Join Router/End Device Response.
7.14.2 Prototype
7.14.4 Return
ZStatus_t – enum found in ZComDef.h.
7.15.1 Description
This function is used to send an Endpoint Information Response.
7.15.2 Prototype
7.15.4 Return
ZStatus_t – enum found in ZComDef.h.
7.16.1 Description
This function is used to send a Get Group Identifiers Response.
7.16.2 Prototype
7.16.4 Return
ZStatus_t – enum found in ZComDef.h.
7.17.1 Description
This function is used to send a Get Endpoint List Response.
7.17.2 Prototype
7.17.4 Return
ZStatus_t – enum found in ZComDef.h.
7.18.1 Description
This callback is called to process an incoming Get Group Identifiers Request command.
7.18.2 Prototype
7.18.4 Return
ZStatus_t – enum found in ZComDef.h.
7.19.1 Description
This callback is called to process an incoming Set Endpoint List Request command.
7.19.2 Prototype
7.19.4 Return
ZStatus_t – enum found in ZComDef.h.
7.20.1 Description
This callback is called to process an incoming Endpoint Information command.
7.20.2 Prototype
7.20.4 Return
ZStatus_t – enum found in ZComDef.h.
7.21.1 Description
This callback is called to process an incoming Get Group Identifiers command.
7.21.2 Prototype
7.21.4 Return
ZStatus_t – enum found in ZComDef.h.
7.22.1 Description
This callback is called to process an incoming Get Endpoint List Response command.
7.22.2 Prototype
7.22.4 Return
ZStatus_t – enum found in ZComDef.h.
7.23.1 Description
This callback is called to process an incoming Scan Request command.
7.23.2 Prototype
7.23.4 Return
ZStatus_t – enum found in ZComDef.h.
7.24.1 Description
This callback is called to process an incoming Device Information Request command.
7.24.2 Prototype
7.24.4 Return
ZStatus_t – enum found in ZComDef.h.
7.25.1 Description
This callback is called to process an incoming Identify Request command.
7.25.2 Prototype
7.25.4 Return
ZStatus_t – enum found in ZComDef.h.
7.26.1 Description
This callback is called to process an incoming Reset to Factory New Request command.
7.26.2 Prototype
7.26.4 Return
ZStatus_t – enum found in ZComDef.h.
7.27.1 Description
This callback is called to process an incoming Network Start Request command.
7.27.2 Prototype
7.27.4 Return
ZStatus_t – enum found in ZComDef.h.
7.28.1 Description
This callback is called to process an incoming Network Join Router Request command.
7.28.2 Prototype
7.28.4 Return
ZStatus_t – enum found in ZComDef.h.
7.29.1 Description
This callback is called to process an incoming Network Join End Device Request command.
7.29.2 Prototype
7.29.4 Return
ZStatus_t – enum found in ZComDef.h.
7.30.1 Description
This callback is called to process an incoming Network Update Request command.
7.30.2 Prototype
7.30.4 Return
ZStatus_t – enum found in ZComDef.h.
7.31.1 Description
This callback is called to process an incoming Scan Response command.
7.31.2 Prototype
7.31.4 Return
ZStatus_t – enum found in ZComDef.h.
7.32.1 Description
This callback is called to process an incoming Device Information Response command.
7.32.2 Prototype
7.32.4 Return
ZStatus_t – enum found in ZComDef.h.
7.33.1 Description
This callback is called to process an incoming Network Start Response command.
7.33.2 Prototype
7.33.4 Return
ZStatus_t – enum found in ZComDef.h.
7.34.1 Description
This callback is called to process an incoming Network Join Router Response command.
7.34.2 Prototype
7.34.4 Return
ZStatus_t – enum found in ZComDef.h.
7.35.1 Description
This callback is called to process an incoming Network Join End Device Response command.
7.35.2 Prototype
7.35.4 Return
ZStatus_t – enum found in ZComDef.h.
8. Green Power
The current implementation of Green Power endpoint is to provide basic proxy functionality, which is meant to
relay packets from the Green Power Device to a Green Power Sink device after a commissioning process performed
by the Green Power Device and the Green Power Sink. This application is already managed by the stack and it does
not required user interaction. The API here stated is provided for such applications seeking to expand the Green
Power functionality to its application.
8.1.1 Description
This function is used to send a Green Power Notification.
8.1.2 Prototype
8.1.4 Return
ZStatus_t – enum found in ZComDef.h.
8.2.1 Description
This function is used to send a Green Power Notification.
8.2.2 Prototype
8.2.4 Return
ZStatus_t – enum found in ZComDef.h.
8.3.1 Description
This function is used to send a Green Power Commissioning Notification.
8.3.2 Prototype
ZStatus_t zclGp_SendGpCommissioningNotificationCommand
(gpCommissioningNotificationCmd_t *pCmd);
8.3.4 Return
ZStatus_t – enum found in ZComDef.h.
8.4.1 Description
This function is used to send a Green Power Proxy Table Request.
8.4.2 Prototype
8.4.4 Return
ZStatus_t – enum found in ZComDef.h.
8.5.1 Description
This callback is called to process an incoming Gp Pairing command.
8.5.2 Prototype
8.5.4 Return
None.
8.6.1 Description
This callback is called to process an incoming Gp Commissioning Mode command.
8.6.2 Prototype
8.6.4 Return
None.
8.7.1 Description
This callback is called to process an incoming Gp Commissioning Mode command.
8.7.2 Prototype
8.7.4 Return
None.
8.8.1 Description
This callback is called to process an incoming Gp Commissioning Mode command.
8.8.2 Prototype
8.8.4 Return
None.
9. Compile Options
The ZCL compile options are defined in the ZCL configuration file f8wZCL.cfg, which is located in the Tools folder
of the Z-Stack installation, along with other configuration files. The f8wZCL.cfg file is used by all projects that
include the ZCL (i.e., all Home Automation projects). Therefore, any change made to this file will affect all HA
projects. Compile options for other profiles, such as Smart Energy [5] , can be found in their API documents. If
needed, you can create a private version of the f8wZCL.cfg file and modify your project to use the new version. The
ZCL supported compile options and their definitions are listed in the following table:
6) Recall Scene
7) Get Scene Membership
8) Add Scene Response
9) View Scene Response
10) Remove Scene Response
11) Remove All Scenes Response
12) Store Scene Response
13) Get Scene Membership Response