MeshTalos-Client/managed_components/espressif__esp-zboss-lib/include/zcl/zb_zcl_events.h
2025-12-03 14:20:11 +08:00

521 lines
24 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA
* Copyright (c) 2021-2022 Espressif Systems (Shanghai) PTE LTD
* All rights reserved.
*
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form, except as embedded into a Espressif Systems
* integrated circuit in a product or a software update for such product,
* must reproduce the above copyright notice, this list of conditions and
* the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* 4. Any software provided in binary form under this license must not be reverse
* engineered, decompiled, modified and/or disassembled.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
/* PURPOSE: Events cluster definitions
*/
#ifndef ZB_ZCL_EVENTS_H_
#define ZB_ZCL_EVENTS_H_
#include "zboss_api_core.h" /* ZBOSS core API types */
/** @cond DOXYGEN_ZCL_SECTION && DOXYGEN_SE_SECTION */
/** @addtogroup ZB_ZCL_EVENTS
* @{
* @details
* The Events cluster provides an interface for passing event information
* between Zigbee devices. Events are generated and logged by a server device
* and read by a client device.
*/
/** @defgroup ZB_ZCL_EVENTS_COMMANDS Events cluster commands
* @{
*/
/** Commands are generated by Events Server.
* @see SE spec, subclause 11.2.4
*/
typedef enum zb_zcl_events_srv_cmd_e
{
ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT = 0x00, /**< This command is generated upon an event trigger from within the reporting
* device and if enabled by the associated Event Configuration (bitmap)
* attribute in the Device Management cluster
* @see zb_zcl_events_publish_event_payload_t
*/
ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT_LOG = 0x01, /**< This command is generated on receipt of a Get Event Log command.
* The command shall return the most recent event first, up to the number
* of events requested.
* @see zb_zcl_events_publish_event_log_payload_t
*/
ZB_ZCL_EVENTS_SRV_CMD_CLEAR_EVENT_LOG_RESPONSE = 0x02, /**< This command is generated on receipt of a Clear Event Log Request command.
* @see zb_zcl_events_clear_event_log_response_t
*/
} zb_zcl_events_srv_cmd_t;
/** Commands are generated by Events Client.
* @see SE spec, subclause 11.2.3
*/
typedef enum zb_zcl_events_cli_cmd_e
{
ZB_ZCL_EVENTS_CLI_CMD_GET_EVENT_LOG = 0x00, /**< The GetEventLog command allows a client to request events from a servers
* event logs. One or more PublishEventLog commands are returned on receipt
* of this command.
* @see zb_zcl_events_get_event_log_payload_t
*/
ZB_ZCL_EVENTS_CLI_CMD_CLEAR_EVENT_LOG_REQUEST = 0x01, /**< This command requests that an Events server device clear the specified
* event log(s). The Events server device SHOULD clear the requested events
* logs, however it is understood that market specific restrictions may be
* applied to prevent this.
* @see zb_zcl_events_clear_event_log_request_s
*/
} zb_zcl_events_cli_cmd_t;
/* EVENTS cluster commands list : only for information - do not modify */
#define ZB_ZCL_CLUSTER_ID_EVENTS_SERVER_ROLE_GENERATED_CMD_LIST \
ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT, \
ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT_LOG, \
ZB_ZCL_EVENTS_SRV_CMD_CLEAR_EVENT_LOG_RESPONSE
#define ZB_ZCL_CLUSTER_ID_EVENTS_CLIENT_ROLE_RECEIVED_CMD_LIST ZB_ZCL_CLUSTER_ID_EVENTS_SERVER_ROLE_GENERATED_CMD_LIST
#define ZB_ZCL_CLUSTER_ID_EVENTS_CLIENT_ROLE_GENERATED_CMD_LIST \
ZB_ZCL_EVENTS_CLI_CMD_GET_EVENT_LOG, \
ZB_ZCL_EVENTS_CLI_CMD_CLEAR_EVENT_LOG_REQUEST
#define ZB_ZCL_CLUSTER_ID_EVENTS_SERVER_ROLE_RECEIVED_CMD_LIST ZB_ZCL_CLUSTER_ID_EVENTS_CLIENT_ROLE_GENERATED_CMD_LIST
/** Log ID enumeration
* @see SE spec, Table D-186
*/
typedef enum zb_zcl_events_log_id_e
{
ZB_ZCL_EVENTS_LOG_ID_ALL_LOGS = 0x00, /**< All logs */
ZB_ZCL_EVENTS_LOG_ID_TAMPER_LOG, /**< Tamper Log */
ZB_ZCL_EVENTS_LOG_ID_FAULT_LOG, /**< Fault Log */
ZB_ZCL_EVENTS_LOG_ID_GENERAL_EVENT_LOG, /**< General Event Log */
ZB_ZCL_EVENTS_LOG_ID_SECURITY_EVENT_LOG, /**< Security Event Log */
ZB_ZCL_EVENTS_LOG_ID_NETWORK_EVENT_LOG /**< Network Event Log */
} zb_zcl_events_log_id_t;
/** @brief Default value for Events cluster revision global attribute */
#define ZB_ZCL_EVENTS_CLUSTER_REVISION_DEFAULT ((zb_uint16_t)0x0001u)
/*!
@brief Declare attribute list for Events cluster (only cluster revision attribute)
@param attr_list - attribute list name
*/
#define ZB_ZCL_DECLARE_EVENTS_ATTR_LIST(attr_list) \
ZB_ZCL_START_DECLARE_ATTRIB_LIST_CLUSTER_REVISION(attr_list, ZB_ZCL_EVENTS) \
ZB_ZCL_FINISH_DECLARE_ATTRIB_LIST
/** Macro for get log_id value from 8-bit field
* @param x - 8-bit field that contains log_id value in
* the least significant nibble.
* @see @ref zb_zcl_events_publish_event_payload_t, @ref zb_zcl_events_get_event_log_payload_t,
* @ref zb_zcl_events_clear_event_log_request_t, @ref zb_zcl_events_sub_log_payload_t
*/
#define ZB_ZCL_GET_LOG_ID_FIELD(x) ((x) & 0xF)
/** Macro for set log_id value to 8-bit field
* @param x - 8-bit field to store log_id value in the least
* significant nibble
* @param val - value to assigning
* @see @ref zb_zcl_events_publish_event_payload_t, @ref zb_zcl_events_get_event_log_payload_t,
* @ref zb_zcl_events_clear_event_log_request_t, @ref zb_zcl_events_sub_log_payload_t
*/
#define ZB_ZCL_SET_LOG_ID_FIELD(x, val) ((x) &= (0xF0 | ((val) & 0xF)))
/** Macro for get event_control value from 8-bit field
* @param x - 8-bit field that contains event_control value
* in the most significant nibble.
* @see @ref zb_zcl_events_get_event_log_payload_t
*/
#define ZB_ZCL_GET_EVENT_CONTROL_FIELD(x) (((x) & 0xF0) >> 4)
/** Macro for set event_control value to 8-bit field
* @param x - 8-bit field to store event_control value in the most
* significant nibble.
* @param val - value to assigning
* @see @ref zb_zcl_events_get_event_log_payload_t
*/
#define ZB_ZCL_SET_EVENT_CONTROL_FIELD(x, val) ((x) &= (0xF | ((val) & 0xF) << 4)
/** Macro for get log_payload_control value from 8-bit field
* @param x - 8-bit field that contains log_payload_control value
* in the least significant nibble
* @see @ref zb_zcl_events_sub_log_payload_t
*/
#define ZB_ZCL_GET_LOG_PAYLOAD_CONTROL_FIELD(x) ((x) & 0xF)
/** Macro for set log_payload_control value to 8-bit field
* @param x - 8-bit field to store log_payload_control value in
* the least significant nibble.
* @param val - value to assigning
* @see @ref zb_zcl_events_sub_log_payload_t
*/
#define ZB_ZCL_SET_LOG_PAYLOAD_CONTROL_FIELD(x, val) ((x) &= (0xF0 | ((val) & 0xF)))
/** Macro for get number_of_events value from 8-bit field
* @param x - 8-bit field that contains number_of_events value
* in the most significant nibble.
* @see @ref zb_zcl_events_sub_log_payload_t
*/
#define ZB_ZCL_GET_NUMBER_OF_EVENTS(x) (((x) & 0xF0) >> 4)
/** Macro for set number_of_events value to 8-bit field
* @param x - 8-bit field to store number_of_events value in the
* most significant nibble.
* @param val - value to assigning
* @see @ref zb_zcl_events_sub_log_payload_t
*/
#define ZB_ZCL_SET_NUMBER_OF_EVENTS(x, val) ((x) &= (0xF | ((val) & 0xF) << 4))
/** @ref ZB_ZCL_EVENTS_CLI_CMD_GET_EVENT_LOG "GetEventLog" Command payload.
* @see SE spec, subclause 11.2.3.1
*/
typedef ZB_PACKED_PRE struct zb_zcl_events_get_event_log_payload_s
{
/** The least significant nibble is an enumeration indicating
* the Log ID from particular enumeration.
* The most significant nibble is a bitmap indicating
* control options. It determines the detailing level of provided log
* information.
*/
zb_uint8_t event_control_log_id; /* (M) */
/** The Event ID specifies a particular event to be queried; a value of
* 0x0000 is reserved to indicate all Event IDs.
*/
zb_uint16_t event_id; /* (M) */
/**This field specifies the start time (earliest time) of the range of events
* to be returned. Events that match the search criteria and have a timestamp
* greater than or equal to the start time shall be returned.
*/
zb_uint32_t start_time; /* (M) */
/** Specifies the end time (latest time) of the range of events to be reported
* in the response. Events that match the search criteria and have a timestamp
* less than the specified end time shall be returned. Events with a timestamp
* equal to that of the End Time shall not be returned
*/
zb_uint32_t end_time; /* (M) */
/** This parameter indicates the maximum number of events requested i.e.
* the maximum number of events that the client is willing to receive;
* the value 0x00 indicates all events that fall into the defined criteria.
*/
zb_uint8_t number_of_events; /* (M) */
/** The Event Offset field provides a mechanism to allow client devices
* to page through multiple events which match a given search criteria.
*/
zb_uint16_t event_offset; /* (M) */
} ZB_PACKED_STRUCT zb_zcl_events_get_event_log_payload_t;
/** @ref ZB_ZCL_EVENTS_CLI_CMD_CLEAR_EVENT_LOG_REQUEST "ClearEventLogRequest" command payload
* @see SE spec, subclause D.11.2.3.2
*/
typedef ZB_PACKED_PRE struct zb_zcl_events_clear_event_log_request_s
{
/** The least significant nibble specifies the Log to be cleared.
* The most significant nibble is reserved.
*/
zb_uint8_t log_id;
} ZB_PACKED_STRUCT zb_zcl_events_clear_event_log_request_t;
/** @ref ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT "PublishEvent" Command payload
* @see SE spec, subclause 11.2.4.1
*/
typedef ZB_PACKED_PRE struct zb_zcl_events_publish_event_payload_s {
/** The least significant nibble is an enumeration indicating the Log ID.
* The most significant nibble is reserved.
*/
zb_uint8_t log_id; /* (M) */
/** The Event ID specifies a particular event
*/
zb_uint16_t event_id; /* (M) */
/** The timestamp of the event occurrence in UTC format.
*/
zb_uint32_t event_time; /* (M) */
/** An 8-bit bitmap specifying actions to be taken regarding particular event.
*/
zb_uint8_t event_control; /* (M) */
/** A variable length octet string array used to hold additional
* information captured when the event occurred. The first element (element 0)
* of the array indicates the length of the string, NOT including the first
* element.
*/
zb_uint8_t event_data[44];
} ZB_PACKED_STRUCT zb_zcl_events_publish_event_payload_t;
/** Publish Event Log Sub-Payload
* @see SE spec, Figure D-175
* @see zb_zcl_events_publish_event_log_payload_t::log_payload
*/
typedef ZB_PACKED_PRE struct zb_zcl_events_sub_log_payload_s
{
/*Log Payload representation*/
/******************************************************************************/
/** The least significant nibble represents the Log Payload Control.
* It determines availability of events to cross payload frame boundary.
* The most significant nibble indicates the number of events contained within
* the log payload of this command.
*/
zb_uint8_t number_of_events_log_payload_control;
/** The least significant nibble is an enumeration indicating the Log ID.
* The most significant nibble is reserved.
*/
zb_uint8_t log_id;
/*The Event ID specifies a particular event.*/
zb_uint16_t event_id;
/*The timestamp of the event occurrence in UTC format.*/
zb_uint32_t event_time;
/** A variable length octet string array used to hold additional information
* captured when the event occurred. The first element (element 0) of the
* array indicates the length of the string, NOT including the first element.
*/
zb_uint8_t event_data[47];
/******************************************************************************/
/* Log Payload representation */
} ZB_PACKED_STRUCT zb_zcl_events_sub_log_payload_t;
/** @ref ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT_LOG "PublishEventLog" Command payload
* @see SE spec, subclause 11.2.4.2
*/
typedef ZB_PACKED_PRE struct zb_zcl_events_publish_event_log_payload_s
{
/** This field indicates the total number of events found which match the
* search criteria received in the associated Get Event Log command.
*/
zb_uint16_t total_number_of_matching_events; /* (M) */
/** In the case where the entire number of events being returned does not
* fit into a single message, the Command Index is used to count the required
* number of Publish Event Log commands.
*/
zb_uint8_t command_index; /* (M) */
/** This parameter indicates the total number of Publish Event Log
* commands that are required to return the requested event logs.
*/
zb_uint8_t total_commands; /* (M) */
/** The Log Payload is a series of events and associated data.
* @see zb_zcl_events_sub_log_payload_t
*/
zb_zcl_events_sub_log_payload_t *log_payload;
} ZB_PACKED_STRUCT zb_zcl_events_publish_event_log_payload_t;
/** Macro for initializing GetEventLog Command payload,
* see @ref zb_zcl_events_get_event_log_payload_t
*/
#define ZB_ZCL_EVENTS_GET_EVENT_LOG_INIT \
(zb_zcl_events_get_event_log_payload_t) {0}
/** Cleared Events Logs Bitmap
* @note It is understood that certain markets may require that event logs
* cannot be cleared; this Bitmask provides a method for the server device
* to indicate which logs have been successfully cleared.
* @see SE spec, Table D-191 and @ref zb_zcl_events_clear_event_log_response_t::cleared_events_logs
*/
typedef enum zb_zcl_events_cleared_events_logs_bitmap_e
{
ZB_ZCL_EVENTS_CLEARED_EVENTS_LOGS_ALL = 1 << 0, /**< All logs cleared */
ZB_ZCL_EVENTS_CLEARED_EVENTS_LOGS_TAMPER = 1 << 1, /**< Tamper log cleared */
ZB_ZCL_EVENTS_CLEARED_EVENTS_LOGS_FAULT = 1 << 2, /**< Fault log cleared */
ZB_ZCL_EVENTS_CLEARED_EVENTS_LOGS_GENERAL = 1 << 3, /**< General event log cleared */
ZB_ZCL_EVENTS_CLEARED_EVENTS_LOGS_SECURITY = 1 << 4, /**< Security event log cleared */
ZB_ZCL_EVENTS_CLEARED_EVENTS_LOGS_NETWORK = 1 << 5, /**< network event log cleared */
/* 6-7 bits are reserved */
} zb_zcl_events_cleared_events_logs_bitmap_t;
/** @ref ZB_ZCL_EVENTS_SRV_CMD_CLEAR_EVENT_LOG_RESPONSE "ClearEventLogResponse" command payload
* @see SE spec, D.11.2.4.3
*/
typedef ZB_PACKED_PRE struct zb_zcl_events_clear_event_log_response_s
{
/** This 8-bit Bitmask indicates which logs have been cleared.
* @see SE spec, Table D-191 and @ref zb_zcl_events_cleared_events_logs_bitmap_t
*/
zb_uint8_t cleared_events_logs;
} ZB_PACKED_STRUCT zb_zcl_events_clear_event_log_response_t;
/** Macro for initializing PublishEventLog Command payload
* see @ref zb_zcl_events_publish_event_log_payload_t
*/
#define ZB_ZCL_EVENTS_PUBLISH_EVENT_LOG_PAYLOAD_INIT \
(zb_zcl_events_publish_event_log_payload_t) {0}
/** Function for send @ref ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT "PublishEvent" command.
* @param param - Reference to buffer.
* @param dst_addr - Address of the device to send command to.
* @param dst_addr_mode - Address mode for dst_addr.
* @param dst_ep - Destination endpoint.
* @param src_ep - Current endpoint.
* @param payload - Packet payload (@ref zb_zcl_events_publish_event_payload_t).
*/
void zb_events_server_send_publish_event(zb_uint8_t param, zb_addr_u *dst_addr,
zb_uint8_t dst_addr_mode, zb_uint8_t dst_ep,
zb_uint8_t src_ep, zb_zcl_events_publish_event_payload_t *payload);
/** Function for send @ref ZB_ZCL_EVENTS_SRV_CMD_PUBLISH_EVENT_LOG "PublishEventLog" command.
* @param param - Reference to buffer.
* @param dst_addr - Address of the device to send command to.
* @param dst_addr_mode - Address mode for dst_addr.
* @param dst_ep - Destination endpoint.
* @param src_ep - Current endpoint.
* @param payload - Packet payload (@ref zb_zcl_events_publish_event_log_payload_t).
*/
void zb_events_server_send_publish_event_log(zb_uint8_t param, zb_addr_u *dst_addr,
zb_uint8_t dst_addr_mode, zb_uint8_t dst_ep,
zb_uint8_t src_ep, zb_zcl_events_publish_event_log_payload_t *payload);
/** Function for send @ref ZB_ZCL_EVENTS_SRV_CMD_CLEAR_EVENT_LOG_RESPONSE "ClearEventLogResponse" command.
* @param param - Reference to buffer.
* @param dst_addr - Address of the device to send command to.
* @param dst_addr_mode - Address mode for dst_addr.
* @param dst_ep - Destination endpoint.
* @param src_ep - Current endpoint.
* @param payload - Packet payload: pointer to zb_uint8_t.
*/
void zb_events_server_send_clear_event_log_response(zb_uint8_t param, zb_addr_u *dst_addr,
zb_uint8_t dst_addr_mode, zb_uint8_t dst_ep,
zb_uint8_t src_ep, zb_uint8_t *payload); /*zb_uint8_t zb_zcl_events_ClearedEventsLogs;*/
/** Function for send @ref ZB_ZCL_EVENTS_CLI_CMD_GET_EVENT_LOG "GetEventLog" command.
* @param param - Reference to buffer.
* @param dst_addr - Address of the device to send command to.
* @param dst_addr_mode - Address mode for dst_addr.
* @param dst_ep - Destination endpoint.
* @param src_ep - Current endpoint.
* @param payload - Packet payload (@ref
* zb_zcl_events_get_event_log_payload_t).
*/
void zb_events_client_send_get_event_log(zb_uint8_t param, zb_addr_u *dst_addr,
zb_uint8_t dst_addr_mode, zb_uint8_t dst_ep,
zb_uint8_t src_ep, zb_zcl_events_get_event_log_payload_t *payload);
/** Function for send @ref ZB_ZCL_EVENTS_CLI_CMD_CLEAR_EVENT_LOG_REQUEST "ClearEventLogRequest" command.
* @param param - Reference to buffer.
* @param dst_addr - Address of the device to send command to.
* @param dst_addr_mode - Address mode for dst_addr.
* @param dst_ep - Destination endpoint.
* @param src_ep - Current endpoint.
* @param payload - Packet payload: pointer to zb_uint8_t.
*/
void zb_events_client_send_clear_event_log_request(zb_uint8_t param, zb_addr_u *dst_addr,
zb_uint8_t dst_addr_mode, zb_uint8_t dst_ep,
zb_uint8_t src_ep, zb_uint8_t *payload); /*zb_uint8_t zb_zcl_events_cel_log_id;*/
/** Macro for call @ref zb_events_server_send_publish_event function */
#define ZB_ZCL_EVENTS_SEND_CMD_PUBLISH_EVENT(_param, _dst_addr, _dst_addr_mode, \
_dst_ep, _src_ep, _payload ) \
zb_events_server_send_publish_event(_param, _dst_addr, _dst_addr_mode, \
_dst_ep, _src_ep, _payload)
/** Macro for call @ref zb_events_server_send_publish_event_log function */
#define ZB_ZCL_EVENTS_SEND_CMD_PUBLISH_EVENT_LOG(_param, _dst_addr, _dst_addr_mode, \
_dst_ep, _src_ep, _payload ) \
zb_events_server_send_publish_event_log(_param, _dst_addr, _dst_addr_mode, \
_dst_ep, _src_ep, _payload)
/** Macro for call @ref zb_events_server_send_clear_event_log_response function */
#define ZB_ZCL_EVENTS_SEND_CMD_CLEAR_EVENT_LOG_RESPONSE(_param, _dst_addr, _dst_addr_mode, \
_dst_ep, _src_ep, _payload ) \
zb_events_server_send_clear_event_log_response(_param, _dst_addr, _dst_addr_mode, \
_dst_ep, _src_ep, _payload)
/** Macro for call @ref zb_events_client_send_get_event_log function */
#define ZB_ZCL_EVENTS_SEND_CMD_GET_EVENT_LOG(_param, _dst_addr, _dst_addr_mode, \
_dst_ep, _src_ep, _payload ) \
zb_events_client_send_get_event_log(_param, _dst_addr, _dst_addr_mode, \
_dst_ep, _src_ep, _payload)
/** Macro for call @ref zb_events_client_send_clear_event_log_request function */
#define ZB_ZCL_EVENTS_SEND_CMD_CLEAR_EVENT_LOG_REQUEST(_param, _dst_addr, _dst_addr_mode, \
_dst_ep, _src_ep, _payload ) \
zb_events_client_send_clear_event_log_request(_param, _dst_addr, _dst_addr_mode, \
_dst_ep, _src_ep, _payload)
/** @} */ /* ZB_ZCL_EVENTS_COMMANDS */
/** @cond internals_doc */
/** Internal handler for Events Cluster commands */
zb_bool_t zb_zcl_process_events_specific_commands(zb_uint8_t param);
/** @endcond */ /* internals_doc */
/** @} */ /* ZB_ZCL_EVENTS */
/** @endcond */ /* DOXYGEN_ZCL_SECTION */
void zb_zcl_events_init_server(void);
void zb_zcl_events_init_client(void);
#define ZB_ZCL_CLUSTER_ID_EVENTS_SERVER_ROLE_INIT zb_zcl_events_init_server
#define ZB_ZCL_CLUSTER_ID_EVENTS_CLIENT_ROLE_INIT zb_zcl_events_init_client
#endif /* ZB_ZCL_EVENTS_H_ */