Zigbee Cluster Library Overview 3

1. Thermostat

#include "zcl/general/zcl.therm.h"

Functions

ZbZclThermClientAlloc

struct ZbZclClusterT * ZbZclThermClientAlloc(struct ZigBeeT *zb, uint8_t endpoint);

Create a new instance of the Scenes Client cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclThermClientClearWeeklySched

enum ZclStatusCodeT ZbZclThermClientClearWeeklySched(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Clear Weekly Schedule command (Optional)

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclThermClientGetRelayStatusLog

enum ZclStatusCodeT ZbZclThermClientGetRelayStatusLog(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Get Relay Status Log command (Optional)

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclThermClientGetWeeklySched

enum ZclStatusCodeT ZbZclThermClientGetWeeklySched(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst, struct ZbZclThermCliGetWeeklyT *req, void (*callback)(struct ZbZclCommandRspT
  • rsp, void *arg), void *arg);

Send a Get Weekly Schedule command (Optional)

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclThermClientSetWeeklySched

enum ZclStatusCodeT ZbZclThermClientSetWeeklySched(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclThermWeeklySchedT *req, void (*callback)(struct ZbZclCommandRspT
  • rsp, void *arg), void *arg);

Send a Set Weekly Schedule command (Optional)

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclThermClientSetpointRaiseLower

enum ZclStatusCodeT ZbZclThermClientSetpointRaiseLower(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclThermCliSetpointT *req, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Setpoint Raise/Lower command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclThermServerAlloc

struct ZbZclClusterT * ZbZclThermServerAlloc(struct ZigBeeT *zb, uint8_t endpoint, struct ZbZclThermServerCallbacksT *callbacks, void *arg);

Create a new instance of the Thermostat Server cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclThermServerGetRelayStatusLogRsp

enum ZclStatusCodeT ZbZclThermServerGetRelayStatusLogRsp(struct ZbZclClusterT *cluster, struct ZbZclAddrInfoT *dst,
struct ZbZclThermSvrGetRelayStatusLogRspT *rsp);

Send a Get Relay Status Log Response command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclThermServerGetWeeklySchedRsp

enum ZclStatusCodeT ZbZclThermServerGetWeeklySchedRsp(struct ZbZclClusterT *cluster, struct ZbZclAddrInfoT *dst, struct ZbZclThermWeeklySchedT *rsp);

Send a Get Weekly Schedule Response command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

Enumerations

ZbZclThermAttrT

Thermostat Attribute IDs

Structures

ZbZclThermCliGetWeeklyT

Thermostat Get Weekly Schedule structure

Parameters

ZbZclThermCliSetpointT

Thermostat Setpoint structure

Parameters

ZbZclThermServerCallbacksT

Thermostat Server callbacks configuration

Parameters

ZbZclThermSvrGetRelayStatusLogRspT

Get Relay Status Log Response structure

Parameters

ZbZclThermTransitionsT

Thermostat Transition structure

Parameters

ZbZclThermWeeklySchedT

Thermostat Weekly Schedule structure

Parameters

2. Thermostat User Interface

#include "zcl/general/zcl.therm.ui.h"

Functions

ZbZclThermUiClientAlloc

struct ZbZclClusterT * ZbZclThermUiClientAlloc(struct ZigBeeT *zb, uint8_t endpoint);

Create a new instance of the Thermostat User Interface Client cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclThermUiServerAlloc

struct ZbZclClusterT * ZbZclThermUiServerAlloc(struct ZigBeeT *zb, uint8_t endpoint);

Create a new instance of the Thermostat User Interface Server cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

Enumerations

ZbZclThermUiServerAttrT

Thermostat User Interface Attribute IDs

3. Time

#include "zcl/general/zcl.time.h"

Functions

ZbZclTimeClientAlloc

struct ZbZclClusterT * ZbZclTimeClientAlloc(struct ZigBeeT *zb, uint8_t endpoint);

Create a new instance of the Time Client cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclTimeServerAlloc

struct ZbZclClusterT * ZbZclTimeServerAlloc(struct ZigBeeT *zb, uint8_t endpoint, struct ZbZclTimeServerCallbacks *callbacks, void *arg);

Create a new instance of the Time Server cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclTimeServerCurrentTime

uint32_t ZbZclTimeServerCurrentTime(struct ZbZclClusterT *cluster);

Call the get_time callback defined as part of the Time Server callbacks configuration

Parameters

Return

  • Current time in seconds since Zigbee Epoch: Jan 1st 2000

ZbZclTimeServerSetTime

void ZbZclTimeServerSetTime(struct ZbZclClusterT *cluster, uint32_t current_time);

Call the set_time callback defined as part of the Time Server callbacks configuration

Parameters

Return

  • Void

Enumerations

ZbZclTimeSvrAttrT

Time Server Attribute IDs

Structures

ZbZclTimeServerCallbacks

Time Server callbacks configuration

Parameters

4. Voice Over Zigbee

#include "zcl/general/zcl.voice.h"

Functions

ZbZclVoiceClientAlloc

struct ZbZclClusterT * ZbZclVoiceClientAlloc(struct ZigBeeT *zb, uint8_t endpoint, struct zcl_voice_client_callbacks_t *callbacks, void *arg);

Create a new instance of the Voice Over Zigbee Client cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclVoiceClientEstabReq

enum ZclStatusCodeT ZbZclVoiceClientEstabReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct voice_estab_req_t *estab_req, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send an Establishment Request command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclVoiceClientSendControlRsp

enum ZclStatusCodeT ZbZclVoiceClientSendControlRsp(struct ZbZclClusterT *cluster, struct ZbZclAddrInfoT *dst_info, struct voice_control_rsp_t *rsp);

Send an Control command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclVoiceServerAlloc

struct ZbZclClusterT * ZbZclVoiceServerAlloc(struct ZigBeeT *zb, uint8_t endpoint, struct zcl_voice_server_callbacks_t *callbacks, void *arg);

Create a new instance of the Voice Over Zigbee Server cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclVoiceServerControlReq

enum ZclStatusCodeT ZbZclVoiceServerControlReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct voice_control_t *control_cmd, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Control command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclVoiceServerSendEstabRsp

enum ZclStatusCodeT ZbZclVoiceServerSendEstabRsp(struct ZbZclClusterT *cluster, struct ZbZclAddrInfoT *dst_info, struct voice_estab_rsp_t *rsp);

Send an Establishment Response command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclVoiceServerSendVoiceTxRsp

enum ZclStatusCodeT ZbZclVoiceServerSendVoiceTxRsp(struct ZbZclClusterT *cluster, struct ZbZclAddrInfoT *dst, struct voice_voice_tx_rsp_t *rsp);

Send a Voice Transmission Response command. The application calls this if it ever encounters an error processing a Voice Transmission packet

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclVoiceTxCompletedReq

enum ZclStatusCodeT ZbZclVoiceTxCompletedReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst, void (*callback)
(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Voice Transmission Complete command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclVoiceVoiceTxReq

enum ZclStatusCodeT ZbZclVoiceVoiceTxReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct voice_voice_tx_t *voice_tx, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Voice Transmission command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

Enumerations

ZbZclVoiceSvrAttrT

Voice Over Zigbee Server Attribute IDs

Structures

voice_control_rsp_t

Control Response command structure

Parameters

voice_control_t

Control command structure

Parameters

voice_estab_req_t

Establishment Request command structure

Parameters

voice_estab_rsp_t

Establishment Response command structure

Parameters

voice_voice_tx_rsp_t

Voice Transmission Response command structure

Parameters

voice_voice_tx_t

Voice Transmission command structure

Parameters

zcl_voice_client_callbacks_t

Voice Over Zigbee Client callbacks configuration

Parameters

zcl_voice_server_callbacks_t

Voice Over Zigbee Server callbacks configuration

Parameters

5. Water Content Measurement

#include "zcl/general/zcl.wcm.h"

Functions

ZbZclWaterContentMeasClientAlloc

struct ZbZclClusterT * ZbZclWaterContentMeasClientAlloc(struct ZigBeeT *zb, uint8_t endpoint, enum ZbZclClusterIdT clusterID);

Create a new instance of the Water Content Measurement Client cluster

Parameters

  • Cluster pointer, or NULL if there is an error

ZbZclWaterContentMeasServerAlloc

struct ZbZclClusterT * ZbZclWaterContentMeasServerAlloc(struct ZigBeeT *zb, uint8_t endpoint, enum ZbZclClusterIdT clusterID, uint16_t min, uint16_t max);

Create a new instance of the Water Content Measurement Server cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

Enumerations

ZbZclWcmSvrAttrT

Water Content Measurement Server Attribute IDs

6. Window Covering

#include "zcl/general/zcl.window.h"

Functions

ZbZclWindowClientAlloc

struct ZbZclClusterT * ZbZclWindowClientAlloc(struct ZigBeeT *zb, uint8_t endpoint);

Create a new instance of the Window Covering Client cluster

Parameters

  • Cluster pointer, or NULL if there is an error

ZbZclWindowClientCommandDown

enum ZclStatusCodeT ZbZclWindowClientCommandDown(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *zcl_rsp, void *arg), void *arg);

Send a Down/Close command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclWindowClientCommandStop

enum ZclStatusCodeT ZbZclWindowClientCommandStop(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *zcl_rsp, void *arg), void *arg);

Send a Stop command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclWindowClientCommandUp

enum ZclStatusCodeT ZbZclWindowClientCommandUp(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *zcl_rsp, void *arg), void *arg);

Send an Up/Open command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclWindowClosureServerMode

enum ZclStatusCodeT ZbZclWindowClosureServerMode(struct ZbZclClusterT *cluster, uint8_t mode);

Configure the Window Covering mode

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclWindowServerAlloc

struct ZbZclClusterT * ZbZclWindowServerAlloc(struct ZigBeeT *zb, uint8_t endpoint, struct ZbZclWindowServerCallbacksT *callbacks, void *arg);

Create a new instance of the Window Covering Server cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

Enumerations

ZbZclWncvServerAttrT

Window Covering Server Attribute Ids

ZbZclWncvTypes

Window Covering Type enumerations

Structures

ZbZclWindowServerCallbacksT

Window Covering Server callbacks configuration

Parameters

7. IAS Security Clusters

7.1. IAS ACE

#include "zcl/security/zcl.ias_ace.h"

Functions

ZbZclIasAceClientAlloc

struct ZbZclClusterT * ZbZclIasAceClientAlloc(struct ZigBeeT *zb, uint8_t endpoint, void *arg);

Allocate the IAS ACE Client cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclIasAceClientCommandArmReq

enum ZclStatusCodeT ZbZclIasAceClientCommandArmReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclIasAceClientCommandArmT *cmd_req, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send an Arm command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasAceClientCommandBypassReq

enum ZclStatusCodeT ZbZclIasAceClientCommandBypassReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclIasAceClientCommandBypassT *cmd_req, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Bypass command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasAceClientCommandEmergencyReq

enum ZclStatusCodeT ZbZclIasAceClientCommandEmergencyReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send an Emergency command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasAceClientCommandFireReq

enum ZclStatusCodeT ZbZclIasAceClientCommandFireReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Fire command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasAceClientCommandGetBypassedZoneListReq

enum ZclStatusCodeT ZbZclIasAceClientCommandGetBypassedZoneListReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Get Bypassed Zone List command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasAceClientCommandGetPanelStatusReq

enum ZclStatusCodeT ZbZclIasAceClientCommandGetPanelStatusReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Get Panel Status changed request

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasAceClientCommandGetZoneIdMapReq

enum ZclStatusCodeT ZbZclIasAceClientCommandGetZoneIdMapReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Get Zone ID Map command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasAceClientCommandGetZoneInfoReq

enum ZclStatusCodeT ZbZclIasAceClientCommandGetZoneInfoReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclIasAceClientCommandGetZoneInfoT *cmd_req, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Get Zone Info command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasAceClientCommandGetZoneStatusReq

enum ZclStatusCodeT ZbZclIasAceClientCommandGetZoneStatusReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclIasAceClientCommandGetZoneStatusT *cmd_req, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Get Zone Status command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasAceClientCommandPanicReq

enum ZclStatusCodeT ZbZclIasAceClientCommandPanicReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Panic command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasAceClientParseArmRsp

bool ZbZclIasAceClientParseArmRsp(const uint8_t *buf, unsigned int len, struct ZbZclIasAceServerCommandArmRspT *rsp);

Parse an Arm Response command payload into a data structure

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceClientParseBypassRsp

bool ZbZclIasAceClientParseBypassRsp(const uint8_t *buf, unsigned int len, struct ZbZclIasAceServerCommandBypassRspT *rsp);

Parse a Bypass Response command payload into a data structure

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceClientParseGetPanelStatusRsp

bool ZbZclIasAceClientParseGetPanelStatusRsp(const uint8_t *buf, unsigned int len, struct ZbZclIasAceServerCommandGetPanelStatusRspT *rsp);

Parse a Get Panel Status Response command payload into a data structure

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceClientParseGetZoneIdMapRsp

bool ZbZclIasAceClientParseGetZoneIdMapRsp(const uint8_t *buf, unsigned int len, struct ZbZclIasAceServerCommandGetZoneIdMapRspT *rsp);

Parse a Get Zone ID Map Response command payload into a data structure

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceClientParseGetZoneInfoRsp

bool ZbZclIasAceClientParseGetZoneInfoRsp(const uint8_t *buf, unsigned int len, struct ZbZclIasAceServerCommandGetZoneInfoRspT *rsp);

Parse a Get Zone Info Response command payload into a data structure

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceClientParseGetZoneStatusRsp

bool ZbZclIasAceClientParseGetZoneStatusRsp(const uint8_t *buf, unsigned int len, struct ZbZclIasAceServerCommandGetZoneStatusRspT *rsp);

Parse a Get Zone Status Response command payload into a data structure

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceClientParseSetBypassedZoneList

bool ZbZclIasAceClientParseSetBypassedZoneList(const uint8_t *buf, unsigned int len, struct ZbZclIasAceServerCommandSetBypassedZoneListT *rsp);

Parse a Set Bypassed Zone List Response command payload into a data structure

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceClientParseZoneStatusChanged

bool ZbZclIasAceClientParseZoneStatusChanged(const uint8_t *buf, unsigned int len, struct ZbZclIasAceServerCommandZoneStatusChangedT *rsp);

Parse a Zone Status Changed Response command payload into a data structure

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceServerAlloc

struct ZbZclClusterT * ZbZclIasAceServerAlloc(struct ZigBeeT *zb, uint8_t endpoint, struct ZbZclIasAceServerCallbacksT *callbacks, void *arg);

Create a new instance of the IAS ACE Server cluster

If 'use_trip_pair' is true, application must call ZbZclIasAceServerEnrollRequest to perform the 'trip-to-pair' process, unless the IAS CIE has sent us an unsolicited Auto-Enroll-Response

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclIasAceServerGetFreeZoneId

bool ZbZclIasAceServerGetFreeZoneId(struct ZbZclClusterT *cluster, uint8_t *zone_id_ptr);

Returns the first free Zone ID not already in the Zone Table

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceServerPanelCodeConfig

bool ZbZclIasAceServerPanelCodeConfig(struct ZbZclClusterT *cluster, const char *arm_code);

Change the Panel Arm/Disarm Code

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceServerPanelStatusConfig

bool ZbZclIasAceServerPanelStatusConfig(struct ZbZclClusterT *cluster, enum ZbZclIasAcePanelStatusT panel_status,
uint8_t seconds_remain, enum ZbZclIasAceAudibleNotifyT audible_notify);

Update the Panel Status

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceServerZoneBypassConfig

enum ZbZclIasAceBypassResultT ZbZclIasAceServerZoneBypassConfig(struct ZbZclClusterT *cluster, uint8_t zone_id, bool bypass);

Bypass zone if allowed

Parameters

Return

  • Result of bypass config command

ZbZclIasAceServerZoneBypassPerms

bool ZbZclIasAceServerZoneBypassPerms(struct ZbZclClusterT *cluster, uint8_t zone_id, enum ZbZclIasAceBypassPermsT bypass_perms);

Configure Bypass Permissions

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceServerZoneStatusConfig

bool ZbZclIasAceServerZoneStatusConfig(struct ZbZclClusterT *cluster, uint8_t zone_id,
enum ZbZclIasZoneServerZoneStatusT zone_status, enum ZbZclIasAceAudibleNotifyT audible_notify);

Configure Zone Status

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceServerZoneTableAdd

bool ZbZclIasAceServerZoneTableAdd(struct ZbZclClusterT *cluster, struct ZbZclIasAceServerZoneTableAddT *req);

Add new zone entry

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceServerZoneTableAddrLookup

uint64_t ZbZclIasAceServerZoneTableAddrLookup(struct ZbZclClusterT *cluster, uint8_t zone_id);

Returns address of paired zone, or 0 if not found

Parameters

Return

  • Address of zone if successful, 0 on error

ZbZclIasAceServerZoneTableDeleteByAddr

bool ZbZclIasAceServerZoneTableDeleteByAddr(struct ZbZclClusterT *cluster, uint64_t addr);

Delete a zone by address

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceServerZoneTableDeleteById

bool ZbZclIasAceServerZoneTableDeleteById(struct ZbZclClusterT *cluster, uint8_t zone_id);

Delete a zone by zone ID

Parameters

Return

  • True on success, false otherwise

ZbZclIasAceServerZoneTableIdLookup

bool ZbZclIasAceServerZoneTableIdLookup(struct ZbZclClusterT *cluster, uint64_t zone_addr, uint8_t *zone_id_ptr);

Attempts to find a zone based on extended address, and returns the zone Id if found

Parameters

Return

  • True on success, false otherwise

Structures

ZbZclIasAceClientCommandArmT

Arm command structure

Parameters

ZbZclIasAceClientCommandBypassT

Bypass command structure

Parameters

ZbZclIasAceClientCommandGetZoneInfoT

Get Zone Info command structure

Parameters

ZbZclIasAceClientCommandGetZoneStatusT

Get Zone Status command structure

Parameters

ZbZclIasAceServerCallbacksT

IAS ACE Server callbacks configuration

Parameters

ZbZclIasAceServerCommandArmRspT

Arm response structure

Parameters

ZbZclIasAceServerCommandBypassRspT

Bypass Response response structure

Parameters

ZbZclIasAceServerCommandGetPanelStatusRspT

Get Panel Status response structure

Parameters

ZbZclIasAceServerCommandGetZoneIdMapRspT

Get Zone ID Map response structure

Parameters

ZbZclIasAceServerCommandGetZoneInfoRspT

Get Zone Info response structure

Parameters

ZbZclIasAceServerCommandGetZoneStatusRspT

Get Zone Status response structure

Parameters

ZbZclIasAceServerCommandSetBypassedZoneListT

Set Bypassed Zone List command structure

Parameters

ZbZclIasAceServerCommandZoneStatusChangedT

Zone Status Changed command structure

Parameters

ZbZclIasAceServerZoneTableAddT

Zone Table Add request structure

Parameters

7.2. IAS WD

#include "zcl/security/zcl.ias_wd.h"

Functions

ZbZclIasWdClientAlloc

struct ZbZclClusterT * ZbZclIasWdClientAlloc(struct ZigBeeT *zb, uint8_t endpoint, void *arg);

Create a new instance of the IAS Warning Device Client cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclIasWdServerAlloc

struct ZbZclClusterT * ZbZclIasWdServerAlloc(struct ZigBeeT *zb, uint8_t endpoint, struct ZbZclIasWdServerCallbacksT *callbacks, void *arg);

Create a new instance of the IAS Warning Device Server cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

Enumerations

ZbZclIasWdLevelT

IAS Warning Device Siren Level Field Values

ZbZclIasWdSquawkModeT

IAS Warning Device Squawk Mode Field

ZbZclIasWdStrobeT

IAS Warning Device Strobe Field

ZbZclIasWdSvrAttrT

IAS Warning Device Server Attribute IDs

ZbZclIasWdWarningModeT

IAS Warning Device Warning Modes

Structures

ZbZclIasWdClientSquawkReqT

IAS Warning Device Client Squawk command structure

Parameters

ZbZclIasWdClientStartWarningReqT

IAS Warning Device Client Start Warning command structure

Parameters

ZbZclIasWdServerCallbacksT

IAS Warning Server callbacks configuration

Parameters

7.3. IAS Zone

#include "zcl/security/zcl.ias_zone.h"

Functions

ZbZclIasZoneClientAlloc

struct ZbZclClusterT * ZbZclIasZoneClientAlloc(struct ZigBeeT *zb, uint8_t endpoint, struct ZbZclIasZoneClientCallbacksT *callbacks, void *arg);

Create a new instance of the IAS Zone Client cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclIasZoneClientInitiateAutoEnroll

enum ZclStatusCodeT ZbZclIasZoneClientInitiateAutoEnroll(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(const struct ZbZclWriteRspT *, void *), void *arg);

Send a Zone Auto-Enroll request command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasZoneClientInitiateNormalMode

enum ZclStatusCodeT ZbZclIasZoneClientInitiateNormalMode(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *zcl_rsp, void *arg), void *arg);

Send a Initiate Normal Operation Mode request command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasZoneClientInitiateTestMode

enum ZclStatusCodeT ZbZclIasZoneClientInitiateTestMode(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclIasZoneClientTestModeReqT *req, void (*callback)(struct ZbZclCommandRspT *zcl_rsp, void *arg), void *arg);

Send a Initiate Test Mode request command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasZoneClientSendAutoEnrollResponse

enum ZclStatusCodeT ZbZclIasZoneClientSendAutoEnrollResponse(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst, uint8_t zone_id,
void (*callback)(struct ZbZclCommandRspT *zcl_rsp, void *arg), void *arg);

Send a Zone Auto-Enroll response command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclIasZoneServerAlloc

struct ZbZclClusterT * ZbZclIasZoneServerAlloc(struct ZigBeeT *zb, uint8_t endpoint, uint16_t zone_type, uint16_t manuf_code, bool use_trip_pair,
struct ZbZclIasZoneServerCallbacksT *callbacks, void *arg);

Create a new instance of the IAS Zone Server cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclIasZoneServerEnrollRequest

enum ZclStatusCodeT ZbZclIasZoneServerEnrollRequest(struct ZbZclClusterT *cluster,
void (*callback)(struct ZbZclIasZoneClientEnrollResponseT *enrl_rsp, void *arg), void *arg);

Send a Zone Enroll request command Used with 'trip-to-pair'. Before sending a Zone Enroll Request, the IAS CIE must write to the IAS_CIE_Address attribute with its IEEE address.

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

Enumerations

ZbZclIasZoneClientResponseCodeT

IAS Zone Enroll Response Code

ZbZclIasZoneServerAttrT

IAS Zone Server Attribute IDs

ZbZclIasZoneServerModeT

IAS Zone ZoneStatus Attribute Bit Test Value

ZbZclIasZoneServerZoneStateT

IAS Zone ZoneState Attribute

ZbZclIasZoneServerZoneStatusT

IAS Zone ZoneStatus Attribute

ZbZclIasZoneServerZoneTypeT

IAS Zone ZoneType Attribute

Structures

ZbZclIasZoneClientCallbacksT

IAS Zone Client callbacks configuration

Parameters

ZbZclIasZoneClientEnrollResponseT

Zone Enroll response structure

Parameters

ZbZclIasZoneClientTestModeReqT

Initiate Test Mode request structure

Parameters

ZbZclIasZoneServerCallbacksT

IAS Zone Server callbacks configuration

Parameters

ZbZclIasZoneServerEnrollRequestT

Zone Enroll request structure

Parameters

ZbZclIasZoneServerStatusChangeNotifyT

Zone State Change Notification request structure

Parameters

8. Smart Energy Clusters

8.1. Calendar

#include "zcl/se/zcl.calendar.h"

Functions

ZbZclCalClientAlloc

struct ZbZclClusterT * ZbZclCalClientAlloc(struct ZigBeeT *zb, uint8_t endpoint, struct ZbZclCalClientCallbacksT *callbacks, void *arg);

Create a new instance of the Calendar client cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclCalClientCommandGetCalCancelReq

enum ZclStatusCodeT ZbZclCalClientCommandGetCalCancelReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Get Calendar Cancellation command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalClientCommandGetCalReq

enum ZclStatusCodeT ZbZclCalClientCommandGetCalReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclCalGetCalendarT *cmd_req, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Get Calendar command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalClientCommandGetDayProfilesReq

enum ZclStatusCodeT ZbZclCalClientCommandGetDayProfilesReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclCalGetDayProfilesT *cmd_req, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Get Day Profiles command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalClientCommandGetSeasonsReq

enum ZclStatusCodeT ZbZclCalClientCommandGetSeasonsReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclCalGetSeasonsT *cmd_req, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Get Seasons command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalClientCommandGetSpecialDaysReq

enum ZclStatusCodeT ZbZclCalClientCommandGetSpecialDaysReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclCalGetSpecialDaysT *cmd_req, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Get Special Days command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalClientCommandGetWeekProfilesReq

enum ZclStatusCodeT ZbZclCalClientCommandGetWeekProfilesReq(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclCalGetWeekProfilesT *cmd_req, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Get Week Profile command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalParseCancelCalendar

bool ZbZclCalParseCancelCalendar(const uint8_t *buf, unsigned int len, struct ZbZclCalCancelCalendarT *rsp);

Parse a Cancel Calendar command

Parameters

Return

  • True on success, false otherwise

ZbZclCalParsePublishCalendar

bool ZbZclCalParsePublishCalendar(const uint8_t *buf, unsigned int len, struct ZbZclCalServerPublishCalendarT *rsp);

Parse a Publish Calendar command

Parameters

Return

  • True on success, false otherwise

ZbZclCalParsePublishDayProfile

bool ZbZclCalParsePublishDayProfile(const uint8_t *buf, unsigned int len, struct ZbZclCalServerPublishDayProfileT *rsp);

Parse a Publish Day Profile command

Parameters

Return

  • True on success, false otherwise

ZbZclCalParsePublishSeasons

bool ZbZclCalParsePublishSeasons(const uint8_t *buf, unsigned int len, struct ZbZclCalPublishSeasonsT *rsp);

Parse a Publish Seasons command

Parameters

Return

  • True on success, false otherwise

ZbZclCalParsePublishSpecialDays

bool ZbZclCalParsePublishSpecialDays(const uint8_t *buf, unsigned int len, struct ZbZclCalPublishSpecialDaysT *rsp);

Parse a Publish Special Days command

Parameters

Return

  • True on success, false otherwise

ZbZclCalParsePublishWeekProfile

bool ZbZclCalParsePublishWeekProfile(const uint8_t *buf, unsigned int len, struct ZbZclCalServerPublishWeekProfileT *rsp);

Parse a Publish Week Profile command

Parameters

Return

  • True on success, false otherwise

ZbZclCalServerAlloc

struct ZbZclClusterT * ZbZclCalServerAlloc(struct ZigBeeT *zb, uint8_t endpoint, struct ZbZclCalServerCallbacksT *callbacks, void *arg);

Create a new instance of the Calendar server cluster

Parameters

Return

  • Cluster pointer, or NULL if there is an error

ZbZclCalServerPublishCalendarRsp

enum ZclStatusCodeT ZbZclCalServerPublishCalendarRsp(struct ZbZclClusterT *cluster, struct ZbZclAddrInfoT *dstInfo,
struct ZbZclCalServerPublishCalendarT *info);

Send a Publish Calendar as a response

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalServerPublishCalendarUnsolic

enum ZclStatusCodeT ZbZclCalServerPublishCalendarUnsolic(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclCalServerPublishCalendarT *info, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Publish Calendar as an unsolicited command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalServerPublishDayProfileRsp

enum ZclStatusCodeT ZbZclCalServerPublishDayProfileRsp(struct ZbZclClusterT *cluster, struct ZbZclAddrInfoT *dstInfo,
struct ZbZclCalServerPublishDayProfileT *info, void (*callback)(struct ZbApsdeDataConfT *conf, void *arg), void *arg);

Send a Publish Day Profile as a response

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalServerPublishDayProfileUnsolic

enum ZclStatusCodeT ZbZclCalServerPublishDayProfileUnsolic(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclCalServerPublishDayProfileT *info, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Publish Day Profile as an unsolicited command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalServerPublishSeasonsRsp

enum ZclStatusCodeT ZbZclCalServerPublishSeasonsRsp(struct ZbZclClusterT *cluster, struct ZbZclAddrInfoT *dstInfo, struct ZbZclCalPublishSeasonsT *info);

Send a Publish Seasons as a response

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalServerPublishSeasonsUnsolic

enum ZclStatusCodeT ZbZclCalServerPublishSeasonsUnsolic(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclCalPublishSeasonsT *info, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Publish Seasons as an unsolicited command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalServerPublishSpecialDaysRsp

enum ZclStatusCodeT ZbZclCalServerPublishSpecialDaysRsp(struct ZbZclClusterT *cluster, struct ZbZclAddrInfoT *dstInfo,
struct ZbZclCalPublishSpecialDaysT *info, void (*callback)(struct ZbApsdeDataConfT *conf, void *arg), void *arg);

Send a Publish Special Days as a response

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalServerPublishSpecialDaysUnsolic

enum ZclStatusCodeT ZbZclCalServerPublishSpecialDaysUnsolic(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclCalPublishSpecialDaysT *info, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Publish Special Days as an unsolicited command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalServerPublishWeekProfileRsp

enum ZclStatusCodeT ZbZclCalServerPublishWeekProfileRsp(struct ZbZclClusterT *cluster, struct ZbZclAddrInfoT *dstInfo,
struct ZbZclCalServerPublishWeekProfileT *info);

Send a Publish Week Profile as a response

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalServerPublishWeekProfileUnsolic

enum ZclStatusCodeT ZbZclCalServerPublishWeekProfileUnsolic(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclCalServerPublishWeekProfileT *info, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Publish Week Profile as an unsolicited command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalServerSendCancelCalendarRsp

enum ZclStatusCodeT ZbZclCalServerSendCancelCalendarRsp(struct ZbZclClusterT *cluster, struct ZbZclAddrInfoT *dstInfo,
struct ZbZclCalCancelCalendarT *info);

Send a Cancel Calendar as a response

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalServerSendCancelCalendarUnsolic

enum ZclStatusCodeT ZbZclCalServerSendCancelCalendarUnsolic(struct ZbZclClusterT *cluster, const struct ZbApsAddrT *dst,
struct ZbZclCalCancelCalendarT *info, void (*callback)(struct ZbZclCommandRspT *rsp, void *arg), void *arg);

Send a Cancel Calendar as an unsolicited command

Parameters

Return

  • ZCL_STATUS_SUCCESS if successful, or other ZclStatusCodeT value on error

ZbZclCalendarMirrorAlloc

struct ZbZclClusterT * ZbZclCalendarMirrorAlloc(struct ZigBeeT *zb, uint8_t endpoint, struct ZbZclClusterT *calendar_server,
struct ZbZclClusterT *meter_mirror, struct ZbZclClusterT *meter_client);

Allocates a Calendar Client Mirror cluster.

Parameters

Return

  • Cluster pointer, or NULL if there is an error

Enumerations

ZbZclCalSvrAttrT

Calendar Server Attribute IDs

Structures

ZbZclCalCancelCalendarT

Cancel Calendar command structure

Parameters

ZbZclCalClientCallbacksT

Calendar Client callbacks configuration

Parameters

ZbZclCalGetCalendarT

Get Calendar command structure

Parameters

ZbZclCalGetDayProfilesT

Get Day Profiles command structure

Parameters

ZbZclCalGetSeasonsT

Get Seasons command structure

Parameters

ZbZclCalGetSpecialDaysT

Get Special Days command structure

Parameters

ZbZclCalGetWeekProfilesT

Get Week Profiles command structure

Parameters

ZbZclCalPublishSeasonsT

Publish Seasons command structure

Parameters

ZbZclCalPublishSpecialDaysT

Publish Special Days command structure

Parameters

ZbZclCalServerCallbacksT

Calendar Server callbacks configuration

Parameters

ZbZclCalServerPublishCalendarT

Publish Calendar command structure

Parameters

ZbZclCalServerPublishDayProfileT

Publish Day Profile command structure

Parameters

ZbZclCalServerPublishWeekProfileT

Publish Week Profile command structure

Parameters

ZbZclCalendarDayScheduleT

Day Schedule Entries structure

Parameters

ZbZclCalendarSeasonT

Season Entry structure

Parameters

ZbZclCalendarSpecialDayT

Season Entry structure

Parameters