Initial commit: ESP32-C6 Zigbee Router project

This commit is contained in:
2025-11-01 16:04:31 +11:00
commit d430d8c3df
1760 changed files with 280339 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include "esp_err.h"
#include "esp_zigbee_type.h"
#ifdef __cplusplus
extern "C" {
#endif
/** @brief Alarms cluster attribute identifiers */
typedef enum esp_zb_zcl_alarms_attr_e {
ESP_ZB_ZCL_ATTR_ALARMS_ALARM_COUNT_ID = 0x0000, /*!< AlarmCount attribute */
ESP_ZB_ZCL_ATTR_ALARMS_ALARM_TABLE_SIZE_ID = 0xEFFE, /*!< Internal AlarmTable size attribute */
ESP_ZB_ZCL_ATTR_ALARMS_ALARM_TABLE_ID = 0xEFFF, /*!< Internal AlarmTable attribute */
} esp_zb_zcl_alarms_attr_t;
/** @brief Minimum value for AlarmCount attribute */
#define ESP_ZB_ZCL_ALARMS_ALARM_COUNT_MIN_VALUE (0x0000)
/** @brief Maximum value for AlarmCount attribute */
#define ESP_ZB_ZCL_ALARMS_ALARM_COUNT_MAX_VALUE (0x00FF)
/** @brief Default value for AlarmCount attribute */
#define ESP_ZB_ZCL_ALARMS_ALARM_COUNT_DEFAULT_VALUE (0x0000)
/** @brief Default value for AlarmTableSize attribute */
#define ESP_ZB_ZCL_ALARMS_ALARM_TABLE_SIZE_DEFAULT_VALUE (0x000F)
/** @brief Alarms cluster command identifiers */
typedef enum esp_zb_zcl_alarms_cmd_req_e {
ESP_ZB_ZCL_CMD_ALARMS_RESET_ALARM_ID = 0x00, /*!< Reset alarm command. */
ESP_ZB_ZCL_CMD_ALARMS_RESET_ALL_ALARMS_ID = 0x01, /*!< Reset all alarms command. */
ESP_ZB_ZCL_CMD_ALARMS_GET_ALARM_ID = 0x02, /*!< Get alarms command. */
ESP_ZB_ZCL_CMD_ALARMS_RESET_ALARM_LOG_ID = 0x03 /*!< Reset alarm log command. */
} esp_zb_zcl_alarms_cmd_req_t;
/** @brief Alarms cluster command identifiers */
typedef enum esp_zb_zcl_alarms_cmd_resp_e {
ESP_ZB_ZCL_CMD_ALARMS_ALARM_ID = 0x00, /*!< Alarm command. */
ESP_ZB_ZCL_CMD_ALARMS_GET_ALARM_RESP_ID = 0x01, /*!< Get alarm response command. */
} esp_zb_zcl_alarms_cmd_resp_t;
/**
* @brief Alarm cluster server initialization
*
*/
void esp_zb_zcl_alarms_init_server(void);
/**
* @brief Alarm cluster client initialization
*
*/
void esp_zb_zcl_alarms_init_client(void);
#define ESP_ZB_ZCL_CLUSTER_ID_ALARMS_SERVER_ROLE_INIT esp_zb_zcl_alarms_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_ALARMS_CLIENT_ROLE_INIT esp_zb_zcl_alarms_init_client
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,369 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Analog Input cluster attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_ANALOG_INPUT_DESCRIPTION_ID = 0x001c, /*!< Description attribute */
ESP_ZB_ZCL_ATTR_ANALOG_INPUT_MAX_PRESENT_VALUE_ID = 0x0041, /*!< MaxPresentValue attribute */
ESP_ZB_ZCL_ATTR_ANALOG_INPUT_MIN_PRESENT_VALUE_ID = 0x0045, /*!< MinPresentValue attribute */
ESP_ZB_ZCL_ATTR_ANALOG_INPUT_OUT_OF_SERVICE_ID = 0x0051, /*!< OutOfService attribute */
ESP_ZB_ZCL_ATTR_ANALOG_INPUT_PRESENT_VALUE_ID = 0x0055, /*!< PresentValue attribute */
ESP_ZB_ZCL_ATTR_ANALOG_INPUT_RELIABILITY_ID = 0x0067, /*!< Reliability attribute */
ESP_ZB_ZCL_ATTR_ANALOG_INPUT_RESOLUTION_ID = 0x006a, /*!< Resolution attribute */
ESP_ZB_ZCL_ATTR_ANALOG_INPUT_STATUS_FLAGS_ID = 0x006f, /*!< StatusFlags attribute */
ESP_ZB_ZCL_ATTR_ANALOG_INPUT_ENGINEERING_UNITS_ID = 0x0075, /*!< EngineeringUnits attribute */
ESP_ZB_ZCL_ATTR_ANALOG_INPUT_APPLICATION_TYPE_ID = 0x0100, /*!< ApplicationType attribute */
} esp_zb_zcl_analog_input_attr_t;
/** @brief Values for StatusFlags attribute */
typedef enum {
ESP_ZB_ZCL_ANALOG_INPUT_STATUS_FLAG_NORMAL = 0x00, /*!< Normal (default) state. */
ESP_ZB_ZCL_ANALOG_INPUT_STATUS_FLAG_IN_ALARM = 0x01, /*!< In alarm bit. */
ESP_ZB_ZCL_ANALOG_INPUT_STATUS_FLAG_FAULT = 0x02, /*!< Fault bit. */
ESP_ZB_ZCL_ANALOG_INPUT_STATUS_FLAG_OVERRIDDEN = 0x04, /*!< Overridden bit. */
ESP_ZB_ZCL_ANALOG_INPUT_STATUS_FLAG_OUT_OF_SERVICE = 0x08, /*!< Out of service bit. */
} esp_zb_zcl_analog_input_status_flags_value_t;
/** @brief Values for Reliability attribute */
typedef enum {
ESP_ZB_ZCL_ANALOG_INPUT_RELIABILITY_NO_FAULT_DETECTED = 0x00, /*!< No fault detected */
ESP_ZB_ZCL_ANALOG_INPUT_RELIABILITY_NO_SENSOR = 0x01, /*!< No sensor */
ESP_ZB_ZCL_ANALOG_INPUT_RELIABILITY_OVER_RANGE = 0x02, /*!< Over range */
ESP_ZB_ZCL_ANALOG_INPUT_RELIABILITY_UNDER_RANGE = 0x03, /*!< Under range */
ESP_ZB_ZCL_ANALOG_INPUT_RELIABILITY_OPEN_LOOP = 0x04, /*!< Open loop */
ESP_ZB_ZCL_ANALOG_INPUT_RELIABILITY_SHORTED_LOOP = 0x05, /*!< Shorted loop */
ESP_ZB_ZCL_ANALOG_INPUT_RELIABILITY_NO_OUTPUT = 0x06, /*!< No output */
ESP_ZB_ZCL_ANALOG_INPUT_RELIABILITY_UNRELIABLE_OTHER = 0x07, /*!< Unreliable other */
ESP_ZB_ZCL_ANALOG_INPUT_RELIABILITY_PROCESS_ERROR = 0x08, /*!< Process error */
/* 0x09 is for multistate clusters only */
ESP_ZB_ZCL_ANALOG_INPUT_RELIABILITY_CONFIGURATION_ERROR = 0x0a, /*!< Configuration error */
} esp_zb_zcl_analog_input_reliability_value_t;
/** Analog Input cluster application types
* The ApplicationType attribute indicates the specific application usage
* for the cluster. ApplicationType is subdivided into Group, Type and
* an Index number, as follows:
*
* Group = Bits 24 to 31
* An indication of the cluster this attribute is part of. Analog Input
* clusters have Group = 0x00.
*
* Type = Bits 16 to 23
* The physical quantity that the PresentValue attribute of the cluster
* represents.
*
* Index = Bits 0 to 15
* The specific application usage of the cluster.
*/
#define ESP_ZB_ZCL_AI_GROUP_ID 0x00
#define ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(_type, _id) (((_type & 0xff) << 16) | (_id & 0xffff))
/** @brief Values for Analog Input cluster applications type*/
typedef enum {
ESP_ZB_ZCL_AI_APP_TYPE_TEMPERATURE, /*!< Temperature */
ESP_ZB_ZCL_AI_APP_TYPE_HUMIDITY, /*!< Humidity */
ESP_ZB_ZCL_AI_APP_TYPE_PRESSURE, /*!< Pressure */
ESP_ZB_ZCL_AI_APP_TYPE_FLOW, /*!< Flow */
ESP_ZB_ZCL_AI_APP_TYPE_PERCENTAGE, /*!< Percentage */
ESP_ZB_ZCL_AI_APP_TYPE_PPM, /*!< Ppm */
ESP_ZB_ZCL_AI_APP_TYPE_RPM, /*!< Rpm */
ESP_ZB_ZCL_AI_APP_TYPE_CURRENT_IN_AMPS, /*!< Current In AMPS */
ESP_ZB_ZCL_AI_APP_TYPE_FREQUENCY, /*!< Frequency */
ESP_ZB_ZCL_AI_APP_TYPE_POWER_IN_WATTS, /*!< Power In Watts */
ESP_ZB_ZCL_AI_APP_TYPE_POWER_IN_KILOWATTS, /*!< Power In Kilowatts */
ESP_ZB_ZCL_AI_APP_TYPE_ENERGY, /*!< Energy */
ESP_ZB_ZCL_AI_APP_TYPE_COUNT_UNITLESS, /*!< Count Unitless */
ESP_ZB_ZCL_AI_APP_TYPE_ENTHALPY, /*!< Enthalpy */
ESP_ZB_ZCL_AI_APP_TYPE_TIME, /*!< Time */
/* Types 0x0f to 0xfe are reserved */
ESP_ZB_ZCL_AI_APP_TYPE_OTHER = 0xff, /*!< Other */
} esp_zb_zcl_ai_application_types_t;
/** @brief Values for 'Temperature in degrees Celsius' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_TEMPERATURE_2_PIPE_ENTERING = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_TEMPERATURE, 0x0000), /*!< 2 Pipe Entering */
ESP_ZB_ZCL_AI_TEMPERATURE_2_PIPE_LEAVING, /*!< 2 Pipe Leaving */
ESP_ZB_ZCL_AI_TEMPERATURE_BOILER_ENTERING, /*!< Boiler Entering */
ESP_ZB_ZCL_AI_TEMPERATURE_BOILER_LEAVING, /*!< Boiler Leaving */
ESP_ZB_ZCL_AI_TEMPERATURE_CHILLER_CHILLED_WATER_ENTERING, /*!< Chiller Chilled Water Entering */
ESP_ZB_ZCL_AI_TEMPERATURE_CHILLER_CHILLED_WATER_LEAVING, /*!< Chiller Chilled Water Leaving */
ESP_ZB_ZCL_AI_TEMPERATURE_CHILLER_CONDENSER_WATER_ENTERING, /*!< Chiller Condenser Water Entering */
ESP_ZB_ZCL_AI_TEMPERATURE_CHILLER_CONDENSER_WATER_LEAVING, /*!< Chiller Condenser Water Leaving */
ESP_ZB_ZCL_AI_TEMPERATURE_COLD_DECK, /*!< Cold Deck */
ESP_ZB_ZCL_AI_TEMPERATURE_COOLING_COIL_DISCHARGE, /*!< Cooling Coil Discharge */
ESP_ZB_ZCL_AI_TEMPERATURE_COOLING_ENTERING_WATER, /*!< Cooling entering water */
ESP_ZB_ZCL_AI_TEMPERATURE_COOLING_LEAVING_WATER, /*!< Cooling leaving Water */
ESP_ZB_ZCL_AI_TEMPERATURE_CONDENSER_WATER_RETURN, /*!< Condenser water return */
ESP_ZB_ZCL_AI_TEMPERATURE_CONDENSER_WATER_SUPPLY, /*!< Condenser water supply */
ESP_ZB_ZCL_AI_TEMPERATURE_DECOUPLE_LOOP_0, /*!< Decouple loop 0. Note: Decouple loop is duplicated in spec */
ESP_ZB_ZCL_AI_TEMPERATURE_BUILDING_LOAD, /*!< Building load */
ESP_ZB_ZCL_AI_TEMPERATURE_DECOUPLE_LOOP_1, /*!< Decouple loop 1 */
ESP_ZB_ZCL_AI_TEMPERATURE_DEW_POINT, /*!< Dew point */
ESP_ZB_ZCL_AI_TEMPERATURE_DISCHARGE_AIR, /*!< Discharge air */
ESP_ZB_ZCL_AI_TEMPERATURE_DISCHARGE, /*!< Discharge */
ESP_ZB_ZCL_AI_TEMPERATURE_EXHAUST_AIR_AFTER_HEAT_RECOVERY, /*!< Exhaust air after heat recovery */
ESP_ZB_ZCL_AI_TEMPERATURE_EXHAUST_AIR, /*!< Exhaust air */
ESP_ZB_ZCL_AI_TEMPERATURE_GLYCOL, /*!< Glycol */
ESP_ZB_ZCL_AI_TEMPERATURE_HEAT_RECOVERY_AIR, /*!< Heat recovery air */
ESP_ZB_ZCL_AI_TEMPERATURE_HOT_DECK, /*!< Hot deck */
ESP_ZB_ZCL_AI_TEMPERATURE_HEAT_EXCHANGER_BYPASS, /*!< Heat exchanger bypass */
ESP_ZB_ZCL_AI_TEMPERATURE_HEAT_EXCHANGER_ENTERING, /*!< Heat exchanger entering */
ESP_ZB_ZCL_AI_TEMPERATURE_HEAT_EXCHANGER_LEAVING, /*!< Heat eXchanger leaving */
ESP_ZB_ZCL_AI_TEMPERATURE_MECHANICAL_ROOM, /*!< Mechanical room */
ESP_ZB_ZCL_AI_TEMPERATURE_MIXED_AIR_0, /*!< Mixed air 0. Mixed air is duplicated in spec */
ESP_ZB_ZCL_AI_TEMPERATURE_MIXED_AIR_1, /*!< Mixed air 1 */
ESP_ZB_ZCL_AI_TEMPERATURE_OUTDOOR_AIR_DEWPOINT, /*!< Outdoor air dewpoint */
ESP_ZB_ZCL_AI_TEMPERATURE_OUTDOOR_AIR, /*!< Outdoor air */
ESP_ZB_ZCL_AI_TEMPERATURE_PREHEAT_AIR, /*!< Preheat air */
ESP_ZB_ZCL_AI_TEMPERATURE_PREHEAT_ENTERING_WATER, /*!< Preheat entering water */
ESP_ZB_ZCL_AI_TEMPERATURE_PREHEAT_LEAVING_WATER, /*!< Preheat leaving water */
ESP_ZB_ZCL_AI_TEMPERATURE_PRIMARY_CHILLED_WATER_RETURN, /*!< Primary chilled water return */
ESP_ZB_ZCL_AI_TEMPERATURE_PRIMARY_CHILLED_WATER_SUPPLY, /*!< Primary chilled water supply */
ESP_ZB_ZCL_AI_TEMPERATURE_PRIMARY_HOT_WATER_RETURN, /*!< Primary hot watter return */
ESP_ZB_ZCL_AI_TEMPERATURE_PRIMARY_HOT_WATER_SUPPLY, /*!< Primary hot watter supply */
ESP_ZB_ZCL_AI_TEMPERATURE_REHEAT_COIL_DISCHARGE, /*!< Reheat coil discharge */
ESP_ZB_ZCL_AI_TEMPERATURE_REHEAT_ENTERING_WATER, /*!< Reheat entering water */
ESP_ZB_ZCL_AI_TEMPERATURE_REHEAT_LEAVING_WATER, /*!< Reheat leaving water */
ESP_ZB_ZCL_AI_TEMPERATURE_RETURN_AIR, /*!< Return air */
ESP_ZB_ZCL_AI_TEMPERATURE_SECONDARY_CHILLED_WATER_RETURN, /*!< Secondary chilled water return */
ESP_ZB_ZCL_AI_TEMPERATURE_SECONDARY_CHILLED_WATER_SUPPLY, /*!< Secondary chilled water supply */
ESP_ZB_ZCL_AI_TEMPERATURE_SECONDARY_HW_RETURN, /*!< Secondary hw return */
ESP_ZB_ZCL_AI_TEMPERATURE_SECONDARY_HW_SUPPLY, /*!< Secondary hw supply */
ESP_ZB_ZCL_AI_TEMPERATURE_SIDELOOP_RESET, /*!< Sideloop reset */
ESP_ZB_ZCL_AI_TEMPERATURE_SIDELOOP_SETPOINT, /*!< Sideloop setpoint */
ESP_ZB_ZCL_AI_TEMPERATURE_SIDELOOP, /*!< Sideloop */
ESP_ZB_ZCL_AI_TEMPERATURE_SOURCE, /*!< Source */
ESP_ZB_ZCL_AI_TEMPERATURE_SUPPLY_AIR, /*!< Supply air */
ESP_ZB_ZCL_AI_TEMPERATURE_SUPPLY_LOW_LIMIT, /*!< Supply low limit */
ESP_ZB_ZCL_AI_TEMPERATURE_TOWER_BASIN, /*!< Tower basin */
ESP_ZB_ZCL_AI_TEMPERATURE_TWO_PIPE_LEAVING_WATER, /*!< Two pipe leaving water */
ESP_ZB_ZCL_AI_TEMPERATURE_RESERVED, /*!< Reserved */
ESP_ZB_ZCL_AI_TEMPERATURE_ZONE_DEWPOINT, /*!< Zone dewpoint */
ESP_ZB_ZCL_AI_TEMPERATURE_ZONE_SENSOR_SETPOINT, /*!< Zone sensor setpoint */
ESP_ZB_ZCL_AI_TEMPERATURE_ZONE_SENSOR_SETPOINT_OFFSET, /*!< Zone sensor setpoint offset */
ESP_ZB_ZCL_AI_TEMPERATURE_ZONE, /*!< Zone */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_TEMPERATURE_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_TEMPERATURE, 0xffff), /*!< Other */
} esp_zb_zcl_ai_temperature_in_degrees_celsius_t;
/** @brief Values for 'Relative Humidity in %' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_HUMIDITY_DISCHARGE = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_HUMIDITY, 0x0000), /*!< Discharge */
ESP_ZB_ZCL_AI_HUMIDITY_EXHAUST, /*!< Exhaust */
ESP_ZB_ZCL_AI_HUMIDITY_HOT_DECK, /*!< Hot deck */
ESP_ZB_ZCL_AI_HUMIDITY_MIXED_AIR, /*!< Mixed air */
ESP_ZB_ZCL_AI_HUMIDITY_OUTDOOR_AIR, /*!< Outdoor air */
ESP_ZB_ZCL_AI_HUMIDITY_RETURN, /*!< Return */
ESP_ZB_ZCL_AI_HUMIDITY_SIDELOOP, /*!< Sideloop */
ESP_ZB_ZCL_AI_HUMIDITY_SPACE, /*!< Space */
ESP_ZB_ZCL_AI_HUMIDITY_ZONE, /*!< Zone */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_HUMIDITY_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_HUMIDITY, 0xffff), /*!< Other */
} esp_zb_zcl_ai_relative_humidity_in_percent_t;
/** @brief Values for 'Pressure in Pascal' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_PRESSURE_BOILER_PUMP_DIFFERENTIAL = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_PRESSURE, 0x0000), /*!< Boier pump differential */
ESP_ZB_ZCL_AI_PRESSURE_BUILDING_STATIC, /*!< Building static */
ESP_ZB_ZCL_AI_PRESSURE_COLD_DECK_DIFFERENTIAL_SENSOR, /*!< Cold deck differential sensor */
ESP_ZB_ZCL_AI_PRESSURE_CHILLED_WATER_BUILDING_DIFFERENTIAL, /*!< Chilled water building differential */
ESP_ZB_ZCL_AI_PRESSURE_COLD_DECK_DIFFERENTIAL, /*!< Cold deck differential */
ESP_ZB_ZCL_AI_PRESSURE_COLD_DECK_STATIC, /*!< Cold deck static */
ESP_ZB_ZCL_AI_PRESSURE_CONDENSER_WATER_PUMP_DIFFERENTIAL, /*!< Condenser water pump differential */
ESP_ZB_ZCL_AI_PRESSURE_DISCHARGE_DIFFERENTIAL, /*!< Discharge differential */
ESP_ZB_ZCL_AI_PRESSURE_DISCHARGE_STATIC_1, /*!< Discharge static 1 */
ESP_ZB_ZCL_AI_PRESSURE_DISCHARGE_STATIC_2, /*!< Discharge static 2 */
ESP_ZB_ZCL_AI_PRESSURE_EXHAUST_AIR_DIFFERENTIAL, /*!< Exhaust air differential */
ESP_ZB_ZCL_AI_PRESSURE_EXHAUST_AIR_STATIC, /*!< Exhaust air static */
ESP_ZB_ZCL_AI_PRESSURE_EXHAUST_DIFFERENTIAL_0, /*!< Exhaust differential 0. Note: Exhaust differential is duplicated in spec */
ESP_ZB_ZCL_AI_PRESSURE_EXHAUST_DIFFERENTIAL_1, /*!< Exhaust differential 1 */
ESP_ZB_ZCL_AI_PRESSURE_HOT_DECK_DIFFERENTIAL_0, /*!< Hot deck differential 0. Note: Hot Deck differential is duplicated in spec */
ESP_ZB_ZCL_AI_PRESSURE_HOT_DECK_DIFFERENTIAL_1, /*!< Hot deck differential 1 */
ESP_ZB_ZCL_AI_PRESSURE_HOT_DECK_STATIC, /*!< Hot deck static */
ESP_ZB_ZCL_AI_PRESSURE_HOT_WATER_BLDG_DIFF, /*!< Hot water bldg Diff */
ESP_ZB_ZCL_AI_PRESSURE_HEAT_EXCHANGER_STEAM, /*!< Heat exchanger steam */
ESP_ZB_ZCL_AI_PRESSURE_MIN_OUTDOOR_AIR_DIFFERENTIAL, /*!< Min outdoor air differential */
ESP_ZB_ZCL_AI_PRESSURE_OUTDOOR_AIR_DIFFERENTIAL, /*!< Outdoor air differential */
ESP_ZB_ZCL_AI_PRESSURE_PRIMARY_CHILLED_WATER_PUMP_DIFFERENTIAL, /*!< Primary chilled water pump differential */
ESP_ZB_ZCL_AI_PRESSURE_PRIMATY_HOT_WATER_PUMP_DIFFERENTIAL, /*!< Primary hot water pump differential */
ESP_ZB_ZCL_AI_PRESSURE_RELIEF_DIFFERENTIAL, /*!< Relief differential */
ESP_ZB_ZCL_AI_PRESSURE_RETURN_AIR_STATIC, /*!< Return air Static */
ESP_ZB_ZCL_AI_PRESSURE_RETURN_DIFFERENTIAL, /*!< Return differential */
ESP_ZB_ZCL_AI_PRESSURE_SECONDARY_CHILLED_WATER_PUMP_DIFFERENTIAL, /*!< Secondary chilled water pump differential */
ESP_ZB_ZCL_AI_PRESSURE_SECONDARY_HOT_WATER_PUMP_DIFFERENTIAL, /*!< Secondary hot water pump differential */
ESP_ZB_ZCL_AI_PRESSURE_SIDELOOP, /*!< Sideloop */
ESP_ZB_ZCL_AI_PRESSURE_STEAM, /*!< Steam */
ESP_ZB_ZCL_AI_PRESSURE_SUPPLY_DIFFERENTIAL_SENSOR, /*!< Supply differential sensor */
/* 0x0200 to 0xffffe are Vendor defined */
ESP_ZB_ZCL_AI_PRESSURE_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_PRESSURE, 0xffff), /*!< Other */
} esp_zb_zcl_ai_pressure_in_pascal_t;
/** @brief Values for 'Flow in Liters per Second' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_FLOW_CHILLED_WATER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_FLOW, 0x0000), /*!< Chilled water */
ESP_ZB_ZCL_AI_FLOW_CHILLER_CHILLED_WATER, /*!< Chiller chilled water */
ESP_ZB_ZCL_AI_FLOW_CHILLER_CONDENSER_WATER, /*!< Chiller condenser water */
ESP_ZB_ZCL_AI_FLOW_COLD_DECK, /*!< Cold deck */
ESP_ZB_ZCL_AI_FLOW_DECOUPLE_LOOP, /*!< Decouple loop */
ESP_ZB_ZCL_AI_FLOW_DISCHARGE, /*!< Discharge */
ESP_ZB_ZCL_AI_FLOW_EXHAUST_FAN, /*!< Exhaust fan */
ESP_ZB_ZCL_AI_FLOW_EXHAUST, /*!< Exhaust */
ESP_ZB_ZCL_AI_FLOW_FAN, /*!< Fan */
ESP_ZB_ZCL_AI_FLOW_HOT_DECK, /*!< Flow hot deck */
ESP_ZB_ZCL_AI_FLOW_HOT_WATER, /*!< Hot water */
ESP_ZB_ZCL_AI_FLOW_MIN_OUTDOOR_AIR_FAN, /*!< Min outdoor air fan */
ESP_ZB_ZCL_AI_FLOW_MIN_OUTDOOR_AIR, /*!< Min outdoor Air */
ESP_ZB_ZCL_AI_FLOW_OUTDOOR_AIR, /*!< Outdoor air */
ESP_ZB_ZCL_AI_FLOW_PRIMARY_CHILLED_WATER, /*!< Primary chilled water */
ESP_ZB_ZCL_AI_FLOW_RELIEF_FAN, /*!< Relief fan */
ESP_ZB_ZCL_AI_FLOW_RELIEF, /*!< Relief */
ESP_ZB_ZCL_AI_FLOW_RETURN_FAN, /*!< Return fan */
ESP_ZB_ZCL_AI_FLOW_RETURN, /*!< Return */
ESP_ZB_ZCL_AI_FLOW_SECONDARY_CHILLED_WATER_FLOW, /*!< Secondary chilled water flow */
ESP_ZB_ZCL_AI_FLOW_SUPPLY_FAN, /*!< Supply fan */
ESP_ZB_ZCL_AI_FLOW_TOWER_FAN, /*!< Tower fan */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_FLOW_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_FLOW, 0xffff), /*!< Other */
} esp_zb_zcl_ai_flow_in_liters_per_second_t;
/** @brief Values for 'Percentage %' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_PERCENTAGE_CHILLER_FULL_LOAD_AMPERAGE = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_PERCENTAGE, 0x0000), /*!< Chiller full load amperage */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_PERCENTAGE_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_PERCENTAGE, 0xffff), /*!< Other */
} esp_zb_zcl_ai_percentage_t;
/** @brief Values for 'Parts per Million PPM' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_PPM_RETURN_CARBON_DIOXIDE = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_PPM, 0x0000), /*!< Return carbon dioxide */
ESP_ZB_ZCL_AI_PPM_ZONE_CARBON_DIOXIDE, /*!< Zone carbon dioxide */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_PPM_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_PPM, 0xffff), /*!< Other */
} esp_zb_zcl_ai_ppm_t;
/** @brief Values for 'Rotational Speed in RPM' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_RPM_EXHAUS_FAN_REMOTE = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_RPM, 0x0000), /*!< Exhaust fan remote */
ESP_ZB_ZCL_AI_RPM_HEAT_RECOVERY_WHEEL_REMOTE, /*!< Heat recovery wheel remote */
ESP_ZB_ZCL_AI_RPM_MIN_OUTDOOR_AIR_FAN_REMOTE, /*!< Min outdoor air fan remote */
ESP_ZB_ZCL_AI_RPM_RELIEF_FAN_REMOTE, /*!< Relief fan remote */
ESP_ZB_ZCL_AI_RPM_RETURN_FAN_REMOTE, /*!< Return fan remote */
ESP_ZB_ZCL_AI_RPM_SUPPLY_FAN_REMOTE, /*!< Supply fan remote */
ESP_ZB_ZCL_AI_RPM_VARIABLE_SPEED_DRIVE_MOTOR, /*!< Variable speed drive motor */
ESP_ZB_ZCL_AI_RPM_VARIABLE_SPEED_DRIVE_SETPOINT, /*!< Variable speed drive setpoint */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_RPM_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_RPM, 0xffff), /*!< Other */
} esp_zb_zcl_ai_rpm_t;
/** @brief Values for 'Current in Amps' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_CURRENT_CHILLER_AMPS = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_CURRENT_IN_AMPS, 0x0000), /*!< Chiller amps */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_CURRENT_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_CURRENT_IN_AMPS, 0xffff), /*!< Other */
} esp_zb_zcl_ai_current_t;
/** @brief Values for 'Frequency in Hz' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_FREQUENCY_VARIABLE_SPEED_DRIVE_OUTPUT = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_FREQUENCY, 0x0000), /*!< Variable speed drive output */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_FREQUENCY_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_FREQUENCY, 0xffff), /*!< Other */
} esp_zb_zcl_ai_frequency_t;
/** @brief Values for 'Power in Watts' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_POWER_IN_WATTS_CONSUMPTION = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_POWER_IN_WATTS, 0x0000), /*!< Consumption */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_POWER_IN_WATTS_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_POWER_IN_WATTS, 0xffff), /*!< Other */
} esp_zb_zcl_ai_power_in_watts_t;
/** @brief Values for 'Power in kW' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_POWER_IN_KILOWATTS_ABSOLUTE = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_POWER_IN_KILOWATTS, 0x0000), /*!< Absolute */
ESP_ZB_ZCL_AI_POWER_IN_KILOWATTS_CONSUMPTION, /*!< Consumption */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_POWER_IN_KILOWATTS_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_POWER_IN_KILOWATTS, 0xffff), /*!< Other */
} esp_zb_zcl_ai_power_in_kilowatts_t;
/** @brief Values for 'Energy in kWH' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_ENERGY_KWH_VARIABLE_SPEED_DRIVE = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_ENERGY, 0x0000), /*!< Variable speed drive */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_ENERGY_KWH_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_ENERGY, 0xffff), /*!< Other */
} esp_zb_zcl_ai_energy_kwh_t;
/** @brief Values for 'Count - Unitless' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_COUNT_UNITLESS_COUNT = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_COUNT_UNITLESS, 0x0000), /*!< Count */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_COUNT_UNITLESS_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_COUNT_UNITLESS, 0xffff), /*!< Other */
} esp_zb_zcl_ai_count_unitless_t;
/** @brief Values for 'Enthalpy in KJoules per Kg' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_ENTHALPY_OUTDOOR_AIR = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_ENTHALPY, 0x0000), /*!< Out door air */
ESP_ZB_ZCL_AI_ENTHALPY_RETURN_AIR, /*!< Return air */
ESP_ZB_ZCL_AI_ENTHALPY_SPACE, /*!< Space */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_ENTHALPY_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_ENTHALPY, 0xffff), /*!< Other */
} esp_zb_zcl_ai_enthalpy_t;
/** @brief Values for 'Time in Seconds' type of Analog Input cluster */
typedef enum {
ESP_ZB_ZCL_AI_TIME_RELATIVE = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_TIME, 0x0000), /*!< Relative */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AI_TIME_OTHER = ESP_ZB_ZCL_AI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AI_APP_TYPE_TIME, 0xffff), /*!< Other */
} esp_zb_zcl_ai_time_t;
/** @brief Default value for Description attribute */
#define ESP_ZB_ZCL_ANALOG_INPUT_DESCRIPTION_DEFAULT_VALUE {0}
/** @brief Default value for OutOfService attribute */
#define ESP_ZB_ZCL_ANALOG_INPUT_OUT_OF_SERVICE_DEFAULT_VALUE false
/** @brief Default value for Reliability attribute */
#define ESP_ZB_ZCL_ANALOG_INPUT_RELIABILITY_DEFAULT_VALUE 0x00
/** @brief Default value for StatusFlags attribute */
#define ESP_ZB_ZCL_ANALOG_INPUT_STATUS_FLAG_DEFAULT_VALUE 0
/** @brief StatusFlags attribute minimum value */
#define ESP_ZB_ZCL_ANALOG_INPUT_STATUS_FLAGS_MIN_VALUE 0
/** @brief StatusFlags attribute maximum value */
#define ESP_ZB_ZCL_ANALOG_INPUT_STATUS_FLAGS_MAX_VALUE 0x0f
/** Number of attributes mandatory for reporting in Analog Input cluster */
#define ESP_ZB_ZCL_ANALOG_INPUT_REPORT_ATTR_COUNT 2
void esp_zb_zcl_analog_input_init_server(void);
void esp_zb_zcl_analog_input_init_client(void);
#define ESP_ZB_ZCL_CLUSTER_ID_ANALOG_INPUT_SERVER_ROLE_INIT esp_zb_zcl_analog_input_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_ANALOG_INPUT_CLIENT_ROLE_INIT esp_zb_zcl_analog_input_init_client
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,226 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Analog Output cluster attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_ANALOG_OUTPUT_DESCRIPTION_ID = 0x001c, /*!< Description attribute */
ESP_ZB_ZCL_ATTR_ANALOG_OUTPUT_MAX_PRESENT_VALUE_ID = 0x0041, /*!< MaxPresentValue attribute */
ESP_ZB_ZCL_ATTR_ANALOG_OUTPUT_MIN_PRESENT_VALUE_ID = 0x0045, /*!< MinPresentValue attribute */
ESP_ZB_ZCL_ATTR_ANALOG_OUTPUT_OUT_OF_SERVICE_ID = 0x0051, /*!< OutOfService attribute */
ESP_ZB_ZCL_ATTR_ANALOG_OUTPUT_PRESENT_VALUE_ID = 0x0055, /*!< PresentValue attribute */
ESP_ZB_ZCL_ATTR_ANALOG_OUTPUT_PRIORITY_ARRAY_ID = 0x0057, /*!< PriorityArray attribute */
ESP_ZB_ZCL_ATTR_ANALOG_OUTPUT_RELIABILITY_ID = 0x0067, /*!< Reliability attribute */
ESP_ZB_ZCL_ATTR_ANALOG_OUTPUT_RELINQUISH_DEFAULT_ID = 0x0068, /*!< RelinquishDefault attribute */
ESP_ZB_ZCL_ATTR_ANALOG_OUTPUT_RESOLUTION_ID = 0x006a, /*!< Resolution attribute */
ESP_ZB_ZCL_ATTR_ANALOG_OUTPUT_STATUS_FLAGS_ID = 0x006f, /*!< StatusFlags attribute */
ESP_ZB_ZCL_ATTR_ANALOG_OUTPUT_ENGINEERING_UNITS_ID = 0x0075, /*!< EngineeringUnits attribute */
ESP_ZB_ZCL_ATTR_ANALOG_OUTPUT_APPLICATION_TYPE_ID = 0x0100, /*!< ApplicationType attribute */
} esp_zb_zcl_analog_output_attr_t;
/** @brief Values for StatusFlags attribute */
typedef enum {
ESP_ZB_ZCL_ANALOG_OUTPUT_STATUS_FLAG_NORMAL = 0x00, /*!< Normal (default) state */
ESP_ZB_ZCL_ANALOG_OUTPUT_STATUS_FLAG_IN_ALARM = 0x01, /*!< In alarm bit */
ESP_ZB_ZCL_ANALOG_OUTPUT_STATUS_FLAG_FAULT = 0x02, /*!< Fault bit */
ESP_ZB_ZCL_ANALOG_OUTPUT_STATUS_FLAG_OVERRIDDEN = 0x04, /*!< Overridden bit */
ESP_ZB_ZCL_ANALOG_OUTPUT_STATUS_FLAG_OUT_OF_SERVICE = 0x08, /*!< Out of service bit */
} esp_zb_zcl_analog_output_status_flags_value_t;
/** @brief Values for Reliability attribute */
typedef enum {
ESP_ZB_ZCL_ANALOG_OUTPUT_RELIABILITY_NO_FAULT_DETECTED = 0x00, /*!< No fault detected */
ESP_ZB_ZCL_ANALOG_OUTPUT_RELIABILITY_NO_SENSOR = 0x01, /*!< No sensor */
ESP_ZB_ZCL_ANALOG_OUTPUT_RELIABILITY_OVER_RANGE = 0x02, /*!< Over range */
ESP_ZB_ZCL_ANALOG_OUTPUT_RELIABILITY_UNDER_RANGE = 0x03, /*!< Under range */
ESP_ZB_ZCL_ANALOG_OUTPUT_RELIABILITY_OPEN_LOOP = 0x04, /*!< Open loop */
ESP_ZB_ZCL_ANALOG_OUTPUT_RELIABILITY_SHORTED_LOOP = 0x05, /*!< Shorted loop */
ESP_ZB_ZCL_ANALOG_OUTPUT_RELIABILITY_NO_OUTPUT = 0x06, /*!< No output */
ESP_ZB_ZCL_ANALOG_OUTPUT_RELIABILITY_UNRELIABLE_OTHER = 0x07, /*!< Unreliable other */
ESP_ZB_ZCL_ANALOG_OUTPUT_RELIABILITY_PROCESS_ERROR = 0x08, /*!< Process error */
/* 0x09 is for multistate clusters only */
ESP_ZB_ZCL_ANALOG_OUTPUT_RELIABILITY_CONFIGURATION_ERROR = 0x0a, /*!< Configuration error */
} esp_zb_zcl_analog_output_reliability_value_t;
/** Analog Output cluster application types
* The ApplicationType attribute indicates the specific application usage
* for the cluster. ApplicationType is subdivided into Group, Type and
* an Index number, as follows:
*
* Group = Bits 24 to 31
* An indication of the cluster this attribute is part of. Analog Output
* clusters have Group = 0x01.
*
* Type = Bits 16 to 23
* The physical quantity that the PresentValue attribute of the cluster
* represents.
*
* Index = Bits 0 to 15
* The specific application usage of the cluster.
*/
#define ESP_ZB_ZCL_AO_GROUP_ID 0x01
#define ESP_ZB_ZCL_AO_SET_APP_TYPE_WITH_ID(_type, _id) (((_type & 0xff) << 16) | (_id & 0xffff))
/** @brief Values for Analog Input cluster applications type */
typedef enum {
ESP_ZB_ZCL_AO_APP_TYPE_TEMPERATURE, /*!< Temperature */
ESP_ZB_ZCL_AO_APP_TYPE_HUMIDITY, /*!< Humidity */
ESP_ZB_ZCL_AO_APP_TYPE_PRESSURE, /*!< Pressure */
ESP_ZB_ZCL_AO_APP_TYPE_FLOW, /*!< Flow */
ESP_ZB_ZCL_AO_APP_TYPE_PERCENTAGE, /*!< Percentage */
ESP_ZB_ZCL_AO_APP_TYPE_PPM, /*!< Ppm */
ESP_ZB_ZCL_AO_APP_TYPE_RPM, /*!< Rpm */
ESP_ZB_ZCL_AO_APP_TYPE_CURRENT_IN_AMPS, /*!< Current in amps */
ESP_ZB_ZCL_AO_APP_TYPE_FREQUENCY, /*!< Frequency */
ESP_ZB_ZCL_AO_APP_TYPE_POWER_IN_WATTS, /*!< Power in watts */
ESP_ZB_ZCL_AO_APP_TYPE_POWER_IN_KILOWATTS, /*!< Power in kilowatts */
ESP_ZB_ZCL_AO_APP_TYPE_ENERGY, /*!< Energy */
ESP_ZB_ZCL_AO_APP_TYPE_COUNT_UNITLESS, /*!< Count unitless */
ESP_ZB_ZCL_AO_APP_TYPE_ENTHALPY, /*!< Enthalpy */
ESP_ZB_ZCL_AO_APP_TYPE_TIME, /*!< Time */
/* Types 0x0f to 0xfe are reserved */
ESP_ZB_ZCL_AO_APP_TYPE_OTHER = 0xff, /*!< Other */
} esp_zb_zcl_ao_application_types_t;
/** @brief Values for 'Temperature in degrees Celsius' type of Analog Output cluster */
typedef enum {
ESP_ZB_ZCL_AO_TEMPERATURE_BOILER = ESP_ZB_ZCL_AO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AO_APP_TYPE_TEMPERATURE, 0x0000), /*!< Boiler */
ESP_ZB_ZCL_AO_TEMPERATURE_BOILER_SETPOINT, /*!< Boiler setpoint */
ESP_ZB_ZCL_AO_TEMPERATURE_COLD_DECK, /*!< Cold deck */
ESP_ZB_ZCL_AO_TEMPERATURE_CHILLER_SETPOINT_0, /*!< Chiller setpoint 0. Note: Chiller Setpoint is duplicated in spec */
ESP_ZB_ZCL_AO_TEMPERATURE_CHILLER_SETPOINT_1, /*!< Chiller setpoint 1 */
ESP_ZB_ZCL_AO_TEMPERATURE_HOT_DECK, /*!< Hot deck */
ESP_ZB_ZCL_AO_TEMPERATURE_COOLING_VALVE, /*!< Cooling valve */
ESP_ZB_ZCL_AO_TEMPERATURE_ZONE_TEMPERATURE_SETPOINT, /*!< Zone temperature setpoint */
ESP_ZB_ZCL_AO_TEMPERATURE_SETPOINT_OFFSET, /*!< Setpoint offset */
ESP_ZB_ZCL_AO_TEMPERATURE_SETPOINT_SHIFT, /*!< Setpoint shift */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AO_TEMPERATURE_OTHER = ESP_ZB_ZCL_AO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AO_APP_TYPE_TEMPERATURE, 0xffff), /*!< Other */
} esp_zb_zcl_ao_temperature_in_degrees_celsius_t;
/** @brief Values for 'Relative Humidity in %' type of Analog Output cluster */
typedef enum {
ESP_ZB_ZCL_AO_HUMIDITY_HUMIDIFICATION = ESP_ZB_ZCL_AO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AO_APP_TYPE_HUMIDITY, 0x0000), /*!< Humidification */
ESP_ZB_ZCL_AO_HUMIDITY_ZONE_RELATIVE_HUMIDITY, /*!< Zone relative humidity */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AO_HUMIDITY_OTHER = ESP_ZB_ZCL_AO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AO_APP_TYPE_HUMIDITY, 0xffff), /*!< Other */
} esp_zb_zcl_ao_relative_humidity_in_percent_t;
/** @brief Values for 'Percentage %' type of Analog Output cluster */
typedef enum {
ESP_ZB_ZCL_AO_PERCENTAGE_FACE_BYPASS_DAMPER = ESP_ZB_ZCL_AO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AO_APP_TYPE_PERCENTAGE, 0x0000), /*!< Face bypass damper */
ESP_ZB_ZCL_AO_PERCENTAGE_HEAT_RECOVERY_VALVE, /*!< Heat recovery valve */
ESP_ZB_ZCL_AO_PERCENTAGE_HEAT_RECOVERY_WHEEL, /*!< Heat recovery wheel */
ESP_ZB_ZCL_AO_PERCENTAGE_HEATING_VALVE, /*!< Heating valve */
ESP_ZB_ZCL_AO_PERCENTAGE_HOT_DECK_DAMPER, /*!< Hot deck damper */
ESP_ZB_ZCL_AO_PERCENTAGE_2_PIPE_DAMPER, /*!< 2 pipe damper */
ESP_ZB_ZCL_AO_PERCENTAGE_2_PIPE_VALVE, /*!< 2 pipe valve */
ESP_ZB_ZCL_AO_PERCENTAGE_BOILER_MIXING_VALVE, /*!< Boiler mixing valve */
ESP_ZB_ZCL_AO_PERCENTAGE_BOX_COOLING_VALVE, /*!< Box cooling valve */
ESP_ZB_ZCL_AO_PERCENTAGE_BOX_HEATING_VALVE, /*!< Box heating valve */
ESP_ZB_ZCL_AO_PERCENTAGE_CHILLED_WATER_BYPASS_VALVE, /*!< Chilled water bypass valve */
ESP_ZB_ZCL_AO_PERCENTAGE_COLD_DECK_DAMPER, /*!< Cold deck damper */
ESP_ZB_ZCL_AO_PERCENTAGE_COOLING_DAMPER, /*!< Cooling damper */
ESP_ZB_ZCL_AO_PERCENTAGE_COOLING_VALVE, /*!< Cooling valve */
ESP_ZB_ZCL_AO_PERCENTAGE_DAMPER, /*!< Damper */
ESP_ZB_ZCL_AO_PERCENTAGE_EXHAUST_AIR_DAMPER, /*!< Exhaust air damper */
ESP_ZB_ZCL_AO_PERCENTAGE_EXHAUST_DAMPER, /*!< Exhaust damper */
ESP_ZB_ZCL_AO_PERCENTAGE_HOT_WATER_BYPASS_VALVE, /*!< Hot water bypass valve */
ESP_ZB_ZCL_AO_PERCENTAGE_HOT_WATER_MIXING_VALVE, /*!< Hot water mixing valve */
ESP_ZB_ZCL_AO_PERCENTAGE_MINIMUM_OUTSIDE_AIR_DAMPER, /*!< Minimum outside air damper */
ESP_ZB_ZCL_AO_PERCENTAGE_MINIMUM_OUTSIDE_AIR_FAN, /*!< Minimum outside air fan */
ESP_ZB_ZCL_AO_PERCENTAGE_MIXED_AIR_DAMPER, /*!< Mixed air damper */
ESP_ZB_ZCL_AO_PERCENTAGE_MIXING_VALVE, /*!< Mixing valve */
ESP_ZB_ZCL_AO_PERCENTAGE_OUTSIDE_AIR_DAMPER, /*!< Ourside air damper */
ESP_ZB_ZCL_AO_PERCENTAGE_PRIMARY_CHILLED_WATER_PUMP, /*!< Primary chilled water pump */
ESP_ZB_ZCL_AO_PERCENTAGE_PRIMARY_HOT_WATER_PUMP, /*!< Primary hot water pump */
ESP_ZB_ZCL_AO_PERCENTAGE_PRIMARY_HEAT_EXCHANGE_PUMP, /*!< Primary heat exchange pump */
ESP_ZB_ZCL_AO_PERCENTAGE_PREHEAT_DAMPER, /*!< Preheat damper */
ESP_ZB_ZCL_AO_PERCENTAGE_PREHEAT_VALVE, /*!< Preheat valve */
ESP_ZB_ZCL_AO_PERCENTAGE_REHEAT_VALVE_0, /*!< Reheat valve 0. Note: Reheat valve is duplicated in spec */
ESP_ZB_ZCL_AO_PERCENTAGE_REHEAT_VALVE_1, /*!< Reheat valve 1 */
ESP_ZB_ZCL_AO_PERCENTAGE_RETURN_AIR_DAMPER, /*!< Return air damper */
ESP_ZB_ZCL_AO_PERCENTAGE_SECONDARY_CHILLED_WATER_PUMP, /*!< Secondary chilled water pump */
ESP_ZB_ZCL_AO_PERCENTAGE_SEQUENCED_VALVE, /*!< Sequenced valve */
ESP_ZB_ZCL_AO_PERCENTAGE_SECONDARY_HOT_WATER_PUMP, /*!< Secondary hot water pump */
ESP_ZB_ZCL_AO_PERCENTAGE_SECONDARY_HEAT_EXCHANGE_PUMP, /*!< Secondary heat exchange pump */
ESP_ZB_ZCL_AO_PERCENTAGE_SIDELOOP, /*!< Sideloop */
ESP_ZB_ZCL_AO_PERCENTAGE_SUPPLY_HEATING_VALVE, /*!< Supply heating valve */
ESP_ZB_ZCL_AO_PERCENTAGE_SUPPLY_DAMPER, /*!< Supply damper */
ESP_ZB_ZCL_AO_PERCENTAGE_TOWER_BYPASS_VALVE, /*!< Tower bypass valve */
ESP_ZB_ZCL_AO_PERCENTAGE_TOWER_FAN, /*!< Tower fan */
ESP_ZB_ZCL_AO_PERCENTAGE_VALVE, /*!< Value */
ESP_ZB_ZCL_AO_PERCENTAGE_ZONE_1_DAMPER, /*!< Zone 1 damper */
ESP_ZB_ZCL_AO_PERCENTAGE_ZONE_1_HEATING_VALVE, /*!< Zone 1 heating valve */
ESP_ZB_ZCL_AO_PERCENTAGE_HEAT_RECOVERY_EXHAUST_BYPASS_DAMPER, /*!< Heat recovery exhaust bypass damper */
ESP_ZB_ZCL_AO_PERCENTAGE_HEAT_RECOVERY_OUTSIDE_AIR_BYPASS_DAMPER, /*!< Heat recovery outside air bypass damper */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AO_PERCENTAGE_OTHER = ESP_ZB_ZCL_AO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AO_APP_TYPE_PERCENTAGE, 0xffff), /*!< Other */
} esp_zb_zcl_ao_percentage_t;
/** @brief Values for 'Parts per Million PPM' type of Analog Output cluster */
typedef enum {
ESP_ZB_ZCL_AO_PPM_SPACE_CARBON_DIOXIDE_LIMIT = ESP_ZB_ZCL_AO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AO_APP_TYPE_PPM, 0x0000), /*!< Space carbon dioxide limit */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AO_PPM_OTHER = ESP_ZB_ZCL_AO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AO_APP_TYPE_PPM, 0xffff), /*!< Other */
} esp_zb_zcl_ao_ppm_t;
/** @brief Values for 'Rotational Speed in RPM' type of Analog Output cluster */
typedef enum {
ESP_ZB_ZCL_AO_RPM_EXHAUST_FAN_SPEED = ESP_ZB_ZCL_AO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AO_APP_TYPE_RPM, 0x0000), /*!< Exhaust fan speed */
ESP_ZB_ZCL_AO_RPM_FAN_SPEED, /*!< Fan speed */
ESP_ZB_ZCL_AO_RPM_RELIEF_FAN_SPEED, /*!< Relief fan speed */
ESP_ZB_ZCL_AO_RPM_RETURN_FAN_SPEED, /*!< Return fan speed */
ESP_ZB_ZCL_AO_RPM_SUPPLY_FAN_SPEED, /*!< Supply fan speed */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AO_RPM_OTHER = ESP_ZB_ZCL_AO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AO_APP_TYPE_RPM, 0xffff), /*!< Other */
} esp_zb_zcl_ao_rpm_t;
/** @brief Values for 'Time in Seconds' type of Analog Output cluster */
typedef enum {
ESP_ZB_ZCL_AO_TIME_RELATIVE = ESP_ZB_ZCL_AO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AO_APP_TYPE_TIME, 0x0000), /*!< Relative */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AO_TIME_OTHER = ESP_ZB_ZCL_AO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AO_APP_TYPE_TIME, 0xffff), /*!< Other */
} esp_zb_zcl_ao_time_t;
/** @brief Default value for Description attribute */
#define ESP_ZB_ZCL_ANALOG_OUTPUT_DESCRIPTION_DEFAULT_VALUE {0}
/** @brief Default value for OutOfService attribute */
#define ESP_ZB_ZCL_ANALOG_OUTPUT_OUT_OF_SERVICE_DEFAULT_VALUE false
/** @brief Default value for StatusFlags attribute */
#define ESP_ZB_ZCL_ANALOG_OUTPUT_STATUS_FLAG_DEFAULT_VALUE 0
/** @brief StatusFlags attribute minimum value */
#define ESP_ZB_ZCL_ANALOG_OUTPUT_STATUS_FLAGS_MIN_VALUE 0
/** @brief StatusFlags attribute maximum value */
#define ESP_ZB_ZCL_ANALOG_OUTPUT_STATUS_FLAGS_MAX_VALUE 0x0f
/** Number of attributes mandatory for reporting in Analog Output cluster */
#define ESP_ZB_ZCL_ANALOG_OUTPUT_REPORT_ATTR_COUNT 2
void esp_zb_zcl_analog_output_init_server(void);
void esp_zb_zcl_analog_output_init_client(void);
#define ESP_ZB_ZCL_CLUSTER_ID_ANALOG_OUTPUT_SERVER_ROLE_INIT esp_zb_zcl_analog_output_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_ANALOG_OUTPUT_CLIENT_ROLE_INIT esp_zb_zcl_analog_output_init_client
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,154 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Analog Value cluster attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_ANALOG_VALUE_DESCRIPTION_ID = 0x001c, /*!< Description attribute */
ESP_ZB_ZCL_ATTR_ANALOG_VALUE_OUT_OF_SERVICE_ID = 0x0051, /*!< OutOfService attribute */
ESP_ZB_ZCL_ATTR_ANALOG_VALUE_PRESENT_VALUE_ID = 0x0055, /*!< PresentValue attribute */
ESP_ZB_ZCL_ATTR_ANALOG_VALUE_PRIORITY_ARRAY_ID = 0x0057, /*!< PriorityArray attribute */
ESP_ZB_ZCL_ATTR_ANALOG_VALUE_RELIABILITY_ID = 0x0067, /*!< Reliability attribute */
ESP_ZB_ZCL_ATTR_ANALOG_VALUE_RELINQUISH_DEFAULT_ID = 0x0068, /*!< RelinquishDefault attribute */
ESP_ZB_ZCL_ATTR_ANALOG_VALUE_STATUS_FLAGS_ID = 0x006f, /*!< StatusFlags attribute */
ESP_ZB_ZCL_ATTR_ANALOG_VALUE_ENGINEERING_UNITS_ID = 0x0075, /*!< EngineeringUnits attribute */
ESP_ZB_ZCL_ATTR_ANALOG_VALUE_APPLICATION_TYPE_ID = 0x0100, /*!< ApplicationType attribute */
} esp_zb_zcl_analog_value_attr_t;
/** @brief Values for StatusFlags attribute */
typedef enum {
ESP_ZB_ZCL_ANALOG_VALUE_STATUS_FLAG_NORMAL = 0x00, /*!< Normal (default) state. */
ESP_ZB_ZCL_ANALOG_VALUE_STATUS_FLAG_IN_ALARM = 0x01, /*!< In alarm bit. */
ESP_ZB_ZCL_ANALOG_VALUE_STATUS_FLAG_FAULT = 0x02, /*!< Fault bit. */
ESP_ZB_ZCL_ANALOG_VALUE_STATUS_FLAG_OVERRIDDEN = 0x04, /*!< Overridden bit. */
ESP_ZB_ZCL_ANALOG_VALUE_STATUS_FLAG_OUT_OF_SERVICE = 0x08, /*!< Out of service bit. */
} esp_zb_zcl_analog_value_status_flags_value_t;
/** @brief Values for Reliability attribute */
typedef enum {
ESP_ZB_ZCL_ANALOG_VALUE_RELIABILITY_NO_FAULT_DETECTED = 0x00, /*!< No fault detected */
ESP_ZB_ZCL_ANALOG_VALUE_RELIABILITY_NO_SENSOR = 0x01, /*!< No sensor */
ESP_ZB_ZCL_ANALOG_VALUE_RELIABILITY_OVER_RANGE = 0x02, /*!< Over range */
ESP_ZB_ZCL_ANALOG_VALUE_RELIABILITY_UNDER_RANGE = 0x03, /*!< Under range */
ESP_ZB_ZCL_ANALOG_VALUE_RELIABILITY_OPEN_LOOP = 0x04, /*!< Open loop */
ESP_ZB_ZCL_ANALOG_VALUE_RELIABILITY_SHORTED_LOOP = 0x05, /*!< Shorted loop */
ESP_ZB_ZCL_ANALOG_VALUE_RELIABILITY_NO_OUTPUT = 0x06, /*!< No output */
ESP_ZB_ZCL_ANALOG_VALUE_RELIABILITY_UNRELIABLE_OTHER = 0x07, /*!< Unreliable other */
ESP_ZB_ZCL_ANALOG_VALUE_RELIABILITY_PROCESS_ERROR = 0x08, /*!< Process error */
/* 0x09 is for multistate clusters only */
ESP_ZB_ZCL_ANALOG_VALUE_RELIABILITY_CONFIGURATION_ERROR = 0x0a, /*!< Configuration error */
} esp_zb_zcl_analog_value_reliability_value_t;
/** Analog Value cluster application types
* The ApplicationType attribute indicates the specific application usage
* for the cluster. ApplicationType is subdivided into Group, Type and
* an Index number, as follows:
*
* - Group = Bits 24 to 31
* An indication of the cluster this attribute is part of. Analog Value
* clusters have Group = 0x02.
*
* - Type = Bits 16 to 23
* The physical quantity that the PresentValue attribute of the cluster
* represents.
*
* - Index = Bits 0 to 15
* The specific application usage of the cluster.
*/
#define ESP_ZB_ZCL_AV_GROUP_ID 0x02
#define ESP_ZB_ZCL_AV_SET_APP_TYPE_WITH_ID(_type, _id) ((ESP_ZB_ZCL_AV_GROUP_ID << 24) | ((_type & 0xff) << 16) | (_id & 0xffff))
/** @brief Values for Analog Value cluster applications type */
typedef enum {
ESP_ZB_ZCL_AV_APP_TYPE_TEMPERATURE = 0x00, /*!< Temperature */
ESP_ZB_ZCL_AV_APP_TYPE_AREA = 0x01, /*!< Area */
ESP_ZB_ZCL_AV_APP_TYPE_MULTIPLIER = 0x02, /*!< Multiplier */
ESP_ZB_ZCL_AV_APP_TYPE_FLOW = 0x03, /*!< Flow */
ESP_ZB_ZCL_AV_APP_TYPE_OTHER = 0xff, /*!< Other */
} esp_zb_zcl_av_application_types_t;
/** @brief Values for 'Temperature in degrees Celsius' type of Analog Value cluster */
typedef enum {
ESP_ZB_ZCL_AV_TEMPERATURE_SETPOINT_OFFSET_0 = ESP_ZB_ZCL_AV_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AV_APP_TYPE_TEMPERATURE, 0x0000), /*!< Setpoint Offset */
ESP_ZB_ZCL_AV_TEMPERATURE_TEMP_DEADBAND, /*!< Temp deadband */
ESP_ZB_ZCL_AV_TEMPERATURE_OCCUPIED_HEATING_SETPOINT, /*!< Occupied heating setpoint */
ESP_ZB_ZCL_AV_TEMPERATURE_UNOCCUPIED_HEATING_SETPOINT, /*!< Unoccupied heating setpoint */
ESP_ZB_ZCL_AV_TEMPERATURE_OCCUPIED_COOLING_SETPOINT, /*!< Occupied cooling setpoint */
ESP_ZB_ZCL_AV_TEMPERATURE_UNOCCUPIED_COOLING_SETPOINT, /*!< Unoccupied cooling setpoint */
ESP_ZB_ZCL_AV_TEMPERATURE_STANDBY_HEAT_SETPOINT, /*!< Standby heat setpoint */
ESP_ZB_ZCL_AV_TEMPERATURE_STANDBY_COOLING_SETPOINT, /*!< Standby cooling setpoint */
ESP_ZB_ZCL_AV_TEMPERATURE_EFFECTIVE_OCCUPIED_HEATING_SETPOINT, /*!< Effective occupied heating setpoint */
ESP_ZB_ZCL_AV_TEMPERATURE_EFFECTIVE_UNOCCUPIED_HEATING_SETPOINT, /*!< Effective unoccupied heating setpoint */
ESP_ZB_ZCL_AV_TEMPERATURE_EFFECTIVE_OCCUPIED_COOLING_SETPOINT, /*!< Effective occupied cooling setpoint */
ESP_ZB_ZCL_AV_TEMPERATURE_EFFECTIVE_UNOCCUPIED_COOLING_SETPOINT, /*!< Effective unoccupied cooling setpoint */
ESP_ZB_ZCL_AV_TEMPERATURE_EFFECTIVE_STANDBY_HEAT_SETPOINT, /*!< Effective standby heat setpoint */
ESP_ZB_ZCL_AV_TEMPERATURE_EFFECTIVE_STANDBY_COOLING_SETPOINT, /*!< Effective standby cooling setpoint */
ESP_ZB_ZCL_AV_TEMPERATURE_SETPOINT_OFFSET_2, /*!< Setpoint offset 2 */
ESP_ZB_ZCL_AV_TEMPERATURE_SETPOINT_SHIFT, /*!< Setpoint shift */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AV_TEMPERATURE_OTHER = ESP_ZB_ZCL_AV_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AV_APP_TYPE_TEMPERATURE, 0xffff), /*!< Other*/
} esp_zb_zcl_av_temperature_in_degrees_celsius_t;
/** @brief Values for 'Area in Square Metres' type of Analog Value cluster */
typedef enum {
ESP_ZB_ZCL_AV_AREA_DUCT_AREA = ESP_ZB_ZCL_AV_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AV_APP_TYPE_AREA, 0x0000), /*!< Duct Area */
/* 0x0200 to 0xffffe are Vendor defined */
ESP_ZB_ZCL_AV_AREA_OTHER = ESP_ZB_ZCL_AV_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AV_APP_TYPE_AREA, 0xffff), /*!< Other */
} esp_zb_zcl_av_area_in_squares_meters_t;
/** @brief Values for 'Multiplier - Number' type of Analog Value cluster */
typedef enum {
ESP_ZB_ZCL_AV_MULTIPLIER_DUCT_MULTIPLIER = ESP_ZB_ZCL_AV_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AV_APP_TYPE_MULTIPLIER, 0x0000), /*!< Duct Area */
/* 0x0200 to 0xffffe are Vendor defined */
ESP_ZB_ZCL_AV_MULTIPLIER_OTHER = ESP_ZB_ZCL_AV_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AV_APP_TYPE_MULTIPLIER, 0xffff), /*!< Other */
} esp_zb_zcl_av_multiplier_number_t;
/** @brief Values for 'Flow in Litres per Second' type of Analog Value cluster */
typedef enum {
ESP_ZB_ZCL_AV_FLOW_MINIMUM_AIR_FLOW = ESP_ZB_ZCL_AV_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AV_APP_TYPE_FLOW, 0x0000), /*!< Minimum Air Flow */
ESP_ZB_ZCL_AV_FLOW_MAXIMUM_AIR_FLOW, /*!< Maximum Air Flow */
ESP_ZB_ZCL_AV_FLOW_HEATING_MINIMUM_AIR_FLOW, /*!< Heating Minimum Air Flow */
ESP_ZB_ZCL_AV_FLOW_HEATING_MAXIMUM_AIR_FLOW, /*!< Heating Maximum Air Flow */
ESP_ZB_ZCL_AV_FLOW_STANDBY_MINIMUM_AIR_FLOW, /*!< Standby Minimum Air Flow */
ESP_ZB_ZCL_AV_FLOW_STANDBY_MAXIMUM_AIR_FLOW, /*!< Standby Maximum Air Flow */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_AV_FLOW_OTHER = ESP_ZB_ZCL_AV_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_AV_APP_TYPE_FLOW, 0xffff), /*!< Other */
} esp_zb_zcl_av_flow_in_liters_per_second_t;
/** @brief Default value for Description attribute */
#define ESP_ZB_ZCL_ANALOG_VALUE_DESCRIPTION_DEFAULT_VALUE {0}
/** @brief Default value for OutOfService attribute */
#define ESP_ZB_ZCL_ANALOG_VALUE_OUT_OF_SERVICE_DEFAULT_VALUE false
/** @brief Default value for Reliability attribute */
#define ESP_ZB_ZCL_ANALOG_VALUE_RELIABILITY_DEFAULT_VALUE 0x00
/** @brief Default value for StatusFlags attribute */
#define ESP_ZB_ZCL_ANALOG_VALUE_STATUS_FLAGS_DEFAULT_VALUE 0
/** @brief StatusFlags attribute minimum value */
#define ESP_ZB_ZCL_ANALOG_VALUE_STATUS_FLAGS_MIN_VALUE 0
/** @brief StatusFlags attribute maximum value */
#define ESP_ZB_ZCL_ANALOG_VALUE_STATUS_FLAGS_MAX_VALUE 0x0f
void esp_zb_zcl_analog_value_init_server(void);
void esp_zb_zcl_analog_value_init_client(void);
#define ESP_ZB_ZCL_CLUSTER_ID_ANALOG_VALUE_SERVER_ROLE_INIT esp_zb_zcl_analog_value_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_ANALOG_VALUE_CLIENT_ROLE_INIT esp_zb_zcl_analog_value_init_client
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,132 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Basic cluster information attribute set identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_BASIC_ZCL_VERSION_ID = 0x0000, /*!< ZCL version attribute */
ESP_ZB_ZCL_ATTR_BASIC_APPLICATION_VERSION_ID = 0x0001, /*!< Application version attribute */
ESP_ZB_ZCL_ATTR_BASIC_STACK_VERSION_ID = 0x0002, /*!< Stack version attribute */
ESP_ZB_ZCL_ATTR_BASIC_HW_VERSION_ID = 0x0003, /*!< Hardware version attribute */
ESP_ZB_ZCL_ATTR_BASIC_MANUFACTURER_NAME_ID = 0x0004, /*!< Manufacturer name attribute */
ESP_ZB_ZCL_ATTR_BASIC_MODEL_IDENTIFIER_ID = 0x0005, /*!< Model identifier attribute */
ESP_ZB_ZCL_ATTR_BASIC_DATE_CODE_ID = 0x0006, /*!< Date code attribute */
ESP_ZB_ZCL_ATTR_BASIC_POWER_SOURCE_ID = 0x0007, /*!< Power source attribute */
ESP_ZB_ZCL_ATTR_BASIC_GENERIC_DEVICE_CLASS_ID = 0x0008, /*!< The GenericDeviceClass attribute defines the field of application of the GenericDeviceType attribute. */
ESP_ZB_ZCL_ATTR_BASIC_GENERIC_DEVICE_TYPE_ID = 0x0009, /*!< The GenericDeviceType attribute allows an application to show an icon on a rich user interface (e.g. smartphone app). */
ESP_ZB_ZCL_ATTR_BASIC_PRODUCT_CODE_ID = 0x000a, /*!< The ProductCode attribute allows an application to specify a code for the product. */
ESP_ZB_ZCL_ATTR_BASIC_PRODUCT_URL_ID = 0x000b, /*!< The ProductURL attribute specifies a link to a web page containing specific product information. */
ESP_ZB_ZCL_ATTR_BASIC_MANUFACTURER_VERSION_DETAILS_ID = 0x000c, /*!< Vendor specific human readable (displayable) string representing the versions of one of more program images supported on the device. */
ESP_ZB_ZCL_ATTR_BASIC_SERIAL_NUMBER_ID = 0x000d, /*!< Vendor specific human readable (displayable) serial number. */
ESP_ZB_ZCL_ATTR_BASIC_PRODUCT_LABEL_ID = 0x000e, /*!< Vendor specific human readable (displayable) product label. */
ESP_ZB_ZCL_ATTR_BASIC_LOCATION_DESCRIPTION_ID = 0x0010, /*!< Location description attribute */
ESP_ZB_ZCL_ATTR_BASIC_PHYSICAL_ENVIRONMENT_ID = 0x0011, /*!< Physical environment attribute */
ESP_ZB_ZCL_ATTR_BASIC_DEVICE_ENABLED_ID = 0x0012, /*!< Device enabled attribute */
ESP_ZB_ZCL_ATTR_BASIC_ALARM_MASK_ID = 0x0013, /*!< Alarm mask attribute */
ESP_ZB_ZCL_ATTR_BASIC_DISABLE_LOCAL_CONFIG_ID = 0x0014, /*!< Disable local config attribute */
ESP_ZB_ZCL_ATTR_BASIC_SW_BUILD_ID = 0x4000 /*!< Manufacturer-specific reference to the version of the software. */
} esp_zb_zcl_basic_attr_t;
/**
* @brief Permitted values for "Power source" attribute.
*
*/
typedef enum esp_zb_zcl_basic_power_source_e {
ESP_ZB_ZCL_BASIC_POWER_SOURCE_UNKNOWN = 0x00, /*!< Unknown power source */
ESP_ZB_ZCL_BASIC_POWER_SOURCE_MAINS_SINGLE_PHASE = 0x01, /*!< Single-phase mains. */
ESP_ZB_ZCL_BASIC_POWER_SOURCE_MAINS_THREE_PHASE = 0x02, /*!< 3-phase mains. */
ESP_ZB_ZCL_BASIC_POWER_SOURCE_BATTERY = 0x03, /*!< Battery source. */
ESP_ZB_ZCL_BASIC_POWER_SOURCE_DC_SOURCE = 0x04, /*!< DC source. */
ESP_ZB_ZCL_BASIC_POWER_SOURCE_EMERGENCY_MAINS_CONST = 0x05, /*!< Emergency mains constantly powered. */
ESP_ZB_ZCL_BASIC_POWER_SOURCE_EMERGENCY_MAINS_TRANSF = 0x06 /*!< Emergency mains and transfer switch. */
} esp_zb_zcl_basic_power_source_t;
/** The secondary backup power source, @p power is listed in esp_zb_zcl_basic_power_source_t */
#define ESP_ZB_ZCL_BASIC_SECONDARY_POWER_SOURCE(power) ((1U << 7) + power)
/** @brief Default value for ZCL version attribute */
#define ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE ((uint8_t)0x08)
/** @brief Default value for Application version attribute */
#define ESP_ZB_ZCL_BASIC_APPLICATION_VERSION_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Default value for Stack version attribute */
#define ESP_ZB_ZCL_BASIC_STACK_VERSION_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Default value for Hardware version attribute */
#define ESP_ZB_ZCL_BASIC_HW_VERSION_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Default value for Manufacturer name attribute */
#define ESP_ZB_ZCL_BASIC_MANUFACTURER_NAME_DEFAULT_VALUE {0}
/** @brief Default value for Model identifier attribute */
#define ESP_ZB_ZCL_BASIC_MODEL_IDENTIFIER_DEFAULT_VALUE {0}
/** @brief Default value for Date code attribute */
#define ESP_ZB_ZCL_BASIC_DATE_CODE_DEFAULT_VALUE {0}
/** @brief Default value for Power source attribute */
#define ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Default value for GenericDeviceClass attribute */
#define ESP_ZB_ZCL_BASIC_GENERIC_DEVICE_CLASS_DEFAULT_VALUE ((uint8_t)0xFF)
/** @brief Default value for GenericDeviceType attribute */
#define ESP_ZB_ZCL_BASIC_GENERIC_DEVICE_TYPE_DEFAULT_VALUE ((uint8_t)0xFF)
/** @brief Default value for ProductCode attribute */
#define ESP_ZB_ZCL_BASIC_PRODUCT_CODE_DEFAULT_VALUE {0}
/** @brief Default value for ProductURL attribute */
#define ESP_ZB_ZCL_BASIC_PRODUCT_URL_DEFAULT_VALUE {0}
/** @brief Default value for ManufacturerVersionDetails attribute */
#define ESP_ZB_ZCL_BASIC_MANUFACTURER_VERSION_DETAILS_DEFAULT_VALUE {0}
/** @brief Default value for SerialNumber attribute */
#define ESP_ZB_ZCL_BASIC_SERIAL_NUMBER_DEFAULT_VALUE {0}
/** @brief Default value for ProductLabel attribute */
#define ESP_ZB_ZCL_BASIC_PRODUCT_LABEL_DEFAULT_VALUE {0}
/** @brief Default value for location description attribute */
#define ESP_ZB_ZCL_BASIC_LOCATION_DESCRIPTION_DEFAULT_VALUE {0}
/** @brief Default value for Physical environment attribute */
#define ESP_ZB_ZCL_BASIC_PHYSICAL_ENVIRONMENT_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Default value for Device enabled attribute */
#define ESP_ZB_ZCL_BASIC_DEVICE_ENABLED_DEFAULT_VALUE ((bool)0x01)
/** @brief Default value for Alarm mask attribute */
#define ESP_ZB_ZCL_BASIC_ALARM_MASK_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Default value for Disable local config attribute */
#define ESP_ZB_ZCL_BASIC_DISABLE_LOCAL_CONFIG_DEFAULT_VALUE ((uint8_t)0x00)
/**
* @brief Default value for SWBuildId attribute.
* @note Default value supposes that attribute will be stored as Pascal-style string (i. e.
* length-byte, then content).
*/
#define ESP_ZB_ZCL_BASIC_SW_BUILD_ID_DEFAULT_VALUE {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
/*! @brief Basic cluster command identifiers
*/
typedef enum {
ESP_ZB_ZCL_CMD_BASIC_RESET_ID = 0x00 /*!< "Reset to Factory Defaults" command. */
} esp_zb_zcl_basic_cmd_id_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,304 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Binary Input cluster attribute identifiers.
*/
typedef enum {
ESP_ZB_ZCL_ATTR_BINARY_INPUT_ACTIVE_TEXT_ID = 0x0004, /*!< This attribute holds a human readable description of the ACTIVE state of a binary PresentValue. */
ESP_ZB_ZCL_ATTR_BINARY_INPUT_DESCRIPTION_ID = 0x001C, /*!< The description of the usage of the input, output or value, as appropriate to the cluster. */
ESP_ZB_ZCL_ATTR_BINARY_INPUT_INACTIVE_TEXT_ID = 0x002E, /*!< This attribute holds a human readable description of the INACTIVE state of a binary PresentValue. */
ESP_ZB_ZCL_ATTR_BINARY_INPUT_OUT_OF_SERVICE_ID = 0x0051, /*!< OutOfService attribute */
ESP_ZB_ZCL_ATTR_BINARY_INPUT_POLARITY_ID = 0x0054, /*!< This attribute indicates the relationship between the physical state of the input (or output as appropriate for the cluster) and the logical state represented by a binary PresentValue attribute, when OutOfService is FALSE. */
ESP_ZB_ZCL_ATTR_BINARY_INPUT_PRESENT_VALUE_ID = 0x0055, /*!< PresentValue attribute */
ESP_ZB_ZCL_ATTR_BINARY_INPUT_RELIABILITY_ID = 0x0067, /*!< The attribute indicates whether the PresentValue or the operation of the physical input, output or value in question (as appropriate for the cluster) is reliable. */
ESP_ZB_ZCL_ATTR_BINARY_INPUT_STATUS_FLAGS_ID = 0x006F, /*!< StatusFlag attribute */
ESP_ZB_ZCL_ATTR_BINARY_INPUT_APPLICATION_TYPE_ID = 0x0100, /*!< The attribute indicates the specific application usage for this cluster. */
} esp_zb_zcl_binary_input_attr_t;
/** @brief Values for StatusFlags attribute */
typedef enum {
ESP_ZB_ZCL_BINARY_INPUT_STATUS_FLAG_NORMAL = 0x00, /*!< Normal (default) state. */
ESP_ZB_ZCL_BINARY_INPUT_STATUS_FLAG_IN_ALARM = 0x01, /*!< In alarm bit. */
ESP_ZB_ZCL_BINARY_INPUT_STATUS_FLAG_FAULT = 0x02, /*!< Fault bit. */
ESP_ZB_ZCL_BINARY_INPUT_STATUS_FLAG_OVERRIDDEN = 0x04, /*!< Overridden bit. */
ESP_ZB_ZCL_BINARY_INPUT_STATUS_FLAG_OUT_OF_SERVICE = 0x08, /*!< Out of service bit. */
} esp_zb_zcl_binary_input_status_flags_value_t;
/** @brief Values for Reliability attribute */
typedef enum {
ESP_ZB_ZCL_BINARY_INPUT_RELIABILITY_NO_FAULT_DETECTED = 0x00, /*!< No fault detected */
ESP_ZB_ZCL_BINARY_INPUT_RELIABILITY_NO_SENSOR = 0x01, /*!< No sensor */
ESP_ZB_ZCL_BINARY_INPUT_RELIABILITY_OVER_RANGE = 0x02, /*!< Over range */
ESP_ZB_ZCL_BINARY_INPUT_RELIABILITY_UNDER_RANGE = 0x03, /*!< Under range */
ESP_ZB_ZCL_BINARY_INPUT_RELIABILITY_OPEN_LOOP = 0x04, /*!< Open loop */
ESP_ZB_ZCL_BINARY_INPUT_RELIABILITY_SHORTED_LOOP = 0x05, /*!< Shorted loop */
ESP_ZB_ZCL_BINARY_INPUT_RELIABILITY_NO_OUTPUT = 0x06, /*!< No output */
ESP_ZB_ZCL_BINARY_INPUT_RELIABILITY_UNRELIABLE_OTHER = 0x07, /*!< Unreliable other */
ESP_ZB_ZCL_BINARY_INPUT_RELIABILITY_PROCESS_ERROR = 0x08, /*!< Process error */
/* 0x09 is for multistate clusters only */
ESP_ZB_ZCL_BINARY_INPUT_RELIABILITY_CONFIGURATION_ERROR = 0x0a, /*!< Configuration error */
} esp_zb_zcl_binary_input_reliability_value_t;
/** @brief Values for Polarity attribute */
typedef enum {
ESP_ZB_ZCL_BINARY_INPUT_POLARITY_NORMAL = 0x00, /*!< Normal polarity */
ESP_ZB_ZCL_BINARY_INPUT_POLARITY_REVERSE = 0x01, /*!< Reverse polarity */
} esp_zb_zcl_binary_input_polarity_value_t;
/** Binary Input cluster application types
* The ApplicationType attribute indicates the specific application usage
* for the cluster. ApplicationType is subdivided into Group, Type and
* an Index number, as follows:
*
* Group = Bits 24 to 31
* An indication of the cluster this attribute is part of. Binary Input
* clusters have Group = 0x00.
*
* Type = Bits 16 to 23
* The physical quantity that the PresentValue attribute of the cluster
* represents.
*
* Index = Bits 0 to 15
* The specific application usage of the cluster.
*/
/** @brief Macros for ApplicationType attribute */
#define ESP_ZB_ZCL_BI_GROUP_ID 0x03
#define ESP_ZB_ZCL_BI_SET_APP_TYPE_WITH_ID(_type, _id) (((ESP_ZB_ZCL_BI_GROUP_ID & 0xFF) << 24) | (((_type) & 0xFF) << 16) | ((_id) & 0xFFFF))
/** @brief Values for Binary Input cluster application types (Type field, bits 16-23) */
typedef enum {
ESP_ZB_ZCL_BI_APP_TYPE_DOMAIN_HVAC = 0x00, /*!< Application Domain HVAC */
ESP_ZB_ZCL_BI_APP_TYPE_DOMAIN_SECURITY = 0x01, /*!< Application Domain Security */
/* 0x02 to 0xFE are reserved */
ESP_ZB_ZCL_BI_APP_TYPE_OTHER = 0xFF /*!< Other */
} esp_zb_zcl_bi_application_types_t;
typedef enum {
ESP_ZB_ZCL_BI_DOMAIN_HVAC_2_PIPE_PUMP_STATUS =
ESP_ZB_ZCL_BI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_BI_APP_TYPE_DOMAIN_HVAC, 0x0000), /*!< 2 Pipe Pump Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_AIR_PROVING_SWITCH, /*!< Air Proving Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_ALARM_RESET, /*!< Alarm Reset BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_BOILER_STATUS, /*!< Boiler Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_BOILER_FLOW_STATUS, /*!< Boiler Flow Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_BOILER_GENERAL_ALARM, /*!< Boiler General Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_BOILER_HIGH_TEMPERATURE_ALARM, /*!< Boiler High Temperature Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_BOILER_ISOLATION_VALVE_STATUS, /*!< Boiler Isolation Valve Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_BOILER_MAINTENANCE_SWITCH, /*!< Boiler Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_BOILER_PUMP_OVERLOAD, /*!< Boiler Pump Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_BOILER_PUMP_STATUS, /*!< Boiler Pump Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_BOILER_STATUS_2, /*!< Boiler Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_BOX_HEATING_ALARM, /*!< Box Heating Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CHILLER_ALARM, /*!< Chiller Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CHILLER_CHILLED_WATER_FLOW_STATUS, /*!< Chiller Chilled Water Flow Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CHILLER_CHILLED_WATER_ISOLATION_VALVE_STATUS, /*!< Chiller Chilled Water Isolation Valve Status BI
*/
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CHILLER_CONDENSER_WATER_FLOW_STATUS, /*!< Chiller Condenser Water Flow Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CHILLER_CONDENSER_WATER_ISOLATION_VALVE_STATUS, /*!< Chiller Condenser Water Isolation Valve
Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CHILLER_MAINTENANCE_SWITCH, /*!< Chiller Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CHILLER_STATUS, /*!< Chiller Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CHILLED_WATER_EXPANSION_TANK_ALARM, /*!< Chilled Water Expansion Tank Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CHILLED_WATER_EXPANSION_TANK_HIGH_PRESSURE_ALARM, /*!< Chilled Water Expansion Tank High Pressure
Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CHILLED_WATER_EXPANSION_TANK_LOW_PRESSURE_ALARM, /*!< Chilled Water Expansion Tank Low Pressure
Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CHILLED_WATER_EXPANSION_TANK_STATUS, /*!< Chilled Water Expansion Tank Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_COMBUSTION_DAMPER_STATUS, /*!< Combustion Damper Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_COOLING_ALARM, /*!< Cooling Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_COOLING_PUMP_MAINTENANCE_SWITCH, /*!< Cooling Pump Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_COOLING_PUMP_OVERLOAD, /*!< Cooling Pump Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_COOLING_PUMP_STATUS, /*!< Cooling Pump Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CONDENSER_WATER_EXPANSION_TANK_ALARM, /*!< Condenser Water Expansion Tank Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CONDENSER_WATER_EXPANSION_TANK_HIGH_PRESSURE_ALARM, /*!< Condenser Water Expansion Tank High
Pressure Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CONDENSER_WATER_EXPANSION_TANK_LOW_PRESSURE_ALARM, /*!< Condenser Water Expansion Tank Low
Pressure Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CONDENSER_WATER_EXPANSION_TANK_STATUS, /*!< Condenser Water Expansion Tank Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CONDENSER_WATER_PUMP_MAINTENANCE_SWITCH, /*!< Condenser Water Pump Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CONDENSER_WATER_PUMP_OVERLOAD, /*!< Condenser Water Pump Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_CONDENSER_WATER_PUMP_STATUS, /*!< Condenser Water Pump Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_DECOUPLE_LOOP_FLOW_DIRECTION, /*!< Decouple Loop Flow Direction BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_DISCHARGE_SMOKE, /*!< Discharge Smoke BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_DOOR_STATUS, /*!< Door Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_ECONOMIZER_COMMAND, /*!< Economizer Command BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_EMERGENCY_SHUTDOWN, /*!< Emergency Shutdown BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_EQUIPMENT_TAMPER, /*!< Equipment Tamper BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_ENERGY_HOLD_OFF, /*!< Energy Hold Off BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_EXHAUST_FAN_MAINTENANCE_SWITCH, /*!< Exhaust Fan Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_EXHAUST_FAN_OVERLOAD, /*!< Exhaust Fan Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_EXHAUST_FAN_STATUS, /*!< Exhaust Fan Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_EXHAUST_FILTER_STATUS, /*!< Exhaust Filter Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_EXHAUST_SMOKE, /*!< Exhaust Smoke BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_EXPANSION_TANK_ALARM, /*!< Expansion Tank Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_EXPANSION_TANK_HIGH_PRESSURE_ALARM, /*!< Expansion Tank High Pressure Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_EXPANSION_TANK_LOW_PRESSURE_ALARM, /*!< Expansion Tank Low Pressure Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_EXPANSION_TANK_STATUS, /*!< Expansion Tank Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_FAN_CONTROL_BY_OTHERS, /*!< Fan Control By Others BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_FAN_OVERLOAD, /*!< Fan Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_FILTER_MONITORING, /*!< Filter Monitoring BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_FINAL_FILTER_STATUS, /*!< Final Filter Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_FREE_COOLING_AVAILABILITY, /*!< Free Cooling Availability BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HEAT_RECOVERY_PUMP_STATUS, /*!< Heat Recovery Pump Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HEAT_RECOVERY_WHEEL_ALARM, /*!< Heat Recovery Wheel Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HEAT_RECOVERY_WHEEL_MAINTENANCE_SWITCH, /*!< Heat Recovery Wheel Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HEAT_RECOVERY_WHEEL_OVERLOAD, /*!< Heat Recovery Wheel Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HEAT_RECOVERY_WHEEL_STATUS, /*!< Heat Recovery Wheel Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HEATING_ALARM, /*!< Heating Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HEATING_COOLING_PUMP_MAINTENANCE_SWITCH, /*!< Heating/Cooling Pump Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HEATING_COOLING_PUMP_OVERLOAD, /*!< Heating/Cooling Pump Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HIGH_HUMIDITY_LIMIT, /*!< High Humidity Limit BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HIGH_STATIC_PRESSURE_FAULT, /*!< High Static Pressure Fault BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HIGH_TEMPERATURE_LIMIT_FAULT, /*!< High Temperature Limit Fault BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HUMIDIFIER_ALARM, /*!< Humidifier Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HUMIDIFIER_MAINTENANCE_SWITCH, /*!< Humidifier Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HUMIDIFIER_OVERLOAD, /*!< Humidifier Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HUMIDIFIER_STATUS, /*!< Humidifier Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HEAT_EXCHANGER_ALARM, /*!< Heat Exchanger Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HEAT_EXCHANGER_ISOLATION_VALVE_STATUS, /*!< Heat Exchanger Isolation Valve Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_HEAT_EXCHANGER_MAINTENANCE_SWITCH, /*!< Heat Exchanger Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_LIGHTING_STATUS, /*!< Lighting Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_LOW_STATIC_PRESSURE_FAULT, /*!< Low Static Pressure Fault BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_LOW_TEMPERATURE_LIMIT_FAULT, /*!< Low Temperature Limit Fault BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_MINIMUM_OUTDOOR_AIR_DAMPER_END_SWITCH, /*!< Minimum Outdoor Air Damper End Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_MINIMUM_OUTDOOR_AIR_FAN_MAINTENANCE_SWITCH, /*!< Minimum Outdoor Air Fan Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_MINIMUM_OUTDOOR_AIR_FAN_OVERLOAD, /*!< Minimum Outdoor Air Fan Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_MINIMUM_OUTDOOR_AIR_FAN_STATUS, /*!< Minimum Outdoor Air Fan Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_MINIMUM_OUTDOOR_AIR_FAN_VARIABLE_FREQUENCY_DRIVE_FAULT, /*!< Minimum Outdoor Air Fan Variable
Frequency Drive Fault BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_OCCUPANCY, /*!< Occupancy BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_OCCUPANCY_SENSOR, /*!< Occupancy Sensor BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PRIMARY_CHILLED_WATER_PUMP_MAINTENANCE_SWITCH, /*!< Primary Chilled Water Pump Maintenance Switch
BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PRIMARY_CHILLED_WATER_PUMP_OVERLOAD, /*!< Primary Chilled Water Pump Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PRIMARY_CHILLED_WATER_PUMP_STATUS, /*!< Primary Chilled Water Pump Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PRIMARY_CHILLED_WATER_PUMP_MAINTENANCE_SWITCH_2, /*!< Primary Chilled Water Pump Maintenance
Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PRIMARY_CHILLED_WATER_PUMP_OVERLOAD_2, /*!< Primary Chilled Water Pump Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PRIMARY_CHILLED_WATER_PUMP_STATUS_2, /*!< Primary Chilled Water Pump Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PRE_FILTER_STATUS, /*!< Pre-Filter Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PREHEAT_ALARM, /*!< Preheat Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PREHEAT_BONNET_SWITCH, /*!< Preheat Bonnet Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PREHEAT_PUMP_MAINTENANCE_SWITCH, /*!< Preheat Pump Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PREHEAT_PUMP_OVERLOAD, /*!< Preheat Pump Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PREHEAT_PUMP_STATUS, /*!< Preheat Pump Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_REFRIGERANT_ALARM, /*!< Refrigerant Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_REHEAT_ALARM, /*!< Reheat Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_REHEAT_BONNET_SWITCH, /*!< Reheat Bonnet Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_REHEAT_PUMP_MAINTENANCE_SWITCH, /*!< Reheat Pump Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_REHEAT_PUMP_OVERLOAD, /*!< Reheat Pump Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_REHEAT_PUMP_STATUS, /*!< Reheat Pump Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_RELIEF_FAN_MAINTENANCE_SWITCH, /*!< Relief Fan Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_RELIEF_FAN_OVERLOAD, /*!< Relief Fan Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_RELIEF_FAN_STATUS, /*!< Relief Fan Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_RELIEF_FAN_VARIABLE_FREQUENCY_DRIVE_FAULT, /*!< Relief Fan Variable Frequency Drive Fault BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_RETURN_AIR_SMOKE, /*!< Return Air Smoke BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_RETURN_FAN_MAINTENANCE_SWITCH, /*!< Return Fan Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_RETURN_FAN_OVERLOAD, /*!< Return Fan Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_RETURN_FAN_STATUS, /*!< Return Fan Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_RETURN_FAN_VFD_FAULT, /*!< Return Fan VFD Fault BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_RETURN_SMOKE, /*!< Return Smoke BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SECONDARY_CHILLED_WATER_PUMP_1_MAINTENANCE_SWITCH, /*!< Secondary Chilled Water Pump 1 Maintenance
Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SECONDARY_CHILLED_WATER_PUMP_1_OVERLOAD, /*!< Secondary Chilled Water Pump 1 Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SECONDARY_CHILLED_WATER_PUMP_1_STATUS, /*!< Secondary Chilled Water Pump 1 Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SECONDARY_CHILLED_WATER_PUMP_1_MAINTENANCE_SWITCH_2, /*!< Secondary Chilled Water Pump 1
Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SECONDARY_CHILLED_WATER_PUMP_1_OVERLOAD_2, /*!< Secondary Chilled Water Pump 1 Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SECONDARY_CHILLED_WATER_PUMP_1_STATUS_2, /*!< Secondary Chilled Water Pump 1 Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SIDELOOP, /*!< Sideloop BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_GENERIC_STATUS, /*!< Generic Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SUMMER_WINTER, /*!< Summer Winter BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SUPPLEMENTAL_HEATING_ALARM, /*!< Supplemental Heating Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SUPPLEMENTAL_HEATING_PUMP_MAINTENANCE_SWITCH, /*!< Supplemental Heating Pump Maintenance Switch BI
*/
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SUPPLEMENTAL_HEATING_PUMP_OVERLOAD, /*!< Supplemental Heating Pump Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SUPPLEMENTAL_HEATING_PUMP_STATUS, /*!< Supplemental Heating Pump Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SUPPLY_FAN_MAINTENANCE_SWITCH, /*!< Supply Fan Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SUPPLY_FAN_OVERLOAD, /*!< Supply Fan Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SUPPLY_FAN_STATUS, /*!< Supply Fan Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_SUPPLY_FAN_VARIABLE_FREQUENCY_DRIVE_FAULT, /*!< Supply Fan Variable Frequency Drive Fault BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_TEMPORARY_OCCUPANCY, /*!< Temporary Occupancy BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_TOWER_LEVEL_ALARM, /*!< Tower Level Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_TOWER_LEVEL_STATUS, /*!< Tower Level Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_TOWER_TEMP, /*!< Tower Temp BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_TOWER_VIBRATION_ALARM_STATUS, /*!< Tower Vibration Alarm Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_TOWER_LEVEL_ALARM_2, /*!< Tower Level Alarm BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_TOWER_LEVEL_SWITCH, /*!< Tower Level Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_TOWER_TEMP_SWITCH, /*!< Tower Temp Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_TOWER_FAN_ISOLATION_VALVE_STATUS, /*!< Tower Fan Isolation Valve Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_TOWER_FAN_MAINTENANCE_SWITCH, /*!< Tower Fan Maintenance Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_TOWER_FAN_OVERLOAD, /*!< Tower Fan Overload BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_TOWER_FAN_STATUS, /*!< Tower Fan Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_UNIT_ENABLE, /*!< Unit Enable BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_UNIT_RESET, /*!< Unit Reset BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_WINDOW_STATUS, /*!< Window Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_ZONE_SENSOR_TEMPORARY_OCCUPANCY, /*!< Zone Sensor Temporary Occupancy BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_AIR_PROVING_SWITCH_2, /*!< Air Proving Switch BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PRIMARY_HEATING_STATUS, /*!< Primary Heating Status BI */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_PRIMARY_COOLING_STATUS, /*!< Primary Cooling Status BI */
/* 0x0200 to 0xFFFE are Vendor defined */
ESP_ZB_ZCL_BI_DOMAIN_HVAC_OTHER = ESP_ZB_ZCL_BI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_BI_APP_TYPE_DOMAIN_HVAC, 0xFFFF) /*!< Other */
} esp_zb_zcl_bi_domain_hvac_t;
typedef enum {
ESP_ZB_ZCL_BI_DOMAIN_SECURITY_GLASS_BREAKAGE_DETECTION_0 =
ESP_ZB_ZCL_BI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_BI_APP_TYPE_DOMAIN_SECURITY, 0x0000), /*!< Glass Breakage Detection */
ESP_ZB_ZCL_BI_DOMAIN_SECURITY_INTRUSION_DETECTION, /*!< Intrusion Detection */
ESP_ZB_ZCL_BI_DOMAIN_SECURITY_MOTION_DETECTION, /*!< Motion Detection */
ESP_ZB_ZCL_BI_DOMAIN_SECURITY_GLASS_BREAKAGE_DETECTION_1, /*!< Glass Breakage Detection */
ESP_ZB_ZCL_BI_DOMAIN_SECURITY_ZONE_ARMED, /*!< Zone Armed */
ESP_ZB_ZCL_BI_DOMAIN_SECURITY_GLASS_BREAKAGE_DETECTION_2, /*!< Glass Breakage Detection */
ESP_ZB_ZCL_BI_DOMAIN_SECURITY_SMOKE_DETECTION, /*!< Smoke Detection */
ESP_ZB_ZCL_BI_DOMAIN_SECURITY_CARBON_DIOXIDE_DETECTION, /*!< Carbon Dioxide Detection */
ESP_ZB_ZCL_BI_DOMAIN_SECURITY_HEAT_DETECTION, /*!< Heat Detection */
/* 0x0200 to 0xFFFE are Vendor defined */
ESP_ZB_ZCL_BI_DOMAIN_SECURITY_OTHER = ESP_ZB_ZCL_BI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_BI_APP_TYPE_DOMAIN_SECURITY, 0xFFFF) /*!< Other */
} esp_zb_zcl_bi_domain_security_t;
/** @brief Default value for ActiveText attribute */
#define ESP_ZB_ZCL_BINARY_INPUT_ACTIVE_TEXT_DEFAULT_VALUE {0}
/** @brief Default value for Description attribute */
#define ESP_ZB_ZCL_BINARY_INPUT_DESCRIPTION_DEFAULT_VALUE {0}
/** @brief Default value for InactiveText attribute */
#define ESP_ZB_ZCL_BINARY_INPUT_INACTIVE_TEXT_DEFAULT_VALUE {0}
/** @brief OutOfService attribute default value */
#define ESP_ZB_ZCL_BINARY_INPUT_OUT_OF_SERVICE_DEFAULT_VALUE false
/** @brief Default value for Polarity attribute */
#define ESP_ZB_ZCL_BINARY_INPUT_POLARITY_DEFAULT_VALUE ((uint8_t)0)
/** @brief Default value for Reliability attribute */
#define ESP_ZB_ZCL_BINARY_INPUT_RELIABILITY_DEFAULT_VALUE ((uint8_t)0)
/** @brief StatusFlag attribute default value */
#define ESP_ZB_ZCL_BINARY_INPUT_STATUS_FLAGS_DEFAULT_VALUE ESP_ZB_ZCL_BINARY_INPUT_STATUS_FLAGS_MIN_VALUE
/** @brief StatusFlag attribute minimum value */
#define ESP_ZB_ZCL_BINARY_INPUT_STATUS_FLAGS_MIN_VALUE 0
/** @brief StatusFlag attribute maximum value */
#define ESP_ZB_ZCL_BINARY_INPUT_STATUS_FLAGS_MAX_VALUE 0x0F
void esp_zb_zcl_binary_input_init_server(void);
void esp_zb_zcl_binary_input_init_client(void);
#define ESP_ZB_ZCL_CLUSTER_ID_BINARY_INPUT_SERVER_ROLE_INIT esp_zb_zcl_binary_input_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_BINARY_INPUT_CLIENT_ROLE_INIT esp_zb_zcl_binary_input_init_client
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,266 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Binary Output cluster attribute identifiers. */
typedef enum {
ESP_ZB_ZCL_ATTR_BINARY_OUTPUT_ACTIVE_TEXT_ID = 0x0004U, /*!< Human readable description of the ACTIVE state. */
ESP_ZB_ZCL_ATTR_BINARY_OUTPUT_DESCRIPTION_ID = 0x001CU, /*!< Description of the usage. */
ESP_ZB_ZCL_ATTR_BINARY_OUTPUT_INACTIVE_TEXT_ID = 0x002EU, /*!< Human readable description of the INACTIVE state. */
ESP_ZB_ZCL_ATTR_BINARY_OUTPUT_MIN_OFF_TIME_ID = 0x0042U, /*!< Minimum off time. */
ESP_ZB_ZCL_ATTR_BINARY_OUTPUT_MAX_ON_TIME_ID = 0x0043U, /*!< Maximum on time. */
ESP_ZB_ZCL_ATTR_BINARY_OUTPUT_OUT_OF_SERVICE_ID = 0x0051U, /*!< OutOfService attribute. */
ESP_ZB_ZCL_ATTR_BINARY_OUTPUT_POLARITY_ID = 0x0054U, /*!< Relationship between physical and logical state. */
ESP_ZB_ZCL_ATTR_BINARY_OUTPUT_PRESENT_VALUE_ID = 0x0055U, /*!< PresentValue attribute. */
/** TODO: support PriorityArray Attribute */
// ESP_ZB_ZCL_ATTR_BINARY_OUTPUT_PRIORITY_ARRAY_ID = 0x0057U, /*!< Priority array attribute. */
ESP_ZB_ZCL_ATTR_BINARY_OUTPUT_RELIABILITY_ID = 0x0067U, /*!< Reliability attribute. */
ESP_ZB_ZCL_ATTR_BINARY_OUTPUT_RELINQUISH_DEFAULT_ID = 0x0068U, /*!< Relinquish default. */
ESP_ZB_ZCL_ATTR_BINARY_OUTPUT_STATUS_FLAGS_ID = 0x006FU, /*!< StatusFlag attribute. */
ESP_ZB_ZCL_ATTR_BINARY_OUTPUT_APPLICATION_TYPE_ID = 0x0100U, /*!< ApplicationType attribute. */
} esp_zb_zcl_binary_output_attr_t;
/** @brief Default value for ActiveText attribute */
#define ESP_ZB_ZCL_BINARY_OUTPUT_ACTIVE_TEXT_DEFAULT_VALUE {0}
/** @brief Default value for Description attribute */
#define ESP_ZB_ZCL_BINARY_OUTPUT_DESCRIPTION_DEFAULT_VALUE {0}
/** @brief Default value for InactiveText attribute */
#define ESP_ZB_ZCL_BINARY_OUTPUT_INACTIVE_TEXT_DEFAULT_VALUE {0}
/** @brief Default value for MinOffTime attribute */
#define ESP_ZB_ZCL_BINARY_OUTPUT_MIN_OFF_TIME_DEFAULT_VALUE ESP_ZB_ZCL_VALUE_U32_FF
/** @brief Default value for MaxOnTime attribute */
#define ESP_ZB_ZCL_BINARY_OUTPUT_MAX_ON_TIME_DEFAULT_VALUE ESP_ZB_ZCL_VALUE_U32_FF
/** @brief OutOfService attribute default value */
#define ESP_ZB_ZCL_BINARY_OUTPUT_OUT_OF_SERVICE_DEFAULT_VALUE false
/** @brief Default value for Polarity attribute */
#define ESP_ZB_ZCL_BINARY_OUTPUT_POLARITY_DEFAULT_VALUE ((uint8_t)0)
/** @brief Default value for Reliability attribute */
#define ESP_ZB_ZCL_BINARY_OUTPUT_RELIABILITY_DEFAULT_VALUE ((uint8_t)0)
/** @brief Default value for RelinquishDefault attribute */
#define ESP_ZB_ZCL_BINARY_OUTPUT_RELINQUISH_DEFAULT_DEFAULT_VALUE false
/** @brief StatusFlag attribute minimum value */
#define ESP_ZB_ZCL_BINARY_OUTPUT_STATUS_FLAGS_MIN_VALUE 0x00U
/** @brief StatusFlag attribute maximum value */
#define ESP_ZB_ZCL_BINARY_OUTPUT_STATUS_FLAGS_MAX_VALUE 0x0FU
/** @brief StatusFlag attribute default value */
#define ESP_ZB_ZCL_BINARY_OUTPUT_STATUS_FLAGS_DEFAULT_VALUE ESP_ZB_ZCL_BINARY_OUTPUT_STATUS_FLAGS_MIN_VALUE
/** @brief StatusFlag attribute maximum value */
#define ESP_ZB_ZCL_BINARY_OUTPUT_APPLICATION_TYPE_MIN_VALUE 0
/** @brief StatusFlag attribute maximum value */
#define ESP_ZB_ZCL_BINARY_OUTPUT_APPLICATION_TYPE_MAX_VALUE ESP_ZB_ZCL_VALUE_U32_FF
/** @brief Values for StatusFlags attribute */
typedef enum {
ESP_ZB_ZCL_BINARY_OUTPUT_STATUS_FLAG_NORMAL = 0x00, /*!< Normal (default) state. */
ESP_ZB_ZCL_BINARY_OUTPUT_STATUS_FLAG_IN_ALARM = 0x01, /*!< In alarm bit. */
ESP_ZB_ZCL_BINARY_OUTPUT_STATUS_FLAG_FAULT = 0x02, /*!< Fault bit. */
ESP_ZB_ZCL_BINARY_OUTPUT_STATUS_FLAG_OVERRIDDEN = 0x04, /*!< Overridden bit. */
ESP_ZB_ZCL_BINARY_OUTPUT_STATUS_FLAG_OUT_OF_SERVICE = 0x08, /*!< Out of service bit. */
} esp_zb_zcl_binary_output_status_flags_value_t;
/** @brief Values for Reliability attribute */
typedef enum {
ESP_ZB_ZCL_BINARY_OUTPUT_RELIABILITY_NO_FAULT_DETECTED = 0x00, /*!< No fault detected */
ESP_ZB_ZCL_BINARY_OUTPUT_RELIABILITY_NO_SENSOR = 0x01, /*!< No sensor */
ESP_ZB_ZCL_BINARY_OUTPUT_RELIABILITY_OVER_RANGE = 0x02, /*!< Over range */
ESP_ZB_ZCL_BINARY_OUTPUT_RELIABILITY_UNDER_RANGE = 0x03, /*!< Under range */
ESP_ZB_ZCL_BINARY_OUTPUT_RELIABILITY_OPEN_LOOP = 0x04, /*!< Open loop */
ESP_ZB_ZCL_BINARY_OUTPUT_RELIABILITY_SHORTED_LOOP = 0x05, /*!< Shorted loop */
ESP_ZB_ZCL_BINARY_OUTPUT_RELIABILITY_NO_OUTPUT = 0x06, /*!< No output */
ESP_ZB_ZCL_BINARY_OUTPUT_RELIABILITY_UNRELIABLE_OTHER = 0x07, /*!< Unreliable other */
ESP_ZB_ZCL_BINARY_OUTPUT_RELIABILITY_PROCESS_ERROR = 0x08, /*!< Process error */
/* 0x09 is for multistate clusters only */
ESP_ZB_ZCL_BINARY_OUTPUT_RELIABILITY_CONFIGURATION_ERROR = 0x0a, /*!< Configuration error */
} esp_zb_zcl_binary_output_reliability_value_t;
/** Binary output cluster application types
* The ApplicationType attribute indicates the specific application usage
* for the cluster. ApplicationType is subdivided into Group, Type and
* an Index number, as follows:
*
* Group = Bits 24 to 31
* An indication of the cluster this attribute is part of. Binary output
* clusters have Group = 0x00.
*
* Type = Bits 16 to 23
* The physical quantity that the PresentValue attribute of the cluster
* represents.
*
* Index = Bits 0 to 15
* The specific application usage of the cluster.
*/
/** @brief Values for Polarity attribute */
typedef enum {
ESP_ZB_ZCL_BINARY_OUTPUT_POLARITY_NORMAL = 0x00, /*!< Normal polarity */
ESP_ZB_ZCL_BINARY_OUTPUT_POLARITY_REVERSE = 0x01, /*!< Reverse polarity */
} esp_zb_zcl_binary_output_polarity_value_t;
/** @brief Macros for ApplicationType attribute */
#define ESP_ZB_ZCL_BO_GROUP_ID 0x04
#define ESP_ZB_ZCL_BO_SET_APP_TYPE_WITH_ID(_type, _id) (((ESP_ZB_ZCL_BO_GROUP_ID & 0xFF) << 24) | (((_type) & 0xFF) << 16) | ((_id) & 0xFFFF))
/** @brief Values for Binary Output cluster application types (Type field, bits 16-23) */
typedef enum {
ESP_ZB_ZCL_BO_APP_TYPE_DOMAIN_HVAC = 0x00, /*!< Application Domain HVAC */
ESP_ZB_ZCL_BO_APP_TYPE_DOMAIN_SECURITY = 0x01, /*!< Application Domain Security */
/* 0x02 to 0xFE are reserved */
ESP_ZB_ZCL_BO_APP_TYPE_OTHER = 0xFF /*!< Other */
} esp_zb_zcl_bo_application_types_t;
/** @brief Values for Binary Output cluster HVAC application usages */
typedef enum {
ESP_ZB_ZCL_BO_DOMAIN_HVAC_2_PIPE_CIRCULATION_PUMP_STATUS =
ESP_ZB_ZCL_BO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_BO_APP_TYPE_DOMAIN_HVAC, 0x0000), /*!< 2 Pipe Circulation Pump BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_2_PIPE_VALVE, /*!< 2 Pipe Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_2_PIPE_VALVE_COMMAND, /*!< 2 Pipe Valve Command BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_BOILER, /*!< Boiler BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_BOILER_ISOLATION_VALVE, /*!< Boiler Isolation Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_BOILER_PUMP, /*!< Boiler Pump BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_BOX_COOLING_2_POSITION, /*!< Box Cooling 2 Position BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_BOX_HEATING_2_POSITION, /*!< Box Heating 2 Position BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_BOX_HEATING_ENABLE, /*!< Box Heating Enable BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_BOX_HEATING_STAGE_1, /*!< Box Heating Stage 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_BOX_HEATING_STAGE_2, /*!< Box Heating Stage 2 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_BOX_HEATING_STAGE_3, /*!< Box Heating Stage 3 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_CHILLER_1_ISOLATION_VALVE, /*!< Chiller 1 Isolation Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_CHILLER, /*!< Chiller BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_CHILLER_CHILLED_WATER_ISOLATION_VALVE, /*!< Chiller Chilled Water Isolation Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_CHILLER_CONDENSER_WATER_ISOLATION_VALVE, /*!< Chiller Condenser Water Isolation Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COMBUSTION_DAMPER, /*!< Combustion Damper BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COMPRESSOR_STAGE_1, /*!< Compressor Stage 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COMPRESSOR_STAGE_2, /*!< Compressor Stage 2 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COOLING_CIRCULATION_PUMP, /*!< Cooling Circulation Pump BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COOLING_STAGE_1, /*!< Cooling Stage 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COOLING_STAGE_2, /*!< Cooling Stage 2 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COOLING_STAGE_3, /*!< Cooling Stage 3 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COOLING_STAGE_4, /*!< Cooling Stage 4 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COOLING_STAGE_5, /*!< Cooling Stage 5 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COOLING_STAGE_6, /*!< Cooling Stage 6 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COOLING_STAGE_7, /*!< Cooling Stage 7 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COOLING_STAGE_8, /*!< Cooling Stage 8 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COOLING_VALVE, /*!< Cooling Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_COOLING_VALVE_COMMAND, /*!< Cooling Valve Command BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_CHILLED_WATER_PUMP, /*!< Chilled Water Pump BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_ECONOMIZER_ENABLE, /*!< Economizer Enable BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_EXHAUST_AIR_DAMPER, /*!< Exhaust Air Damper BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_EXHAUST_FAN, /*!< Exhaust Fan BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_FAN, /*!< Fan BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_FAN_SPEED_1, /*!< Fan Speed 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_FAN_SPEED_2, /*!< Fan Speed 2 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_FAN_SPEED_3, /*!< Fan Speed 3 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HEAT_RECOVERY_PUMP, /*!< Heat Recovery Pump BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HEAT_RECOVERY_VALVE, /*!< Heat Recovery Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HEAT_RECOVERY_WHEEL, /*!< Heat Recovery Wheel BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HEATING_STAGE_1, /*!< Heating Stage 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HEATING_STAGE_2, /*!< Heating Stage 2 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HEATING_STAGE_3, /*!< Heating Stage 3 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HEATING_VALVE, /*!< Heating Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HEATING_VALVE_COMMAND, /*!< Heating Valve Command BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HOT_GAS_BYPASS_VALVE, /*!< Hot Gas Bypass Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HUMIDIFICATION_STAGE_1, /*!< Humidification Stage 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HUMIDIFICATION_STAGE_2, /*!< Humidification Stage 2 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HUMIDIFICATION_STAGE_3, /*!< Humidification Stage 3 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HUMIDIFICATION_STAGE_4, /*!< Humidification Stage 4 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HUMIDIFIER_ENABLE, /*!< Humidifier Enable BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_HEAT_EXCHANGER_ISOLATION_VALVE, /*!< Heat Exchanger Isolation Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_LIGHTING, /*!< Lighting BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_MINIMUM_OUTSIDE_AIR_DAMPER, /*!< Minimum Outside Air Damper BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_MINIMUM_OUTSIDE_AIR_FAN, /*!< Minimum Outside Air Fan BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_OUTSIDE_AIR_DAMPER, /*!< Outside Air Damper BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PRIMARY_CHILLED_WATER_PUMP_1, /*!< Primary Chilled Water Pump 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PLATE_AND_FRAME_HEAT_EXCHANGER_ISOLATION_VALVE, /*!< Plate-and-Frame Heat Exchanger Isolation
Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PRIMARY_HOT_WATER_PUMP, /*!< Primary Hot Water Pump BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PRIMARY_HEAT_EXCHANGE_PUMP, /*!< Primary Heat Exchange Pump BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PREHEAT_CIRCULATION_PUMP, /*!< Preheat Circulation Pump BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PREHEAT_ENABLE, /*!< Preheat Enable BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PREHEAT_STAGE_1, /*!< Preheat Stage 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PREHEAT_STAGE_2, /*!< Preheat Stage 2 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PREHEAT_STAGE_3, /*!< Preheat Stage 3 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PREHEAT_STAGE_4, /*!< Preheat Stage 4 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PREHEAT_STAGE_5, /*!< Preheat Stage 5 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PREHEAT_STAGE_6, /*!< Preheat Stage 6 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PREHEAT_STAGE_7, /*!< Preheat Stage 7 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PREHEAT_STAGE_8, /*!< Preheat Stage 8 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_PREHEAT_VALVE, /*!< Preheat Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_REHEAT_CIRCULATION_PUMP, /*!< Reheat Circulation Pump BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_REHEAT_ENABLE, /*!< Reheat Enable BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_REHEAT_STAGE_1, /*!< Reheat Stage 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_REHEAT_STAGE_2, /*!< Reheat Stage 2 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_REHEAT_STAGE_3, /*!< Reheat Stage 3 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_REHEAT_STAGE_4, /*!< Reheat Stage 4 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_REHEAT_STAGE_5, /*!< Reheat Stage 5 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_REHEAT_STAGE_6, /*!< Reheat Stage 6 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_REHEAT_STAGE_7, /*!< Reheat Stage 7 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_REHEAT_STAGE_8, /*!< Reheat Stage 8 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_RELIEF_FAN, /*!< Relief Fan BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_RETURN_FAN, /*!< Return Fan BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_REVERSING_VALVE_1, /*!< Reversing Valve 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_REVERSING_VALVE_2, /*!< Reversing Valve 2 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SECONDARY_CHILLED_WATER_PUMP, /*!< Secondary Chilled Water Pump BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SECONDARY_HOT_WATER_PUMP, /*!< Secondary Hot Water Pump BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SECONDARY_HEAT_EXCHANGE_PUMP, /*!< Secondary Heat Exchange Pump BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SIDELOOP, /*!< Sideloop BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SIDELOOP_STAGE_1, /*!< Sideloop Stage 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SIDELOOP_STAGE_2, /*!< Sideloop Stage 2 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SIDELOOP_STAGE_3, /*!< Sideloop Stage 3 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SIDELOOP_STAGE_4, /*!< Sideloop Stage 4 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SIDELOOP_STAGE_5, /*!< Sideloop Stage 5 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SIDELOOP_STAGE_6, /*!< Sideloop Stage 6 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SIDELOOP_STAGE_7, /*!< Sideloop Stage 7 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SIDELOOP_STAGE_8, /*!< Sideloop Stage 8 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_STEAM_ISOLATION_VALVE, /*!< Steam Isolation Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SUPPLEMENTAL_HEATING_2_POSITION, /*!< Supplemental Heating 2 Position BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SUPPLEMENTAL_HEATING_STAGE_1, /*!< Supplemental Heating Stage 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SUPPLEMENTAL_HEATING_VALVE, /*!< Supplemental Heating Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SUPPLEMENTAL_HEATING_ENABLE, /*!< Supplemental Heating Enable BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SUPPLEMENTAL_HEATING_PUMP, /*!< Supplemental Heating Pump BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_SUPPLY_FAN, /*!< Supply Fan BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_TOWER_BASIN_HEATER_1, /*!< Tower Basin Heater BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_TOWER_BASIN_MAKEUP_1, /*!< Tower Basin Makeup BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_TOWER_BASIN_HEATER_2, /*!< Tower Basin Heater BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_TOWER_BASIN_MAKEUP_2, /*!< Tower Basin Makeup BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_TOWER_ISOLATION_VALVE, /*!< Tower Isolation Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_TOWER_FAN, /*!< Tower Fan BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_TOWER_FAN_SPEED_1, /*!< Tower Fan Speed 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_TOWER_FAN_SPEED_2, /*!< Tower Fan Speed 2 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_TOWER_FAN_SPEED_3, /*!< Tower Fan Speed 3 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_ZONE_HEATING_STAGE_1, /*!< Zone Heating Stage 1 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_ZONE_HEATING_STAGE_2, /*!< Zone Heating Stage 2 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_ZONE_HEATING_STAGE_3, /*!< Zone Heating Stage 3 BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_ZONE_HEATING_VALVE, /*!< Zone Heating Valve BO */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_2_PIPE_CIRCULATION_PUMP_2, /*!< 2 Pipe Circulation Pump BO */
/* 0x0200 to 0xFFFE are Vendor defined */
ESP_ZB_ZCL_BO_DOMAIN_HVAC_OTHER =
ESP_ZB_ZCL_BO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_BO_APP_TYPE_DOMAIN_HVAC, 0xFFFF) /*!< Other */
} esp_zb_zcl_bo_domain_hvac_t;
/** @brief Values for Binary Output cluster Security application usages */
typedef enum {
ESP_ZB_ZCL_BO_DOMAIN_SECURITY_ARM_DISARM_COMMAND = ESP_ZB_ZCL_BO_SET_APP_TYPE_WITH_ID(0x02, 0x0000), /*!< Arm Disarm Command BO */
ESP_ZB_ZCL_BO_DOMAIN_SECURITY_OCCUPANCY_CONTROL, /*!< Occupancy Control BO */
ESP_ZB_ZCL_BO_DOMAIN_SECURITY_ENABLE_CONTROL, /*!< Enable Control BO */
ESP_ZB_ZCL_BO_DOMAIN_SECURITY_ACCESS_CONTROL, /*!< Access Control BO */
/* 0x0200 to 0xFFFE are Vendor defined */
ESP_ZB_ZCL_BO_DOMAIN_SECURITY_OTHER = ESP_ZB_ZCL_BO_SET_APP_TYPE_WITH_ID(0x02, 0xFFFF) /*!< Other */
} esp_zb_zcl_bo_domain_security_t;
void esp_zb_zcl_binary_output_init_server(void);
void esp_zb_zcl_binary_output_init_client(void);
#define ESP_ZB_ZCL_CLUSTER_ID_BINARY_OUTPUT_SERVER_ROLE_INIT esp_zb_zcl_binary_output_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_BINARY_OUTPUT_CLIENT_ROLE_INIT esp_zb_zcl_binary_output_init_client
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,94 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Binary Value cluster attribute identifiers. */
typedef enum {
ESP_ZB_ZCL_ATTR_BINARY_VALUE_ACTIVE_TEXT_ID = 0x0004U, /*!< Human readable description of the ACTIVE state. */
ESP_ZB_ZCL_ATTR_BINARY_VALUE_DESCRIPTION_ID = 0x001CU, /*!< Description of the usage. */
ESP_ZB_ZCL_ATTR_BINARY_VALUE_INACTIVE_TEXT_ID = 0x002EU, /*!< Human readable description of the INACTIVE state. */
ESP_ZB_ZCL_ATTR_BINARY_VALUE_MIN_OFF_TIME_ID = 0x0042U, /*!< Minimum Off Time. */
ESP_ZB_ZCL_ATTR_BINARY_VALUE_MIN_ON_TIME_ID = 0x0043U, /*!< Minimum On Time. */
ESP_ZB_ZCL_ATTR_BINARY_VALUE_OUT_OF_SERVICE_ID = 0x0051U, /*!< OutOfService attribute. */
ESP_ZB_ZCL_ATTR_BINARY_VALUE_PRESENT_VALUE_ID = 0x0055U, /*!< PresentValue attribute. */
/** TODO: support PriorityArray Attribute */
// ESP_ZB_ZCL_ATTR_BINARY_VALUE_PRIORITY_ARRAY_ID = 0x0057U, /*!< Priority Array attribute. */
ESP_ZB_ZCL_ATTR_BINARY_VALUE_RELIABILITY_ID = 0x0067U, /*!< Reliability. */
ESP_ZB_ZCL_ATTR_BINARY_VALUE_RELINQUISH_DEFAULT_ID = 0x0068U, /*!< Relinquish default. */
ESP_ZB_ZCL_ATTR_BINARY_VALUE_STATUS_FLAGS_ID = 0x006FU, /*!< StatusFlag attribute. */
ESP_ZB_ZCL_ATTR_BINARY_VALUE_APPLICATION_TYPE_ID = 0x0100U, /*!< ApplicationType attribute. */
} esp_zb_zcl_binary_value_attr_t;
/** @brief Default value for ActiveText attribute */
#define ESP_ZB_ZCL_BINARY_VALUE_ACTIVE_TEXT_DEFAULT_VALUE {0}
/** @brief Default value for Description attribute */
#define ESP_ZB_ZCL_BINARY_VALUE_DESCRIPTION_DEFAULT_VALUE {0}
/** @brief Default value for InactiveText attribute */
#define ESP_ZB_ZCL_BINARY_VALUE_INACTIVE_TEXT_DEFAULT_VALUE {0}
/** @brief Default value for MinOffTime attribute */
#define ESP_ZB_ZCL_BINARY_VALUE_MIN_OFF_TIME_DEFAULT_VALUE ESP_ZB_ZCL_VALUE_U32_FF
/** @brief Default value for MinOnTime attribute */
#define ESP_ZB_ZCL_BINARY_VALUE_MIN_ON_TIME_DEFAULT_VALUE ESP_ZB_ZCL_VALUE_U32_FF
/** @brief OutOfService attribute default value */
#define ESP_ZB_ZCL_BINARY_VALUE_OUT_OF_SERVICE_DEFAULT_VALUE false
/** @brief Default value for PresentValue attribute */
#define ESP_ZB_ZCL_BINARY_VALUE_PRESENT_VALUE_DEFAULT_VALUE false
/** @brief Default value for Reliability attribute */
#define ESP_ZB_ZCL_BINARY_VALUE_RELIABILITY_DEFAULT_VALUE ((uint8_t)0)
/** @brief Default value for RelinquishDefault attribute */
#define ESP_ZB_ZCL_BINARY_VALUE_RELINQUISH_DEFAULT_DEFAULT_VALUE false
/** @brief Default value for StatusFlag attribute */
#define ESP_ZB_ZCL_BINARY_VALUE_STATUS_FLAGS_DEFAULT_VALUE 0
/** @brief StatusFlag attribute minimum value */
#define ESP_ZB_ZCL_BINARY_VALUE_STATUS_FLAGS_MIN_VALUE 0x00U
/** @brief StatusFlag attribute maximum value */
#define ESP_ZB_ZCL_BINARY_VALUE_STATUS_FLAGS_MAX_VALUE 0x0FU
/** @brief Default value for ApplicationType attribute */
#define ESP_ZB_ZCL_BINARY_VALUE_APPLICATION_TYPE_DEFAULT_VALUE 0
/** @brief Values for StatusFlags attribute */
typedef enum {
ESP_ZB_ZCL_BINARY_VALUE_STATUS_FLAG_NORMAL = 0x00, /*!< Normal (default) state. */
ESP_ZB_ZCL_BINARY_VALUE_STATUS_FLAG_IN_ALARM = 0x01, /*!< In alarm bit. */
ESP_ZB_ZCL_BINARY_VALUE_STATUS_FLAG_FAULT = 0x02, /*!< Fault bit. */
ESP_ZB_ZCL_BINARY_VALUE_STATUS_FLAG_OVERRIDDEN = 0x04, /*!< Overridden bit. */
ESP_ZB_ZCL_BINARY_VALUE_STATUS_FLAG_OUT_OF_SERVICE = 0x08, /*!< Out of service bit. */
} esp_zb_zcl_binary_value_status_flags_value_t;
/** @brief Values for Reliability attribute */
typedef enum {
ESP_ZB_ZCL_BINARY_VALUE_RELIABILITY_NO_FAULT_DETECTED = 0x00, /*!< No fault detected */
ESP_ZB_ZCL_BINARY_VALUE_RELIABILITY_NO_SENSOR = 0x01, /*!< No sensor */
ESP_ZB_ZCL_BINARY_VALUE_RELIABILITY_OVER_RANGE = 0x02, /*!< Over range */
ESP_ZB_ZCL_BINARY_VALUE_RELIABILITY_UNDER_RANGE = 0x03, /*!< Under range */
ESP_ZB_ZCL_BINARY_VALUE_RELIABILITY_OPEN_LOOP = 0x04, /*!< Open loop */
ESP_ZB_ZCL_BINARY_VALUE_RELIABILITY_SHORTED_LOOP = 0x05, /*!< Shorted loop */
ESP_ZB_ZCL_BINARY_VALUE_RELIABILITY_NO_OUTPUT = 0x06, /*!< No output */
ESP_ZB_ZCL_BINARY_VALUE_RELIABILITY_UNRELIABLE_OTHER = 0x07, /*!< Unreliable other */
ESP_ZB_ZCL_BINARY_VALUE_RELIABILITY_PROCESS_ERROR = 0x08, /*!< Process error */
/* 0x09 is for multistate clusters only */
ESP_ZB_ZCL_BINARY_VALUE_RELIABILITY_CONFIGURATION_ERROR = 0x0a, /*!< Configuration error */
} esp_zb_zcl_binary_value_reliability_value_t;
/** @brief Macros for ApplicationType attribute */
#define ESP_ZB_ZCL_BV_GROUP_ID 0x05
#define ESP_ZB_ZCL_BV_SET_APP_TYPE_WITH_ID(_type, _id) (((ESP_ZB_ZCL_BV_GROUP_ID & 0xFF) << 24) | (((_type) & 0xFF) << 16) | ((_id) & 0xFFFF))
void esp_zb_zcl_binary_value_init_server(void);
void esp_zb_zcl_binary_value_init_client(void);
#define ESP_ZB_ZCL_CLUSTER_ID_BINARY_VALUE_SERVER_ROLE_INIT esp_zb_zcl_binary_value_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_BINARY_VALUE_CLIENT_ROLE_INIT esp_zb_zcl_binary_value_init_client
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,58 @@
/*
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Carbon Dioxide Measurement cluster attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MEASURED_VALUE_ID = 0x0000, /*!< MeasuredValue attribute */
ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MIN_MEASURED_VALUE_ID = 0x0001, /*!< MinMeasuredValue attribute */
ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MAX_MEASURED_VALUE_ID = 0x0002, /*!< MaxMeasuredValue attribute */
ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_TOLERANCE_ID = 0x0003, /*!< Tolerance attribute */
} esp_zb_zcl_carbon_dioxide_measurement_attr_t;
/** @brief Minimum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_CARBON_DIOXIDE_MEASUREMENT_MIN_MEASURED_VALUE_MINIMUM (0.0)
/** @brief Maximum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_CARBON_DIOXIDE_MEASUREMENT_MIN_MEASURED_VALUE_MAXIMUM (1.0)
/** @brief Minimum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_CARBON_DIOXIDE_MEASUREMENT_MAX_MEASURED_VALUE_MINIMUM (0.0)
/** @brief Maximum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_CARBON_DIOXIDE_MEASUREMENT_MAX_MEASURED_VALUE_MAXIMUM (1.0)
/** @brief Unknown value for MeasuredValue attribute */
#define ESP_ZB_ZCL_CARBON_DIOXIDE_MEASUREMENT_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_NaN
/** @brief Unknown value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_CARBON_DIOXIDE_MEASUREMENT_MIN_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_NaN
/** @brief Unknown value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_CARBON_DIOXIDE_MEASUREMENT_MAX_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_NaN
/** @brief Default value for MeasuredValue attribute */
#define ESP_ZB_ZCL_CARBON_DIOXIDE_MEASUREMENT_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_NaN
/** @brief Default value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_CARBON_DIOXIDE_MEASUREMENT_MIN_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_NaN
/** @brief Default value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_CARBON_DIOXIDE_MEASUREMENT_MAX_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_NaN
void esp_zb_zcl_carbon_dioxide_measurement_init_server(void);
#define ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT_SERVER_ROLE_INIT esp_zb_zcl_carbon_dioxide_measurement_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT_CLIENT_ROLE_INIT NULL
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,146 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/**
* @brief Color control attribute list
*/
typedef enum {
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_HUE_ID = 0x0000, /*!< Current_HUE attribute */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_SATURATION_ID = 0x0001, /*!< Current Saturation attribute */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_REMAINING_TIME_ID = 0x0002, /*!< Remaining Time attribute */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_X_ID = 0x0003, /*!< CurrentX attribute */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_Y_ID = 0x0004, /*!< CurrentY attribute */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_DRIFT_COMPENSATION_ID = 0x0005, /*!< The DriftCompensation attribute indicates what mechanism */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_COMPENSATION_TEXT_ID = 0x0006, /*!< The CompensationText attribute holds a textual indication of what mechanism */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_TEMPERATURE_ID = 0x0007, /*!< Color Temperature Mireds attribute */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_MODE_ID = 0x0008, /*!< Color Mode attribute */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_OPTIONS_ID = 0x000f, /*!< The Options attribute is a bitmap that determines the default behavior of some cluster commands. */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_ENHANCED_CURRENT_HUE_ID = 0x4000, /*!< The EnhancedCurrentHue attribute represents non-equidistant steps along the CIE 1931 color triangle. */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_ENHANCED_COLOR_MODE_ID = 0x4001, /*!< The EnhancedColorMode attribute specifies which attributes are currently determining the color of the device. */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_ACTIVE_ID = 0x4002, /*!< The ColorLoopActive attribute specifies the current active status of the color loop. */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_DIRECTION_ID = 0x4003, /*!< The ColorLoopDirection attribute specifies the current direction of the color loop. */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_TIME_ID = 0x4004, /*!< The ColorLoopTime attribute specifies the number of seconds it SHALL take to perform a full color loop. */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_START_ENHANCED_HUE_ID = 0x4005, /*!< The ColorLoopStartEnhancedHue attribute specifies the value of the EnhancedCurrentHue attribute from which the color loop SHALL be started. */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_ID = 0x4006, /*!< The ColorLoopStoredEnhancedHue attribute specifies the value of the EnhancedCurrentHue attribute before the color loop was stored. */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_CAPABILITIES_ID = 0x400a, /*!< The ColorCapabilities attribute specifies the color capabilities of the device */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_MIREDS_ID = 0x400b, /*!< The ColorTempPhysicalMinMireds attribute indicates the minimum mired value supported by the hardware. */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_MIREDS_ID = 0x400c, /*!< The ColorTempPhysicalMaxMireds attribute indicates the maximum mired value supported by the hardware. */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_COUPLE_COLOR_TEMP_TO_LEVEL_MIN_MIREDS_ID = 0x400d, /*!< The CoupleColorTempToLevelMinMireds attribute specifies a lower bound on the value of the ColorTemperatureMireds attribute */
ESP_ZB_ZCL_ATTR_COLOR_CONTROL_START_UP_COLOR_TEMPERATURE_MIREDS_ID = 0x4010, /*!< The StartUpColorTemperatureMireds attribute SHALL define the desired startup color temperature value a lamp SHALL use when it is supplied with power. */
} esp_zb_zcl_color_control_attr_t;
/** @brief Default value for CurrentHue attribute */
#define ESP_ZB_ZCL_COLOR_CONTROL_CURRENT_HUE_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Default value for CurrentSaturation attribute */
#define ESP_ZB_ZCL_COLOR_CONTROL_CURRENT_SATURATION_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Default value for RemainingTime attribute */
#define ESP_ZB_ZCL_COLOR_CONTROL_REMAINING_TIME_DEFAULT_VALUE ((uint16_t)0x00)
/** @brief Current X attribute default value */
#define ESP_ZB_ZCL_COLOR_CONTROL_CURRENT_X_DEF_VALUE 0x616b
/** @brief Current Y attribute default value */
#define ESP_ZB_ZCL_COLOR_CONTROL_CURRENT_Y_DEF_VALUE 0x607d
/** @brief Color Temperature default value (4000K) */
#define ESP_ZB_ZCL_COLOR_CONTROL_COLOR_TEMPERATURE_DEF_VALUE 0x00fa
/** @brief Default value for ColorMode attribute */
#define ESP_ZB_ZCL_COLOR_CONTROL_COLOR_MODE_DEFAULT_VALUE ((uint8_t)0x01)
/** @brief Default value for Options attribute */
#define ESP_ZB_ZCL_COLOR_CONTROL_OPTIONS_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Default value for EnhancedCurrentHue attribute */
#define ESP_ZB_ZCL_COLOR_CONTROL_ENHANCED_CURRENT_HUE_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for EnhancedColorMode attribute */
#define ESP_ZB_ZCL_COLOR_CONTROL_ENHANCED_COLOR_MODE_DEFAULT_VALUE ((uint8_t)0x01)
/** @brief Default value for ColorLoopActive attribute */
#define ESP_ZB_ZCL_COLOR_CONTROL_COLOR_LOOP_ACTIVE_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Default value for ColorLoopDirection attribute */
#define ESP_ZB_ZCL_COLOR_CONTROL_COLOR_LOOP_DIRECTION_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Color Loop Time attribute default value */
#define ESP_ZB_ZCL_COLOR_CONTROL_COLOR_LOOP_TIME_DEF_VALUE 0x0019
/** @brief Color Loop Start Enhanced Hue attribute default value */
#define ESP_ZB_ZCL_COLOR_CONTROL_COLOR_LOOP_START_DEF_VALUE 0x2300
/** @brief Default value for ColorLoopStoredEnhancedHue attribute */
#define ESP_ZB_ZCL_COLOR_CONTROL_COLOR_LOOP_STORED_ENHANCED_HUE_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for ColorCapabilities attribute */
#define ESP_ZB_ZCL_COLOR_CONTROL_COLOR_CAPABILITIES_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for ColorTempPhysicalMinMireds attribute */
#define ESP_ZB_ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MIN_MIREDS_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for ColorTempPhysicalMaxMireds attribute */
#define ESP_ZB_ZCL_COLOR_CONTROL_COLOR_TEMP_PHYSICAL_MAX_MIREDS_DEFAULT_VALUE ((uint16_t)0xFEFF)
/** @brief Color control cluster command identifiers
*/
typedef enum {
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_TO_HUE = 0x00, /*!< Move To Hue command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_HUE = 0x01, /*!< Move Hue command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_STEP_HUE = 0x02, /*!< Step Hue command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_TO_SATURATION = 0x03, /*!< Move To Saturation command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_SATURATION = 0x04, /*!< Move Saturation command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_STEP_SATURATION = 0x05, /*!< Step Saturation command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_TO_HUE_SATURATION = 0x06, /*!< Move To Hue and Saturation command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_TO_COLOR = 0x07, /*!< Move To Color command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_COLOR = 0x08, /*!< Move Color command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_STEP_COLOR = 0x09, /*!< Step Color command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_TO_COLOR_TEMPERATURE = 0x0a, /*!< Move to color temperature command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_ENHANCED_MOVE_TO_HUE = 0x40, /*!< Enhanced move to hue command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_ENHANCED_MOVE_HUE = 0x41, /*!< Enhanced move hue command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_ENHANCED_STEP_HUE = 0x42, /*!< Enhanced step hue command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_ENHANCED_MOVE_TO_HUE_SATURATION = 0x43, /*!< Enhanced move to hue and saturation command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_COLOR_LOOP_SET = 0x44, /*!< Color loop set command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_STOP_MOVE_STEP = 0x47, /*!< Stop move step command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_COLOR_TEMPERATURE = 0x4b, /*!< Move color temperature command */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_STEP_COLOR_TEMPERATURE = 0x4c, /*!< Step color temperature command */
} esp_zb_zcl_color_control_cmd_id_t;
/** @brief Direction of Move to Hue defines
*/
typedef enum {
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_TO_HUE_SHORTEST = 0x00, /*!< Shortest distance */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_TO_HUE_LONGEST = 0x01, /*!< Longest distance */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_TO_HUE_UP = 0x02, /*!< Up */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_TO_HUE_DOWN = 0x03, /*!< Down */
} esp_zb_zcl_color_control_move_to_hue_direction_t;
/** @brief Direction of Move mode defines.
*/
typedef enum {
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_STOP = 0x00, /*!< Stop */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_UP = 0x01, /*!< Up */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_MOVE_DOWN = 0x03, /*!< Down */
} esp_zb_zcl_color_control_move_mode_t;
/** @brief Direction of Step mode defines.
*/
typedef enum {
ESP_ZB_ZCL_CMD_COLOR_CONTROL_STEP_UP = 0x01, /*!< Up */
ESP_ZB_ZCL_CMD_COLOR_CONTROL_STEP_DOWN = 0x03, /*!< Down */
} esp_zb_zcl_color_control_step_mode_t;
#ifdef __cplusplus
}
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,178 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Commissioning Cluster server attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_COMMISSIONING_SHORT_ADDRESS_ID = 0x0000, /**< ShortAddress Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_EXTENDED_PANID_ID = 0x0001, /**< ExtendedPANId Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_PANID_ID = 0x0002, /**< PANId Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_CHANNEL_MASK_ID = 0x0003, /**< ChannelMask Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_PROTOCOL_VERSION_ID = 0x0004, /**< ProtocolVersion Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_STACK_PROFILE_ID = 0x0005, /**< StackProfile Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_STARTUP_CONTROL_ID = 0x0006, /**< StartupControl Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_TRUST_CENTER_ADDRESS_ID = 0x0010, /**< TrustCenterAddress Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_TRUST_CENTER_MASTER_KEY_ID = 0x0011, /**< TrustCenterMasterKey Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_NETWORK_KEY_ID = 0x0012, /**< NetworkKey Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_USE_INSECURE_JOIN_ID = 0x0013, /**< UseInsecureJoin Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_PRECONFIGURED_LINK_KEY_ID = 0x0014, /**< PreconfiguredLinkKey Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_NETWORK_KEY_SEQ_NUM_ID = 0x0015, /**< NetworkKeySeqNum Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_NETWORK_KEY_TYPE_ID = 0x0016, /**< NetworkKeyType Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_NETWORK_MANAGER_ADDRESS_ID = 0x0017, /**< NetworkManagerAddress Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_SCAN_ATTEMPTS_ID = 0x0020, /**< ScanAttempts Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_TIME_BETWEEN_SCANS_ID = 0x0021, /**< TimeBetweenScans Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_REJOIN_INTERVAL_ID = 0x0022, /**< RejoinInterval Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_MAX_REJOIN_INTERVAL_ID = 0x0023, /**< MaxRejoinInterval Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_INDIRECT_POLL_RATE_ID = 0x0030, /**< IndirectPollRate Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_PARENT_RETRY_THRESHOLD_ID = 0x0031, /**< ParentRetryThreshold Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_CONCENTRATOR_FLAG_ID = 0x0040, /**< ConcentratorFlag Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_CONCENTRATOR_RADIUS_ID = 0x0041, /**< ConcentratorRadius Attribute */
ESP_ZB_ZCL_ATTR_COMMISSIONING_CONCENTRATOR_DISCOVERY_TIME_ID = 0x0042, /**< ConcentratorDiscoveryTime Attribute */
} esp_zb_zcl_commissioning_srv_attr_t;
/** @brief Values for valid Startup Control attribute */
typedef enum {
ESP_ZB_ZCL_ATTR_COMMISSIONING_STARTUP_TYPE_JOINED = 0x00,
ESP_ZB_ZCL_ATTR_COMMISSIONING_STARTUP_TYPE_FORM = 0x01,
ESP_ZB_ZCL_ATTR_COMMISSIONING_STARTUP_TYPE_REJOIN = 0x02,
ESP_ZB_ZCL_ATTR_COMMISSIONING_STARTUP_TYPE_SCRATCH = 0x03,
} esp_zb_zcl_commissioning_startup_type_t;
/** @brief Minimum value for ShortAddress attribute */
#define ESP_ZB_ZCL_COMMISSIONING_SHORT_ADDRESS_MIN_VALUE ((uint16_t)0x0)
/** @brief Maximum value for ShortAddress attribute */
#define ESP_ZB_ZCL_COMMISSIONING_SHORT_ADDRESS_MAX_VALUE ((uint16_t)0xfff7)
/** @brief Minimum value for ProtocolVersion attribute */
#define ESP_ZB_ZCL_COMMISSIONING_PROTOCOL_VERSION_MIN_VALUE ((uint8_t)0x2)
/** @brief Maximum value for ProtocolVersion attribute */
#define ESP_ZB_ZCL_COMMISSIONING_PROTOCOL_VERSION_MAX_VALUE ((uint8_t)0x2)
/** @brief Minimum value for StackProfile attribute */
#define ESP_ZB_ZCL_COMMISSIONING_STACK_PROFILE_MIN_VALUE ((uint8_t)0x1)
/** @brief Maximum value for StackProfile attribute */
#define ESP_ZB_ZCL_COMMISSIONING_STACK_PROFILE_MAX_VALUE ((uint8_t)0x2)
/** @brief Minimum value for StartupControl attribute */
#define ESP_ZB_ZCL_COMMISSIONING_STARTUP_CONTROL_MIN_VALUE ((uint8_t)0x0)
/** @brief Maximum value for StartupControl attribute */
#define ESP_ZB_ZCL_COMMISSIONING_STARTUP_CONTROL_MAX_VALUE ((uint8_t)0x3)
/** @brief Default value for ExtendedPANId attribute */
#define ESP_ZB_ZCL_COMMISSIONING_EXTENDED_PANID_DEFAULT_VALUE {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
/** @brief Default value for ProtocolVersion attribute */
#define ESP_ZB_ZCL_COMMISSIONING_PROTOCOL_VERSION_DEFAULT_VALUE ((uint8_t)ZB_PROTOCOL_VERSION)
/** @brief Default value for StackProfile attribute */
#define ESP_ZB_ZCL_COMMISSIONING_STACK_PROFILE_DEFAULT_VALUE ((uint8_t)ZB_STACK_PROFILE)
/** @brief Default value for ProtocolVersion attribute */
#define ESP_ZB_ZCL_COMMISSIONING_STARTUP_CONTROL_DEFAULT_VALUE ((uint8_t)ESP_ZB_ZCL_ATTR_COMMISSIONING_STARTUP_TYPE_SCRATCH)
/** @brief Default value for UseInsecureJoin attribute */
#define ESP_ZB_ZCL_COMMISSIONING_USE_INSECURE_JOIN_DEFAULT_VALUE ((bool)0x1)
/** @brief Commissioning Cluster server command identifiers */
typedef enum {
ESP_ZB_ZCL_CMD_COMMISSIONING_RESTART_DEVICE_RESPONSE_ID = 0x0000, /**< "Restart Device Response" command. */
ESP_ZB_ZCL_CMD_COMMISSIONING_SAVE_STARTUP_PARAMETERS_RESPONSE_ID = 0x0001, /**< "Save Startup Parameters Response" command. */
ESP_ZB_ZCL_CMD_COMMISSIONING_RESTORE_STARTUP_PARAMETERS_RESPONSE_ID = 0x0002, /**< "Restore Startup Parameters Response" command. */
ESP_ZB_ZCL_CMD_COMMISSIONING_RESET_STARTUP_PARAMETERS_RESPONSE_ID = 0x0003, /**< "Reset Startup Parameters Response" command. */
} esp_zb_zcl_commissioning_srv_cmd_id_t;
/** @brief Commissioning Cluster client command identifiers */
typedef enum {
ESP_ZB_ZCL_CMD_COMMISSIONING_RESTART_DEVICE_ID = 0x0000, /**< "Restart Device" command. */
ESP_ZB_ZCL_CMD_COMMISSIONING_SAVE_STARTUP_PARAMETERS_ID = 0x0001, /**< "Save Startup Parameters" command. */
ESP_ZB_ZCL_CMD_COMMISSIONING_RESTORE_STARTUP_PARAMETERS_ID = 0x0002, /**< "Restore Startup Parameters" command. */
ESP_ZB_ZCL_CMD_COMMISSIONING_RESET_STARTUP_PARAMETERS_ID = 0x0003, /**< "Reset Startup Parameters" command. */
} esp_zb_zcl_commissioning_cli_cmd_id_t;
/**
* @brief The values of "startup_mode" bitfield in "options" field of "esp_zb_zcl_commissioning_restart_device_payload_t"
*/
typedef enum {
ESP_ZB_ZCL_COMMISSIONING_STARTUP_MODE_USE_PARAMETER_SET = 0,
ESP_ZB_ZCL_COMMISSIONING_STARTUP_MODE_USE_CURRENT_STACK = 1,
} esp_zb_zcl_commissioning_startup_mode_t;
/**
* @brief "options" field of "esp_zb_zcl_commissioning_restart_device_payload_t"
*/
typedef union {
uint8_t u8; /**< Restart device options */
struct {
uint8_t startup_mode : 3; /**< startup mode: bit 0 - 2 */
uint8_t immediate : 1; /**< immediate: bit 3 */
uint8_t /* reserved */ : 4; /**< reserved: bit 4 - 7 */
};
} esp_zb_zcl_commissioning_restart_device_options_t;
/**
* @brief "Restart Device Response" Command Payload Format
*/
typedef struct esp_zb_zcl_commissioning_restart_device_payload_s {
esp_zb_zcl_commissioning_restart_device_options_t options; /*!< Options for restart device */
uint8_t delay; /*!< Startup procedure is to be invoked, in seconds */
uint8_t jitter; /*!< Specifies a random jitter range, in millisecond */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_commissioning_restart_device_payload_t;
/**
* @brief ESP_ZB_ZCL_CMD_COMMISSIONING_SAVE_STARTUP_PARAMETERS_ID "Save Startup Parameters" Command Payload Format
*/
typedef struct esp_zb_zcl_commissioning_save_startup_parameters_payload_s {
uint8_t options; /*!< Reserved field */
uint8_t index; /*!< The current startup parameter attribute set is to be saved */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_commissioning_save_startup_parameters_payload_t;
/**
* @brief ESP_ZB_ZCL_CMD_COMMISSIONING_RESTORE_STARTUP_PARAMETERS_ID "Restore Startup Parameters" Command Payload Format
*/
typedef struct esp_zb_zcl_commissioning_restore_startup_parameters_payload_s {
uint8_t options; /*!< Reserved field */
uint8_t index; /*!< Index of the saved startup parameter attribute set to be restored to current status */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_commissioning_restore_startup_parameters_payload_t;
/**
* @brief "options" field of "esp_zb_zcl_commissioning_reset_startup_parameters_payload_t"
*/
typedef union {
uint8_t u8; /**< Reset startup options */
struct {
uint8_t reset_current : 1; /**< reset current: bit 0 */
uint8_t reset_all : 1; /**< reset all: bit 1 */
uint8_t erase_index : 1; /**< erase index: bit 2 */
uint8_t /* reserved */ : 5; /**< reserved: bit 3 - 7 */
};
} esp_zb_zcl_commissioning_reset_startup_param_options_t;
/**
* @brief "Reset Startup Parameters" Command Payload Format
*/
typedef struct esp_zb_zcl_commissioning_reset_startup_parameters_payload_s {
esp_zb_zcl_commissioning_reset_startup_param_options_t options; /*!< The options of reset startup parameter */
uint8_t index; /*!< Index of a saved startup parameter attribute set */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_commissioning_reset_startup_parameters_payload_t;
void esp_zb_zcl_commissioning_init_server(void);
void esp_zb_zcl_commissioning_init_client(void);
#define ESP_ZB_ZCL_CLUSTER_ID_COMMISSIONING_SERVER_ROLE_INIT esp_zb_zcl_commissioning_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_COMMISSIONING_CLIENT_ROLE_INIT esp_zb_zcl_commissioning_init_client
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,441 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_err.h"
#include "esp_zigbee_type.h"
#include "aps/esp_zigbee_aps.h"
#ifdef ZB_ENABLE_ZGP
#include "esp_zigbee_zcl_green_power.h"
#endif
/** Green power special endpoint */
#define ESP_ZGP_ENDPOINT 242
/** Non manufacturer specific code for certain attribute */
#define ESP_ZB_ZCL_ATTR_NON_MANUFACTURER_SPECIFIC 0xFFFFU
/** Non manufacturer specific code for certain cluster */
#define EZP_ZB_ZCL_CLUSTER_NON_MANUFACTURER_SPECIFIC 0x0000
/** Defined the ZCL command of address_mode */
typedef esp_zb_aps_address_mode_t esp_zb_zcl_address_mode_t;
/**
* @brief Application Framework Profile identifiers.
*
*/
typedef enum {
ESP_ZB_AF_HA_PROFILE_ID = 0x0104U, /** HA profile ID */
ESP_ZB_AF_SE_PROFILE_ID = 0x0109U, /** SE profile ID */
ESP_ZB_AF_ZLL_PROFILE_ID = 0xC05EU, /** ZLL profile ID */
ESP_ZB_AF_GP_PROFILE_ID = 0xA1E0U, /** GreenPower profile ID */
} esp_zb_af_profile_id_t;
/** @brief HA Device identifiers.
*/
typedef enum {
ESP_ZB_HA_ON_OFF_SWITCH_DEVICE_ID = 0x0000, /*!< General On/Off switch */
ESP_ZB_HA_LEVEL_CONTROL_SWITCH_DEVICE_ID = 0x0001, /*!< Level Control Switch */
ESP_ZB_HA_ON_OFF_OUTPUT_DEVICE_ID = 0x0002, /*!< General On/Off output */
ESP_ZB_HA_LEVEL_CONTROLLABLE_OUTPUT_DEVICE_ID = 0x0003, /*!< Level Controllable Output */
ESP_ZB_HA_SCENE_SELECTOR_DEVICE_ID = 0x0004, /*!< Scene Selector */
ESP_ZB_HA_CONFIGURATION_TOOL_DEVICE_ID = 0x0005, /*!< Configuration Tool */
ESP_ZB_HA_REMOTE_CONTROL_DEVICE_ID = 0x0006, /*!< Remote Control */
ESP_ZB_HA_COMBINED_INTERFACE_DEVICE_ID = 0x0007, /*!< Combined Interface */
ESP_ZB_HA_RANGE_EXTENDER_DEVICE_ID = 0x0008, /*!< Range Extender */
ESP_ZB_HA_MAINS_POWER_OUTLET_DEVICE_ID = 0x0009, /*!< Mains Power Outlet */
ESP_ZB_HA_DOOR_LOCK_DEVICE_ID = 0x000A, /*!< Door lock client */
ESP_ZB_HA_DOOR_LOCK_CONTROLLER_DEVICE_ID = 0x000B, /*!< Door lock controller */
ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID = 0x000C, /*!< Simple Sensor device */
ESP_ZB_HA_CONSUMPTION_AWARENESS_DEVICE_ID = 0x000D, /*!< Consumption Awareness Device */
ESP_ZB_HA_HOME_GATEWAY_DEVICE_ID = 0x0050, /*!< Home Gateway */
ESP_ZB_HA_SMART_PLUG_DEVICE_ID = 0x0051, /*!< Smart plug */
ESP_ZB_HA_WHITE_GOODS_DEVICE_ID = 0x0052, /*!< White Goods */
ESP_ZB_HA_METER_INTERFACE_DEVICE_ID = 0x0053, /*!< Meter Interface */
ESP_ZB_HA_ON_OFF_LIGHT_DEVICE_ID = 0x0100, /*!< On/Off Light Device */
ESP_ZB_HA_DIMMABLE_LIGHT_DEVICE_ID = 0x0101, /*!< Dimmable Light Device */
ESP_ZB_HA_COLOR_DIMMABLE_LIGHT_DEVICE_ID = 0x0102, /*!< Color Dimmable Light Device */
ESP_ZB_HA_DIMMER_SWITCH_DEVICE_ID = 0x0104, /*!< Dimmer Switch Device */
ESP_ZB_HA_COLOR_DIMMER_SWITCH_DEVICE_ID = 0x0105, /*!< Color Dimmer Switch Device */
ESP_ZB_HA_LIGHT_SENSOR_DEVICE_ID = 0x0106, /*!< Light Sensor Device */
ESP_ZB_HA_SHADE_DEVICE_ID = 0x0200, /*!< Shade */
ESP_ZB_HA_SHADE_CONTROLLER_DEVICE_ID = 0x0201, /*!< Shade controller */
ESP_ZB_HA_WINDOW_COVERING_DEVICE_ID = 0x0202, /*!< Window Covering client*/
ESP_ZB_HA_WINDOW_COVERING_CONTROLLER_DEVICE_ID = 0x0203, /*!< Window Covering controller */
ESP_ZB_HA_HEATING_COOLING_UNIT_DEVICE_ID = 0x0300, /*!< Heating/Cooling Unit device */
ESP_ZB_HA_THERMOSTAT_DEVICE_ID = 0x0301, /*!< Thermostat Device */
ESP_ZB_HA_TEMPERATURE_SENSOR_DEVICE_ID = 0x0302, /*!< Temperature Sensor */
ESP_ZB_HA_IAS_CONTROL_INDICATING_EQUIPMENT_ID = 0x0400, /*!< IAS Control and Indicating Equipment */
ESP_ZB_HA_IAS_ANCILLARY_CONTROL_EQUIPMENT_ID = 0x0401, /*!< IAS Ancillary Control Equipment */
ESP_ZB_HA_IAS_ZONE_ID = 0x0402, /*!< IAS Zone */
ESP_ZB_HA_IAS_WARNING_DEVICE_ID = 0x0403, /*!< IAS Warning Device */
ESP_ZB_HA_TEST_DEVICE_ID = 0xfff0, /*!< Custom HA device for test */
ESP_ZB_HA_CUSTOM_TUNNEL_DEVICE_ID = 0xfff1, /*!< Custom Tunnel device (should declared in private profile) */
ESP_ZB_HA_CUSTOM_ATTR_DEVICE_ID = 0xfff2 /*!< Custom Attributes Device */
} esp_zb_ha_standard_devices_t;
/**
* @brief ZCL cluster role enum
* @anchor esp_zb_zcl_cluster_role
*/
typedef enum {
ESP_ZB_ZCL_CLUSTER_SERVER_ROLE = 0x01U, /*!< Server cluster role */
ESP_ZB_ZCL_CLUSTER_CLIENT_ROLE = 0x02U, /*!< Client cluster role */
} esp_zb_zcl_cluster_role_t;
/**
* @brief ZCL cluster identifiers
* @anchor esp_zb_zcl_cluster_id
*/
typedef enum {
ESP_ZB_ZCL_CLUSTER_ID_BASIC = 0x0000U, /*!< Basic cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_POWER_CONFIG = 0x0001U, /*!< Power configuration cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_DEVICE_TEMP_CONFIG = 0x0002U, /*!< Device temperature configuration cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY = 0x0003U, /*!< Identify cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_GROUPS = 0x0004U, /*!< Groups cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_SCENES = 0x0005U, /*!< Scenes cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_ON_OFF = 0x0006U, /*!< On/Off cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_ON_OFF_SWITCH_CONFIG = 0x0007U, /*!< On/Off switch configuration cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL = 0x0008U, /*!< Level control cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_ALARMS = 0x0009U, /*!< Alarms cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_TIME = 0x000aU, /*!< Time cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_RSSI_LOCATION = 0x000bU, /*!< RSSI location cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_ANALOG_INPUT = 0x000cU, /*!< Analog input (basic) cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_ANALOG_OUTPUT = 0x000dU, /*!< Analog output (basic) cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_ANALOG_VALUE = 0x000eU, /*!< Analog value (basic) cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_BINARY_INPUT = 0x000fU, /*!< Binary input (basic) cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_BINARY_OUTPUT = 0x0010U, /*!< Binary output (basic) cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_BINARY_VALUE = 0x0011U, /*!< Binary value (basic) cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_MULTI_INPUT = 0x0012U, /*!< Multistate input (basic) cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_MULTI_OUTPUT = 0x0013U, /*!< Multistate output (basic) cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_MULTI_VALUE = 0x0014U, /*!< Multistate value (basic) cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_COMMISSIONING = 0x0015U, /*!< Commissioning cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_OTA_UPGRADE = 0x0019U, /*!< Over The Air cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_POLL_CONTROL = 0x0020U, /*!< Poll control cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_GREEN_POWER = 0x0021U, /*!< Green Power cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_KEEP_ALIVE = 0x0025U, /*!< Keep Alive cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_SHADE_CONFIG = 0x0100U, /*!< Shade configuration cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_DOOR_LOCK = 0x0101U, /*!< Door lock cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_WINDOW_COVERING = 0x0102U, /*!< Window covering cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_PUMP_CONFIG_CONTROL = 0x0200U, /*!< Pump configuration and control cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_THERMOSTAT = 0x0201U, /*!< Thermostat cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_FAN_CONTROL = 0x0202U, /*!< Fan control cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_DEHUMIDIFICATION_CONTROL = 0x0203U, /*!< Dehumidification control cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_THERMOSTAT_UI_CONFIG = 0x0204U, /*!< Thermostat user interface configuration cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_COLOR_CONTROL = 0x0300U, /*!< Color control cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_BALLAST_CONFIG = 0x0301U, /*!< Ballast configuration cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT = 0x0400U, /*!< Illuminance measurement */
ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT = 0x0402U, /*!< Temperature measurement */
ESP_ZB_ZCL_CLUSTER_ID_PRESSURE_MEASUREMENT = 0x0403U, /*!< Pressure measurement */
ESP_ZB_ZCL_CLUSTER_ID_FLOW_MEASUREMENT = 0x0404U, /*!< Flow measurement */
ESP_ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT = 0x0405U, /*!< Relative humidity measurement */
ESP_ZB_ZCL_CLUSTER_ID_OCCUPANCY_SENSING = 0x0406U, /*!< Occupancy sensing */
ESP_ZB_ZCL_CLUSTER_ID_PH_MEASUREMENT = 0x0409U, /*!< pH measurement */
ESP_ZB_ZCL_CLUSTER_ID_EC_MEASUREMENT = 0x040aU, /*!< Electrical conductivity measurement */
ESP_ZB_ZCL_CLUSTER_ID_WIND_SPEED_MEASUREMENT = 0x040bU, /*!< Wind speed measurement */
ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT = 0x040dU, /*!< Carbon dioxide measurement */
ESP_ZB_ZCL_CLUSTER_ID_PM2_5_MEASUREMENT = 0x042aU, /*!< PM2.5 measurement */
ESP_ZB_ZCL_CLUSTER_ID_IAS_ZONE = 0x0500U, /*!< IAS zone */
ESP_ZB_ZCL_CLUSTER_ID_IAS_ACE = 0x0501U, /*!< IAS ACE */
ESP_ZB_ZCL_CLUSTER_ID_IAS_WD = 0x0502U, /*!< IAS WD */
ESP_ZB_ZCL_CLUSTER_ID_PRICE = 0x0700U, /*!< Price cluster identifier. */
ESP_ZB_ZCL_CLUSTER_ID_DRLC = 0x0701U, /*!< Demand Response and Load Control cluster identifier */
ESP_ZB_ZCL_CLUSTER_ID_METERING = 0x0702U, /*!< Metering */
ESP_ZB_ZCL_CLUSTER_ID_METER_IDENTIFICATION = 0x0b01U, /*!< Meter Identification cluster identifier */
ESP_ZB_ZCL_CLUSTER_ID_ELECTRICAL_MEASUREMENT = 0x0b04U, /*!< Electrical measurement */
ESP_ZB_ZCL_CLUSTER_ID_DIAGNOSTICS = 0x0b05U, /*!< Home Automation Diagnostics */
} esp_zb_zcl_cluster_id_t;
/**
* @brief ZCL status values
* @anchor esp_zb_zcl_status
*/
typedef enum {
ESP_ZB_ZCL_STATUS_SUCCESS = 0x00U, /*!< ZCL Success */
ESP_ZB_ZCL_STATUS_FAIL = 0x01U, /*!< ZCL Fail */
ESP_ZB_ZCL_STATUS_NOT_AUTHORIZED = 0x7EU, /*!< Server is not authorized to upgrade the client */
ESP_ZB_ZCL_STATUS_MALFORMED_CMD = 0x80U, /*!< Malformed command */
ESP_ZB_ZCL_STATUS_UNSUP_CLUST_CMD = 0x81U, /*!< Unsupported cluster command */
ESP_ZB_ZCL_STATUS_UNSUP_GEN_CMD = 0x82U, /*!< Unsupported general command */
ESP_ZB_ZCL_STATUS_UNSUP_MANUF_CLUST_CMD = 0x83U, /*!< Unsupported manuf-specific clust command */
ESP_ZB_ZCL_STATUS_UNSUP_MANUF_GEN_CMD = 0x84U, /*!< Unsupported manuf-specific general command */
ESP_ZB_ZCL_STATUS_INVALID_FIELD = 0x85U, /*!< Invalid field */
ESP_ZB_ZCL_STATUS_UNSUP_ATTRIB = 0x86U, /*!< Unsupported attribute */
ESP_ZB_ZCL_STATUS_INVALID_VALUE = 0x87U, /*!< Invalid value */
ESP_ZB_ZCL_STATUS_READ_ONLY = 0x88U, /*!< Read only */
ESP_ZB_ZCL_STATUS_INSUFF_SPACE = 0x89U, /*!< Insufficient space */
ESP_ZB_ZCL_STATUS_DUPE_EXISTS = 0x8aU, /*!< Duplicate exists */
ESP_ZB_ZCL_STATUS_NOT_FOUND = 0x8bU, /*!< Not found */
ESP_ZB_ZCL_STATUS_UNREPORTABLE_ATTRIB = 0x8cU, /*!< Unreportable attribute */
ESP_ZB_ZCL_STATUS_INVALID_TYPE = 0x8dU, /*!< Invalid type */
ESP_ZB_ZCL_STATUS_WRITE_ONLY = 0x8fU, /*!< Write only */
ESP_ZB_ZCL_STATUS_INCONSISTENT = 0x92U, /*!< Supplied values are inconsistent */
ESP_ZB_ZCL_STATUS_ACTION_DENIED = 0x93U,
ESP_ZB_ZCL_STATUS_TIMEOUT = 0x94U, /*!< Timeout */
ESP_ZB_ZCL_STATUS_ABORT = 0x95U, /*!< Abort */
ESP_ZB_ZCL_STATUS_INVALID_IMAGE = 0x96U, /*!< Invalid OTA upgrade image */
ESP_ZB_ZCL_STATUS_WAIT_FOR_DATA = 0x97U, /*!< Server does not have data block available yet */
ESP_ZB_ZCL_STATUS_NO_IMAGE_AVAILABLE = 0x98U,
ESP_ZB_ZCL_STATUS_REQUIRE_MORE_IMAGE = 0x99U,
ESP_ZB_ZCL_STATUS_NOTIFICATION_PENDING = 0x9AU,
ESP_ZB_ZCL_STATUS_HW_FAIL = 0xc0U, /*!< Hardware failure */
ESP_ZB_ZCL_STATUS_SW_FAIL = 0xc1U, /*!< Software failure */
ESP_ZB_ZCL_STATUS_CALIB_ERR = 0xc2U, /*!< Calibration error */
ESP_ZB_ZCL_STATUS_UNSUP_CLUST = 0xc3U, /*!< Cluster is not found on the target endpoint */
ESP_ZB_ZCL_STATUS_LIMIT_REACHED = 0xc4U, /*!< Cluster is not found on the target endpoint */
} esp_zb_zcl_status_t;
/**
* @brief ZCL attribute data type values
* @anchor esp_zb_zcl_attr_type
*/
typedef enum {
ESP_ZB_ZCL_ATTR_TYPE_NULL = 0x00U, /*!< Null data type */
ESP_ZB_ZCL_ATTR_TYPE_8BIT = 0x08U, /*!< 8-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_16BIT = 0x09U, /*!< 16-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_24BIT = 0x0aU, /*!< 24-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_32BIT = 0x0bU, /*!< 32-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_40BIT = 0x0cU, /*!< 40-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_48BIT = 0x0dU, /*!< 48-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_56BIT = 0x0eU, /*!< 56-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_64BIT = 0x0fU, /*!< 64-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_BOOL = 0x10U, /*!< Boolean data type */
ESP_ZB_ZCL_ATTR_TYPE_8BITMAP = 0x18U, /*!< 8-bit bitmap data type */
ESP_ZB_ZCL_ATTR_TYPE_16BITMAP = 0x19U, /*!< 16-bit bitmap data type */
ESP_ZB_ZCL_ATTR_TYPE_24BITMAP = 0x1aU, /*!< 24-bit bitmap data type */
ESP_ZB_ZCL_ATTR_TYPE_32BITMAP = 0x1bU, /*!< 32-bit bitmap data type */
ESP_ZB_ZCL_ATTR_TYPE_40BITMAP = 0x1cU, /*!< 40-bit bitmap data type */
ESP_ZB_ZCL_ATTR_TYPE_48BITMAP = 0x1dU, /*!< 48-bit bitmap data type */
ESP_ZB_ZCL_ATTR_TYPE_56BITMAP = 0x1eU, /*!< 56-bit bitmap data type */
ESP_ZB_ZCL_ATTR_TYPE_64BITMAP = 0x1fU, /*!< 64-bit bitmap data type */
ESP_ZB_ZCL_ATTR_TYPE_U8 = 0x20U, /*!< Unsigned 8-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_U16 = 0x21U, /*!< Unsigned 16-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_U24 = 0x22U, /*!< Unsigned 24-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_U32 = 0x23U, /*!< Unsigned 32-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_U40 = 0x24U, /*!< Unsigned 40-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_U48 = 0x25U, /*!< Unsigned 48-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_U56 = 0x26U, /*!< Unsigned 56-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_U64 = 0x27U, /*!< Unsigned 64-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_S8 = 0x28U, /*!< Signed 8-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_S16 = 0x29U, /*!< Signed 16-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_S24 = 0x2aU, /*!< Signed 24-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_S32 = 0x2bU, /*!< Signed 32-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_S40 = 0x2cU, /*!< Signed 40-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_S48 = 0x2dU, /*!< Signed 48-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_S56 = 0x2eU, /*!< Signed 56-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_S64 = 0x2fU, /*!< Signed 64-bit value data type */
ESP_ZB_ZCL_ATTR_TYPE_8BIT_ENUM = 0x30U, /*!< 8-bit enumeration (U8 discrete) data type */
ESP_ZB_ZCL_ATTR_TYPE_16BIT_ENUM = 0x31U, /*!< 16-bit enumeration (U16 discrete) data type */
ESP_ZB_ZCL_ATTR_TYPE_SEMI = 0x38U, /*!< 2 byte floating point */
ESP_ZB_ZCL_ATTR_TYPE_SINGLE = 0x39U, /*!< 4 byte floating point */
ESP_ZB_ZCL_ATTR_TYPE_DOUBLE = 0x3aU, /*!< 8 byte floating point */
ESP_ZB_ZCL_ATTR_TYPE_OCTET_STRING = 0x41U, /*!< Octet string data type */
ESP_ZB_ZCL_ATTR_TYPE_CHAR_STRING = 0x42U, /*!< Character string (array) data type */
ESP_ZB_ZCL_ATTR_TYPE_LONG_OCTET_STRING = 0x43U, /*!< Long octet string */
ESP_ZB_ZCL_ATTR_TYPE_LONG_CHAR_STRING = 0x44U, /*!< Long character string */
ESP_ZB_ZCL_ATTR_TYPE_ARRAY = 0x48U, /*!< Array data with 8bit type, size = 2 + sum of content len */
ESP_ZB_ZCL_ATTR_TYPE_16BIT_ARRAY = 0x49U, /*!< Array data with 16bit type, size = 2 + sum of content len */
ESP_ZB_ZCL_ATTR_TYPE_32BIT_ARRAY = 0x4aU, /*!< Array data with 32bit type, size = 2 + sum of content len */
ESP_ZB_ZCL_ATTR_TYPE_STRUCTURE = 0x4cU, /*!< Structure data type 2 + sum of content len */
ESP_ZB_ZCL_ATTR_TYPE_SET = 0x50U, /*!< Collection:set, size = sum of len of content */
ESP_ZB_ZCL_ATTR_TYPE_BAG = 0x51U, /*!< Collection:bag, size = sum of len of content */
ESP_ZB_ZCL_ATTR_TYPE_TIME_OF_DAY = 0xe0U, /*!< Time of day, 4 bytes */
ESP_ZB_ZCL_ATTR_TYPE_DATE = 0xe1U, /*!< Date, 4 bytes */
ESP_ZB_ZCL_ATTR_TYPE_UTC_TIME = 0xe2U, /*!< UTC Time, 4 bytes */
ESP_ZB_ZCL_ATTR_TYPE_CLUSTER_ID = 0xe8U, /*!< Cluster ID, 2 bytes */
ESP_ZB_ZCL_ATTR_TYPE_ATTRIBUTE_ID = 0xe9U, /*!< Attribute ID, 2 bytes */
ESP_ZB_ZCL_ATTR_TYPE_BACNET_OID = 0xeaU, /*!< BACnet OID, 4 bytes */
ESP_ZB_ZCL_ATTR_TYPE_IEEE_ADDR = 0xf0U, /*!< IEEE address (U64) type */
ESP_ZB_ZCL_ATTR_TYPE_128_BIT_KEY = 0xf1U, /*!< 128-bit security key */
ESP_ZB_ZCL_ATTR_TYPE_INVALID = 0xffU, /*!< Invalid data type */
} esp_zb_zcl_attr_type_t;
/**
* @brief ZCL attribute access values
* @anchor esp_zb_zcl_attr_access
*/
typedef enum {
ESP_ZB_ZCL_ATTR_ACCESS_READ_ONLY = 0x01U, /*!< Attribute is read only */
ESP_ZB_ZCL_ATTR_ACCESS_WRITE_ONLY = 0x02U, /*!< Attribute is write only */
ESP_ZB_ZCL_ATTR_ACCESS_READ_WRITE = 0x03U, /*!< Attribute is read/write */
ESP_ZB_ZCL_ATTR_ACCESS_REPORTING = 0x04U, /*!< Attribute is allowed for reporting */
ESP_ZB_ZCL_ATTR_ACCESS_SINGLETON = 0x08U, /*!< Attribute is singleton */
ESP_ZB_ZCL_ATTR_ACCESS_SCENE = 0x10U, /*!< Attribute is accessed through scene */
ESP_ZB_ZCL_ATTR_MANUF_SPEC = 0x20U, /*!< Attribute is manufacturer specific */
ESP_ZB_ZCL_ATTR_ACCESS_INTERNAL = 0x40U, /*!< Internal access only Attribute */
} esp_zb_zcl_attr_access_t;
/**
* @brief ZCL command direction enum
* @anchor esp_zb_zcl_cmd_direction
*/
typedef enum {
ESP_ZB_ZCL_CMD_DIRECTION_TO_SRV = 0x00U, /*!< Command for cluster server side */
ESP_ZB_ZCL_CMD_DIRECTION_TO_CLI = 0x01U, /*!< Command for cluster client side */
} esp_zb_zcl_cmd_direction_t;
/**
* @brief ZCL report direction enum of attribute
* @anchor esp_zb_zcl_report_direction_t
*/
typedef enum {
ESP_ZB_ZCL_REPORT_DIRECTION_SEND = 0x00U, /**< Report should be sent by a cluster. */
ESP_ZB_ZCL_REPORT_DIRECTION_RECV = 0x01U, /**< Report should be received by a cluster. */
} esp_zb_zcl_report_direction_t;
/**
* @brief The Zigbee zcl cluster attribute value struct
*
*/
typedef struct esp_zb_zcl_attribute_data_s {
esp_zb_zcl_attr_type_t type; /*!< The type of attribute, which can refer to esp_zb_zcl_attr_type_t */
uint16_t size; /*!< The value size of attribute */
void *value; /*!< The value of attribute, Note that if the type is string/array, the first byte of value indicates the string length */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_attribute_data_t;
/**
* @brief The Zigbee zcl cluster attribute struct
*
*/
typedef struct esp_zb_zcl_attribute_s {
uint16_t id; /*!< The identify of attribute */
esp_zb_zcl_attribute_data_t data; /*!< The data of attribute */
} esp_zb_zcl_attribute_t;
/**
* @brief The Zigbee zcl cluster command properties struct
*
*/
typedef struct esp_zb_zcl_command_s {
uint8_t id; /*!< The command id */
uint8_t direction; /*!< The command direction */
uint8_t is_common; /*!< The command is common type */
} esp_zb_zcl_command_t;
/**
* @brief The Zigbee ZCL basic command info
*
*/
typedef struct esp_zb_zcl_basic_cmd_s {
esp_zb_addr_u dst_addr_u; /*!< Single short address or group address */
uint8_t dst_endpoint; /*!< Destination endpoint */
uint8_t src_endpoint; /*!< Source endpoint */
} esp_zb_zcl_basic_cmd_t;
/**
* @brief The Zigbee ZCL command common struct, no command specific payload
*
*/
typedef struct esp_zb_zcl_common_cmd_s {
esp_zb_zcl_basic_cmd_t zcl_basic_cmd; /*!< Basic command info */
esp_zb_zcl_address_mode_t address_mode; /*!< APS addressing mode constants refer to esp_zb_zcl_address_mode_t */
} esp_zb_zcl_common_cmd_t;
/**
* @brief The Zigbee zcl cluster device callback common information
*
*/
typedef struct esp_zb_device_cb_common_info_s {
esp_zb_zcl_status_t status; /*!< The operation status of ZCL, refer to esp_zb_zcl_status_t */
uint8_t dst_endpoint; /*!< The destination endpoint id of the ZCL indication */
uint16_t cluster; /*!< The cluster id of the ZCL indication */
} esp_zb_device_cb_common_info_t;
/**
* @brief The frame header of Zigbee zcl command struct
*
* @note frame control field:
* |----1 bit---|---------1 bit---------|---1 bit---|----------1 bit-----------|---4 bit---|
* | Frame type | Manufacturer specific | Direction | Disable Default Response | Reserved |
*
*/
typedef struct esp_zb_zcl_frame_header_s {
uint8_t fc; /*!< A 8-bit Frame control */
uint16_t manuf_code; /*!< Manufacturer code */
uint8_t tsn; /*!< Transaction sequence number */
int8_t rssi; /*!< Signal strength */
} esp_zb_zcl_frame_header_t;
/**
* @brief The Zigbee zcl command basic application information struct
*
*/
typedef struct esp_zb_zcl_cmd_info_s {
esp_zb_zcl_status_t status; /*!< The status of command, which can refer to esp_zb_zcl_status_t */
esp_zb_zcl_frame_header_t header; /*!< The command frame properties, which can refer to esp_zb_zcl_frame_field_t */
esp_zb_zcl_addr_t src_address; /*!< The struct of address contains short and ieee address, which can refer to esp_zb_zcl_addr_s */
uint16_t dst_address; /*!< The destination short address of command */
uint8_t src_endpoint; /*!< The source endpoint of command */
uint8_t dst_endpoint; /*!< The destination endpoint of command */
uint16_t cluster; /*!< The cluster id for command */
uint16_t profile; /*!< The application profile identifier*/
esp_zb_zcl_command_t command; /*!< The properties of command */
} esp_zb_zcl_cmd_info_t;
/**
* @brief The ZCL attribute location information struct
*
*/
typedef struct esp_zb_zcl_attr_location_info_s {
uint8_t endpoint_id; /*!< The endpoint identifier on which the cluster id is resident. */
uint16_t cluster_id; /*!< The cluster identifier on which the attribute is resident, refer to esp_zb_zcl_cluster_id_t */
uint8_t cluster_role; /*!< The role of cluster, refer to esp_zb_zcl_cluster_role_t */
uint16_t manuf_code; /*!< The manufacturer code of attribute */
uint16_t attr_id; /*!< The attribute identifier */
} esp_zb_zcl_attr_location_info_t;
/**
* @brief ZCL Cluster Check Attribute Value Handler, which should be called before attribute change and checks if new value is in correct range
* and can be applied.
*
* @param[in] attr_id ZCL Attribute ID
* @param[in] endpoint Device endpoint
* @param[in] value Pointer to the new Attribute Value
*
* @return The result of check value whose value refer to esp_err_t
*/
typedef signed int (*esp_zb_zcl_cluster_check_value_callback_t)(uint16_t attr_id, uint8_t endpoint, uint8_t *value);
/**
* @brief ZCL Cluster Write Attribute Handler, which should be called before attribute change (if any cluster-specific action needs to
* be bound to attribute change, it can be placed in this handler).
*
* @param[in] endpoint Device endpoint
* @param[in] attr_id ZCL Attribute ID
* @param[in] new_value Pointer to the new Attribute Value
* @param[in] manuf_code Manufacturer specific code
*/
typedef void (*esp_zb_zcl_cluster_write_attr_callback_t)(uint8_t endpoint, uint16_t attr_id, uint8_t *new_value, uint16_t manuf_code);
/**
* @brief Get the size of ZCL attribute value
*
* @param[in] attr_type The data type of attribute value
* @param[in] attr_value The value of attribute
* @return
* - 0x00 - 0xFFFE: The size of attribute value
* - 0xFFFF: Invalid size
*/
uint16_t esp_zb_zcl_get_attribute_size(uint8_t attr_type, uint8_t *attr_value);
/**
* @brief Put the ZCL attribute value to specific memory
*
* @param data_ptr A pointer of specific memory
* @param type The data type of attribute value
* @param value The value of attribute
* @param value_size The size of attribute value
* @return A pointer indicates the end location in specific memory after a value has been stored
*/
uint8_t *esp_zb_zcl_put_attribute_value(uint8_t *data_ptr, uint8_t type, uint8_t *value, uint16_t value_size);
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,353 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include "esp_err.h"
#include "esp_zigbee_type.h"
#include "esp_zigbee_zcl_common.h"
#include "esp_zigbee_zcl_basic.h"
#include "esp_zigbee_zcl_identify.h"
#include "esp_zigbee_zcl_groups.h"
#include "esp_zigbee_zcl_scenes.h"
#include "esp_zigbee_zcl_on_off.h"
#include "esp_zigbee_zcl_on_off_switch_config.h"
#include "esp_zigbee_zcl_level.h"
#include "esp_zigbee_zcl_color_control.h"
#include "esp_zigbee_zcl_time.h"
#include "esp_zigbee_zcl_binary_input.h"
#include "esp_zigbee_zcl_commissioning.h"
#include "esp_zigbee_zcl_ias_zone.h"
#include "esp_zigbee_zcl_ias_ace.h"
#include "esp_zigbee_zcl_ias_wd.h"
#include "esp_zigbee_zcl_shade_config.h"
#include "esp_zigbee_zcl_door_lock.h"
#include "esp_zigbee_zcl_humidity_meas.h"
#include "esp_zigbee_zcl_temperature_meas.h"
#include "esp_zigbee_zcl_ota.h"
#include "esp_zigbee_zcl_electrical_meas.h"
#include "esp_zigbee_zcl_illuminance_meas.h"
#include "esp_zigbee_zcl_pressure_meas.h"
#include "esp_zigbee_zcl_flow_meas.h"
#include "esp_zigbee_zcl_occupancy_sensing.h"
#include "esp_zigbee_zcl_window_covering.h"
#include "esp_zigbee_zcl_thermostat.h"
#include "esp_zigbee_zcl_fan_control.h"
#include "esp_zigbee_zcl_thermostat_ui_config.h"
#include "esp_zigbee_zcl_analog_input.h"
#include "esp_zigbee_zcl_analog_output.h"
#include "esp_zigbee_zcl_analog_value.h"
#include "esp_zigbee_zcl_carbon_dioxide_measurement.h"
#include "esp_zigbee_zcl_pm2_5_measurement.h"
#include "esp_zigbee_zcl_multistate_value.h"
#include "esp_zigbee_zcl_metering.h"
#include "esp_zigbee_zcl_diagnostics.h"
#include "esp_zigbee_zcl_meter_identification.h"
#include "esp_zigbee_zcl_price.h"
#include "esp_zigbee_zcl_ec_measurement.h"
#include "esp_zigbee_zcl_ph_measurement.h"
#include "esp_zigbee_zcl_wind_speed_measurement.h"
#include "esp_zigbee_zcl_drlc.h"
#include "esp_zigbee_zcl_dehumidification_control.h"
#include "esp_zigbee_zcl_binary_input.h"
#include "esp_zigbee_zcl_binary_output.h"
#include "esp_zigbee_zcl_binary_value.h"
#include "esp_zigbee_zcl_multistate_input.h"
#include "esp_zigbee_zcl_multistate_output.h"
#include "esp_zigbee_zcl_multistate_value.h"
#include "esp_zigbee_zcl_poll_control.h"
#include "esp_zigbee_zcl_device_temp_config.h"
#include "esp_zigbee_zcl_alarms.h"
#include "esp_zigbee_zcl_command.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Enum of the Zigbee core action callback id
*
* @note
* 1. If one endpoint possesses the same custom cluster identifier in both client and server roles,
* any request or response command for the custom cluster will only trigger the
* ``ESP_ZB_CORE_CMD_CUSTOM_CLUSTER_REQ_CB_ID`` callback.
* 2. The callback ids without ``CMD`` in their names would provide messages of the following structure:
* @code{c}
* typedef struct xxx_message_s {
* esp_zb_device_cb_common_info_t info;
* ...
* } xxx_message_t;
* @endcode
* While the callback ids with ``CMD`` in their names would provide messages of the following structure:
* @code{c}
* typedef struct xxx_message_s {
* esp_zb_zcl_cmd_info_t info;
* ...
* } xxx_message_t;
* @endcode
*
*/
typedef enum esp_zb_core_action_callback_id_s {
ESP_ZB_CORE_SET_ATTR_VALUE_CB_ID = 0x0000, /*!< Set attribute value, refer to esp_zb_zcl_set_attr_value_message_t */
ESP_ZB_CORE_SCENES_STORE_SCENE_CB_ID = 0x0001, /*!< Store scene, refer to esp_zb_zcl_store_scene_message_t */
ESP_ZB_CORE_SCENES_RECALL_SCENE_CB_ID = 0x0002, /*!< Recall scene, refer to esp_zb_zcl_recall_scene_message_t */
ESP_ZB_CORE_IAS_ZONE_ENROLL_RESPONSE_VALUE_CB_ID = 0x0003, /*!< IAS Zone enroll response, refer to esp_zb_zcl_ias_zone_enroll_response_message_t */
ESP_ZB_CORE_OTA_UPGRADE_VALUE_CB_ID = 0x0004, /*!< Upgrade OTA, refer to esp_zb_zcl_ota_upgrade_value_message_t */
ESP_ZB_CORE_OTA_UPGRADE_SRV_STATUS_CB_ID = 0x0005, /*!< OTA Server status, refer to esp_zb_zcl_ota_upgrade_server_status_message_t */
ESP_ZB_CORE_OTA_UPGRADE_SRV_QUERY_IMAGE_CB_ID = 0x0006, /*!< OTA Server query image, refer to esp_zb_zcl_ota_upgrade_server_query_image_message_t */
ESP_ZB_CORE_THERMOSTAT_VALUE_CB_ID = 0x0007, /*!< Thermostat value, refer to esp_zb_zcl_thermostat_value_message_t */
ESP_ZB_CORE_METERING_GET_PROFILE_CB_ID = 0x0008, /*!< Metering get profile, refer to esp_zb_zcl_metering_get_profile_message_t */
ESP_ZB_CORE_METERING_GET_PROFILE_RESP_CB_ID = 0x0009, /*!< Metering get profile response, refer to esp_zb_zcl_metering_get_profile_resp_message_t */
ESP_ZB_CORE_METERING_REQ_FAST_POLL_MODE_CB_ID = 0x000a, /*!< Metering request fast poll mode, refer to esp_zb_zcl_metering_request_fast_poll_mode_message_t */
ESP_ZB_CORE_METERING_REQ_FAST_POLL_MODE_RESP_CB_ID = 0x000b, /*!< Metering request fast poll mode response, refer to esp_zb_zcl_metering_request_fast_poll_mode_resp_message_t */
ESP_ZB_CORE_METERING_GET_SNAPSHOT_CB_ID = 0x000c, /*!< Metering get snapshot, refer to esp_zb_zcl_metering_get_snapshot_message_t */
ESP_ZB_CORE_METERING_PUBLISH_SNAPSHOT_CB_ID = 0x000d, /*!< Metering publish snapshot, refer to esp_zb_zcl_metering_publish_snapshot_message_t */
ESP_ZB_CORE_METERING_GET_SAMPLED_DATA_CB_ID = 0x000e, /*!< Metering get sampled data, refer to esp_zb_zcl_metering_get_sampled_data_message_t */
ESP_ZB_CORE_METERING_GET_SAMPLED_DATA_RESP_CB_ID = 0x000f, /*!< Metering get sampled data response, refer to esp_zb_zcl_metering_get_sampled_data_resp_message_t */
ESP_ZB_CORE_DOOR_LOCK_LOCK_DOOR_CB_ID = 0x0010, /*!< Lock/unlock door request, refer to esp_zb_zcl_door_lock_lock_door_message_t */
ESP_ZB_CORE_DOOR_LOCK_LOCK_DOOR_RESP_CB_ID = 0x0011, /*!< Lock/unlock door response, refer to esp_zb_zcl_door_lock_lock_door_resp_message_t */
ESP_ZB_CORE_IDENTIFY_EFFECT_CB_ID = 0x0012, /*!< Identify triggers effect request, refer to esp_zb_zcl_identify_effect_message_t */
ESP_ZB_CORE_BASIC_RESET_TO_FACTORY_RESET_CB_ID = 0x0013, /*!< Reset all clusters of endpoint to factory default, refer to esp_zb_zcl_basic_reset_factory_default_message_t */
ESP_ZB_CORE_PRICE_GET_CURRENT_PRICE_CB_ID = 0x0014, /*!< Price get current price, refer to esp_zb_zcl_price_get_current_price_message_t */
ESP_ZB_CORE_PRICE_GET_SCHEDULED_PRICES_CB_ID = 0x0015, /*!< Price get scheduled prices, refer to esp_zb_zcl_price_get_scheduled_prices_message_t */
ESP_ZB_CORE_PRICE_GET_TIER_LABELS_CB_ID = 0x0016, /*!< Price get tier labels, refer to esp_zb_zcl_price_get_tier_labels_message_t */
ESP_ZB_CORE_PRICE_PUBLISH_PRICE_CB_ID = 0x0017, /*!< Price publish price, refer to esp_zb_zcl_price_publish_price_message_t */
ESP_ZB_CORE_PRICE_PUBLISH_TIER_LABELS_CB_ID = 0x0018, /*!< Price publish tier labels, refer to esp_zb_zcl_price_publish_tier_labels_message_t */
ESP_ZB_CORE_PRICE_PRICE_ACK_CB_ID = 0x0019, /*!< Price price acknowledgement, refer to esp_zb_zcl_price_ack_message_t */
ESP_ZB_CORE_COMM_RESTART_DEVICE_CB_ID = 0x001a, /*!< Commissioning restart device, refer to esp_zigbee_zcl_commissioning_restart_device_message_t */
ESP_ZB_CORE_COMM_OPERATE_STARTUP_PARAMS_CB_ID = 0x001b, /*!< Commissioning operate startup parameters, refer to esp_zigbee_zcl_commissioning_operate_startup_parameters_message_t */
ESP_ZB_CORE_COMM_COMMAND_RESP_CB_ID = 0x001c, /*!< Commissioning command response, refer to esp_zigbee_zcl_commissioning_command_response_message_t */
ESP_ZB_CORE_IAS_WD_START_WARNING_CB_ID = 0x001d, /*!< IAS WD cluster Start Warning command, refer to esp_zb_zcl_ias_wd_start_warning_message_t */
ESP_ZB_CORE_IAS_WD_SQUAWK_CB_ID = 0x001e, /*!< IAS WD cluster Squawk command, refer to esp_zb_zcl_ias_wd_squawk_message_t */
ESP_ZB_CORE_IAS_ACE_ARM_CB_ID = 0x001f, /*!< IAS ACE cluster Arm command, refer to esp_zb_zcl_ias_ace_arm_message_t */
ESP_ZB_CORE_IAS_ACE_BYPASS_CB_ID = 0x0020, /*!< IAS ACE cluster Bypass command, refer to esp_zb_zcl_ias_ace_bypass_message_t */
ESP_ZB_CORE_IAS_ACE_EMERGENCY_CB_ID = 0x0021, /*!< IAS ACE cluster Emergency command, refer to esp_zb_zcl_ias_ace_emergency_message_t */
ESP_ZB_CORE_IAS_ACE_FIRE_CB_ID = 0x0022, /*!< IAS ACE cluster Fire command, refer to esp_zb_zcl_ias_ace_fire_message_t */
ESP_ZB_CORE_IAS_ACE_PANIC_CB_ID = 0x0023, /*!< IAS ACE cluster Panic command, refer to esp_zb_zcl_ias_ace_panic_message_t */
ESP_ZB_CORE_IAS_ACE_GET_PANEL_STATUS_CB_ID = 0x0024, /*!< IAS ACE cluster Get Panel Status command, refer to esp_zb_zcl_ias_ace_get_panel_status_message_t */
ESP_ZB_CORE_IAS_ACE_GET_BYPASSED_ZONE_LIST_CB_ID = 0x0025, /*!< IAS ACE cluster Get Bypass Zone List command, refer to esp_zb_zcl_ias_ace_get_bypassed_zone_list_message_t */
ESP_ZB_CORE_IAS_ACE_GET_ZONE_STATUS_CB_ID = 0x0026, /*!< IAS ACE cluster Get Zone Status command, refer to esp_zb_zcl_ias_ace_get_zone_status_message_t */
ESP_ZB_CORE_IAS_ACE_ARM_RESP_CB_ID = 0x0027, /*!< IAS ACE cluster Arm command response, refer to esp_zb_zcl_ias_ace_arm_response_message_t */
ESP_ZB_CORE_IAS_ACE_GET_ZONE_ID_MAP_RESP_CB_ID = 0x0028, /*!< IAS ACE cluster Get Zone ID MAP command response, refer to esp_zb_zcl_ias_ace_get_zone_id_map_response_message_t */
ESP_ZB_CORE_IAS_ACE_GET_ZONE_INFO_RESP_CB_ID = 0x0029, /*!< IAS ACE cluster Get Zone Information command response, refer to esp_zb_zcl_ias_ace_get_zone_info_response_message_t */
ESP_ZB_CORE_IAS_ACE_ZONE_STATUS_CHANGED_CB_ID = 0x002a, /*!< IAS ACE cluster Zone Status Changed command, refer to esp_zb_zcl_ias_ace_zone_status_changed_message_t */
ESP_ZB_CORE_IAS_ACE_PANEL_STATUS_CHANGED_CB_ID = 0x002b, /*!< IAS ACE cluster Panel Status Changed command, refer to esp_zb_zcl_ias_ace_panel_status_changed_message_t */
ESP_ZB_CORE_IAS_ACE_GET_PANEL_STATUS_RESP_CB_ID = 0x002c, /*!< IAS ACE cluster Get Panel Status command response, refer to esp_zb_zcl_ias_ace_get_panel_status_response_message_t */
ESP_ZB_CORE_IAS_ACE_SET_BYPASSED_ZONE_LIST_CB_ID = 0x002d, /*!< IAS ACE cluster Set Bypassed Zone List command, refer to esp_zb_zcl_ias_ace_set_bypassed_zone_list_message_t */
ESP_ZB_CORE_IAS_ACE_BYPASS_RESP_CB_ID = 0x002e, /*!< IAS ACE cluster Bypass command response, refer to esp_zb_zcl_ias_ace_bypass_response_message_t */
ESP_ZB_CORE_IAS_ACE_GET_ZONE_STATUS_RESP_CB_ID = 0x002f, /*!< IAS ACE cluster Get Zone Status command response, refer to esp_zb_zcl_ias_ace_get_zone_status_response_message_t */
ESP_ZB_CORE_WINDOW_COVERING_MOVEMENT_CB_ID = 0x0030, /*!< Window covering movement command, refer to esp_zb_zcl_window_covering_movement_message_t */
ESP_ZB_CORE_OTA_UPGRADE_QUERY_IMAGE_RESP_CB_ID = 0x0031, /*!< OTA upgrade query image response message, refer to esp_zb_zcl_ota_upgrade_query_image_resp_message_t */
ESP_ZB_CORE_THERMOSTAT_WEEKLY_SCHEDULE_SET_CB_ID = 0x0032, /*!< Thermostat weekly schedule stable set, refer to esp_zb_zcl_thermostat_weekly_schedule_set_message_t */
ESP_ZB_CORE_DRLC_LOAD_CONTROL_EVENT_CB_ID = 0x0040, /*!< Demand response and load control cluster LoadControlEvent message, refer to esp_zb_zcl_drlc_load_control_event_message_t */
ESP_ZB_CORE_DRLC_CANCEL_LOAD_CONTROL_EVENT_CB_ID = 0x0041, /*!< Demand response and load control cluster CancelLoadControlEvent message, refer to esp_zb_zcl_drlc_cancel_load_control_event_message_t */
ESP_ZB_CORE_DRLC_CANCEL_ALL_LOAD_CONTROL_EVENTS_CB_ID = 0x0042, /*!< Demand response and load control cluster CancelAllLoadControlEvents message, refer to esp_zb_zcl_drlc_cancel_all_load_control_events_message_t */
ESP_ZB_CORE_DRLC_REPORT_EVENT_STATUS_CB_ID = 0x0043, /*!< Demand response and load control cluster ReportEventStatus message, refer to esp_zb_zcl_drlc_report_event_status_message_t */
ESP_ZB_CORE_DRLC_GET_SCHEDULED_EVENTS_CB_ID = 0x0044, /*!< Demand response and load control cluster GetScheduledEvents message, refer to esp_zb_zcl_drlc_get_scheduled_events_message_t */
ESP_ZB_CORE_POLL_CONTROL_CHECK_IN_REQ_CB_ID = 0x0045, /*!< Poll control cluster CheckInRequest message, refer to esp_zb_zcl_poll_control_check_in_req_message_t */
ESP_ZB_CORE_ALARMS_RESET_ALARM_CB_ID = 0x0050, /*!< Alarms cluster Reset Alarm command, refer to esp_zb_zcl_alarms_reset_alarm_message_t */
ESP_ZB_CORE_ALARMS_RESET_ALL_ALARMS_CB_ID = 0x0051, /*!< Alarms cluster Reset All Alarms command, refer to esp_zb_zcl_alarms_reset_all_alarms_message_t */
ESP_ZB_CORE_ALARMS_ALARM_CB_ID = 0x0052, /*!< Alarms cluster Alarm command, refer to esp_zb_zcl_alarms_alarm_message_t */
ESP_ZB_CORE_ALARMS_GET_ALARM_RESP_CB_ID = 0x0053, /*!< Alarms cluster Get Alarm Response command, refer to esp_zb_zcl_alarms_get_alarm_resp_message_t */
ESP_ZB_CORE_CMD_READ_ATTR_RESP_CB_ID = 0x1000, /*!< Read attribute response, refer to esp_zb_zcl_cmd_read_attr_resp_message_t */
ESP_ZB_CORE_CMD_WRITE_ATTR_RESP_CB_ID = 0x1001, /*!< Write attribute response, refer to esp_zb_zcl_cmd_write_attr_resp_message_t */
ESP_ZB_CORE_CMD_REPORT_CONFIG_RESP_CB_ID = 0x1002, /*!< Configure report response, refer to esp_zb_zcl_cmd_config_report_resp_message_t */
ESP_ZB_CORE_CMD_READ_REPORT_CFG_RESP_CB_ID = 0x1003, /*!< Read report configuration response, refer to esp_zb_zcl_cmd_read_report_config_resp_message_t */
ESP_ZB_CORE_CMD_DISC_ATTR_RESP_CB_ID = 0x1004, /*!< Discover attributes response, refer to esp_zb_zcl_cmd_discover_attributes_resp_message_t */
ESP_ZB_CORE_CMD_DEFAULT_RESP_CB_ID = 0x1005, /*!< Default response, refer to esp_zb_zcl_cmd_default_resp_message_t */
ESP_ZB_CORE_CMD_OPERATE_GROUP_RESP_CB_ID = 0x1010, /*!< Group add group response, refer to esp_zb_zcl_groups_operate_group_resp_message_t */
ESP_ZB_CORE_CMD_VIEW_GROUP_RESP_CB_ID = 0x1011, /*!< Group view response, refer to esp_zb_zcl_groups_view_group_resp_message_t */
ESP_ZB_CORE_CMD_GET_GROUP_MEMBERSHIP_RESP_CB_ID = 0x1012, /*!< Group get membership response, refer to esp_zb_zcl_groups_get_group_membership_resp_message_t */
ESP_ZB_CORE_CMD_OPERATE_SCENE_RESP_CB_ID = 0x1020, /*!< Scenes operate response, refer to esp_zb_zcl_scenes_operate_scene_resp_message_t */
ESP_ZB_CORE_CMD_VIEW_SCENE_RESP_CB_ID = 0x1021, /*!< Scenes view response, refer to esp_zb_zcl_scenes_view_scene_resp_message_t */
ESP_ZB_CORE_CMD_GET_SCENE_MEMBERSHIP_RESP_CB_ID = 0x1022, /*!< Scenes get membership response, refer to esp_zb_zcl_scenes_get_scene_membership_resp_message_t */
ESP_ZB_CORE_CMD_IAS_ZONE_ZONE_ENROLL_REQUEST_ID = 0x1030, /*!< IAS Zone enroll request, refer to esp_zb_zcl_ias_zone_enroll_request_message_t */
ESP_ZB_CORE_CMD_IAS_ZONE_ZONE_STATUS_CHANGE_NOT_ID = 0x1031, /*!< IAS Zone status change notification, refer to esp_zb_zcl_ias_zone_status_change_notification_message_t */
ESP_ZB_CORE_CMD_CUSTOM_CLUSTER_REQ_CB_ID = 0x1040, /*!< Custom Cluster request, refer to esp_zb_zcl_custom_cluster_command_message_t */
ESP_ZB_CORE_CMD_CUSTOM_CLUSTER_RESP_CB_ID = 0x1041, /*!< Custom Cluster response, refer to esp_zb_zcl_custom_cluster_command_message_t */
ESP_ZB_CORE_CMD_PRIVILEGE_COMMAND_REQ_CB_ID = 0x1050, /*!< Custom Cluster request, refer to esp_zb_zcl_privilege_command_message_t */
ESP_ZB_CORE_CMD_PRIVILEGE_COMMAND_RESP_CB_ID = 0x1051, /*!< Custom Cluster response, refer to esp_zb_zcl_privilege_command_message_t */
ESP_ZB_CORE_CMD_TOUCHLINK_GET_GROUP_ID_RESP_CB_ID = 0x1060, /*!< Touchlink commissioning cluster get group id response, refer to esp_zb_touchlink_get_group_identifiers_resp_message_t */
ESP_ZB_CORE_CMD_TOUCHLINK_GET_ENDPOINT_LIST_RESP_CB_ID = 0x1061, /*!< Touchlink commissioning cluster get endpoint list response, refer to esp_zb_zcl_touchlink_get_endpoint_list_resp_message_t */
ESP_ZB_CORE_CMD_THERMOSTAT_GET_WEEKLY_SCHEDULE_RESP_CB_ID = 0x1070, /*!< Thermostat cluster get weekly schedule response, refer to esp_zb_zcl_thermostat_get_weekly_schedule_resp_message_t */
ESP_ZB_CORE_CMD_GREEN_POWER_RECV_CB_ID = 0x1F00, /*!< Green power cluster command receiving, refer to esp_zb_zcl_cmd_green_power_recv_message_t */
ESP_ZB_CORE_REPORT_ATTR_CB_ID = 0x2000, /*!< Attribute Report, refer to esp_zb_zcl_report_attr_message_t */
} esp_zb_core_action_callback_id_t;
/**
* @brief A callback for user to obtain device_cb_id buffer id of ZBoss stack
*
* @return
* - True: processed
* - False: unprocessed
*/
typedef bool (*esp_zb_zcl_device_cb_id_callback_t)(uint8_t bufid);
/**
* @brief A callback for user to obtain raw command bufid of ZBoss stack
*
* @note If the @p bufid has been processed in the callback, it should be freed using the zb_zcl_send_default_handler().
*
* @return
* - True: processed
* - False: unprocessed
*/
typedef bool (*esp_zb_zcl_raw_command_callback_t)(uint8_t bufid);
/** Identify callback
*
* @param[in] identify_on A indication that need start identify or stop
*
*/
typedef void (*esp_zb_identify_notify_callback_t)(uint8_t identify_on);
/**
* @brief ZCL reset default attribute callback
*
* @param[in] endpoint The Endpoint identifier
* @param[in] cluster_id The cluster identifier
* @param[in] curr_attr The current attribute information
*
* @return The default attribute value will be set to
*/
typedef void *(*esp_zb_zcl_reset_default_attr_callback_t)(uint8_t endpoint, uint16_t cluster_id, esp_zb_zcl_attribute_t curr_attr);
/**
* @brief A callback for user to obtain interesting Zigbee message
*
* @note The returned value will be utilized by the stack for post-processing
* @param[in] callback_id The id of Zigbee core action, refer to esp_zb_core_action_callback_id_t
* @param[in] message The information of Zigbee core action that bind with the @p callback_id
*
* @return ESP_OK The action is handled successfully, others on failure
*/
typedef esp_err_t (*esp_zb_core_action_callback_t)(esp_zb_core_action_callback_id_t callback_id, const void *message);
/**
* @brief Register the Zigbee core action handler
*
* @param[in] cb A callback that user can handle the Zigbee action, refer to esp_zb_core_callback_t
*
*/
void esp_zb_core_action_handler_register(esp_zb_core_action_callback_t cb);
/**
* @brief Register the Zigbee device_cb_id handler
*
* @param[in] cb A callback that user can handle the Zigbee raw device_cb_id buffer id, refer to esp_zb_core_callback_t
*
*/
void esp_zb_device_cb_id_handler_register(esp_zb_zcl_device_cb_id_callback_t cb);
/**
* @brief Register the raw Zigbee command handler
*
* @param[in] cb A callback that user can handle the Zigbee raw command buffer id, refer to esp_zb_zcl_raw_command_callback_t
*
*/
void esp_zb_raw_command_handler_register(esp_zb_zcl_raw_command_callback_t cb);
/**
* @brief Register the callback for the ZCL command send status
*
* @param[in] cb The ZCL command send status callback, refer to esp_zb_zcl_command_send_status_callback_t
*/
void esp_zb_zcl_command_send_status_handler_register(esp_zb_zcl_command_send_status_callback_t cb);
/**
* @brief Set the ZCL identify notify callback for specific endpoint.
*
* @note Set a callback for user to handle identify command.
*
* @param[in] endpoint A specific endpoint
* @param[in] cb A identify notify callback that user used
*
*/
void esp_zb_identify_notify_handler_register(uint8_t endpoint, esp_zb_identify_notify_callback_t cb);
/**
* @brief Add a callback and the privilege command the Zigbee cluster in endpoint.
*
* @note The privilege command will skip the Zigbee stack and be exposed to users by the callback indirectly.
* Allowing different commands to use the same callback.
*
* @param[in] endpoint The specific endpoint for @p cluster
* @param[in] cluster The specific cluster for @p command
* @param[in] command The specific command ID is required to handle for users.
* @return
* - ESP_OK: on success
* - ESP_FAIL: on failure
*/
esp_err_t esp_zb_zcl_add_privilege_command(uint8_t endpoint, uint16_t cluster, uint16_t command);
/**
* @brief Delete the privilege command from the @p cluster of @p endpoint
*
* @param[in] endpoint The specific endpoint for @p cluster
* @param[in] cluster The specific cluster for @p command
* @param[in] command The specific command ID will be deleted so that the stack will handle the command rather than user.
* @return
* - True: On success
* - False: Nothing to delete
*/
bool esp_zb_zcl_delete_privilege_command(uint8_t endpoint, uint16_t cluster, uint16_t command);
/**
* @brief Reset all endpoints to factory default
*
* @note If @p cb is not set or @p cb return NULL, the default attribute value will be set to zero
* @param[in] reset_report Whether reset report of clusters or not
* @param[in] cb The user can utilize the callback to set default attribute value
*
* @return
* - ESP_OK: on success
* - ESP_FAIL: on failed
*/
esp_err_t esp_zb_zcl_reset_all_endpoints_to_factory_default(bool reset_report, esp_zb_zcl_reset_default_attr_callback_t cb);
/**
* @brief Reset endpoint to factory default
*
* @note If @p cb is not set or @p cb return NULL, the default attribute value will be set to zero
* @param[in] endpoint The endpoint identifier which will be reset
* @param[in] reset_report Whether reset report of clusters or not
* @param[in] cb The user can utilize the callback to set default attribute value
*
* @return
* - ESP_OK: on success
* - ESP_FAIL: on failed
*/
esp_err_t esp_zb_zcl_reset_endpoint_to_factory_default(uint8_t endpoint, bool reset_report, esp_zb_zcl_reset_default_attr_callback_t cb);
/**
* @brief Reset the NVRAM and ZCL data to factory default
*
*/
void esp_zb_zcl_reset_nvram_to_factory_default(void);
/**
* @brief Register a Zigbee device.
*
* @note
* 1. After successful registration, the SDK will retain a copy of the whole data model,
* the \p ep_list will be freed.
* 2. For any lists (e.g. ``esp_zb_cluster_list_t`` and ``esp_zb_attribute_list_t``) added to the data
* modal should only be created and modified by the API.
* 3. Please DO NOT reuse ANY of lists in the data mode. If you have two identical stuff (e.g. two endpoints
* with identical clusters), please create/add them twice.
*
* @param[in] ep_list An endpoint list which wants to register, see @ref esp_zb_ep_list_s
*
* @return
* - ESP_OK on success
*
*/
esp_err_t esp_zb_device_register(esp_zb_ep_list_t *ep_list);
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,93 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Dehumidification Control cluster attribute identifiers */
typedef enum esp_zb_zcl_dehumidification_control_attr_e {
ESP_ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_RELATIVE_HUMIDITY_ID = 0x0000, /*!< The RelativeHumidity attribute is an 8-bit value that represents the
current relative humidity (in %) measured by a local or remote sensor. */
ESP_ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_COOLING_ID = 0x0001, /*!< Dehumidification Cooling attribute */
ESP_ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_RHDEHUMIDIFICATION_SETPOINT_ID = 0x0010, /*!< RHDehumidification Setpoint attribute */
ESP_ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_RELATIVE_HUMIDITY_MODE_ID = 0x0011, /*!< The RelativeHumidityMode attribute is an 8-bit value that specifies
how the RelativeHumidity value is being updated. */
ESP_ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_LOCKOUT_ID = 0x0012, /*!< The DehumidificationLockout attribute is an 8-bit value that specifies
whether dehumidification is allowed or not. */
ESP_ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_HYSTERESIS_ID = 0x0013, /*!< Dehumidification Hysteresis attribute */
ESP_ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_MAX_COOL_ID = 0x0014, /*!< Dehumidification Max Cool attribute */
ESP_ZB_ZCL_ATTR_DEHUMIDIFICATION_CONTROL_RELATIVE_HUMIDITY_DISPLAY_ID = 0x0015, /*!< The RelativeHumidityDisplay attribute is an 8-bit value that specifies
whether the RelativeHumidity value is displayed to the user or not. */
} esp_zb_zcl_dehumidification_control_attr_t;
/** @brief Default value for Dehumidification Control cluster revision global attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_CLUSTER_REVISION_DEFAULT 0x0001
/** @brief Min value for RHDehumidification Setpoint attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_RHDEHUMIDIFICATION_SETPOINT_MIN_VALUE 0x1e
/** @brief Max value for RHDehumidification Setpoint attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_RHDEHUMIDIFICATION_SETPOINT_MAX_VALUE 0x64
/** @brief Default value for RHDehumidification Setpoint attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_RHDEHUMIDIFICATION_SETPOINT_DEFAULT_VALUE 0x32
/** @brief Default value for RelativeHumidityMode attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_RELATIVE_HUMIDITY_MODE_DEFAULT_VALUE ((uint8_t)ESP_ZCL_DEHUMIDIFICATION_CONTROL_RELATIVE_HUMIDITY_MEASURED_LOCALLY)
/** @brief Default value for DehumidificationLockout attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_LOCKOUT_DEFAULT_VALUE ((uint8_t)ESP_ZCL_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_LOCKOUT_ALLOWED)
/** @brief Min value for Dehumidification Hysteresis attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_HYSTERESIS_MIN_VALUE 0x02
/** @brief Max value for Dehumidification Hysteresis attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_HYSTERESIS_MAX_VALUE 0x14
/** @brief Default value for Dehumidification Hysteresis attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_HYSTERESIS_DEFAULT_VALUE 0x02
/** @brief Default value for Dehumidification Cool attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_COOL_DEFAULT_VALUE 0x00
/** @brief Min value for Dehumidification Max Cool attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_MAX_COOL_MIN_VALUE 0x14
/** @brief Max value for Dehumidification Max Cool attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_MAX_COOL_MAX_VALUE 0x64
/** @brief Default value for Dehumidification Max Cool attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_MAX_COOL_DEFAULT_VALUE 0x14
/** @brief Default value for RelativeHumidityDisplay attribute */
#define ESP_ZB_ZCL_DEHUMIDIFICATION_CONTROL_RELATIVE_HUMIDITY_DISPLAY_DEFAULT_VALUE ((uint8_t)ESP_ZCL_DEHUMIDIFICATION_CONTROL_RELATIVE_HUMIDITY_NOT_DISPLAYED)
/** @brief Enumerate the RelativeHumidityMode Attribute */
typedef enum esp_zb_zcl_dehumidification_control_relative_humidity_mode_e {
ESP_ZCL_DEHUMIDIFICATION_CONTROL_RELATIVE_HUMIDITY_MEASURED_LOCALLY = 0x00, /*!< RelativeHumidity measured locally */
ESP_ZCL_DEHUMIDIFICATION_CONTROL_RELATIVE_HUMIDITY_UPDATED_OVER_THE_NETWORK, /*!< RelativeHumidity updated over the network */
} esp_zb_zcl_dehumidification_control_relative_humidity_mode_t;
/** @brief Enumerate the DehumidificationLockout Attribute */
typedef enum esp_zb_zcl_dehumidification_control_dehumidification_lockout_e {
ESP_ZCL_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_LOCKOUT_NOT_ALLOWED = 0x00, /*!< Dehumidification is not allowed */
ESP_ZCL_DEHUMIDIFICATION_CONTROL_DEHUMIDIFICATION_LOCKOUT_ALLOWED, /*!< Dehumidification is allowed */
} esp_zb_zcl_dehumidification_control_dehumidification_lockout_t;
/** @brief Enumerate the RelativeHumidityDisplay Attribute */
typedef enum esp_zb_zcl_dehumidification_control_relative_humidity_display_e {
ESP_ZCL_DEHUMIDIFICATION_CONTROL_RELATIVE_HUMIDITY_NOT_DISPLAYED = 0x00, /*!< RelativeHumidity is not displayed */
ESP_ZCL_DEHUMIDIFICATION_CONTROL_RELATIVE_HUMIDITY_DISPLAYED, /*!< RelativeHumidity is displayed */
} esp_zb_zcl_dehumidification_control_relative_humidity_display_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,102 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include "esp_zigbee_type.h"
#ifdef __cplusplus
extern "C" {
#endif
/** @brief Device Temperature Configuration cluster attribute identifiers */
typedef enum esp_zb_zcl_device_temp_config_attr_e {
ESP_ZB_ZCL_ATTR_DEVICE_TEMP_CONFIG_CURRENT_TEMP_ID = 0x0000, /*!< CurrentTemperature */
ESP_ZB_ZCL_ATTR_DEVICE_TEMP_CONFIG_MIN_TEMP_EXPERIENCED_ID = 0x0001, /*!< MinTempExperienced */
ESP_ZB_ZCL_ATTR_DEVICE_TEMP_CONFIG_MAX_TEMP_EXPERIENCED_ID = 0x0002, /*!< MaxTempExperienced */
ESP_ZB_ZCL_ATTR_DEVICE_TEMP_CONFIG_OVER_TEMP_TOTAL_DWELL_ID = 0x0003, /*!< OverTempTotalDwell */
ESP_ZB_ZCL_ATTR_DEVICE_TEMP_CONFIG_DEVICE_TEMP_ALARM_MASK_ID = 0x0010, /*!< DeviceTempAlarmMask */
ESP_ZB_ZCL_ATTR_DEVICE_TEMP_CONFIG_LOW_TEMP_THRESHOLD_ID = 0x0011, /*!< LowTempThreshold */
ESP_ZB_ZCL_ATTR_DEVICE_TEMP_CONFIG_HIGH_TEMP_THRESHOLD_ID = 0x0012, /*!< HighTempThreshold */
ESP_ZB_ZCL_ATTR_DEVICE_TEMP_CONFIG_LOW_TEMP_DWELL_TRIP_POINT_ID = 0x0013, /*!< LowTempDwellTripPoint */
ESP_ZB_ZCL_ATTR_DEVICE_TEMP_CONFIG_HIGH_TEMP_DWELL_TRIP_POINT_ID = 0x0014, /*!< HighTempDwellTripPoint */
} esp_zb_zcl_device_temp_config_attr_t;
/** @brief Minimum value for CurrentTemp attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_CURRENT_TEMP_MIN_VALUE (-200)
/** @brief Maximum value for CurrentTemp attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_CURRENT_TEMP_MAX_VALUE (+200)
/** @brief Minimum value for MinTempExperienced attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_MIN_TEMP_EXPERIENCED_MIN_VALUE (-200)
/** @brief Maximum value for MinTempExperienced attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_MIN_TEMP_EXPERIENCED_MAX_VALUE (+200)
/** @brief Minimum value for MaxTempExperienced attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_MAX_TEMP_EXPERIENCED_MIN_VALUE (-200)
/** @brief Maximum value for MaxTempExperienced attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_MAX_TEMP_EXPERIENCED_MAX_VALUE (+200)
/** @brief Minimum value for OverTotalDwell attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_OVER_TEMP_TOTAL_DWELL_MIN_VALUE (0x0000)
/** @brief Maximum value for OverTotalDwell attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_OVER_TEMP_TOTAL_DWELL_MAX_VALUE (0xffff)
/** @brief Minimum value for DeviceTempAlarmMask attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_DEVICE_TEMP_ALARM_MASK_MIN_VALUE (0b00000000)
/** @brief Maximum value for DeviceTempAlarmMask attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_DEVICE_TEMP_ALARM_MASK_MAX_VALUE (0b00000011)
/** @brief Minimum value for LowTempThreshold attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_LOW_TEMP_THRESHOLD_MIN_VALUE (-200)
/** @brief Maximum value for LowTempThreshold attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_LOW_TEMP_THRESHOLD_MAX_VALUE (+200)
/** @brief Minimum value for HighTempThreshold attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_HIGH_TEMP_THRESHOLD_MIN_VALUE (-200)
/** @brief Maximum value for HighTempThreshold attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_HIGH_TEMP_THRESHOLD_MAX_VALUE (+200)
/** @brief Minimum value for LowTempTripPoint attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_LOW_TEMP_DWELL_TRIP_POINT_MIN_VALUE (0x000000)
/** @brief Maximum value for LowTempTripPoint attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_LOW_TEMP_DWELL_TRIP_POINT_MAX_VALUE (0xffffff)
/** @brief Minimum value for HighTempTripPoint attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_HIGH_TEMP_DWELL_TRIP_POINT_MIN_VALUE (0x000000)
/** @brief Maximum value for HighTempTripPoint attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_HIGH_TEMP_DWELL_TRIP_POINT_MAX_VALUE (0xffffff)
/** @brief Default value for CurrentTemp attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_CURRENT_TEMP_DEFAULT_VALUE ESP_ZB_ZCL_VALUE_S16_NONE
/** @brief Default value for MinTempExperienced attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_MIN_TEMP_EXPERIENCED_DEFAULT_VALUE ESP_ZB_ZCL_VALUE_S16_NONE
/** @brief Default value for MaxTempExperienced attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_MAX_TEMP_EXPERIENCED_DEFAULT_VALUE ESP_ZB_ZCL_VALUE_S16_NONE
/** @brief Default value for OverTempTotalDwell attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_OVER_TEMP_TOTAL_DWELL_DEFAULT_VALUE 0
/** @brief Default value for DeviceTempAlarmMask attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_DEVICE_TEMP_ALARM_MASK_DEFAULT_VALUE 0
/** @brief Default value for LowTempThreshold attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_LOW_TEMP_THRESHOLD_DEFAULT_VALUE ESP_ZB_ZCL_VALUE_S16_NONE
/** @brief Default value for HighTempThreshold attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_HIGH_TEMP_THRESHOLD_DEFAULT_VALUE ESP_ZB_ZCL_VALUE_S16_NONE
/** @brief Default value for LowTempDwellTripPoint attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_LOW_TEMP_DWELL_TRIP_POINT_DEFAULT_VALUE (0xffffff)
/** @brief Default value for HighTempDwellTripPoint attribute */
#define ESP_ZB_ZCL_DEVICE_TEMP_CONFIG_HIGH_TEMP_DWELL_TRIP_POINT_DEFAULT_VALUE (0xffffff)
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,151 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Diagnostics cluster attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_NUMBER_OF_RESETS_ID = 0x0000, /*!< Number Of Resets */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_PERSISTENT_MEMORY_WRITES_ID = 0x0001, /*!< Persistent Memory Writes */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_MAC_RX_BCAST_ID = 0x0100, /*!< MAC Rx Broadcast */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_MAC_TX_BCAST_ID = 0x0101, /*!< MAC Tx Broadcast */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_MAC_RX_UCAST_ID = 0x0102, /*!< MAC Rx Unicast */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_MAC_TX_UCAST_ID = 0x0103, /*!< MAC Tx Unicast */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_MAC_TX_UCAST_RETRY_ID = 0x0104, /*!< MAC Tx Unicast Retry */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_MAC_TX_UCAST_FAIL_ID = 0x0105, /*!< MAC Tx Unicast Fail */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_APS_RX_BCAST_ID = 0x0106, /*!< APS Rx Broadcast */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_APS_TX_BCAST_ID = 0x0107, /*!< APS Tx Broadcast */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_APS_RX_UCAST_ID = 0x0108, /*!< APS Rx Unicast */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_APS_TX_UCAST_SUCCESS_ID = 0x0109, /*!< APS Tx Unicast Success */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_APS_TX_UCAST_RETRY_ID = 0x010A, /*!< APS Tx Unicast Retry */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_APS_TX_UCAST_FAIL_ID = 0x010b, /*!< APS Tx Unicast Fail */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_ROUTE_DISC_INITIATED_ID = 0x010C, /*!< Route Disc Initiated */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_NEIGHBOR_ADDED_ID = 0x010D, /*!< Neighbor Added */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_NEIGHBOR_REMOVED_ID = 0x010E, /*!< Neighbor Removed */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_NEIGHBOR_STALE_ID = 0x010F, /*!< Neighbor Stale */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_JOIN_INDICATION_ID = 0x0110, /*!< Join Indication */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_CHILD_MOVED_ID = 0x0111, /*!< Child Moved */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_NWKFC_FAILURE_ID = 0x0112, /*!< NWKFC Failure */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_APSFC_FAILURE_ID = 0x0113, /*!< APSFC Failure */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_APS_UNAUTHORIZED_KEY_ID = 0x0114, /*!< APS Unauthorized Key */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_NWK_DECRYPT_FAILURES_ID = 0x0115, /*!< NWK Decrypt Failures */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_APS_DECRYPT_FAILURES_ID = 0x0116, /*!< APS Decrypt Failures */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_PACKET_BUFFER_ALLOCATE_FAILURES_ID = 0x0117, /*!< Packet Buffer Allocate Failures */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_RELAYED_UCAST_ID = 0x0118, /*!< Relayed Unicast */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_PHYTOMACQUEUELIMITREACHED_ID = 0x0119, /*!< Phytomacqueuelimitreached */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_PACKET_VALIDATEDROPCOUNT_ID = 0x011A, /*!< Packet Validatedropcount */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_AVERAGE_MAC_RETRY_PER_APS_ID = 0x011b, /*!< Average MAC Retry Per APS */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_LAST_LQI_ID = 0x011c, /*!< Last LQI */
ESP_ZB_ZCL_ATTR_DIAGNOSTICS_LAST_RSSI_ID = 0x011d, /*!< Last RSSI */
} esp_zb_zcl_diagnostics_attr_t;
/** @brief Default value for Diagnostics cluster revision global attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_CLUSTER_REVISION_DEFAULT ((uint16_t)0x0003u)
/** @brief Default value for number_of_resets attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_NUMBER_OF_RESETS_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for PersistentMemoryWrites attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_PERSISTENT_MEMORY_WRITES_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for MacRxBcast attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_MAC_RX_BCAST_DEFAULT_VALUE ((uint32_t)0)
/** @brief Default value for MacTxBcast attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_MAC_TX_BCAST_DEFAULT_VALUE ((uint32_t)0)
/** @brief Default value for MacRxUcast attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_MAC_RX_UCAST_DEFAULT_VALUE ((uint32_t)0)
/** @brief Default value for MacTxUcast attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_MAC_TX_UCAST_DEFAULT_VALUE ((uint32_t)0)
/** @brief Default value for MacTxUcastRetry attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_MAC_TX_UCAST_RETRY_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for MacTxUcastFail attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_MAC_TX_UCAST_FAIL_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for APSRxBcast attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_APS_RX_BCAST_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for aps_tx_bcast attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_APS_TX_BCAST_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for APSRxUcast attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_APS_RX_UCAST_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for aps_tx_ucast_success attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_APS_TX_UCAST_SUCCESS_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for APSTxUcastRetry attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_APS_TX_UCAST_RETRY_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for aps_tx_ucast_fail attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_APS_TX_UCAST_FAIL_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for RouteDiscInitiated attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_ROUTE_DISC_INITIATED_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for NeighborAdded attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_NEIGHBOR_ADDED_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for NeighborRemoved attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_NEIGHBOR_REMOVED_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for NeighborStale attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_NEIGHBOR_STALE_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for join_indication attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_JOIN_INDICATION_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for ChildMoved attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_CHILD_MOVED_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for nwk_fc_failure attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_NWKFC_FAILURE_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for aps_fc_failure attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_APSFC_FAILURE_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for APSUnauthorizedKey attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_APS_UNAUTHORIZED_KEY_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for NWKDecryptFailures attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_NWK_DECRYPT_FAILURES_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for APSDecryptFailures attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_APS_DECRYPT_FAILURES_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for packet_buffer_allocate_failures attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_PACKET_BUFFER_ALLOCATE_FAILURES_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for RelayedUcast attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_RELAYED_UCAST_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for PhytoMACqueuelimitreached attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_PHYTO_MA_CQUEUELIMITREACHED_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for PacketValidatedropcount attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_PACKET_VALIDATEDROPCOUNT_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for AverageMACRetryPerAPS attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_AVERAGE_MAC_RETRY_PER_APS_DEFAULT_VALUE ((uint16_t)0)
/** @brief Default value for LastLQI attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_LAST_LQI_DEFAULT_VALUE ((uint8_t)0)
/** @brief Default value for LastRSSI attribute */
#define ESP_ZB_ZCL_DIAGNOSTICS_LAST_RSSI_DEFAULT_VALUE ((int8_t)0)
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,137 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Door Lock cluster attribute identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_DOOR_LOCK_LOCK_STATE_ID = 0x0000, /*!< brief LockState attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_LOCK_TYPE_ID = 0x0001, /*!< brief LockType attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_ACTUATOR_ENABLED_ID = 0x0002, /*!< brief ActuatorEnabled attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_DOOR_STATE_ID = 0x0003, /*!< brief DoorState attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_NUM_OF_DOOR_OPEN_EVENTS_ID = 0x0004, /*!< brief DoorOpenEvents attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_NUM_OF_DOOR_CLOSED_EVENTS_ID = 0x0005, /*!< brief DoorClosedEvents attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_OPEN_PERIOD_ID = 0x0006, /*!< brief OpenPeriod attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_NUMBER_OF_LOG_RECORDS_SUPPORTED_ID = 0x0010, /*!< The number of available log records. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_NUM_TOTAL_USERS_ID = 0x0011, /*!< brief NumberOfTotalUsersSupported attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_NUM_PIN_USERS_ID = 0x0012, /*!< brief NumberOfPINUsersSupported attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_NUMBER_OF_RFID_USERS_SUPPORTED_ID = 0x0013, /*!< he number of RFID users supported. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_NUM_WEEK_DAY_SCHEDULE_PER_USER_ID = 0x0014, /*!< brief NumberOfWeekDaySchedulesSupportedPerUser attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_NUM_YEAR_DAY_SCHEDULE_PER_USER_ID = 0x0015, /*!< brief NumberOfYearDaySchedulesSupportedPerUser attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_NUM_HOLIDAY_SCHEDULE_ID = 0x0016, /*!< brief NumberOfHolidaySchedulesSupported attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_MAX_PIN_LEN_ID = 0x0017, /*!< brief Max PIN code length attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_MIN_PIN_LEN_ID = 0x0018, /*!< brief Min PIN code length attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_MAX_RFID_CODE_LENGTH_ID = 0x0019, /*!< An 8-bit value indicates the maximum length in bytes of a RFID Code on this device. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_MIN_RFID_CODE_LENGTH_ID = 0x001A, /*!< An 8-bit value indicates the minimum length in bytes of a RFID Code on this device. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_ENABLE_LOGGING_ID = 0x0020, /*!< Enable/disable event logging. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_LANGUAGE_ID = 0x0021, /*!< Modifies the language for the on-screen or audible user interface using three bytes from ISO-639-1. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_LED_SETTINGS_ID = 0x0022, /*!< The settings for the LED support three different modes. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_AUTO_RELOCK_TIME_ID = 0x0023, /*!< The number of seconds to wait after unlocking a lock before it automatically locks again. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_SOUND_VOLUME_ID = 0x0024, /*!< The sound volume on a door lock has three possible settings: silent, low and high volumes. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_OPERATING_MODE_ID = 0x0025, /*!< OperatingMode attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_OPERATION_MODES_SUPPORTED_ID = 0x0026, /*!< SupportedOperatingModes attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_DEFAULT_CONFIGURATION_REGISTER_ID = 0x0027, /*!< This attribute represents the default configurations as they are physically set on the device */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_ENABLE_LOCAL_PROGRAMMING_ID = 0x0028, /*!< EnableLocalProgramming attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_ENABLE_ONE_TOUCH_LOCKING_ID = 0x0029, /*!< Enable/disable the ability to lock the door lock with a single touch on the door lock. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_ENABLE_INSIDE_STATUS_LED_ID = 0x002A, /*!< Enable/disable an inside LED that allows the user to see at a glance if the door is locked. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_ENABLE_PRIVACY_MODE_BUTTON_ID = 0x002B, /*!< Enable/disable a button inside the door that is used to put the lock into privacy mode. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_WRONG_CODE_ENTRY_LIMIT_ID = 0x0030, /*!< The number of incorrect codes or RFID presentment attempts a user is allowed to enter before the door will enter a lockout state. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_USER_CODE_TEMPORARY_DISABLE_TIME_ID = 0x0031, /*!< The number of seconds that the lock shuts down following wrong code entry. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_SEND_PIN_OVER_THE_AIR_ID = 0x0032, /*!< Boolean set to True if it is ok for the door lock server to send PINs over the air. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_REQUIRE_PIN_RF_ID = 0x0033, /*!< Require PIN for RF operation attribute */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_SECURITY_LEVEL_ID = 0x0034, /*!< It allows the door lock manufacturer to indicate what level of security the door lock requires. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_ALARM_MASK_ID = 0x0040, /*!< The alarm mask is used to turn on/off alarms for particular functions */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_KEYPAD_OPERATION_EVENT_MASK_ID = 0x0041, /*!< Event mask used to turn on and off the transmission of keypad operation events. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_RF_OPERATION_EVENT_MASK_ID = 0x0042, /*!< Event mask used to turn on and off the transmission of RF operation events. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_MANUAL_OPERATION_EVENT_MASK_ID = 0x0043, /*!< Event mask used to turn on and off manual operation events. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_RFID_OPERATION_EVENT_MASK_ID = 0x0044, /*!< Event mask used to turn on and off RFID operation events. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_KEYPAD_PROGRAMMING_EVENT_MASK_ID = 0x0045, /*!< Event mask used to turn on and off keypad programming events. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_RF_PROGRAMMING_EVENT_MASK_ID = 0x0046, /*!< Event mask used to turn on and off RF programming events. */
ESP_ZB_ZCL_ATTR_DOOR_LOCK_RFID_PROGRAMMING_EVENT_MASK_ID = 0x0047, /*!< Event mask used to turn on and off RFID programming events. */
} esp_zb_zcl_door_lock_attr_t;
/** @brief Default value for Lock State attribute. */
#define ESP_ZB_ZCL_ATTR_DOOR_LOCK_LOCK_STATE_DEFAULT_VALUE 0xff
/** @brief Default value for Lock Type attribute. */
#define ESP_ZB_ZCL_ATTR_DOOR_LOCK_LOCK_TYPE_DEFAULT_VALUE 0xff
/** @brief Default value for Actuator Enabled attribute. */
#define ESP_ZB_ZCL_ATTR_DOOR_LOCK_ACTUATOR_ENABLED_DEFAULT_VALUE 0x01
/** @brief Door Lock cluster commands
*/
typedef enum {
ESP_ZB_ZCL_CMD_DOOR_LOCK_LOCK_DOOR = 0x00, /*!< This command causes the lock device to lock the door. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_UNLOCK_DOOR = 0x01, /*!< This command causes the lock device to unlock the door. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_TOGGLE = 0x02, /*!< Request the status of the lock. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_UNLOCK_WITH_TIMEOUT = 0x03, /*!< This command causes the lock device to unlock the door with a timeout parameter. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_LOG_RECORD = 0x04, /*!< Request a log record. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_PIN_CODE = 0x05, /*!< Set a PIN into the lock. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_PIN_CODE = 0x06, /*!< Retrieve a PIN Code. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_PIN_CODE = 0x07, /*!< Delete a PIN. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_ALL_PIN_CODES = 0x08, /*!< Clear out all PINs on the lock. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_USER_STATUS = 0x09, /*!< Set the status of a user ID. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_USER_STATUS = 0x0A, /*!< Get the status of a user. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_WEEKDAY_SCHEDULE = 0x0B, /*!< Set a weekly repeating schedule for a specified user. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_WEEKDAY_SCHEDULE = 0x0C, /*!< Retrieve the specific weekly schedule for the specific user. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_WEEKDAY_SCHEDULE = 0x0D, /*!< Clear the specific weekly schedule for the specific user. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_YEAR_DAY_SCHEDULE = 0x0E, /*!< Set a time-specific schedule ID for a specified user. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_YEAR_DAY_SCHEDULE = 0x0F, /*!< Retrieve the specific year day schedule for the specific user. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_YEAR_DAY_SCHEDULE = 0x10, /*!< Clears the specific year day schedule for the specific user. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_HOLIDAY_SCHEDULE = 0x11, /*!< Set the holiday Schedule by specifying local start time and local end time with respect to any Lock Operating Mode. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_HOLIDAY_SCHEDULE = 0x12, /*!< Get the holiday Schedule by specifying Holiday ID. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_HOLIDAY_SCHEDULE = 0x13, /*!< Clear the holiday Schedule by specifying Holiday ID. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_USER_TYPE = 0x14, /*!< Set the type byte for a specified user. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_USER_TYPE = 0x15, /*!< Retrieve the type byte for a specific user. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_RFID_CODE = 0x16, /*!< Set an ID for RFID access into the lock. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_RFID_CODE = 0x17, /*!< Retrieve an ID. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_RFID_CODE = 0x18, /*!< Delete an ID. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_ALL_RFID_CODES = 0x19, /*!< Clear out all RFIDs on the lock. */
} esp_zb_zcl_door_lock_cmd_id_t;
/** @brief Door Lock cluster response commands
*/
typedef enum {
ESP_ZB_ZCL_CMD_DOOR_LOCK_LOCK_DOOR_RES = 0x00, /*!< This command is sent in response to a Lock command */
ESP_ZB_ZCL_CMD_DOOR_LOCK_UNLOCK_DOOR_RES = 0x01, /*!< This command is sent in response to a Unlock command */
ESP_ZB_ZCL_CMD_DOOR_LOCK_TOGGLE_RESPONSE = 0x02, /*!< This command is sent in response to a Toggle command*/
ESP_ZB_ZCL_CMD_DOOR_LOCK_UNLOCK_WITH_TIMEOUT_RESPONSE = 0x03, /*!< This command is sent in response to an Unlock */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_LOG_RECORD_RESPONSE = 0x04, /*!< Returns the specified log record. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_PIN_CODE_RESPONSE = 0x05, /*!< Returns status of the PIN set command. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_PIN_CODE_RESPONSE = 0x06, /*!< Returns the PIN for the specified user ID. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_PIN_CODE_RESPONSE = 0x07, /*!< Returns pass/fail of the command. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_ALL_PIN_CODES_RESPONSE = 0x08, /*!< Returns pass/fail of the command. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_USER_STATUS_RESPONSE = 0x09, /*!< Returns the pass or fail value for the setting of the user status. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_USER_STATUS_RESPONSE = 0x0A, /*!< Returns the user status for the specified user ID. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_WEEKDAY_SCHEDULE_RESPONSE = 0x0B, /*!< Returns pass/fail of the command. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_WEEKDAY_SCHEDULE_RESPONSE = 0x0C, /*!< Returns the weekly repeating schedule data for the specified schedule ID. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_WEEKDAY_SCHEDULE_RESPONSE = 0x0D, /*!< Returns pass/fail of the command. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_YEAR_DAY_SCHEDULE_RESPONSE = 0x0E, /*!< Returns pass/fail of the command. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_YEAR_DAY_SCHEDULE_RESPONSE = 0x0F, /*!< Returns the weekly repeating schedule data for the specified schedule ID. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_YEAR_DAY_SCHEDULE_RESPONSE = 0x10, /*!< Returns pass/fail of the command. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_HOLIDAY_SCHEDULE_RESPONSE = 0x11, /*!< Returns pass/fail of the command. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_HOLIDAY_SCHEDULE_RESPONSE = 0x12, /*!< Returns the Holiday Schedule Entry for the specified Holiday ID. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_HOLIDAY_SCHEDULE_RESPONSE = 0x13, /*!< Returns pass/fail of the command. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_USER_TYPE_RESPONSE = 0x14, /*!< Returns the pass or fail value for the setting of the user type. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_USER_TYPE_RESPONSE = 0x15, /*!< Returns the user type for the specified user ID. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_SET_RFID_CODE_RESPONSE = 0x16, /*!< Returns status of the Set RFID Code command. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_GET_RFID_CODE_RESPONSE = 0x17, /*!< Returns the RFID code for the specified user ID. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_RFID_CODE_RESPONSE = 0x18, /*!< Returns pass/fail of the command. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_CLEAR_ALL_RFID_CODES_RESPONSE = 0x19, /*!< Returns pass/fail of the command. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_OPERATION_EVENT_NOTIFICATION_ID = 0x20, /*!< The door lock server sends out operation event notification when the event is triggered by the various event sources. */
ESP_ZB_ZCL_CMD_DOOR_LOCK_PROGRAMMING_EVENT_NOTIFICATION = 0x21, /*!< The door lock server sends out a programming event notification whenever a programming event takes place on the door lock. */
} esp_zb_zcl_door_lock_cmd_resp_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,209 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Demand response and load control client attribute enumeration */
typedef enum esp_zb_zcl_drlc_cli_attr_e {
ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP = 0x0000, /*!< UtilityEnrollmentGroup attribute. Provides for
utilities to assign devices to groups. */
ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES = 0x0001, /*!< StartRandomizationMinutes attribute. Represents
the maximum number of minutes to be used when
randomizing the start of an event. */
ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES = 0x0002, /*!< DurationRandomizationMinutes attribute. Represents
the maximum number of minutes to be used when randomizing
the duration of an event. */
ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE = 0x0003, /*!< DeviceClassValue attribute. Identifies which bits the
device will match in the Device Class fields. */
} esp_zb_zcl_drlc_cli_attr_t;
/** @brief The default value of ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP attribute */
#define ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP_DEFAULT_VALUE 0x00
/** @brief The minimum value of ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP attribute */
#define ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP_MIN_VALUE 0x00
/** @brief The maximum value of ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP attribute */
#define ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP_MAX_VALUE 0xFF
/** @brief The default value of ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES attribute */
#define ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES_DEFAULT_VALUE 0x1E
/** @brief The minimum value of ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES attribute */
#define ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES_MIN_VALUE 0x00
/** @brief The maximum value of ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES attribute */
#define ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES_MAX_VALUE 0x3C
/** @brief The maximum value of ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES attribute */
#define ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES_DEFAULT_VALUE 0x00
/** @brief The maximum value of ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES attribute */
#define ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES_MIN_VALUE 0x00
/** @brief The maximum value of ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES attribute */
#define ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES_MAX_VALUE 0x3C
/** @brief The maximum value of ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE attribute */
#define ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE_DEFAULT_VALUE 0x0000
/** @brief The maximum value of ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE attribute */
#define ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE_MIN_VALUE 0x0000
/** @brief The maximum value of ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE attribute */
#define ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE_MAX_VALUE 0xFFFF
/** @brief DRLC device classes enumeration */
typedef enum esp_zb_zcl_drlc_device_class_e {
ESP_ZB_ZCL_DRLC_DEVICE_CLASS_HVAC = 1 << 0, /*!< HVAC Compressor or Furnace */
ESP_ZB_ZCL_DRLC_DEVICE_CLASS_STRIP_HEATER = 1 << 1, /*!< Strip Heaters/Baseboard Heaters */
ESP_ZB_ZCL_DRLC_DEVICE_CLASS_WATER_HEATER = 1 << 2, /*!< Water Heater */
ESP_ZB_ZCL_DRLC_DEVICE_CLASS_POOL_PUMP = 1 << 3, /*!< Pool Pump/Spa/Jacuzzi */
ESP_ZB_ZCL_DRLC_DEVICE_CLASS_SMART_APPLIANCE = 1 << 4, /*!< Smart Appliances */
ESP_ZB_ZCL_DRLC_DEVICE_CLASS_IRRIGATION_PUMP = 1 << 5, /*!< Irrigation Pump */
ESP_ZB_ZCL_DRLC_DEVICE_CLASS_MCI_LOADS = 1 << 6, /*!< Managed Commercial & Industrial (C&I) loads */
ESP_ZB_ZCL_DRLC_DEVICE_CLASS_SIMPLE_LOADS = 1 << 7, /*!< Simple misc. (Residential On/Off) loads */
ESP_ZB_ZCL_DRLC_DEVICE_CLASS_EXTERIOR_LIGHTNING = 1 << 8, /*!< Exterior Lighting */
ESP_ZB_ZCL_DRLC_DEVICE_CLASS_INTERIOR_LIGHTNING = 1 << 9, /*!< Interior Lighting */
ESP_ZB_ZCL_DRLC_DEVICE_CLASS_ELECTRIC_VEHICLE = 1 << 10, /*!< Electric Vehicle */
ESP_ZB_ZCL_DRLC_DEVICE_CLASS_GENERATION_SYSTEMS = 1 << 11 /*!< Generation Systems */
} esp_zb_zcl_drlc_device_class_t;
/** @brief DRLC Criticality Level value applied by the device */
typedef enum esp_zb_zcl_drlc_criticality_levels_e {
ESP_ZB_ZCL_DRLC_CRITICALITY_LEVEL_0 = 0x00, /*!< Reserved */
ESP_ZB_ZCL_DRLC_CRITICALITY_GREEN, /*!< Green */
ESP_ZB_ZCL_DRLC_CRITICALITY_LEVEL_1, /*!< Level 1 */
ESP_ZB_ZCL_DRLC_CRITICALITY_LEVEL_2, /*!< Level 2 */
ESP_ZB_ZCL_DRLC_CRITICALITY_LEVEL_3, /*!< Level 3 */
ESP_ZB_ZCL_DRLC_CRITICALITY_LEVEL_4, /*!< Level 4 */
ESP_ZB_ZCL_DRLC_CRITICALITY_LEVEL_5, /*!< Level 5 */
ESP_ZB_ZCL_DRLC_CRITICALITY_EMERGENCY, /*!< Emergency */
ESP_ZB_ZCL_DRLC_CRITICALITY_PLANNED_OUTAGE, /*!< Planned Outage */
ESP_ZB_ZCL_DRLC_CRITICALITY_SERVICE_DISCONNECT /*!< Service Disconnect */
} esp_zb_zcl_drlc_criticality_levels_t;
/** @brief Commands are generated by DRLC Server */
typedef enum esp_zb_zcl_drlc_srv_cmd_e {
ESP_ZB_ZCL_DRLC_SRV_CMD_LOAD_CONTROL_EVENT = 0x00, /*!< LoadControlEvent is generated when the ESI wants to
control one or more load control devices usually as
the result of an energy curtailment command from the
Smart Energy Network. @see esp_zb_zcl_drlc_load_control_event_payload_t */
ESP_ZB_ZCL_DRLC_SRV_CMD_CANCEL_LOAD_CONTROL_EVENT = 0x01, /*!< CancelLoadControlEvent is generated when the ESI wants to
cancel previously scheduled control of one or more load
control devices, usually as the result of an energy curtailment
command from the Smart Energy network @see esp_zb_zcl_drlc_cancel_load_control_event_payload_t */
ESP_ZB_ZCL_DRLC_SRV_CMD_CANCEL_ALL_LOAD_CONTROL_EVENTS = 0x02, /*!< Cancel AllLoadControlEvents is generated when the ESI wants to cancel all
events for control device(s) */
} esp_zb_zcl_drlc_srv_cmd_t;
/** @brief Commands are generated by DRLC Client */
typedef enum esp_zb_zcl_drlc_cli_cmd_e {
ESP_ZB_ZCL_DRLC_CLI_CMD_REPORT_EVENT_STATUS = 0x00, /*!< ReportEventStatus is generated when the client device detects a change of
state for an active LoadControl event. @see esp_zb_zcl_drlc_report_event_status_payload_t */
ESP_ZB_ZCL_DRLC_CLI_CMD_GET_SCHEDULED_EVENTS = 0x01, /*!< GetScheduledEvents is generated when the client device wishes to verify the
available LoadControl events. @see esp_zb_zcl_drlc_get_scheduled_events_payload_t */
} esp_zb_zcl_drlc_cli_cmd_t;
/** @brief ESP_ZB_ZCL_DRLC_SRV_CMD_LOAD_CONTROL_EVENT LoadControlEvent command payload. */
typedef struct esp_zb_zcl_drlc_load_control_event_payload_s {
uint32_t issuer_event_id; /*!< Unique identifier generated by the Energy provider.
The value of this field allows matching of Event
reports with a specific Demand Response and Load
Control event. */
uint16_t device_class; /*!< Bit encoded field representing the Device Class to apply
the current Load Control Event.Each bit, if set individually
or in combination, indicates the class device(s) needing to
participate in the event. */
uint8_t utility_enrollment_group; /*!< This field can be used in conjunction with the Device
Class bits for providing a mechanism to direct Load
Control Events to groups of Devices. */
uint32_t start_time; /*!< UTC Timestamp representing when the event is scheduled to start.
A start time of 0x00000000 is a special time denoting now. */
uint16_t duration_in_minutes; /*!< Duration of this event in number of minutes. Maximum value is
1440 (one day). */
uint8_t criticality_level; /*!< This field defines the level of criticality of event. The action
for an event can be solely based on this value, or combination with
other Load Control Event fields. */
uint8_t cooling_temperature_offset; /*!< Requested offset to apply to the normal cooling setpoint at the
time of the start of the event in + 0.1 Celsius. */
uint8_t heating_temperature_offset; /*!< Requested offset to apply to the normal heating setpoint at the
time of the start of the event in + 0.1 Celsius.*/
int16_t cooling_temperature_set_point; /*!< Requested cooling set point in 0.01 degrees Celsius. */
int16_t heating_temperature_set_point; /*!< Requested heating set point in 0.01 degrees Celsius. */
int8_t average_load_adjustment_percentage;/*!< Defines a maximum energy usage limit as a percentage of
the client implementations specific average energy usage. */
uint8_t duty_cycle; /*!< Defines the maximum on state duty cycle as a percentage of
time. */
uint8_t event_control; /*!< Identifies additional control options for the event. */
} esp_zb_zcl_drlc_load_control_event_payload_t;
/** @brief ESP_ZB_ZCL_DRLC_SRV_CMD_CANCEL_LOAD_CONTROL_EVENT CancelLoadControlEvent command payload. */
typedef struct esp_zb_zcl_drlc_cancel_load_control_event_payload_s {
uint32_t issuer_event_id; /*!< Unique identifier generated by the Energy provider.
The value of this field allows matching of Event reports
with a specific Demand Response and Load Control event. */
uint16_t device_class; /*!< Bit encoded field representing the Device Class to apply
the current Load Control Event. Each bit, if set individually
or in combination, indicates the class device(s) needing to
participate in the event. */
uint8_t utility_enrollment_group; /*!< This field can be used in conjunction with the Device Class bits
for providing a mechanism to direct Load Control Events to groups
of Devices. */
uint8_t cancel_control; /*!< This field is used to indicate that the Event is currently in process
and a cancel command is received */
uint32_t effective_time; /*!< UTC Timestamp representing when the canceling of the event is
scheduled to start. An effective time of 0x00000000 is a special time
denoting “now.” */
} esp_zb_zcl_drlc_cancel_load_control_event_payload_t;
/** @brief ESP_ZB_ZCL_DRLC_SRV_CMD_CANCEL_ALL_LOAD_CONTROL_EVENTS CancelAllLoadControlEvents command payload. */
typedef struct esp_zb_zcl_drlc_cancel_all_load_control_events_payload_s {
uint8_t cancel_control; /*!< To be used when the Event is currently in process and a cancel command is received.
0x00: indicates that randomization is overridden and the event should be terminated immediately.
0x01: indicates the event should end using randomization settings in the original event.
Otherwise, reserved. */
} esp_zb_zcl_drlc_cancel_all_load_control_events_payload_t;
/** @brief ESP_ZB_ZCL_DRLC_CLI_CMD_REPORT_EVENT_STATUS ReportEventStatus command payload */
typedef struct esp_zb_zcl_drlc_report_event_status_payload_s {
uint32_t issuer_event_id; /*!< Unique identifier generated by the Energy provider.
The value of this field allows matching of Event reports
with a specific Demand Response and Load Control event. */
uint8_t event_status; /*!< This field stores value from set of event statuses*/
uint32_t event_status_time; /*!< UTC Timestamp representing when the event status occurred.
This field shall not use the value of 0x00000000 */
uint8_t criticality_level_applied; /*!< Criticality Level value applied by the device */
uint16_t cooling_temperature_set_point_applied; /*!< Defines Cooling Temperature Set Point value applied by the
device. The value 0x8000 means that this field has not been
used by the end device. */
uint16_t heating_temperature_set_point_applied; /*!< Defines Heating Temperature Set Point value applied by the
device. The value 0x8000 means that this field has not been
used by the end device. */
int8_t average_load_adjustment_percentage_applied; /*!< Defines Average Load Adjustment Percentage value applied by
the device. The value 0x80 means that this field has not been
used by the end device. */
uint8_t duty_cycle_applied; /*!< Defines the maximum on state duty cycle applied by the device.
The value 0xFF means that this field has not been used by the
end device. */
uint8_t event_control; /*!< Identifies additional control options for the event. */
uint8_t signature_type; /*!< This field is used to enumerate the type of algorithm use to
create the signature.*/
uint8_t signature[42]; /*!< A non-repudiation signature created by using the Matyas-Meyer-Oseas
hash function used in conjunction with ECDSA. */
} esp_zb_zcl_drlc_report_event_status_payload_t;
/** @brief ESP_ZB_ZCL_DRLC_CLI_CMD_GET_SCHEDULED_EVENTS GetScheduledEvents command payload */
typedef struct esp_zb_zcl_drlc_get_scheduled_events_payload_s {
uint32_t start_time; /*!< UTC Timestamp representing the minimum Start Time of events that shall be matched and
sent by the Server. A Start Time of 0x00000000 has no special meaning. */
uint8_t number_of_events; /*!< Represents the maximum number of events to be sent. A value of 0 indicates no maximum
limit. */
uint32_t issuer_event_id; /*!< Represents the minimum Issuer Event ID of events to be matched and sent by the server
with the same Start Time as the Get Scheduled Events command. A value of 0xFFFFFFFF
indicates this field will not be used. */
} esp_zb_zcl_drlc_get_scheduled_events_payload_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,64 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief EC_Measurement cluster server attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_EC_MEASUREMENT_MEASURED_VALUE_ID = 0x0000, /**< MeasuredValue Attribute */
ESP_ZB_ZCL_ATTR_EC_MEASUREMENT_MIN_MEASURED_VALUE_ID = 0x0001, /**< MinMeasuredValue Attribute */
ESP_ZB_ZCL_ATTR_EC_MEASUREMENT_MAX_MEASURED_VALUE_ID = 0x0002, /**< MaxMeasuredValue Attribute */
ESP_ZB_ZCL_ATTR_EC_MEASUREMENT_TOLERANCE_ID = 0x0003, /**< Tolerance Attribute */
} esp_zb_zcl_ec_measurement_srv_attr_t;
/** @brief Minimum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_EC_MEASUREMENT_MIN_MEASURED_VALUE_MINIMUM ((uint16_t)0x0000)
/** @brief Maximum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_EC_MEASUREMENT_MIN_MEASURED_VALUE_MAXIMUM ((uint16_t)0xfffd)
/** @brief Minimum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_EC_MEASUREMENT_MAX_MEASURED_VALUE_MINIMUM ((uint16_t)0x0001)
/** @brief Maximum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_EC_MEASUREMENT_MAX_MEASURED_VALUE_MAXIMUM ((uint16_t)0xfffe)
/** @brief Minimum value for Tolerance attribute */
#define ESP_ZB_ZCL_EC_MEASUREMENT_TOLERANCE_MINIMUM ((uint16_t)0x0000)
/** @brief Maximum value for Tolerance attribute */
#define ESP_ZB_ZCL_EC_MEASUREMENT_TOLERANCE_MAXIMUM ((uint16_t)0x0064)
/** @brief Unknown value for MeasuredValue attribute */
#define ESP_ZB_ZCL_EC_MEASUREMENT_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Unknown value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_EC_MEASUREMENT_MIN_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Unknown value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_EC_MEASUREMENT_MAX_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MeasuredValue attribute */
#define ESP_ZB_ZCL_EC_MEASUREMENT_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_EC_MEASUREMENT_MIN_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_EC_MEASUREMENT_MAX_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
void esp_zb_zcl_ec_measurement_init_server(void);
#define ESP_ZB_ZCL_CLUSTER_ID_EC_MEASUREMENT_SERVER_ROLE_INIT esp_zb_zcl_ec_measurement_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_EC_MEASUREMENT_CLIENT_ROLE_INIT NULL
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,217 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Electrical Measurement cluster attribute identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASUREMENT_TYPE_ID = 0x0000, /*!< This attribute indicates a device s measurement capabilities. */
/* DC Measurement */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_VOLTAGE_ID = 0x0100, /*!< The DCVoltage attribute represents the most recent DC voltage reading in Volts (V). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_VOLTAGE_MIN_ID = 0x0101, /*!< The DCVoltageMin attribute represents the lowest DC voltage value measured in Volts (V). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_VOLTAGE_MAX_ID = 0x0102, /*!< The DCVoltageMax attribute represents the highest DC voltage value measured in Volts (V). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_CURRENT_ID = 0x0103, /*!< The DCCurrent attribute represents the most recent DC current reading in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_CURRENT_MIN_ID = 0x0104, /*!< The DCCurrentMin attribute represents the lowest DC current value measured in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_CURRENT_MAX_ID = 0x0105, /*!< The DCCurrentMax attribute represents the highest DC current value measured in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DCPOWER_ID = 0x0106, /*!< The @e DCPower attribute represents the most recent DC power reading in @e Watts (W) */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_POWER_MIN_ID = 0x0107, /*!< The DCPowerMin attribute represents the lowest DC power value measured in Watts (W). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_POWER_MAX_ID = 0x0108, /*!< The DCPowerMax attribute represents the highest DC power value measured in Watts (W). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_VOLTAGE_MULTIPLIER_ID = 0x0200, /*!< The DCVoltageMultiplier provides a value to be multiplied against the DCVoltage, DCVoltageMin, and DCVoltageMax attributes. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_VOLTAGE_DIVISOR_ID = 0x0201, /*!< The DCVoltageDivisor provides a value to be divided against the DCVoltage, DCVoltageMin, and DCVoltageMax attributes. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_CURRENT_MULTIPLIER_ID = 0x0202, /*!< The DCCurrentMultiplier provides a value to be multiplied against the DCCurrent, DCCurrentMin, and DCCurrentMax attributes. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_CURRENT_DIVISOR_ID = 0x0203, /*!< The DCCurrentDivisor provides a value to be divided against the DCCurrent, DCCurrentMin, and DCCurrentMax attributes. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_POWER_MULTIPLIER_ID = 0x0204, /*!< The DCPowerMultiplier provides a value to be multiplied against the DCPower, DCPowerMin, and DCPowerMax attributes. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_POWER_DIVISOR_ID = 0x0205, /*!< The DCPowerDivisor provides a value to be divided against the DCPower, DCPowerMin, and DCPowerMax attributes. */
/* AC Measurement (Non Phase) */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AC_FREQUENCY_ID = 0x0300, /*!< The ACFrequency attribute represents the most recent AC Frequency reading in Hertz (Hz). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AC_FREQUENCY_MIN_ID = 0x0301, /*!< The ACFrequencyMin attribute represents the lowest AC Frequency value measured in Hertz (Hz). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AC_FREQUENCY_MAX_ID = 0x0302, /*!< The ACFrequencyMax attribute represents the highest AC Frequency value measured in Hertz (Hz). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_NEUTRAL_CURRENT_ID = 0x0303, /*!< The NeutralCurrent attribute represents the AC neutral (Line-Out) current value at the moment in time the attribute is read, in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_TOTAL_ACTIVE_POWER_ID = 0x0304, /*!< Active power represents the current demand of active power delivered or received at the premises, in @e kW */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_TOTAL_REACTIVE_POWER_ID = 0x0305, /*!< Reactive power represents the current demand of reactive power delivered or received at the premises, in kVAr. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_TOTAL_APPARENT_POWER_ID = 0x0306, /*!< Represents the current demand of apparent power, in @e kVA */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASURED1ST_HARMONIC_CURRENT_ID = 0x0307, /*!< Attribute represent the most recent 1st harmonic current reading in an AC frequency. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASURED3RD_HARMONIC_CURRENT_ID = 0x0308, /*!< Attribute represent the most recent 3rd harmonic current reading in an AC frequency. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASURED5TH_HARMONIC_CURRENT_ID = 0x0309, /*!< Attribute represent the most recent 5th harmonic current reading in an AC frequency. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASURED7TH_HARMONIC_CURRENT_ID = 0x030a, /*!< Attribute represent the most recent 7th harmonic current reading in an AC frequency. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASURED9TH_HARMONIC_CURRENT_ID = 0x030b, /*!< Attribute represent the most recent 9th harmonic current reading in an AC frequency. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASURED11TH_HARMONIC_CURRENT_ID = 0x030c, /*!< Attribute represent the most recent 11th harmonic current reading in an AC frequency. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASURED_PHASE1ST_HARMONIC_CURRENT_ID = 0x030d, /*!< Attribute represent the most recent phase of the 1st harmonic current reading in an AC frequency. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASURED_PHASE3RD_HARMONIC_CURRENT_ID = 0x030e, /*!< Attribute represent the most recent phase of the 3rd harmonic current reading in an AC frequency. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASURED_PHASE5TH_HARMONIC_CURRENT_ID = 0x030f, /*!< Attribute represent the most recent phase of the 5th harmonic current reading in an AC frequency. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASURED_PHASE7TH_HARMONIC_CURRENT_ID = 0x0310, /*!< Attribute represent the most recent phase of the 7th harmonic current reading in an AC frequency. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASURED_PHASE9TH_HARMONIC_CURRENT_ID = 0x0311, /*!< Attribute represent the most recent phase of the 9th harmonic current reading in an AC frequency. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_MEASURED_PHASE11TH_HARMONIC_CURRENT_ID = 0x0312, /*!< Attribute represent the most recent phase of the 11th harmonic current reading in an AC frequency. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AC_FREQUENCY_MULTIPLIER_ID = 0x0400, /*!< Provides a value to be multiplied against the ACFrequency attribute. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AC_FREQUENCY_DIVISOR_ID = 0x0401, /*!< Provides a value to be divided against the ACFrequency attribute. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_POWER_MULTIPLIER_ID = 0x0402, /*!< Provides a value to be multiplied against a raw or uncompensated sensor count of power being measured by the metering device. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_POWER_DIVISOR_ID = 0x0403, /*!< Provides a value to divide against the results of applying the @e Multiplier attribute against a raw or uncompensated sensor count of power being measured by the metering device. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_HARMONIC_CURRENT_MULTIPLIER_ID = 0x0404, /*!< Represents the unit value for the MeasuredNthHarmonicCurrent attribute in the format MeasuredNthHarmonicCurrent * 10 ^ HarmonicCurrentMultiplier amperes. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_PHASE_HARMONIC_CURRENT_MULTIPLIER_ID = 0x0405, /*!< Represents the unit value for the MeasuredPhaseNthHarmonicCurrent attribute in the format MeasuredPhaseNthHarmonicCurrent * 10 ^ PhaseHarmonicCurrentMultiplier degrees. */
/* AC Measurement (Phase A)*/
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_LINE_CURRENT_ID = 0x0501, /*!< Represents the single phase or Phase A, AC line current (Square root of active and reactive current) value at the moment in time the attribute is read, in @e Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_CURRENT_ID = 0x0502, /*!< Represents the single phase or Phase A, AC active/resistive current value at the moment in time the attribute is read, in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_REACTIVE_CURRENT_ID = 0x0503, /*!< Represents the single phase or Phase A, AC reactive current value at the moment in time the attribute is read, in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMSVOLTAGE_ID = 0x0505, /*!< Represents the most recent RMS voltage reading in @e Volts (V). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_MIN_ID = 0x0506, /*!< Represents the lowest RMS voltage value measured in Volts (V). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_MAX_ID = 0x0507, /*!< Represents the highest RMS voltage value measured in Volts (V). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMSCURRENT_ID = 0x0508, /*!< Represents the most recent RMS current reading in @e Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_CURRENT_MIN_ID = 0x0509, /*!< Represents the lowest RMS current value measured in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_CURRENT_MAX_ID = 0x050a, /*!< Represents the highest RMS current value measured in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_POWER_ID = 0x050B, /*!< Represents the single phase or Phase A, current demand of active power delivered or received at the premises, in @e Watts (W). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_POWER_MIN_ID = 0x050c, /*!< Represents the lowest AC power value measured in Watts (W). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_POWER_MAX_ID = 0x050d, /*!< Represents the highest AC power value measured in Watts (W). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_REACTIVE_POWER_ID = 0x050e, /*!< Represents the single phase or Phase A, current demand of reactive power delivered or received at the premises, in VAr. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_APPARENT_POWER_ID = 0x050F, /*!< Represents the single phase or Phase A, current demand of apparent (Square root of active and reactive power) power, in @e VA. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_POWER_FACTOR_ID = 0x0510, /*!< Contains the single phase or PhaseA, Power Factor ratio in 1/100th. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AVERAGE_RMSVOLTAGE_MEASUREMENT_PERIOD_ID = 0x0511, /*!< The Period in seconds that the RMS voltage is averaged over. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_ID = 0x0512, /*!< The number of times the average RMS voltage, has been above the AverageRMS OverVoltage threshold since last reset. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_ID = 0x0513, /*!< The number of times the average RMS voltage, has been below the AverageRMS underVoltage threshold since last reset. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_EXTREME_OVER_VOLTAGE_PERIOD_ID = 0x0514, /*!< The duration in seconds used to measure an extreme over voltage condition. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_ID = 0x0515, /*!< The duration in seconds used to measure an extreme under voltage condition. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_SAG_PERIOD_ID = 0x0516, /*!< The duration in seconds used to measure a voltage sag condition. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_SWELL_PERIOD_ID = 0x0517, /*!< The duration in seconds used to measure a voltage swell condition. */
/* AC Formatting */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACVOLTAGE_MULTIPLIER_ID = 0x0600, /*!< Provides a value to be multiplied against the @e InstantaneousVoltage and RMSVoltage attributes. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACVOLTAGE_DIVISOR_ID = 0x0601, /*!< Provides a value to be divided against the @e InstantaneousVoltage */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACCURRENT_MULTIPLIER_ID = 0x0602, /*!< Provides a value to be multiplied against the @e InstantaneousCurrent and @e RMSCurrent attributes */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACCURRENT_DIVISOR_ID = 0x0603, /*!< Provides a value to be divided against the @e ACCurrent, @e InstantaneousCurrent and @e RMSCurrent attributes. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACPOWER_MULTIPLIER_ID = 0x0604, /*!< Provides a value to be multiplied against the @e InstantaneousPower and @e ActivePower attributes */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACPOWER_DIVISOR_ID = 0x0605, /*!< Provides a value to be divided against the @e InstantaneousPower and @e ActivePower attributes. */
/* DC Manufacturer Threshold Alarms */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_OVERLOAD_ALARMS_MASK_ID = 0x0700, /*!< Specifies which configurable alarms may be generated. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_VOLTAGE_OVERLOAD_ID = 0x0701, /*!< Specifies the alarm threshold, set by the manufacturer, for the maximum output voltage supported by device. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_DC_CURRENT_OVERLOAD_ID = 0x0702, /*!< Specifies the alarm threshold, set by the manufacturer, for the maximum output current supported by device. */
/* AC Manufacturer Threshold Alarms */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AC_ALARMS_MASK_ID = 0x0800, /*!< Specifies which configurable alarms may be generated. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AC_VOLTAGE_OVERLOAD_ID = 0x0801, /*!< Specifies the alarm threshold, set by the manufacturer, for the maximum output voltage supported by device. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AC_CURRENT_OVERLOAD_ID = 0x0802, /*!< Specifies the alarm threshold, set by the manufacturer, for the maximum output current supported by device. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AC_ACTIVE_POWER_OVERLOAD_ID = 0x0803, /*!< Specifies the alarm threshold, set by the manufacturer, for the maximum output active power supported by device. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AC_REACTIVE_POWER_OVERLOAD_ID = 0x0804, /*!< Specifies the alarm threshold, set by the manufacturer, for the maximum output reactive power supported by device. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AVERAGE_RMS_OVER_VOLTAGE_ID = 0x0805, /*!< The average RMS voltage above which an over voltage condition is reported. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AVERAGE_RMS_UNDER_VOLTAGE_ID = 0x0806, /*!< The average RMS voltage below which an under voltage condition is reported. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_EXTREME_OVER_VOLTAGE_ID = 0x0807, /*!< The RMS voltage above which an extreme under voltage condition is reported. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_EXTREME_UNDER_VOLTAGE_ID = 0x0808, /*!< The RMS voltage below which an extreme under voltage condition is reported. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_SAG_ID = 0x0809, /*!< The RMS voltage below which a sag condition is reported. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_SWELL_ID = 0x080a, /*!< The RMS voltage above which a swell condition is reported. */
/* AC Measurement (Phase B)*/
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_LINE_CURRENT_PH_B_ID = 0x0901, /*!< Represents the Phase B, AC line current (Square root sum of active and reactive currents) value at the moment in time the attribute is read, in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_CURRENT_PH_B_ID = 0x0902, /*!< Represents the Phase B, AC active/resistive current value at the moment in time */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_REACTIVE_CURRENT_PH_B_ID = 0x0903, /*!< Represents the Phase B, AC reactive current value at the moment in time the */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMSVOLTAGE_PHB_ID = 0x0905, /*!< Represents the most recent RMS voltage reading in @e Volts (V). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_MIN_PH_B_ID = 0x0906, /*!< Represents the lowest RMS voltage value measured in Volts (V). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_MAX_PH_B_ID = 0x0907, /*!< Represents the highest RMS voltage value measured in Volts (V). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMSCURRENT_PHB_ID = 0x0908, /*!< Represents the most recent RMS current reading in @e Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_CURRENT_MIN_PH_B_ID = 0x0909, /*!< Represents the lowest RMS current value measured in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_CURRENT_MAX_PH_B_ID = 0x090a, /*!< Represents the highest RMS current value measured in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_POWER_PHB_ID = 0x090B, /*!< Represents the Phase B, current demand of active power delivered or received at the premises, in @e Watts (W). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_POWER_MIN_PH_B_ID = 0x090c, /*!< Represents the lowest AC power value measured in Watts (W). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_POWER_MAX_PH_B_ID = 0x090d, /*!< Represents the highest AC power value measured in Watts (W). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_REACTIVE_POWER_PH_B_ID = 0x090e, /*!< Represents the Phase B, current demand of reactive power delivered or received at the premises, in VAr. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_APPARENT_POWER_PHB_ID = 0x090F, /*!< Represents the Phase B, current demand of apparent (Square root of active and reactive power) power, in @e VA. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_POWER_FACTOR_PH_B_ID = 0x0910, /*!< Contains the PhaseB, Power Factor ratio in 1/100th. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AVERAGE_RMSVOLTAGE_MEASUREMENT_PERIOD_PHB_ID = 0x0911, /*!< The number of times the average RMS voltage, has been above the @e AverageRMS @e OverVoltage threshold since last reset. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PH_B_ID = 0x0912, /*!< The number of times the average RMS voltage, has been above the AverageRMS OverVoltage threshold since last reset. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PH_B_ID = 0x0913, /*!< The number of times the average RMS voltage, has been below the AverageRMS underVoltage threshold since last reset. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PH_B_ID = 0x0914, /*!< The duration in seconds used to measure an extreme over voltage condition. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PH_B_ID = 0x0915, /*!< The duration in seconds used to measure an extreme under voltage condition. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_SAG_PERIOD_PH_B_ID = 0x0916, /*!< The duration in seconds used to measure a voltage sag condition. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_SWELL_PERIOD_PH_B_ID = 0x0917, /*!< The duration in seconds used to measure a voltage swell condition. */
/* AC Measurement (Phase C)*/
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_LINE_CURRENT_PH_C_ID = 0x0a01, /*!< Represents the Phase C, AC line current (Square root of active and reactive current) value at the moment in time the attribute is read, in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_CURRENT_PH_C_ID = 0x0a02, /*!< Represents the Phase C, AC active/resistive current value at the moment in time the attribute is read, in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_REACTIVE_CURRENT_PH_C_ID = 0x0a03, /*!< Represents the Phase C, AC reactive current value at the moment in time the attribute is read, in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMSVOLTAGE_PHC_ID = 0x0A05, /*!< Represents the most recent RMS voltage reading in @e Volts (V).*/
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_MIN_PH_C_ID = 0x0a06, /*!< Represents the lowest RMS voltage value measured in Volts (V). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_MAX_PH_C_ID = 0x0a07, /*!< Represents the highest RMS voltage value measured in Volts (V). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMSCURRENT_PHC_ID = 0x0A08, /*!< Represents the most recent RMS current reading in @e Amps (A).*/
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_CURRENT_MIN_PH_C_ID = 0x0a09, /*!< Represents the lowest RMS current value measured in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_CURRENT_MAX_PH_C_ID = 0x0a0a, /*!< Represents the highest RMS current value measured in Amps (A). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_POWER_PHC_ID = 0x0A0B, /*!< Represents the Phase C, current demand of active power delivered or received at the premises, in @e Watts (W). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_POWER_MIN_PH_C_ID = 0x0a0c, /*!< Represents the lowest AC power value measured in Watts (W). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_ACTIVE_POWER_MAX_PH_C_ID = 0x0a0d, /*!< Represents the highest AC power value measured in Watts (W). */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_REACTIVE_POWER_PH_C_ID = 0x0a0e, /*!< Represents the Phase C, current demand of reactive power delivered or received at the premises, in VAr. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_APPARENT_POWER_PHC_ID = 0x0A0F, /*!< Represents the Phase C, current demand of apparent (Square root of active and reactive power) power, in @e VA. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_POWER_FACTOR_PH_C_ID = 0x0a10, /*!< Contains the Phase C, Power Factor ratio in 1/100th. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AVERAGE_RMSVOLTAGE_MEASUREMENT_PERIOD_PHC_ID = 0x0A11, /*!< The Period in seconds that the RMS voltage is averaged over*/
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AVERAGE_RMS_OVER_VOLTAGE_COUNTER_PH_C_ID = 0x0a12, /*!< The number of times the average RMS voltage, has been above the AverageRMS OverVoltage threshold since last reset. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_AVERAGE_RMS_UNDER_VOLTAGE_COUNTER_PH_C_ID = 0x0a13, /*!< The number of times the average RMS voltage, has been below the AverageRMS underVoltage threshold since last reset. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_EXTREME_OVER_VOLTAGE_PERIOD_PH_C_ID = 0x0a14, /*!< The duration in seconds used to measure an extreme over voltage condition. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_EXTREME_UNDER_VOLTAGE_PERIOD_PH_C_ID = 0x0a15, /*!< The duration in seconds used to measure an extreme under voltage condition. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_SAG_PERIOD_PH_C_ID = 0x0a16, /*!< The duration in seconds used to measure a voltage sag condition. */
ESP_ZB_ZCL_ATTR_ELECTRICAL_MEASUREMENT_RMS_VOLTAGE_SWELL_PERIOD_PH_C_ID = 0x0a17, /*!< The duration in seconds used to measure a voltage swell condition. */
}esp_zb_zcl_electrical_measurement_attr_t;
typedef enum {
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_ACTIVE_MEASUREMENT = 0x00000001, /*!< Active Measurement bit */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_REACTIVE_MEASUREMENT = 0x00000002, /*!< Reactive Measurement bit */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_APPARENT_MEASUREMENT = 0x00000004, /*!< Apparent Measurement bit */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_PHASE_A_MEASUREMENT = 0x00000008, /*!< Phase A Measurement bit */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_PHASE_B_MEASUREMENT = 0x00000010, /*!< Phase B Measurement bit */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_PHASE_C_MEASUREMENT = 0x00000020, /*!< Phase C Measurement bit */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_DC_MEASUREMENT = 0x00000040, /*!< DC Measurement bit */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_HARMONIC_MEASUREMENT = 0x00000080, /*!< Harmonic Measurement bit */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_POWER_QUALITY_MEASUREMENT = 0x00000100, /*!< Power Quality Measurement bit */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_RESERVED = 0x00000200
}esp_zb_zcl_electrical_measurement_measurement_type_t;
typedef enum{
ESP_ZB_ZCL_CMD_ELECTRICAL_MEASUREMENT_GET_PROFILE_INFO_RESPONSE_COMMAND = 0x00, /*!< This command is generated when the Client command GetProfileInfo is received. */
ESP_ZB_ZCL_CMD_ELECTRICAL_MEASUREMENT_GET_MEASUREMENT_PROFILE_RESPONSE_COMMAND = 0x01, /*!< This command is generated when the Client command GetMeasurementProfile is received. */
}esp_zb_zcl_electrical_measurement_srv_cmd_t;
typedef enum{
ESP_ZB_ZCL_CMD_ELECTRICAL_MEASUREMENT_GET_PROFILE_INFO_COMMAND = 0x00, /*!< Get Profile Info Command */
ESP_ZB_ZCL_CMD_ELECTRICAL_MEASUREMENT_GET_MEASUREMENT_PROFILE_COMMAND = 0x01, /*!< Get Measurement Profile Command */
}esp_zb_zcl_electrical_measurement_cli_cmd_t;
typedef enum{
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_PROFILE_INTERVAL_PERIOD_DAILY = 0x00, /*!< Represents the daily interval or time frame used to capture parameter for profiling purposes */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_PROFILE_INTERVAL_PERIOD_60MINS = 0x01, /*!< Represents the 60 minutes interval or time frame used to capture parameter for profiling purposes */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_PROFILE_INTERVAL_PERIOD_30MINS = 0x02, /*!< Represents the 30 minutes interval or time frame used to capture parameter for profiling purposes */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_PROFILE_INTERVAL_PERIOD_15MINS = 0x03, /*!< Represents the 15 minutes interval or time frame used to capture parameter for profiling purposes */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_PROFILE_INTERVAL_PERIOD_10MINS = 0x04, /*!< Represents the 10 minutes interval or time frame used to capture parameter for profiling purposes */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_PROFILE_INTERVAL_PERIOD_7_5MINS = 0x05, /*!< Represents the 7.5 minutes interval or time frame used to capture parameter for profiling purposes */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_PROFILE_INTERVAL_PERIOD_5MINS = 0x06, /*!< Represents the 5 minutes interval or time frame used to capture parameter for profiling purposes */
ESP_ZB_ZCL_ELECTRICAL_MEASUREMENT_PROFILE_INTERVAL_PERIOD_2_5MINS = 0x07, /*!< Represents the 2.5 minutes interval or time frame used to capture parameter for profiling purposes */
}esp_zb_zcl_electrical_measurement_profile_interval_period_t;
/**
* @brief The Zigbee electrical measurement cluster profile information command struct
*
*/
typedef struct esp_zb_electrical_measurement_profile_info_s {
uint8_t count; /*!< The counter for response command */
esp_zb_zcl_electrical_measurement_profile_interval_period_t interval_period; /*!< The Profile interval period for profile information response command */
uint8_t max_number_of_intervals; /*!< The Profile max number of intervals for profile information response command */
uint16_t attributes_size; /*!< The Profile attributes size for profile information response command */
uint16_t *attributes_list; /*!< The Profile attributes list for profile information response command */
}esp_zb_electrical_measurement_profile_info_t;
/**
* @brief The Zigbee electrical measurement cluster profile command struct
*
*/
typedef struct esp_zb_electrical_measurement_profile_s {
uint32_t start_time; /*!< The start time for profile response command */
uint32_t status; /*!< The status for profile response command */
uint32_t interval_period; /*!< The interval period for profile response command */
uint8_t interval_delivered_number; /*!< The interval delivered number for profile response command */
uint8_t attributes_id; /*!< The interval attributes id for profile response command */
void *intervals; /*!< The array of atttibute values intervals id for profile response command */
}esp_zb_electrical_measurement_profile_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,48 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Fan Control cluster attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_FAN_CONTROL_FAN_MODE_ID = 0x0000, /*!< Fan mode attribute */
ESP_ZB_ZCL_ATTR_FAN_CONTROL_FAN_MODE_SEQUENCE_ID = 0x0001 /*!< Fan mode sequence attribute */
} esp_zb_zcl_fan_control_attr_t;
/** @brief Values for Fan Mode attribute */
typedef enum {
ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_OFF = 0x00, /*!< Off value */
ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_LOW = 0x01, /*!< Low value */
ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_MEDIUM = 0x02, /*!< Medium value */
ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_HIGH = 0x03, /*!< High value */
ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_ON = 0x04, /*!< On value */
ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_AUTO = 0x05, /*!< Auto value */
ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_SMART = 0x06, /*!< Smart value */
} esp_zb_zcl_fan_control_fan_mode_t;
/** @brief Values for Fan Mode Sequence attribute */
typedef enum {
ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_LOW_MED_HIGH = 0x00, /*!< Low/Med/High value */
ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_LOW_HIGH = 0x01, /*!< Low/High value */
ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_LOW_MED_HIGH_AUTO = 0x02, /*!< Low/Med/High/Auto value */
ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_LOW_HIGH_AUTO = 0x03, /*!< Low/High/Auto value */
ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_ON_AUTO = 0x04, /*!< On/Auto value */
} esp_zb_zcl_fan_control_fan_mode_sequence_t;
/** @brief Default value for Fan Mode attribute */
#define ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_DEFAULT_VALUE 0x05
/** @brief Default value for Fan Mode attribute */
#define ESP_ZB_ZCL_FAN_CONTROL_FAN_MODE_SEQUENCE_DEFAULT_VALUE 0x02
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,64 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Flow measurement cluster attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_FLOW_MEASUREMENT_VALUE_ID = 0x0000, /*!< MeasuredValue attribute */
ESP_ZB_ZCL_ATTR_FLOW_MEASUREMENT_MIN_VALUE_ID = 0x0001, /*!< MinMeasuredValue attribute */
ESP_ZB_ZCL_ATTR_FLOW_MEASUREMENT_MAX_VALUE_ID = 0x0002, /*!< MaxMeasuredValue attribute */
ESP_ZB_ZCL_ATTR_FLOW_MEASUREMENT_TOLERANCE_ID = 0x0003, /*!< Tolerance attribute */
} esp_zb_zcl_flow_measurement_attr_t;
/** @brief Minimum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_FLOW_MEASUREMENT_MIN_MEASURED_VALUE_MINIMUM ((uint16_t)0x0000)
/** @brief Maximum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_FLOW_MEASUREMENT_MIN_MEASURED_VALUE_MAXIMUM ((uint16_t)0xfffd)
/** @brief Minimum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_FLOW_MEASUREMENT_MAX_MEASURED_VALUE_MINIMUM ((uint16_t)0x0001)
/** @brief Maximum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_FLOW_MEASUREMENT_MAX_MEASURED_VALUE_MAXIMUM ((uint16_t)0xffff)
/** @brief Minimum value for Tolerance attribute */
#define ESP_ZB_ZCL_FLOW_MEASUREMENT_TOLERANCE_MINIMUM ((uint16_t)0x0000)
/** @brief Maximum value for Tolerance attribute */
#define ESP_ZB_ZCL_FLOW_MEASUREMENT_TOLERANCE_MAXIMUM ((uint16_t)0x0800)
/** @brief Unknown value for MeasuredValue attribute */
#define ESP_ZB_ZCL_FLOW_MEASUREMENT_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Unknown value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_FLOW_MEASUREMENT_MIN_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Unknown value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_FLOW_MEASUREMENT_MAX_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MeasuredValue attribute */
#define ESP_ZB_ZCL_FLOW_MEASUREMENT_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_FLOW_MEASUREMENT_MIN_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_FLOW_MEASUREMENT_MAX_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
void esp_zb_zcl_flow_measurement_init_server(void);
#define ESP_ZB_ZCL_CLUSTER_ID_FLOW_MEASUREMENT_SERVER_ROLE_INIT esp_zb_zcl_flow_measurement_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_FLOW_MEASUREMENT_CLIENT_ROLE_INIT NULL
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,86 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include "esp_zigbee_type.h"
#include "zgp/esp_zigbee_zgp.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief The enumeration for attributes of the Zigbee Green Power cluster
*
*/
typedef enum esp_zgp_gp_attr_e {
ESP_ZB_ZCL_ATTR_GPS_MAX_SINK_TABLE_ENTRIES_ID = 0x0000, /*!< Maximum number of Sink Table entries supported by this device */
ESP_ZB_ZCL_ATTR_GPS_SINK_TABLE_ID = 0x0001, /*!< Sink Table, holding information about local bindings between a particular GPD and targets local endpoints */
ESP_ZB_ZCL_ATTR_GPS_COMMUNICATION_MODE_ID = 0x0002, /*!< Default communication mode requested by this GPS */
ESP_ZB_ZCL_ATTR_GPS_COMMISSIONING_EXIT_MODE_ID = 0x0003, /*!< Conditions for the GPS to exit the commissioning mode */
ESP_ZB_ZCL_ATTR_GPS_COMMISSIONING_WINDOW_ID = 0x0004, /*!< Default duration of the Commissioning window duration, in seconds, as re- quested by this GPS */
ESP_ZB_ZCL_ATTR_GPS_SECURITY_LEVEL_ID = 0x0005, /*!< The minimum required security level to be supported by the paired GPDs*/
ESP_ZB_ZCL_ATTR_GPS_FUNCTIONALITY_ID = 0x0006, /*!< The optional GP functionality supported by this GPS */
ESP_ZB_ZCL_ATTR_GPS_ACTIVE_FUNCTIONALITY_ID = 0x0007, /*!< The optional GP functionality supported by this GPS that is active */
ESP_ZB_ZCL_ATTR_GPP_MAX_PROXY_TABLE_ENTRIES_ID = 0x0010, /*!< Maximum number of Proxy Table entries supported by this device */
ESP_ZB_ZCL_ATTR_GPP_PROXY_TABLE_ID = 0x0011, /*!< Proxy Table, holding information about pairings between a particular GPD ID and GPSs in the network*/
ESP_ZB_ZCL_ATTR_GPP_NOTIFICATION_RETRY_NUMBER_ID = 0x0012, /*!< Number of unicast GP Notification retries on lack of GP Notification Response */
ESP_ZB_ZCL_ATTR_GPP_NOTIFICATION_RETRY_TIMER_ID = 0x0013, /*!< Time in ms between unicast GP Notification retries on lack of GP Notification Response */
ESP_ZB_ZCL_ATTR_GPP_MAX_SEARCH_COUNTER_ID = 0x0014, /*!< The frequency of sink re-discovery for inactive Proxy Table entries */
ESP_ZB_ZCL_ATTR_GPP_BLOCKED_GPDID_ID = 0x0015, /*!< A list holding information about blocked GPD IDs*/
ESP_ZB_ZCL_ATTR_GPP_FUNCTIONALITY_ID = 0x0016, /*!< The optional GP functionality supported by this GPP */
ESP_ZB_ZCL_ATTR_GPP_ACTIVE_FUNCTIONALITY_ID = 0x0017, /*!< The optional GP functionality supported by this GPP that is active */
ESP_ZB_ZCL_ATTR_GP_SHARED_SECURITY_KEY_TYPE_ID = 0x0020, /*!< The security key type to be used for the communication with all paired 0b11 GPD in this network */
ESP_ZB_ZCL_ATTR_GP_SHARED_SECURITY_KEY_ID = 0x0021, /*!< The security key to be used for the communication with all paired GPD in this network */
ESP_ZB_ZCL_ATTR_GP_LINK_KEY_ID = 0x0022 /*!< The security key to be used to encrypt the key exchanged with the GPD */
} esp_zgp_gp_attr_t;
/**
* @brief Green power server command
*
*/
typedef enum esp_zgp_server_commands_e {
ESP_ZGP_SERVER_CMD_GP_NOTIFICATION = 0x00,
ESP_ZGP_SERVER_CMD_GP_PAIRING_SEARCH = 0x01,
ESP_ZGP_SERVER_CMD_GP_TUNNELING_STOP = 0x03,
ESP_ZGP_SERVER_CMD_GP_COMMISSIONING_NOTIFICATION = 0x04,
ESP_ZGP_SERVER_CMD_GP_SINK_COMMISSIONING_MODE = 0x05,
ESP_ZGP_SERVER_CMD_GP_TRANSLATION_TABLE_UPDATE_COMMAND = 0x07,
ESP_ZGP_SERVER_CMD_GP_TRANSLATION_TABLE_REQUEST = 0x08,
ESP_ZGP_SERVER_CMD_GP_PAIRING_CONFIGURATION = 0x09,
ESP_ZGP_SERVER_CMD_GP_SINK_TABLE_REQUEST = 0x0a,
ESP_ZGP_SERVER_CMD_GP_PROXY_TABLE_RESPONSE = 0x0b
} esp_zgp_server_commands_t;
/**
* @brief Green power client command
*
*/
typedef enum esp_zgp_client_commands_e {
ESP_ZGP_CLIENT_CMD_GP_NOTIFICATION_RESPONSE = 0x00,
ESP_ZGP_CLIENT_CMD_GP_PAIRING = 0x01,
ESP_ZGP_CLIENT_CMD_GP_PROXY_COMMISSIONING_MODE = 0x02,
ESP_ZGP_CLIENT_CMD_GP_RESPONSE = 0x06,
ESP_ZGP_CLIENT_CMD_GP_SINK_TABLE_RESPONSE = 0x0a,
ESP_ZGP_CLIENT_CMD_GP_PROXY_TABLE_REQUEST = 0x0b
} esp_zgp_client_commands_t;
/**
* @brief The Action sub-field of the zgp pairing configuration
*
*/
typedef enum esp_zgp_pairing_config_action_e {
ESP_ZGP_PAIRING_CONFIG_NO_ACTION = 0xb000, /*!< No action */
ESP_ZGP_PAIRING_CONFIG_EXTEND_SINK_TABLE_ENTRY = 0xb001, /*!< Extend Sink Table entry */
ESP_ZGP_PAIRING_CONFIG_REPLACE_SINK_TABLE_ENTRY = 0xb010, /*!< Replace Sink Table entry */
ESP_ZGP_PAIRING_CONFIG_REMOVE_A_PAIRING = 0xb011, /*!< Remove a pairing */
ESP_ZGP_PAIRING_CONFIG_REMOVE_GPD = 0xb100, /*!< Remove GPD */
} esp_zgp_pairing_config_action_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,38 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Groups cluster attribute identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_GROUPS_NAME_SUPPORT_ID = 0 /*!< NameSupport attribute */
} esp_zb_zcl_groups_attr_t;
/** @brief Default value for groups attribute
*/
#define ESP_ZB_ZCL_GROUPS_NAME_SUPPORT_DEFAULT_VALUE 0x00
/**
* @brief Groups cluster command identifiers.
*/
typedef enum {
ESP_ZB_ZCL_CMD_GROUPS_ADD_GROUP = 0x00, /*!< Add group command identifier. */
ESP_ZB_ZCL_CMD_GROUPS_VIEW_GROUP = 0x01, /*!< View group command identifier. */
ESP_ZB_ZCL_CMD_GROUPS_GET_GROUP_MEMBERSHIP = 0x02, /*!< Get group membership command identifier.*/
ESP_ZB_ZCL_CMD_GROUPS_REMOVE_GROUP = 0x03, /*!< Remove group command identifier. */
ESP_ZB_ZCL_CMD_GROUPS_REMOVE_ALL_GROUPS = 0x04, /*!< Remove all groups command identifier. */
ESP_ZB_ZCL_CMD_GROUPS_ADD_GROUP_IF_IDENTIFYING = 0x05 /*!< Add group if identifying command identifier. */
} esp_zb_zcl_groups_cmd_id_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,65 @@
/*
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Water Content Measurement cluster attribute identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_VALUE_ID = 0x0000, /*!< MeasuredValue */
ESP_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_MIN_VALUE_ID = 0x0001, /*!< MinMeasuredValue Attribute */
ESP_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_MAX_VALUE_ID = 0x0002, /*!< MaxMeasuredValue Attribute */
ESP_ZB_ZCL_ATTR_REL_HUMIDITY_TOLERANCE_ID = 0x0003, /*!< The Tolerance attribute SHALL indicate the magnitude of the possible error that is associated with MeasuredValue, using the same units and resolution.*/
} esp_zb_zcl_rel_humidity_measurement_attr_t;
/** @brief Minimum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_REL_HUMIDITY_MEASUREMENT_MIN_MEASURED_VALUE_MINIMUM ((uint16_t)0x0000)
/** @brief Maximum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_REL_HUMIDITY_MEASUREMENT_MIN_MEASURED_VALUE_MAXIMUM ((uint16_t)0x270f)
/** @brief Minimum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_REL_HUMIDITY_MEASUREMENT_MAX_MEASURED_VALUE_MINIMUM ((uint16_t)0x0001)
/** @brief Maximum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_REL_HUMIDITY_MEASUREMENT_MAX_MEASURED_VALUE_MAXIMUM ((uint16_t)0x2710)
/** @brief Minimum value for Tolerance attribute */
#define ESP_ZB_ZCL_REL_HUMIDITY_MEASUREMENT_TOLERANCE_MINIMUM ((uint16_t)0x0000)
/** @brief Maximum value for Tolerance attribute */
#define ESP_ZB_ZCL_REL_HUMIDITY_MEASUREMENT_TOLERANCE_MAXIMUM ((uint16_t)0x0800)
/** @brief Unknown value for MeasuredValue attribute */
#define ESP_ZB_ZCL_REL_HUMIDITY_MEASUREMENT_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Unknown value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_REL_HUMIDITY_MEASUREMENT_MIN_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Unknown value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_REL_HUMIDITY_MEASUREMENT_MAX_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MeasuredValue attribute */
#define ESP_ZB_ZCL_REL_HUMIDITY_MEASUREMENT_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_REL_HUMIDITY_MEASUREMENT_MIN_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_REL_HUMIDITY_MEASUREMENT_MAX_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
void esp_zb_zcl_rel_humidity_measurement_init_server(void);
#define ESP_ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT_SERVER_ROLE_INIT esp_zb_zcl_rel_humidity_measurement_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT_CLIENT_ROLE_INIT NULL
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,271 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Structure representation of IAS ACE Zone Table */
typedef struct esp_zb_zcl_ias_ace_zone_table_s {
uint8_t zone_id; /**< Zone ID */
uint16_t zone_type; /**< Zone Type, see esp_zb_zcl_ias_zone_zonetype_t */
esp_zb_ieee_addr_t zone_address; /**< Zone Address */
uint8_t *zone_label; /**< The pointer to a string with Zone Label. NULL pointer means the Zone Label is not programmed */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_zone_table_t;
/** @brief Default value for IAS ACE cluster revision global attribute */
#define ESP_ZB_ZCL_IAS_ACE_CLUSTER_REVISION_DEFAULT ((uint16_t)0x0001u)
/** @brief IAS ACE Zone Table maximum length */
#define ESP_ZB_ZCL_IAS_ACE_ZONE_TABLE_LENGTH 255
/** @brief IAS ACE ZoneType attribute maximum value */
#define ESP_ZB_ZCL_IAS_ACE_ZONE_TYPE_MAX_VALUE 0xfffe
/** @brief IAS ACE ZoneID attribute maximum value */
#define ESP_ZB_ZCL_IAS_ACE_ZONE_ID_MAX_VALUE 0xfe
/** @brief IAS ACE ZoneID attribute default value */
#define ESP_ZB_ZCL_IAS_ACE_ZONE_ID_DEFAULT_VALUE 0
/** @brief IAS ACE Set Zone Address default value */
#define ESP_ZB_ZCL_IAS_ACE_SET_ZONE_ADDRESS_DEFAULT_VALUE(ptr) (ZB_IEEE_ADDR_COPY(ptr, &g_unknown_ieee_addr))
/** @brief IAS Ace cluster command identifiers */
typedef enum {
ESP_ZB_ZCL_CMD_IAS_ACE_ARM_ID = 0x00, /**< Arm command */
ESP_ZB_ZCL_CMD_IAS_ACE_BYPASS_ID = 0x01, /**< Bypass command */
ESP_ZB_ZCL_CMD_IAS_ACE_EMERGENCY_ID = 0x02, /**< Emergency command */
ESP_ZB_ZCL_CMD_IAS_ACE_FIRE_ID = 0x03, /**< Fire command */
ESP_ZB_ZCL_CMD_IAS_ACE_PANIC_ID = 0x04, /**< Panic command */
ESP_ZB_ZCL_CMD_IAS_ACE_GET_ZONE_ID_MAP_ID = 0x05, /**< Get Zone ID Map command */
ESP_ZB_ZCL_CMD_IAS_ACE_GET_ZONE_INFO_ID = 0x06, /**< Get Zone Information command */
ESP_ZB_ZCL_CMD_IAS_ACE_GET_PANEL_STATUS_ID = 0x07, /**< Get Panel Status command */
ESP_ZB_ZCL_CMD_IAS_ACE_GET_BYPASSED_ZONE_LIST_ID = 0x08, /**< Get Bypassed Zone List command */
ESP_ZB_ZCL_CMD_IAS_ACE_GET_ZONE_STATUS_ID = 0x09, /**< Get Zone Status command */
} esp_zb_zcl_ias_ace_cmd_t;
/** @brief IAS Ace cluster response command identifiers */
typedef enum {
ESP_ZB_ZCL_CMD_IAS_ACE_ARM_RESP_ID = 0x00, /**< Arm Response command */
ESP_ZB_ZCL_CMD_IAS_ACE_GET_ZONE_ID_MAP_RESP_ID = 0x01, /**< Get Zone ID Map Response command */
ESP_ZB_ZCL_CMD_IAS_ACE_GET_ZONE_INFO_RESP_ID = 0x02, /**< Get Zone Information Response command */
ESP_ZB_ZCL_CMD_IAS_ACE_ZONE_STATUS_CHANGED_ID = 0x03, /**< Updates ACE clients of changes to zone status recorded by the server. */
ESP_ZB_ZCL_CMD_IAS_ACE_PANEL_STATUS_CHANGED_ID = 0x04, /**< Updates ACE clients of changes to zone status recorded by the server. */
ESP_ZB_ZCL_CMD_IAS_ACE_GET_PANEL_STATUS_RESPONSE_ID = 0x05, /**< Updates ACE clients of changes to panel status recorded by the server. */
ESP_ZB_ZCL_CMD_IAS_ACE_SET_BYPASSED_ZONE_LIST_ID = 0x06, /**< Sets the list of bypassed zones on the IAS ACE client. */
ESP_ZB_ZCL_CMD_IAS_ACE_BYPASS_RESPONSE_ID = 0x07, /**< Bypass Response command. */
ESP_ZB_ZCL_CMD_IAS_ACE_GET_ZONE_STATUS_RESPONSE_ID = 0x08, /**< Get Zone Status Response Command. */
} esp_zb_zcl_ias_ace_resp_cmd_t;
/******************************* Arm Command ******************************/
/** @brief Values of the Arm Mode */
typedef enum {
ESP_ZB_ZCL_IAS_ACE_ARM_MODE_DISARM = 0x00, /**< Disarm */
ESP_ZB_ZCL_IAS_ACE_ARM_MODE_DAY = 0x01, /**< Arm Day/Home Zones Only */
ESP_ZB_ZCL_IAS_ACE_ARM_MODE_NIGHT = 0x02, /**< Arm Night/Sleep Zones Only */
ESP_ZB_ZCL_IAS_ACE_ARM_MODE_ALL = 0x03, /**< Arm All Zones */
} esp_zb_zcl_ias_ace_arm_mode_t;
/** @brief Structure representation of Arm command */
typedef struct esp_zb_zcl_ias_ace_arm_s {
uint8_t arm_mode; /**< Arm Mode, see esp_zb_zcl_ias_ace_arm_mode_t */
uint8_t arm_disarm_code[ESP_ZB_ZCL_MAX_STRING_SIZE]; /**< Arm/Disarm Code */
uint8_t zone_id; /**< Zone ID */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_arm_t;
/******************************* Bypass Command ******************************/
/** @brief Structure representation of Bypass command */
typedef struct esp_zb_zcl_ias_ace_bypass_s {
uint8_t length; /**< Number of Zones */
uint8_t zone_id[ESP_ZB_ZCL_IAS_ACE_ZONE_TABLE_LENGTH]; /**< Zone ID array, see esp_zb_zcl_ias_ace_zone_table_s */
uint8_t arm_disarm_code[ESP_ZB_ZCL_MAX_STRING_SIZE]; /**< Arm/Disarm Code */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_bypass_t;
/******************************* Emergency Command ******************************/
/******************************* Fire Command ******************************/
/******************************* Panic Command ******************************/
/******************************* Get Zone ID Map command ******************************/
/******************************* Get Zone Information command ******************************/
/** @brief Structure representation of Get Zone Information command */
typedef struct esp_zb_zcl_ias_ace_get_zone_info_s {
uint8_t zone_id; /**< Zone ID, see @ref esp_zb_zcl_ias_ace_zone_table_s */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_get_zone_info_t;
/******************************* Get Panel Status command ******************************/
/******************************* Get Bypassed Zone List command ******************************/
/******************************* Get Zone Status command ******************************/
/** @brief Structure representation of Get Zone Status command */
typedef struct esp_zb_zcl_ias_ace_get_zone_status_s {
uint8_t starting_zone_id; /**< Starting Zone ID, see esp_zb_zcl_ias_ace_zone_table_s */
uint8_t max_num_zone_ids; /**< Max Number of Zone IDs Requested Field */
uint8_t zone_status_mask_flag; /**< Zone Status Mask Flag Field */
uint16_t zone_status_mask; /**< Zone Status Mask Field, see esp_zb_zcl_ias_zone_zonestatus_t */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_get_zone_status_t;
/******************************* Arm Response command ******************************/
/** @brief Values of the Arm Notification */
typedef enum {
ESP_ZB_ZCL_IAS_ACE_ARM_NOTIF_ALL_ZONES_DISARMED = 0x00, /**< All Zones Disarmed */
ESP_ZB_ZCL_IAS_ACE_ARM_NOTIF_ONLY_DAY_HOME_ZONES_ARMED = 0x01, /**< Only Day/Home Zones Armed */
ESP_ZB_ZCL_IAS_ACE_ARM_NOTIF_ONLY_NIGHT_SLEEP_ZONES_ARMED = 0x02, /**< Only Night/Sleep Zones Armed */
ESP_ZB_ZCL_IAS_ACE_ARM_NOTIF_ALL_ZONES_ARMED = 0x03, /**< All Zones Armed */
ESP_ZB_ZCL_IAS_ACE_ARM_NOTIF_INVALID_ARM_DISARM_CODE = 0x04, /**< Invalid Arm/Disarm Code */
ESP_ZB_ZCL_IAS_ACE_ARM_NOTIF_NOT_READY_TO_ARM = 0x05, /**< Not ready to arm */
ESP_ZB_ZCL_IAS_ACE_ARM_NOTIF_ALREADY_DISARMED = 0x06, /**< Already disarmed */
} esp_zb_zcl_ias_ace_arm_notif_t;
/** @brief Structure representation of Arm Response command */
typedef struct esp_zb_zcl_ias_ace_arm_resp_s {
uint8_t arm_notification; /**< Arm Notification, see esp_zb_zcl_ias_ace_arm_notif_t */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_arm_resp_t;
/******************************* Get Zone ID Map Response command ******************************/
/** @brief Length of array of Bitmap of Zone ID Map */
#define ESP_ZB_ZCL_IAS_ACE_GET_ZONE_ID_MAP_LENGTH 16
/** @brief Structure representation of Get Zone ID Map Response command */
typedef struct esp_zb_zcl_ias_ace_get_zone_id_map_resp_s {
uint16_t zone_id_map[ESP_ZB_ZCL_IAS_ACE_GET_ZONE_ID_MAP_LENGTH]; /**< Zone ID Map */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_get_zone_id_map_resp_t;
/******************* Get Zone Information Response command ******************************/
/** @brief Zone Type is empty */
#define ESP_ZB_ZCL_IAS_ACE_GET_ZONE_INFO_TYPE_NONE 0xffff
/** @brief Structure representation of Get Zone Information Response command, see esp_zb_zcl_ias_ace_zone_table_s */
typedef struct esp_zb_zcl_ias_ace_get_zone_info_resp_s {
uint8_t zone_id; /**< Zone ID */
uint16_t zone_type; /**< Zone Type, see esp_zb_zcl_ias_zone_zonetype_t */
esp_zb_ieee_addr_t address; /**< Zone Address */
uint8_t zone_label[ESP_ZB_ZCL_MAX_STRING_SIZE]; /**< Zone Label Field */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_get_zone_info_resp_t;
/******************* Zone Status Changed command ******************************/
/** @brief IAS ACE Audible Notification Field
@see ZCL spec 8.3.2.4.4.4
*/
typedef enum {
ESP_ZB_ZCL_IAS_ACE_AUD_NOTIFICATION_MUTE = 0x00, /**< Mute (i.e., no audible notification) */
ESP_ZB_ZCL_IAS_ACE_AUD_NOTIFICATION_DEF_SOUND = 0x01, /**< Default sound */
ESP_ZB_ZCL_IAS_ACE_AUD_NOTIFICATION_MANUF_SPECIFIC = 0x80, /**< Manufacturer specific */
} esp_zb_zcl_ias_ace_aud_notification_t;
/** @brief Structure representation of Zone Status Changed command */
typedef struct esp_zb_zcl_ias_ace_zone_status_changed_s {
uint8_t zone_id; /**< Zone ID */
uint16_t zone_status; /**< Zone Status, see esp_zb_zcl_ias_zone_zonestatus_t */
uint8_t aud_notification; /**< Audible Notification, see esp_zb_zcl_ias_ace_aud_notification_t */
uint8_t zone_label[ESP_ZB_ZCL_MAX_STRING_SIZE]; /**< Zone Label Field */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_zone_status_changed_t;
/******************* Panel Status Changed command ******************************/
/** @brief IAS ACE PanelStatus Parameter */
typedef enum {
ESP_ZB_ZCL_IAS_ACE_PANEL_STATUS_DISARMED = 0x00, /**< Panel disarmed (all zones disarmed) and ready to arm */
ESP_ZB_ZCL_IAS_ACE_PANEL_STATUS_ARMED_STAY = 0x01, /**< Armed stay */
ESP_ZB_ZCL_IAS_ACE_PANEL_STATUS_ARMED_NIGHT = 0x02, /**< Armed night */
ESP_ZB_ZCL_IAS_ACE_PANEL_STATUS_ARMED_AWAY = 0x03, /**< Armed away */
ESP_ZB_ZCL_IAS_ACE_PANEL_STATUS_EXIT_DELAY = 0x04, /**< Exit delay */
ESP_ZB_ZCL_IAS_ACE_PANEL_STATUS_ENTRY_DELAY = 0x05, /**< Entry delay */
ESP_ZB_ZCL_IAS_ACE_PANEL_STATUS_NOT_READY = 0x06, /**< Not ready to arm */
ESP_ZB_ZCL_IAS_ACE_PANEL_STATUS_IN_ALARM = 0x07, /**< In alarm */
ESP_ZB_ZCL_IAS_ACE_PANEL_STATUS_ARMING_STAY = 0x08, /**< Arming Stay */
ESP_ZB_ZCL_IAS_ACE_PANEL_STATUS_ARMING_NIGHT = 0x09, /**< Arming Night */
ESP_ZB_ZCL_IAS_ACE_PANEL_STATUS_ARMING_AWAY = 0x0a, /**< Arming Away */
} esp_zb_zcl_ias_ace_panel_status_t;
/** @brief IAS ACE Alarm Status Field */
typedef enum {
ESP_ZB_ZCL_IAS_ACE_ALARM_STATUS_NO_ALARM = 0x00, /**< No alarm */
ESP_ZB_ZCL_IAS_ACE_ALARM_STATUS_BURGLAR = 0x01, /**< Burglar */
ESP_ZB_ZCL_IAS_ACE_ALARM_STATUS_FIRE = 0x02, /**< Fire */
ESP_ZB_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY = 0x03, /**< Emergency */
ESP_ZB_ZCL_IAS_ACE_ALARM_STATUS_POLICE_PANIC = 0x04, /**< Police Panic */
ESP_ZB_ZCL_IAS_ACE_ALARM_STATUS_FIRE_PANIC = 0x05, /**< Fire Panic */
ESP_ZB_ZCL_IAS_ACE_ALARM_STATUS_EMERGENCY_PANIC = 0x06, /**< Emergency Panic */
} esp_zb_zcl_ias_ace_alarm_status_t;
/** @brief Structure representation of Panel Status Changed command */
typedef struct esp_zb_zcl_ias_ace_panel_status_changed_s {
uint8_t panel_status; /**< Panel Status, see esp_zb_zcl_ias_ace_panel_status_t */
uint8_t seconds_remaining; /**< Seconds Remaining Parameter */
uint8_t aud_notification; /**< Audible Notification, see esp_zb_zcl_ias_ace_aud_notification_t */
uint8_t alarm_status; /**< Alarm Status Field, see esp_zb_zcl_ias_ace_alarm_status_t */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_panel_status_changed_t;
/******************* Get Panel Status Response command ******************************/
/** @brief Structure representation of Get Panel Status Response command */
typedef struct esp_zb_zcl_ias_ace_get_panel_status_resp_s {
uint8_t panel_status; /**< Panel Status, see esp_zb_zcl_ias_ace_panel_status_t */
uint8_t seconds_remaining; /**< Seconds Remaining Parameter */
uint8_t aud_notification; /**< Audible Notification, see esp_zb_zcl_ias_ace_aud_notification_t */
uint8_t alarm_status; /**< Alarm Status Field, see esp_zb_zcl_ias_ace_alarm_status_t */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_get_panel_status_resp_t;
/******************* Set Bypassed Zone List command ******************************/
/** @brief Structure representation of Set Bypassed Zone List command */
typedef struct esp_zb_zcl_ias_ace_set_bypassed_zone_list_s {
uint8_t length; /**< Number of Zones */
uint8_t zone_id[ESP_ZB_ZCL_IAS_ACE_ZONE_TABLE_LENGTH]; /**< Zone ID array, see esp_zb_zcl_ias_ace_zone_table_s */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_set_bypassed_zone_list_t;
/******************* Bypass Response command ******************************/
/** @brief IAS ACE Bypass Result */
typedef enum {
ESP_ZB_ZCL_IAS_ACE_BYPASS_RESULT_BYPASSED = 0x00, /**< Bypass request is successful. Zone is bypassed. */
ESP_ZB_ZCL_IAS_ACE_BYPASS_RESULT_NOT_BYPASSED = 0x01, /**< Bypass request is unsuccessful. Zone is not bypassed. */
ESP_ZB_ZCL_IAS_ACE_BYPASS_RESULT_NOT_ALLOWED = 0x02, /**< Bypass request is not allowed. Zone is not bypassed. */
ESP_ZB_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ZONE_ID = 0x03, /**< Invalid Zone ID in the request. */
ESP_ZB_ZCL_IAS_ACE_BYPASS_RESULT_UNKNOWN_ZONE_ID = 0x04, /**< Valid range of Zone ID, but unknown to server. */
ESP_ZB_ZCL_IAS_ACE_BYPASS_RESULT_INVALID_ARM_CODE = 0x05, /**< Arm/Disarm Code was entered incorrectly. */
} esp_zb_zcl_ias_ace_bypass_result_t;
/** @brief Structure representation of Bypass Response command */
typedef struct esp_zb_zcl_ias_ace_bypass_resp_s {
uint8_t length; /**< Number of Zones */
uint8_t bypass_result[ESP_ZB_ZCL_IAS_ACE_ZONE_TABLE_LENGTH]; /**< Bypass Result for Zone IDs, see esp_zb_zcl_ias_ace_bypass_result_t */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_bypass_resp_t;
/******************* Get Zone Status Response command ******************************/
/** @brief IAS ACE Zone Status structure */
typedef struct esp_zb_zcl_ias_ace_zone_status_s {
uint8_t zone_id; /**< Zone ID, see esp_zb_zcl_ias_ace_zone_table_s */
uint16_t zone_status; /**< Zone Status, see esp_zb_zcl_ias_zone_zonestatus_t */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_zone_status_t;
/** @brief Structure representation of Get Zone Status Response command */
typedef struct esp_zb_zcl_ias_ace_get_zone_status_resp_s {
uint8_t zone_status_complete; /**< Zone Status Complete Field */
uint8_t length; /**< Number of Zones */
esp_zb_zcl_ias_ace_zone_status_t zone_id_status[ESP_ZB_ZCL_IAS_ACE_ZONE_TABLE_LENGTH]; /**< Status of Zone IDs */
} ESP_ZB_PACKED_STRUCT esp_zb_zcl_ias_ace_get_zone_status_resp_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,113 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief IAS WD cluster attribute identifiers. */
typedef enum {
ESP_ZB_ZCL_ATTR_IAS_WD_MAX_DURATION_ID = 0x0000, /**< Max Duration attribute */
} esp_zb_zcl_ias_wd_attr_t;
/** @brief Default value for IAS WD cluster revision global attribute */
#define ESP_ZB_ZCL_IAS_WD_CLUSTER_REVISION_DEFAULT ((uint16_t)0x0002u)
/** @brief Max Duration attribute default value */
#define ESP_ZB_ZCL_ATTR_IAS_WD_MAX_DURATION_DEF_VALUE 240
/** @brief Max Duration attribute minimum value */
#define ESP_ZB_ZCL_ATTR_IAS_WD_MAX_DURATION_MIN_VALUE 0
/** @brief Max Duration attribute maximum value */
#define ESP_ZB_ZCL_ATTR_IAS_WD_MAX_DURATION_MAX_VALUE 0xfffe
/** @brief IAS WD cluster command identifiers */
typedef enum {
ESP_ZB_ZCL_CMD_IAS_WD_START_WARNING_ID = 0x00, /**< Start warning command. */
ESP_ZB_ZCL_CMD_IAS_WD_SQUAWK_ID = 0x01, /**< Squawk command. */
} esp_zb_zcl_ias_wd_cmd_t;
/******************************* Start warning command ******************************/
/** @brief Values of Warning Mode Field. */
typedef enum {
ESP_ZB_ZCL_IAS_WD_WARNING_MODE_STOP = 0x00, /**< Stop */
ESP_ZB_ZCL_IAS_WD_WARNING_MODE_BURGLAR = 0x01, /**< Burglar */
ESP_ZB_ZCL_IAS_WD_WARNING_MODE_FIRE = 0x02, /**< Fire */
ESP_ZB_ZCL_IAS_WD_WARNING_MODE_EMERGENCY = 0x03, /**< Emergency */
ESP_ZB_ZCL_IAS_WD_WARNING_MODE_POLICE_PANIC = 0x04, /**< Police panic */
ESP_ZB_ZCL_IAS_WD_WARNING_MODE_FIRE_PANIC = 0x05, /**< Fire panic */
ESP_ZB_ZCL_IAS_WD_WARNING_MODE_EMERGENCY_PANIC = 0x06, /**< Emergency panic (i.e., medical issue) */
} esp_zb_zcl_ias_wd_warning_mode_t;
/** @brief Values of Strobe Field. */
typedef enum {
ESP_ZB_ZCL_IAS_WD_STROBE_NO_STROBE = 0x00, /**< No strobe */
ESP_ZB_ZCL_IAS_WD_STROBE_USE_STROBE = 0x01, /**< Use strobe in parallel to warning */
} esp_zb_zcl_ias_wd_strobe_t;
/** @brief Values of Siren Level Field. */
typedef enum {
ESP_ZB_ZCL_IAS_WD_SIREN_LEVEL_LOW = 0x00, /**< Low level sound */
ESP_ZB_ZCL_IAS_WD_SIREN_LEVEL_MEDIUM = 0x01, /**< Medium level sound */
ESP_ZB_ZCL_IAS_WD_SIREN_LEVEL_HIGH = 0x02, /**< High level sound */
ESP_ZB_ZCL_IAS_WD_SIREN_LEVEL_VERY_HIGH = 0x03, /**< Very high level sound */
} esp_zb_zcl_ias_wd_siren_level_t;
/** @brief Values of Strobe Level Field. */
typedef enum {
ESP_ZB_ZCL_IAS_WD_STROBE_LEVEL_LOW = 0x00, /**< Low level strobe */
ESP_ZB_ZCL_IAS_WD_STROBE_LEVEL_MEDIUM = 0x01, /**< Medium level strobe */
ESP_ZB_ZCL_IAS_WD_STROBE_LEVEL_HIGH = 0x02, /**< High level strobe */
ESP_ZB_ZCL_IAS_WD_STROBE_LEVEL_VERY_HIGH = 0x03, /**< Very high level strobe */
} esp_zb_zcl_ias_wd_strobe_level_t;
/** @brief Data in IAS_WD Start Warning command */
typedef struct esp_zb_zcl_ias_wd_start_warning_s {
uint8_t warning_mode; /**< Warning Mode */
uint8_t strobe; /**< Strobe */
uint8_t siren_level; /**< Siren level */
uint16_t duration; /**< Duration */
uint8_t strobe_duty_cycle; /**< Strobe duty cycle */
uint8_t strobe_level; /**< Strobe level */
} esp_zb_zcl_ias_wd_start_warning_t;
/******************************* Squawk command ******************************/
/** @brief Values of Squawk Mode Field. */
typedef enum {
ESP_ZB_ZCL_IAS_WD_SQUAWK_MODE_ARMED = 0x00, /**< Notification sound for "System is armed" */
ESP_ZB_ZCL_IAS_WD_SQUAWK_MODE_DISARMED = 0x01, /**< Notification sound for "System is disarmed" */
} esp_zb_zcl_ias_wd_squawk_mode_t;
/** @brief Values of Strobe Field. */
typedef enum {
ESP_ZB_ZCL_IAS_WD_SQUAWK_STROBE_NO_STROBE = 0x00, /**< No strobe*/
ESP_ZB_ZCL_IAS_WD_SQUAWK_STROBE_USE_STROBE = 0x01, /**< Use strobe blink in parallel to squawk */
} esp_zb_zcl_ias_wd_squawk_strobe_t;
/** @brief Values of Squawk level Field. */
typedef enum {
ESP_ZB_ZCL_IAS_WD_SQUAWK_LEVEL_LOW = 0x00, /**< Low level sound */
ESP_ZB_ZCL_IAS_WD_SQUAWK_LEVEL_MEDIUM = 0x01, /**< Medium level sound */
ESP_ZB_ZCL_IAS_WD_SQUAWK_LEVEL_HIGH = 0x02, /**< High level sound */
ESP_ZB_ZCL_IAS_WD_SQUAWK_LEVEL_VERY_HIGH = 0x03, /**< Very High level sound */
} esp_zb_zcl_ias_wd_squawk_level_t;
/** @brief Data in IAS_WD Squawk command */
typedef struct esp_zb_zcl_ias_wd_squawk_s {
uint8_t squawk_mode; /**< Squawk Mode */
uint8_t strobe; /**< Strobe */
uint8_t squawk_level; /**< Squawk level */
} esp_zb_zcl_ias_wd_squawk_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,99 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief IAS Zone cluster attribute identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_IAS_ZONE_ZONESTATE_ID = 0x0000, /*!< ZoneState attribute */
ESP_ZB_ZCL_ATTR_IAS_ZONE_ZONETYPE_ID = 0x0001, /*!< ZoneType attribute */
ESP_ZB_ZCL_ATTR_IAS_ZONE_ZONESTATUS_ID = 0x0002, /*!< ZoneStatus attribute */
ESP_ZB_ZCL_ATTR_IAS_ZONE_IAS_CIE_ADDRESS_ID = 0x0010, /*!< IAS_CIE_Address attribute */
ESP_ZB_ZCL_ATTR_IAS_ZONE_ZONEID_ID = 0x0011, /*!< ZoneID attribute */
ESP_ZB_ZCL_ATTR_IAS_ZONE_NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED_ID = 0x0012, /*!< NumberOfZoneSensitivityLevelsSupported attribute */
ESP_ZB_ZCL_ATTR_IAS_ZONE_CURRENT_ZONE_SENSITIVITY_LEVEL_ID = 0x0013, /*!< CurrentZoneSensitivityLevel attribute */
ESP_ZB_ZCL_ATTR_CUSTOM_CIE_ADDR_IS_SET = 0xE000, /*!< Custom CIE address for checking establishment and authorization internally*/
ESP_ZB_ZCL_ATTR_CUSTOM_CIE_EP = 0xE001, /*!< Custom CIE endpoint for checking establishment and authorization internally*/
ESP_ZB_ZCL_ATTR_CUSTOM_CIE_SHORT_ADDR = 0xE002, /*!< Custom CIE short address for checking establishment and authorization internally*/
ESP_ZB_ZCL_ATTR_IAS_ZONE_INT_CTX_ID = 0xeffe, /*!< Application context */
} esp_zb_zcl_ias_zone_attr_t;
/** @brief IAS Zone ZoneState value
*/
typedef enum {
ESP_ZB_ZCL_IAS_ZONE_ZONESTATE_NOT_ENROLLED = 0, /*!< ZoneState not enrolled value */
ESP_ZB_ZCL_IAS_ZONE_ZONESTATE_ENROLLED = 1, /*!< ZoneState enrolled value */
} esp_zb_zcl_ias_zone_zonestate_t;
/** @brief IAS Zone ZoneType value
*/
typedef enum {
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_STANDARD_CIE = 0x0000, /*!< ZoneType Standard CIE System Alarm value */
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_MOTION = 0x000d, /*!< ZoneType Motion value */
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_CONTACT_SWITCH = 0x0015, /*!< ZoneType Contact switch value */
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_FIRE_SENSOR = 0x0028, /*!< ZoneType Fire sensor value */
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_WATER_SENSOR = 0x002a, /*!< ZoneType Water sensor value */
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_GAS_SENSOR = 0x002b, /*!< ZoneType Gas sensor value */
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_PERSONAL_EMERGENCY = 0x002c, /*!< ZoneType Personal emergency value */
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_VIBRATION_MOVEMENT = 0x002d, /*!< ZoneType Vibration / Movement sensor value */
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_REMOTE_CONTROL = 0x010f, /*!< ZoneType Remote Control value */
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_KEY_FOB = 0x0115, /*!< ZoneType Key fob value */
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_KEYPAD = 0x021d, /*!< ZoneType Keypad value */
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_STANDARD_WARNING = 0x0225, /*!< ZoneType Standard Warning Device value */
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_GLASS_BREAK = 0x0225, /*!< ZoneType Standard glass break sensor */
ESP_ZB_ZCL_IAS_ZONE_ZONETYPE_INVALID = 0xffff, /*!< ZoneType Invalid Zone Type value */
} esp_zb_zcl_ias_zone_zonetype_t;
/** @brief IAS Zone ZoneStatus attribute flags
*/
typedef enum {
ESP_ZB_ZCL_IAS_ZONE_ZONE_STATUS_ALARM1 = 1 << 0, /*!< Alarm 1 */
ESP_ZB_ZCL_IAS_ZONE_ZONE_STATUS_ALARM2 = 1 << 1, /*!< Alarm 2 */
ESP_ZB_ZCL_IAS_ZONE_ZONE_STATUS_TAMPER = 1 << 2, /*!< Tamper */
ESP_ZB_ZCL_IAS_ZONE_ZONE_STATUS_BATTERY = 1 << 3, /*!< Battery */
ESP_ZB_ZCL_IAS_ZONE_ZONE_STATUS_SUPERVISION = 1 << 4, /*!< Supervision reports */
ESP_ZB_ZCL_IAS_ZONE_ZONE_STATUS_RESTORE = 1 << 5, /*!< Restore reports */
ESP_ZB_ZCL_IAS_ZONE_ZONE_STATUS_TROUBLE = 1 << 6, /*!< Trouble */
ESP_ZB_ZCL_IAS_ZONE_ZONE_STATUS_AC_MAINS = 1 << 7, /*!< AC (mains) */
ESP_ZB_ZCL_IAS_ZONE_ZONE_STATUS_TEST = 1 << 8, /*!< Test */
ESP_ZB_ZCL_IAS_ZONE_ZONE_STATUS_BATTERY_DEFECT = 1 << 9, /*!< Battery Defect */
} esp_zb_zcl_ias_zone_zonestatus_t;
#define ESP_ZB_ZCL_ZONE_IAS_CIE_ADDR_DEFAULT {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
/** @brief IAS Zone cluster command identifiers for client
*/
typedef enum {
ESP_ZB_ZCL_CMD_IAS_ZONE_ZONE_ENROLL_RESPONSE_ID = 0x00, /*!< "Zone Enroll Response" command */
ESP_ZB_ZCL_CMD_IAS_ZONE_INITIATE_NORMAL_OPERATION_MODE_ID = 0x01, /*!< "Initiate Normal Operation Mode" command */
ESP_ZB_ZCL_CMD_IAS_ZONE_INITIATE_TEST_MODE_ID = 0x02, /*!< "Initiate Test Mode" command */
} esp_zb_zcl_ias_zone_cmd_t;
/** @brief IAS Zone cluster command identifiers for server
*/
typedef enum {
ESP_ZB_ZCL_CMD_IAS_ZONE_ZONE_STATUS_CHANGE_NOT_ID = 0x00, /*!< "Zone Status Change Notification" command */
ESP_ZB_ZCL_CMD_IAS_ZONE_ZONE_ENROLL_REQUEST_ID = 0x01 /*!< "Zone Enroll Request" command. */
} esp_zb_zcl_ias_zone_resp_cmd_t;
/** @brief Values of the Enroll Response Code definition
*/
typedef enum {
ESP_ZB_ZCL_IAS_ZONE_ENROLL_RESPONSE_CODE_SUCCESS = 0x00, /*!< Success */
ESP_ZB_ZCL_IAS_ZONE_ENROLL_RESPONSE_CODE_NOT_SUPPORTED = 0x01, /*!< Not supported */
ESP_ZB_ZCL_IAS_ZONE_ENROLL_RESPONSE_CODE_NO_ENROLL = 0x02, /*!< No enroll permit */
ESP_ZB_ZCL_IAS_ZONE_ENROLL_RESPONSE_CODE_TOO_MANY_ZONES = 0x03, /*!< Too many zones */
} esp_zb_zcl_ias_zone_enroll_response_code_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,46 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Identify cluster attribute identifier
*/
typedef enum {
ESP_ZB_ZCL_ATTR_IDENTIFY_IDENTIFY_TIME_ID = 0x0000 /*!< Identify time attribute */
} esp_zb_zcl_identify_attr_t;
/** @brief Default value for Identify attribute */
#define ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE 0x0000
/** @brief Command identifiers for "Identify" cluster
*/
typedef enum {
ESP_ZB_ZCL_CMD_IDENTIFY_IDENTIFY_ID = 0x00, /*!< Identify command */
ESP_ZB_ZCL_CMD_IDENTIFY_IDENTIFY_QUERY_ID = 0x01, /*!< Identify query command */
ESP_ZB_ZCL_CMD_IDENTIFY_TRIGGER_EFFECT_ID = 0x40, /*!< "Trigger effect" command identifier. */
ESP_ZB_ZCL_CMD_IDENTIFY_IDENTIFY_QUERY_RSP_ID = 0x00 /*!< Identify query response */
} esp_zb_zcl_identify_cmd_id_t;
/** @brief the values of the effect identifier field of the trigger effect command
*/
typedef enum esp_zb_zcl_identify_trigger_effect_s {
ESP_ZB_ZCL_IDENTIFY_EFFECT_ID_BLINK = 0x00, /*!< Effect identifier field value: Light is turned on/off once */
ESP_ZB_ZCL_IDENTIFY_EFFECT_ID_BREATHE = 0x01, /*!< Effect identifier field value: Light turned on/off over 1 second and repeated 15 times */
ESP_ZB_ZCL_IDENTIFY_EFFECT_ID_OKAY = 0x02, /*!< Effect identifier field value: Colored light turns green for 1 second; non-colored light flashes twice */
ESP_ZB_ZCL_IDENTIFY_EFFECT_ID_CHANNEL_CHANGE = 0x0b, /*!< Effect identifier field value: Colored light turns orange for 8 seconds; non-colored light
switches to maximum brightness for 0.5s and then minimum brightness for 7.5s */
ESP_ZB_ZCL_IDENTIFY_EFFECT_ID_FINISH_EFFECT = 0xfe, /*!< Effect identifier field value: Complete the current effect sequence before terminating. */
ESP_ZB_ZCL_IDENTIFY_EFFECT_ID_STOP = 0xff, /*!< Effect identifier field value: Terminate the effect as soon as possible */
} esp_zb_zcl_identify_trigger_effect_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,60 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Illuminance Measurement cluster attribute identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_ID = 0x0000, /*!< MeasuredValue */
ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MIN_MEASURED_VALUE_ID = 0x0001, /*!< MinMeasuredValue Attribute */
ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MAX_MEASURED_VALUE_ID = 0x0002, /*!< MaxMeasuredValue Attribute */
ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_TOLERANCE_ID = 0x0003, /*!< The Tolerance attribute SHALL indicate the magnitude of the possible error that is associated with MeasuredValue, using the same units and resolution.*/
ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_LIGHT_SENSOR_TYPE_ID = 0x0004 /*!< The LightSensorType attribute specifies the electronic type of the light sensor. */
} esp_zb_zcl_illuminance_measurement_attr_t;
/** @brief Default value for Illuminance Measurement cluster revision global attribute */
#define ESP_ZB_ZCL_ILLUMINANCE_MEASUREMENT_CLUSTER_REVISION_DEFAULT ((uint16_t)0x0002u)
/** @brief MeasuredValue attribute too-low value */
#define ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_TOO_LOW 0
/** @brief MeasuredValue attribute invalid value */
#define ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_INVALID 0xFFFF
/** @brief MeasuredValue attribute default value */
#define ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_DEFAULT \
ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_TOO_LOW
/** @brief Default value for LightSensorType attribute */
#define ESP_ZB_ZCL_ILLUMINANCE_MEASUREMENT_LIGHT_SENSOR_TYPE_DEFAULT_VALUE ((uint8_t)0xFF)
/** @brief MinMeasuredValue attribute minimum value */
#define ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MIN_MEASURED_VALUE_MIN_VALUE 0x0001
/** @brief MinMeasuredValue attribute maximum value */
#define ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MIN_MEASURED_VALUE_MAX_VALUE 0xFFFD
/** @brief MinMeasuredValue attribute not-defined value */
#define ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MIN_MEASURED_VALUE_UNDEFINED 0xFFFF
/** @brief MaxMeasuredValue attribute minimum value */
#define ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MAX_MEASURED_VALUE_MIN_VALUE 0x0002
/** @brief MaxMeasuredValue attribute maximum value */
#define ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MAX_MEASURED_VALUE_MAX_VALUE 0xFFFE
/** @brief MaxMeasuredValue attribute not-defined value */
#define ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MAX_MEASURED_VALUE_UNDEFINED 0xFFFF
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,93 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/**
* @brief Level control attribute list
*/
typedef enum {
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID = 0x0000, /*!< Current Level attribute */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_REMAINING_TIME_ID = 0x0001, /*!< Remaining Time attribute */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_MIN_LEVEL_ID = 0x0002, /*!< The MinLevel attribute indicates the minimum value of CurrentLevel that is capable of being assigned. */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_MAX_LEVEL_ID = 0x0003, /*!< The MaxLevel attribute indicates the maximum value of CurrentLevel that is capable of being assigned. */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_FREQUENCY_ID = 0x0004, /*!< The CurrentFrequency attribute represents the frequency that the devices is at CurrentLevel. */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_MIN_FREQUENCY_ID = 0x0005, /*!< The MinFrequency attribute indicates the minimum value of CurrentFrequency that is capable of being assigned. */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_MAX_FREQUENCY_ID = 0x0006, /*!< The MaxFrequency attribute indicates the maximum value of CurrentFrequency that is capable of being assigned. */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_ON_OFF_TRANSITION_TIME_ID = 0x0010, /*!< On off transition time attribute */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_ON_LEVEL_ID = 0x0011, /*!< On Level attribute */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_ON_TRANSITION_TIME_ID = 0x0012, /*!< The OnTransitionTime attribute represents the time taken to move the current level */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_OFF_TRANSITION_TIME_ID = 0x0013, /*!< The OffTransitionTime attribute represents the time taken to move the current level */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_DEFAULT_MOVE_RATE_ID = 0x0014, /*!< The DefaultMoveRate attribute determines the movement rate, in units per second */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_OPTIONS_ID = 0x000F, /*!< The Options attribute is a bitmap that determines the default behavior of some cluster commands. */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_START_UP_CURRENT_LEVEL_ID = 0x4000, /*!< The StartUpCurrentLevel attribute SHALL define the desired startup level */
ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_MOVE_STATUS_ID = 0xefff /*!< Special Move Variables attribute Internal usage */
} esp_zb_zcl_level_control_attr_t;
/** @brief Current Level attribute default value */
#define ESP_ZB_ZCL_LEVEL_CONTROL_CURRENT_LEVEL_DEFAULT_VALUE ((uint8_t)0xFF)
/** @brief Default value for RemainingTime attribute */
#define ESP_ZB_ZCL_LEVEL_CONTROL_REMAINING_TIME_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for MinLevel attribute */
#define ESP_ZB_ZCL_LEVEL_CONTROL_MIN_LEVEL_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Default value for MaxLevel attribute */
#define ESP_ZB_ZCL_LEVEL_CONTROL_MAX_LEVEL_DEFAULT_VALUE ((uint8_t)0xFF)
/** @brief Default value for CurrentFrequency attribute */
#define ESP_ZB_ZCL_LEVEL_CONTROL_CURRENT_FREQUENCY_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for MinFrequency attribute */
#define ESP_ZB_ZCL_LEVEL_CONTROL_MIN_FREQUENCY_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for MaxFrequency attribute */
#define ESP_ZB_ZCL_LEVEL_CONTROL_MAX_FREQUENCY_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for OnOffTransitionTime attribute */
#define ESP_ZB_ZCL_LEVEL_CONTROL_ON_OFF_TRANSITION_TIME_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for OnLevel attribute */
#define ESP_ZB_ZCL_LEVEL_CONTROL_ON_LEVEL_DEFAULT_VALUE ((uint8_t)0xFF)
/** @brief Default value for OnTransitionTime attribute */
#define ESP_ZB_ZCL_LEVEL_CONTROL_ON_TRANSITION_TIME_DEFAULT_VALUE ((uint16_t)0xFFFF)
/** @brief Default value for OffTransitionTime attribute */
#define ESP_ZB_ZCL_LEVEL_CONTROL_OFF_TRANSITION_TIME_DEFAULT_VALUE ((uint16_t)0xFFFF)
/** @brief Default move rate */
#define ESP_ZB_ZCL_LEVEL_CONTROL_RATE_DEFAULT_VALUE ((uint8_t)0xff)
/** @brief Default value for Options attribute */
#define ESP_ZB_ZCL_LEVEL_CONTROL_OPTIONS_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Default value for OnLevel attribute */
#define ESP_ZB_ZCL_LEVEL_CONTROL_START_UP_CURRENT_LEVEL_USE_PREVIOUS_VALUE ((uint8_t)0xFF)
/*! @brief Level control cluster command identifiers
*/
typedef enum {
ESP_ZB_ZCL_CMD_LEVEL_CONTROL_MOVE_TO_LEVEL = 0x00, /*!< Move To Level command */
ESP_ZB_ZCL_CMD_LEVEL_CONTROL_MOVE = 0x01, /*!< Move command */
ESP_ZB_ZCL_CMD_LEVEL_CONTROL_STEP = 0x02, /*!< Step command */
ESP_ZB_ZCL_CMD_LEVEL_CONTROL_STOP = 0x03, /*!< Stop command */
ESP_ZB_ZCL_CMD_LEVEL_CONTROL_MOVE_TO_LEVEL_WITH_ON_OFF = 0x04, /*!< Move To Level with On/Off command */
ESP_ZB_ZCL_CMD_LEVEL_CONTROL_MOVE_WITH_ON_OFF = 0x05, /*!< Move with On/Off command */
ESP_ZB_ZCL_CMD_LEVEL_CONTROL_STEP_WITH_ON_OFF = 0x06, /*!< Step with On/Off command */
ESP_ZB_ZCL_CMD_LEVEL_CONTROL_STOP_WITH_ON_OFF = 0x07, /*!< Step with On/Off command */
ESP_ZB_ZCL_CMD_LEVEL_CONTROL_MOVE_TO_CLOSEST_FREQUENCY = 0x08, /*!< Upon receipt of "Move to Closest Frequency" command */
} esp_zb_zcl_level_control_cmd_id_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,78 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Meter Identification server attributes identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_COMPANY_NAME_ID = 0x0000, /**< Company Name */
ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_METER_TYPE_ID_ID = 0x0001, /**< Meter Type Id */
ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_DATA_QUALITY_ID_ID = 0x0004, /**< Data Quality Id */
ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_CUSTOMER_NAME_ID = 0x0005, /**< Customer Name */
ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_MODEL_ID = 0x0006, /**< Model */
ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_PART_NUMBER_ID = 0x0007, /**< Part Number */
ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_PRODUCT_REVISION_ID = 0x0008, /**< Product Revision */
ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_SOFTWARE_REVISION_ID = 0x000A, /**< Software Revision */
ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_UTILITY_NAME_ID = 0x000B, /**< Utility Name */
ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_POD_ID = 0x000C, /**< Pod */
ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_AVAILABLE_POWER_ID = 0x000D, /**< Available Power */
ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_POWER_THRESHOLD_ID = 0x000E, /**< Power Threshold */
} esp_zb_zcl_meter_identification_attr_t;
/** @brief ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_METER_TYPE_ID "MeterTypeID" attribute values */
typedef enum {
ESP_ZB_ZCL_METER_TYPE_UTILITY_PRIMARY = 0x0000, /**< Utility Primary Meter */
ESP_ZB_ZCL_METER_TYPE_UTILITY_PRODUCTION = 0x0001, /**< Utility Production Meter */
ESP_ZB_ZCL_METER_TYPE_UTILITY_SECONDARY = 0x0002, /**< Utility Secondary Meter */
ESP_ZB_ZCL_METER_TYPE_PRIVATE_PRIMARY = 0x0100, /**< Private Primary Meter */
ESP_ZB_ZCL_METER_TYPE_PRIVATE_PRODUCTION = 0x0101, /**< Private Production Meter */
ESP_ZB_ZCL_METER_TYPE_PRIVATE_SECONDARY = 0x0102, /**< Private Secondary Meters */
ESP_ZB_ZCL_METER_TYPE_GENERIC = 0x0110 /**< Generic Meter */
} esp_zb_zcl_meter_identification_meter_type_t;
/** @brief ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_DATA_QUALITY_ID "DataQualityID" attribute values */
typedef enum {
ESP_ZB_ZCL_DATA_QUALITY_ALL_DATA_CERTIFIED = 0x0000, /**< All Data Certified */
ESP_ZB_ZCL_DATA_QUALITY_ONLY_INSTANTANEOUS_POWER_NOT_CERTIFIED = 0x0001, /**< Only Instantaneous Power not Certified */
ESP_ZB_ZCL_DATA_QUALITY_ONLY_CUMULATED_CONSUMPTION_NOT_CERTIFIED = 0x0002, /**< Only Cumulated Consumption not Certified */
ESP_ZB_ZCL_DATA_QUALITY_NOT_CERTIFIED_DATA = 0x0003 /**< Not Certified data */
} esp_zb_zcl_meter_identification_data_quality_t;
/** @brief Default value for Meter Identification cluster revision global attribute */
#define ESP_ZB_ZCL_METER_IDENTIFICATION_CLUSTER_REVISION_DEFAULT ((zb_uint16_t)0x0002u)
/** @brief Default value for Company Name attribute */
#define ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_COMPANY_NAME_DEFAULT_VALUE { 0 }
/** @brief Default value for Meter Type ID attribute */
#define ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_METER_TYPE_ID_DEFAULT_VALUE 0
/** @brief Default value for Data Quality ID attribute */
#define ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_DATA_QUALITY_ID_DEFAULT_VALUE 0
/** @brief Default value for POD (Point of Delivery) attribute */
#define ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_POD_DEFAULT_VALUE { 0 }
/** @brief Default value for Available Power attribute */
#define ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_AVAILABLE_POWER_DEFAULT_VALUE ZB_INIT_UINT24(0,0)
/** @brief Default value for Power Threshold attribute */
#define ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_POWER_THRESHOLD_DEFAULT_VALUE ZB_INIT_UINT24(0, 0)
/** @brief Max length of Company Name attribute */
#define ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_COMPANY_NAME_MAX_LENGTH 16
/** @brief Max length of POD (Point of Delivery) attribute */
#define ESP_ZB_ZCL_ATTR_METER_IDENTIFICATION_POD_MAX_LENGTH 16
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,131 @@
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief MultiState Input cluster attribute identifiers. */
typedef enum {
ESP_ZB_ZCL_ATTR_MULTI_INPUT_STATE_TEXT_ID = 0x000EU, /*!< StateText attribute */
ESP_ZB_ZCL_ATTR_MULTI_INPUT_DESCRIPTION_ID = 0x001CU, /*!< Description attribute */
ESP_ZB_ZCL_ATTR_MULTI_INPUT_NUMBER_OF_STATES_ID = 0x004AU, /*!< Number of states attribute */
ESP_ZB_ZCL_ATTR_MULTI_INPUT_OUT_OF_SERVICE_ID = 0x0051U, /*!< OutOfService attribute */
ESP_ZB_ZCL_ATTR_MULTI_INPUT_PRESENT_VALUE_ID = 0x0055U, /*!< PresentValue attribute */
ESP_ZB_ZCL_ATTR_MULTI_INPUT_RELIABILITY_ID = 0x0067U, /*!< Reliability attribute */
ESP_ZB_ZCL_ATTR_MULTI_INPUT_STATUS_FLAGS_ID = 0x006FU, /*!< StatusFlag attribute */
ESP_ZB_ZCL_ATTR_MULTI_INPUT_APPLICATION_TYPE_ID = 0x0100U, /*!< Application type attribute */
} esp_zb_zcl_multi_input_attr_t;
/** @brief Default value for StateText attribute */
#define ESP_ZB_ZCL_MULTI_INPUT_STATE_TEXT_DEFAULT_VALUE {0}
/** @brief Default value for Description attribute */
#define ESP_ZB_ZCL_MULTI_INPUT_DESCRIPTION_DEFAULT_VALUE {0}
/** @brief Default value for Number of states attribute */
#define ESP_ZB_ZCL_MULTI_INPUT_NUMBER_OF_STATES_DEFAULT_VALUE (0)
/** @brief Default value for OutOfService attribute */
#define ESP_ZB_ZCL_MULTI_INPUT_OUT_OF_SERVICE_DEFAULT_VALUE false
/** @brief Default value for PresentValue attribute */
#define ESP_ZB_ZCL_MULTI_INPUT_PRESENT_VALUE_DEFAULT_VALUE 0
/** @brief Default value for Reliability attribute */
#define ESP_ZB_ZCL_MULTI_INPUT_RELIABILITY_DEFAULT_VALUE 0
/** @brief Default value for StatusFlag attribute */
#define ESP_ZB_ZCL_MULTI_INPUT_STATUS_FLAGS_DEFAULT_VALUE 0
/** @brief Default value for Application type attribute */
#define ESP_ZB_ZCL_MULTI_INPUT_APPLICATION_TYPE_DEFAULT_VALUE 0
/** @brief StatusFlag attribute minimum value */
#define ESP_ZB_ZCL_MULTI_INPUT_STATUS_FLAGS_MIN_VALUE 0x00U
/** @brief StatusFlag attribute maximum value */
#define ESP_ZB_ZCL_MULTI_INPUT_STATUS_FLAGS_MAX_VALUE 0x0FU
/** @brief Values for StatusFlags attribute */
typedef enum {
ESP_ZB_ZCL_MULTI_INPUT_STATUS_FLAG_NORMAL = 0x00, /*!< Normal (default) state. */
ESP_ZB_ZCL_MULTI_INPUT_STATUS_FLAG_IN_ALARM = 0x01, /*!< In alarm bit. */
ESP_ZB_ZCL_MULTI_INPUT_STATUS_FLAG_FAULT = 0x02, /*!< Fault bit. */
ESP_ZB_ZCL_MULTI_INPUT_STATUS_FLAG_OVERRIDDEN = 0x04, /*!< Overridden bit. */
ESP_ZB_ZCL_MULTI_INPUT_STATUS_FLAG_OUT_OF_SERVICE = 0x08, /*!< Out of service bit. */
} esp_zb_zcl_multi_input_status_flags_value_t;
/** @brief Values for Reliability attribute */
typedef enum {
ESP_ZB_ZCL_MULTI_INPUT_RELIABILITY_NO_FAULT_DETECTED = 0x00, /*!< No fault detected */
ESP_ZB_ZCL_MULTI_INPUT_RELIABILITY_NO_SENSOR = 0x01, /*!< No sensor */
ESP_ZB_ZCL_MULTI_INPUT_RELIABILITY_OVER_RANGE = 0x02, /*!< Over range */
ESP_ZB_ZCL_MULTI_INPUT_RELIABILITY_UNDER_RANGE = 0x03, /*!< Under range */
ESP_ZB_ZCL_MULTI_INPUT_RELIABILITY_OPEN_LOOP = 0x04, /*!< Open loop */
ESP_ZB_ZCL_MULTI_INPUT_RELIABILITY_SHORTED_LOOP = 0x05, /*!< Shorted loop */
ESP_ZB_ZCL_MULTI_INPUT_RELIABILITY_NO_OUTPUT = 0x06, /*!< No output */
ESP_ZB_ZCL_MULTI_INPUT_RELIABILITY_UNRELIABLE_OTHER = 0x07, /*!< Unreliable other */
ESP_ZB_ZCL_MULTI_INPUT_RELIABILITY_PROCESS_ERROR = 0x08, /*!< Process error */
/* 0x09 is for multistate clusters only */
ESP_ZB_ZCL_MULTI_INPUT_RELIABILITY_CONFIGURATION_ERROR = 0x0a, /*!< Configuration error */
} esp_zb_zcl_multi_input_reliability_value_t;
/** Multistate Input cluster application types
* The ApplicationType attribute indicates the specific application usage
* for the cluster. ApplicationType is subdivided into Group, Type and
* an Index number, as follows:
*
* Group = Bits 24 to 31
* An indication of the cluster this attribute is part of. Multistate Input
* clusters have Group = 0x00.
*
* Type = Bits 16 to 23
* The physical quantity that the PresentValue attribute of the cluster
* represents.
*
* Index = Bits 0 to 15
* The specific application usage of the cluster.
*/
/** @brief Macros for ApplicationType attribute */
/** @brief Macros for ApplicationType attribute */
#define ESP_ZB_ZCL_MI_GROUP_ID 0x0D
#define ESP_ZB_ZCL_MI_SET_APP_TYPE_WITH_ID(_type, _id) (((ESP_ZB_ZCL_MI_GROUP_ID & 0xFF) << 24) | (((_type)&0xFF) << 16) | ((_id)&0xFFFF))
/** @brief Values for Multistate Input cluster application types (Type field, bits 16-23) */
typedef enum {
ESP_ZB_ZCL_MI_APP_TYPE_DOMAIN_HVAC = 0x00, /*!< Application Domain HVAC */
/* 0x01 to 0xFE are reserved */
ESP_ZB_ZCL_MI_APP_TYPE_OTHER = 0xFF /*!< Other */
} esp_zb_zcl_mi_application_types_t;
/** @brief Values for Multistate Input cluster HVAC application usages */
typedef enum {
ESP_ZB_ZCL_MI_DOMAIN_HVAC_OFF_ON_AUTO = ESP_ZB_ZCL_MI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_MI_APP_TYPE_DOMAIN_HVAC, 0x0000), /*!< Off, On, Auto */
ESP_ZB_ZCL_MI_DOMAIN_HVAC_OFF_LOW_MEDIUM_HIGH, /*!< Off, Low, Medium, High */
ESP_ZB_ZCL_MI_DOMAIN_HVAC_AUTO_HEAT_COOL_OFF_EMERGENCY_FAN_MAX, /*!< Auto, Heat, Cool, Off, Emergency Heat, Fan Only,
Max Heat */
ESP_ZB_ZCL_MI_DOMAIN_HVAC_OCCUPIED_UNOCCUPIED_STANDBY_BYPASS, /*!< Occupied, Unoccupied, Standby, Bypass */
ESP_ZB_ZCL_MI_DOMAIN_HVAC_INACTIVE_ACTIVE_HOLD, /*!< Inactive, Active, Hold */
ESP_ZB_ZCL_MI_DOMAIN_HVAC_AUTO_WARMUP_WATER_FLUSH_AUTOCAL_SHUTDOWNOPEN_SHUTDOWNCLOSED_LOWLIMIT_TEST_BALANCE, /*!< Auto, Warm-up, Water Flush, Autocalibration, Shutdown Open,
Shutdown Closed, Low Limit, Test and Balance */
ESP_ZB_ZCL_MI_DOMAIN_HVAC_OFF_AUTO_HEAT_COOL_HEATONLY_COOLONLY_FAN_ONLY, /*!< Off, Auto, Heat Cool, Heat Only, Cool Only, Fan Only */
ESP_ZB_ZCL_MI_DOMAIN_HVAC_HIGH_NORMAL_LOW, /*!< High, Normal, Low */
ESP_ZB_ZCL_MI_DOMAIN_HVAC_OCCUPIED_UNOCCUPIED_STARTUP_SHUTDOWN, /*!< Occupied, Unoccupied, Startup, Shutdown */
ESP_ZB_ZCL_MI_DOMAIN_HVAC_NIGHT_DAY_HOLD, /*!< Night, Day, Hold */
ESP_ZB_ZCL_MI_DOMAIN_HVAC_OFF_COOL_HEAT_AUTO_EMERGENCY, /*!< Off, Cool, Heat, Auto, Emergency Heat */
ESP_ZB_ZCL_MI_DOMAIN_HVAC_SHUTDOWNCLOSED_SHUTDOWNOPEN_SATISFIED_MIXING_COOLING_HEATING_SUPPLEMENTAL_HEAT, /*!< Shutdown Closed, Shutdown Open, Satisfied, Mixing, Cooling,
Heating, Supplemental Heat */
/* 0x0200 to 0xFFFE are Vendor defined */
ESP_ZB_ZCL_MI_DOMAIN_HVAC_OTHER = ESP_ZB_ZCL_MI_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_MI_APP_TYPE_DOMAIN_HVAC, 0xFFFF) /*!< Other */
} esp_zb_zcl_mi_domain_hvac_t;
void esp_zb_zcl_multi_input_init_server(void);
void esp_zb_zcl_multi_input_init_client(void);
#define ESP_ZB_ZCL_CLUSTER_ID_MULTI_INPUT_SERVER_ROLE_INIT esp_zb_zcl_multi_input_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_MULTI_INPUT_CLIENT_ROLE_INIT esp_zb_zcl_multi_input_init_client
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,137 @@
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief MultiState Output cluster attribute identifiers. */
typedef enum {
ESP_ZB_ZCL_ATTR_MULTI_OUTPUT_STATE_TEXT_ID = 0x000E, /*!< StateText attribute */
ESP_ZB_ZCL_ATTR_MULTI_OUTPUT_DESCRIPTION_ID = 0x001C, /*!< Description attribute */
ESP_ZB_ZCL_ATTR_MULTI_OUTPUT_NUMBER_OF_STATES_ID = 0x004A, /*!< Number of states attribute */
ESP_ZB_ZCL_ATTR_MULTI_OUTPUT_OUT_OF_SERVICE_ID = 0x0051, /*!< OutOfService attribute */
ESP_ZB_ZCL_ATTR_MULTI_OUTPUT_PRESENT_VALUE_ID = 0x0055, /*!< PresentValue attribute */
/** TODO: support PriorityArray Attribute */
// ESP_ZB_ZCL_ATTR_MULTI_OUTPUT_PRIORITY_ARRAY_ID = 0x0057, /*!< Priority Array attribute */
ESP_ZB_ZCL_ATTR_MULTI_OUTPUT_RELIABILITY_ID = 0x0067, /*!< Reliability attribute */
ESP_ZB_ZCL_ATTR_MULTI_OUTPUT_RELINQUISH_DEFAULT_ID = 0x0068, /*!< Relinquish default attribute */
ESP_ZB_ZCL_ATTR_MULTI_OUTPUT_STATUS_FLAGS_ID = 0x006F, /*!< StatusFlag attribute */
ESP_ZB_ZCL_ATTR_MULTI_OUTPUT_APPLICATION_TYPE_ID = 0x0100, /*!< Application type attribute */
} esp_zb_zcl_multi_output_attr_t;
/** @brief Values for StatusFlags attribute */
typedef enum {
ESP_ZB_ZCL_MULTI_OUTPUT_STATUS_FLAG_NORMAL = 0x00, /*!< Normal (default) state. */
ESP_ZB_ZCL_MULTI_OUTPUT_STATUS_FLAG_IN_ALARM = 0x01, /*!< In alarm bit. */
ESP_ZB_ZCL_MULTI_OUTPUT_STATUS_FLAG_FAULT = 0x02, /*!< Fault bit. */
ESP_ZB_ZCL_MULTI_OUTPUT_STATUS_FLAG_OVERRIDDEN = 0x04, /*!< Overridden bit. */
ESP_ZB_ZCL_MULTI_OUTPUT_STATUS_FLAG_OUT_OF_SERVICE = 0x08, /*!< Out of service bit. */
} esp_zb_zcl_multi_output_status_flags_value_t;
/** @brief Values for Reliability attribute */
typedef enum {
ESP_ZB_ZCL_MULTI_OUTPUT_RELIABILITY_NO_FAULT_DETECTED = 0x00, /*!< No fault detected */
ESP_ZB_ZCL_MULTI_OUTPUT_RELIABILITY_NO_SENSOR = 0x01, /*!< No sensor */
ESP_ZB_ZCL_MULTI_OUTPUT_RELIABILITY_OVER_RANGE = 0x02, /*!< Over range */
ESP_ZB_ZCL_MULTI_OUTPUT_RELIABILITY_UNDER_RANGE = 0x03, /*!< Under range */
ESP_ZB_ZCL_MULTI_OUTPUT_RELIABILITY_OPEN_LOOP = 0x04, /*!< Open loop */
ESP_ZB_ZCL_MULTI_OUTPUT_RELIABILITY_SHORTED_LOOP = 0x05, /*!< Shorted loop */
ESP_ZB_ZCL_MULTI_OUTPUT_RELIABILITY_NO_OUTPUT = 0x06, /*!< No output */
ESP_ZB_ZCL_MULTI_OUTPUT_RELIABILITY_UNRELIABLE_OTHER = 0x07, /*!< Unreliable other */
ESP_ZB_ZCL_MULTI_OUTPUT_RELIABILITY_PROCESS_ERROR = 0x08, /*!< Process error */
/* 0x09 is for multistate clusters only */
ESP_ZB_ZCL_MULTI_OUTPUT_RELIABILITY_CONFIGURATION_ERROR = 0x0a, /*!< Configuration error */
} esp_zb_zcl_multi_output_reliability_value_t;
/** Multistate Output cluster application types
* The ApplicationType attribute indicates the specific application usage
* for the cluster. ApplicationType is subdivided into Group, Type and
* an Index number, as follows:
*
* Group = Bits 24 to 31
* An indication of the cluster this attribute is part of. Analog Input
* clusters have Group = 0x00.
*
* Type = Bits 16 to 23
* The physical quantity that the PresentValue attribute of the cluster
* represents.
*
* Index = Bits 0 to 15
* The specific application usage of the cluster.
*/
/** @brief Macros for ApplicationType attribute */
#define ESP_ZB_ZCL_MO_GROUP_ID 0x0E
#define ESP_ZB_ZCL_MO_SET_APP_TYPE_WITH_ID(_type, _id) (((ESP_ZB_ZCL_MO_GROUP_ID & 0xFF) << 24) | (((_type)&0xFF) << 16) | ((_id)&0xFFFF))
/** @brief Values for Multistate Output cluster application types (Type field, bits 16-23) */
typedef enum {
ESP_ZB_ZCL_MO_APP_TYPE_DOMAIN_HVAC = 0x00, /*!< Application Domain HVAC */
/* 0x01 to 0xFE are reserved */
ESP_ZB_ZCL_MO_APP_TYPE_OTHER = 0xFF /*!< Other */
} esp_zb_zcl_mo_application_types_t;
/** @brief Values for Multistate Output cluster HVAC application usages */
typedef enum {
ESP_ZB_ZCL_MO_DOMAIN_HVAC_OFF_ON_AUTO = ESP_ZB_ZCL_MO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_MO_APP_TYPE_DOMAIN_HVAC, 0x0000), /*!< Off, On, Auto */
ESP_ZB_ZCL_MO_DOMAIN_HVAC_OFF_LOW_MEDIUM_HIGH, /*!< Off, Low, Medium, High */
ESP_ZB_ZCL_MO_DOMAIN_HVAC_AUTO_HEAT_COOL_OFF_EMERG_FAN_MAX, /*!< Auto, Heat, Cool, Off, Emerg Heat, Fan Only, Max Heat */
ESP_ZB_ZCL_MO_DOMAIN_HVAC_OCCUPIED_UNOCCUPIED_STANDBY_BYPASS, /*!< Occupied, Unoccupied, Standby, Bypass */
ESP_ZB_ZCL_MO_DOMAIN_HVAC_INACTIVE_ACTIVE_HOLD, /*!< Inactive, Active, Hold */
ESP_ZB_ZCL_MO_DOMAIN_HVAC_AUTO_WARMUP_WATER_FLUSH_AUTOCAL_SHUTDOWNOPEN_SHUTDOWNCLOSED_LOWLIMIT_TEST_BALANCE, /*!< Auto, Warm-up, Water Flush, Autocalibration, Shutdown Open,
Shutdown Closed, Low Limit, Test and Balance */
ESP_ZB_ZCL_MO_DOMAIN_HVAC_OFF_AUTO_HEAT_COOL_HEAT_ONLY_COOL_ONLY_FAN_ONLY, /*!< Off, Auto, Heat Cool, Heat Only, Cool Only, Fan Only */
ESP_ZB_ZCL_MO_DOMAIN_HVAC_HIGH_NORMAL_LOW, /*!< High, Normal, Low */
ESP_ZB_ZCL_MO_DOMAIN_HVAC_OCCUPIED_UNOCCUPIED_STARTUP_SHUTDOWN, /*!< Occupied, Unoccupied, Startup, Shutdown */
ESP_ZB_ZCL_MO_DOMAIN_HVAC_NIGHT_DAY_HOLD, /*!< Night, Day, Hold */
ESP_ZB_ZCL_MO_DOMAIN_HVAC_OFF_COOL_HEAT_AUTO_EMERGENCY, /*!< Off, Cool, Heat, Auto, Emergency Heat */
ESP_ZB_ZCL_MO_DOMAIN_HVAC_SHUTDOWNCLOSED_SHUTDOWNOPEN_SATISFIED_MIXING_COOLING_HEATING_SUPPL_HEAT, /*!< Shutdown Closed, Shutdown Open, Satisfied, Mixing, Cooling, Heating, Suppl Heat */
/* 0x0200 to 0xFFFE are Vendor defined */
ESP_ZB_ZCL_MO_DOMAIN_HVAC_OTHER = ESP_ZB_ZCL_MO_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_MO_APP_TYPE_DOMAIN_HVAC, 0xFFFF) /*!< Other */
} esp_zb_zcl_mo_domain_hvac_t;
/** @brief Default value for StateText attribute */
#define ESP_ZB_ZCL_MULTI_OUTPUT_STATE_TEXT_DEFAULT_VALUE {0}
/** @brief Default value for Description attribute */
#define ESP_ZB_ZCL_MULTI_OUTPUT_DESCRIPTION_DEFAULT_VALUE {0}
/** @brief Default value for Number of states attribute */
#define ESP_ZB_ZCL_MULTI_OUTPUT_NUMBER_OF_STATES_DEFAULT_VALUE 0
/** @brief Default value for OutOfService attribute */
#define ESP_ZB_ZCL_MULTI_OUTPUT_OUT_OF_SERVICE_DEFAULT_VALUE false
/** @brief Default value for PresentValue attribute */
#define ESP_ZB_ZCL_MULTI_OUTPUT_PRESENT_VALUE_DEFAULT_VALUE 0
/** @brief Default value for Priority Array attribute */
#define ESP_ZB_ZCL_MULTI_OUTPUT_PRIORITY_ARRAY_DEFAULT_VALUE {0}
/** @brief Default value for Reliability attribute */
#define ESP_ZB_ZCL_MULTI_OUTPUT_RELIABILITY_DEFAULT_VALUE 0
/** @brief Default value for Relinquish default attribute */
#define ESP_ZB_ZCL_MULTI_OUTPUT_RELINQUISH_DEFAULT_DEFAULT_VALUE 0
/** @brief Default value for StatusFlag attribute */
#define ESP_ZB_ZCL_MULTI_OUTPUT_STATUS_FLAGS_DEFAULT_VALUE 0
/** @brief Default value for Application type attribute */
#define ESP_ZB_ZCL_MULTI_OUTPUT_APPLICATION_TYPE_DEFAULT_VALUE 0
/** @brief StatusFlag attribute minimum value */
#define ESP_ZB_ZCL_MULTI_OUTPUT_STATUS_FLAGS_MIN_VALUE 0x00
/** @brief StatusFlag attribute maximum value */
#define ESP_ZB_ZCL_MULTI_OUTPUT_STATUS_FLAGS_MAX_VALUE 0x0F
void esp_zb_zcl_multi_output_init_server(void);
void esp_zb_zcl_multi_output_init_client(void);
#define ESP_ZB_ZCL_CLUSTER_ID_MULTI_OUTPUT_SERVER_ROLE_INIT esp_zb_zcl_multi_output_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_MULTI_OUTPUT_CLIENT_ROLE_INIT esp_zb_zcl_multi_output_init_client
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,126 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTDESP_ZB_ZCL_
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Multistate Value cluster attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_MULTI_VALUE_STATE_TEXT_ID = 0x000e, /*!< Text attribute */
ESP_ZB_ZCL_ATTR_MULTI_VALUE_DESCRIPTION_ID = 0x001c, /*!< Description attribute */
ESP_ZB_ZCL_ATTR_MULTI_VALUE_NUMBER_OF_STATES_ID = 0x004a, /*!< NumberOfStates attribute */
ESP_ZB_ZCL_ATTR_MULTI_VALUE_OUT_OF_SERVICE_ID = 0x0051, /*!< OutOfService attribute */
ESP_ZB_ZCL_ATTR_MULTI_VALUE_PRESENT_VALUE_ID = 0x0055, /*!< PresentValue attribute */
// TODO: Support PriorityArray attribute
// ESP_ZB_ZCL_ATTR_MULTI_VALUE_PRIORITY_ARRAY_ID = 0x0057, /*!< PriorityArray attribute */
ESP_ZB_ZCL_ATTR_MULTI_VALUE_RELIABILITY_ID = 0x0067, /*!< Reliability attribute */
ESP_ZB_ZCL_ATTR_MULTI_VALUE_RELINQUISH_DEFAULT_ID = 0x0068, /*!< Reliability attribute */
ESP_ZB_ZCL_ATTR_MULTI_VALUE_STATUS_FLAGS_ID = 0x006f, /*!< StatusFlags attribute */
ESP_ZB_ZCL_ATTR_MULTI_VALUE_APPLICATION_TYPE_ID = 0x0100, /*!< ApplicationType attribute */
} esp_zb_zcl_multi_value_attr_t;
/** @brief Values for StatusFlags attribute */
typedef enum {
ESP_ZB_ZCL_MULTI_VALUE_STATUS_FLAGS_NORMAL = 0x00, /*!< Normal (default) . */
ESP_ZB_ZCL_MULTI_VALUE_STATUS_FLAGS_IN_ALARM = 0x01, /*!< In alarm bit. */
ESP_ZB_ZCL_MULTI_VALUE_STATUS_FLAGS_FAULT = 0x02, /*!< Fault bit. */
ESP_ZB_ZCL_MULTI_VALUE_STATUS_FLAGS_OVERRIDDEN = 0x04, /*!< Overridden bit. */
ESP_ZB_ZCL_MULTI_VALUE_STATUS_FLAGS_OUT_OF_SERVICE = 0x08, /*!< Out of service bit. */
} esp_zb_zcl_multi_value_status_flags_value_t;
/** @brief Values for Reliability attribute */
typedef enum {
ESP_ZB_ZCL_MULTI_VALUE_RELIABILITY_NO_FAULT_DETECTED = 0x00, /*!< No fault detected */
ESP_ZB_ZCL_MULTI_VALUE_RELIABILITY_NO_SENSOR = 0x01, /*!< No sensor */
ESP_ZB_ZCL_MULTI_VALUE_RELIABILITY_OVER_RANGE = 0x02, /*!< Over range */
ESP_ZB_ZCL_MULTI_VALUE_RELIABILITY_UNDER_RANGE = 0x03, /*!< Under range */
ESP_ZB_ZCL_MULTI_VALUE_RELIABILITY_OPEN_LOOP = 0x04, /*!< Open loop */
ESP_ZB_ZCL_MULTI_VALUE_RELIABILITY_SHORTED_LOOP = 0x05, /*!< Shorted loop */
ESP_ZB_ZCL_MULTI_VALUE_RELIABILITY_NO_OUTPUT = 0x06, /*!< No output */
ESP_ZB_ZCL_MULTI_VALUE_RELIABILITY_UNRELIABLE_OTHER = 0x07, /*!< Unreliable other */
ESP_ZB_ZCL_MULTI_VALUE_RELIABILITY_PROCESS_ERROR = 0x08, /*!< Process error */
ESP_ZB_ZCL_MULTI_VALUE_RELIABILITY_MULTI_STATE_FAULT = 0x09, /*!< Mutlistate fault */
ESP_ZB_ZCL_MULTI_VALUE_RELIABILITY_CONFIGURATION_ERROR = 0x0a, /*!< Configuration error */
} esp_zb_zcl_multi_value_reliability_value_t;
/** Multistate Value cluster application types
* The ApplicationType attribute indicates the specific application usage
* for the cluster. ApplicationType is subdivided into Group, Type and
* an Index number, as follows:
*
* Group = Bits 24 to 31
* An indication of the cluster this attribute is part of. Multistate Value
* clusters have Group = 0x0d.
*
* Type = Bits 16 to 23
* The application usage domain.
*
* Index = Bits 0 to 15
* The specific application usage of the cluster.
*/
#define ESP_ZB_ZCL_MV_GROUP_ID 0x0d
#define ESP_ZB_ZCL_MV_SET_APP_TYPE_WITH_ID(_type, _id) ((ESP_ZB_ZCL_MV_GROUP_ID << 24) | ((_type & 0xff) << 16) | (_id & 0xffff))
/** @brief Values for Multistate Value cluster applications type */
typedef enum {
ESP_ZB_ZCL_MV_APP_TYPE_APP_DOMAIN_HVAC = 0x0000, /*!< Application Domain HVAC */
/* All other group values are currently reserved. */
} esp_zb_zcl_mv_application_types_t;
typedef enum {
ESP_ZB_ZCL_MV_APP_DOMAIN_HVAC_STATES_GROUP_0 /*!< On, Off, Auto state */
= ESP_ZB_ZCL_MV_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_MV_APP_TYPE_APP_DOMAIN_HVAC, 0x0000),
ESP_ZB_ZCL_MV_APP_DOMAIN_HVAC_STATES_GROUP_1, /*!< Off, Low, Medium, High state */
ESP_ZB_ZCL_MV_APP_DOMAIN_HVAC_STATES_GROUP_2, /*!< Auto, Heat, Cool, Off, Emergency Heat, Fan Only, Max Heat state */
ESP_ZB_ZCL_MV_APP_DOMAIN_HVAC_STATES_GROUP_3, /*!< Occupied, Unoccupied, Standby, Bypass state */
ESP_ZB_ZCL_MV_APP_DOMAIN_HVAC_STATES_GROUP_4, /*!< Inactive, Active, Hold state */
ESP_ZB_ZCL_MV_APP_DOMAIN_HVAC_STATES_GROUP_5, /*!< Auto, Warm-up, Water Flush, Autocalibration, Shutdown Open, Shutdown Closed, Low Limit, Test and Balance state */
ESP_ZB_ZCL_MV_APP_DOMAIN_HVAC_STATES_GROUP_6, /*!< Off, Auto, Heat Control, Heat Only, Cool Only, Fan Only state */
ESP_ZB_ZCL_MV_APP_DOMAIN_HVAC_STATES_GROUP_7, /*!< High, Normal, Low state */
ESP_ZB_ZCL_MV_APP_DOMAIN_HVAC_STATES_GROUP_8, /*!< Occupied, Unoccupied, Startup, Shutdown state */
ESP_ZB_ZCL_MV_APP_DOMAIN_HVAC_STATES_GROUP_9, /*!< Night, Day, Hold state */
ESP_ZB_ZCL_MV_APP_DOMAIN_HVAC_STATES_GROUP_10, /*!< Off, Cool, Heat, Auto, Emergency Heat state */
ESP_ZB_ZCL_MV_APP_DOMAIN_HVAC_STATES_GROUP_11, /*!< Shutdown Closed, Shutdown Open, Satisfied, Mixing, Cooling, Heating, Supplemental Heat state */
/* 0x0200 to 0xfffe are Vendor defined */
ESP_ZB_ZCL_MV_APP_DOMAIN_HVAC_OTHER /*!< Other */
= ESP_ZB_ZCL_MV_SET_APP_TYPE_WITH_ID(ESP_ZB_ZCL_MV_APP_TYPE_APP_DOMAIN_HVAC, 0xffff),
} esp_zb_zcl_mv_app_domain_hvac_t;
/** @brief Default value for Description attribute */
#define ESP_ZB_ZCL_MULTI_VALUE_DESCRIPTION_DEFAULT_VALUE 0
/** @brief Default value for OutOfService attribute */
#define ESP_ZB_ZCL_MULTI_VALUE_OUT_OF_SERVICE_DEFAULT_VALUE false
/** @brief Default value for Reliability attribute */
#define ESP_ZB_ZCL_MULTI_VALUE_RELIABILITY_DEFAULT_VALUE ESP_ZB_ZCL_MULTI_VALUE_RELIABILITY_NO_FAULT_DETECTED
/** @brief Default value for StatusFlags attribute */
#define ESP_ZB_ZCL_MULTI_VALUE_STATUS_FLAGS_DEFAULT_VALUE ESP_ZB_ZCL_MULTI_VALUE_STATUS_FLAGS_NORMAL
/** @brief StatusFlags attribute minimum value */
#define ESP_ZB_ZCL_MULTI_VALUE_STATUS_FLAGS_MIN_VALUE 0
/** @brief StatusFlags attribute maximum value */
#define ESP_ZB_ZCL_MULTI_VALUE_STATUS_FLAGS_MAX_VALUE 0x0f
/*! Maximum length of Description string field */
#define ESP_ZB_ZCL_MULTI_VALUE_DESCRIPTION_MAX_LEN 16
void esp_zb_zcl_multi_value_init_server(void);
void esp_zb_zcl_multi_value_init_client(void);
#define ESP_ZB_ZCL_CLUSTER_ID_MULTI_VALUE_SERVER_ROLE_INIT esp_zb_zcl_multi_value_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_MULTI_VALUE_CLIENT_ROLE_INIT esp_zb_zcl_multi_value_init_client
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,138 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Occupancy Sensing cluster attribute identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_OCCUPANCY_ID = 0x0000, /*!< Occupancy attribute identifier */
ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_ID = 0x0001, /*!< Occupancy Sensor Type attribute identifier */
ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_BITMAP_ID = 0x0002, /*!< The OccupancySensorTypeBitmap attribute specifies the types of the occupancy sensor. */
ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_PIR_OCC_TO_UNOCC_DELAY_ID = 0x0010, /*!< PIROccupiedToUnoccupiedDelay identifier */
ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_PIR_UNOCC_TO_OCC_DELAY_ID = 0x0011, /*!< PIRUnoccupiedToOccupiedDelay identifier */
ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_PIR_UNOCC_TO_OCC_THRESHOLD_ID = 0x0012, /*!< PIRUnoccupiedToOccupiedThreshold identifier */
ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_ID = 0x0020,
ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_ID = 0x0021,
ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ID = 0x0022,
ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_PHYSICAL_CONTACT_OCCUPIED_TO_UNOCCUPIED_DELAY_ID = 0x0030,
ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_DELAY_ID = 0x0031,
ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_ID = 0x0032,
}esp_zb_zcl_occupancy_sensing_attr_t;
/** @brief Default value for Occupancy Sensing cluster revision global attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_CLUSTER_REVISION_DEFAULT ((uint16_t)0x0002u)
/** @brief Minimal value for PIROccToUnoccDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PIR_OCC_TO_UNOCC_DELAY_MIN_VALUE ((uint16_t)0x0000)
/** @brief Maximal value for PIROccToUnoccDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PIR_OCC_TO_UNOCC_DELAY_MAX_VALUE ((uint16_t)0xfffe)
/** @brief Default value for PIROccToUnoccDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PIR_OCC_TO_UNOCC_DELAY_DEFAULT_VALUE ESP_ZB_ZCL_OCCUPANCY_SENSING_PIR_OCC_TO_UNOCC_DELAY_MIN_VALUE
/** @brief Minimal value for PIRUnoccToOccDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PIR_UNOCC_TO_OCC_DELAY_MIN_VALUE ((uint16_t)0x0000)
/** @brief Maximal value for PIRUnoccToOccDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PIR_UNOCC_TO_OCC_DELAY_MAX_VALUE ((uint16_t)0xfffe)
/** @brief Default value for PIRUnoccToOccDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PIR_UNOCC_TO_OCC_DELAY_DEFAULT_VALUE ESP_ZB_ZCL_OCCUPANCY_SENSING_PIR_UNOCC_TO_OCC_DELAY_MIN_VALUE
/** @brief Minimal value for PIRUnoccToOccThreshold attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PIR_UNOCC_TO_OCC_THRESHOLD_MIN_VALUE ((uint8_t)0x01)
/** @brief Maximal value for PIRUnoccToOccThreshold attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PIR_UNOCC_TO_OCC_THRESHOLD_MAX_VALUE ((uint8_t)0xfe)
/** @brief Default value for PIRUnoccToOccThreshold attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PIR_UNOCC_TO_OCC_THRESHOLD_DEFAULT_VALUE ESP_ZB_ZCL_OCCUPANCY_SENSING_PIR_UNOCC_TO_OCC_THRESHOLD_MIN_VALUE
/** @brief Minimal value for UltrasonicOccupiedToUnoccupiedDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_MIN_VALUE ((uint16_t)0x0000)
/** @brief Maximal value for UltrasonicOccupiedToUnoccupiedDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_MAX_VALUE ((uint16_t)0xfffe)
/** @brief Default value for UltrasonicOccupiedToUnoccupiedDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_DEFAULT_VALUE ESP_ZB_ZCL_OCCUPANCY_SENSING_ULTRASONIC_OCCUPIED_TO_UNOCCUPIED_DELAY_MIN_VALUE
/** @brief Minimal value for UltrasonicUnoccupiedToOccupiedDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_MIN_VALUE ((uint16_t)0x0000)
/** @brief Maximal value for UltrasonicUnoccupiedToOccupiedDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_MAX_VALUE ((uint16_t)0xfffe)
/** @brief Default value for UltrasonicUnoccupiedToOccupiedDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_DEFAULT_VALUE ESP_ZB_ZCL_OCCUPANCY_SENSING_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_DELAY_MIN_VALUE
/** @brief Minimal value for UltrasonicUnoccupiedToOccupiedThreshold attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_MIN_VALUE ((uint8_t)0x01)
/** @brief Maximal value for UltrasonicUnoccupiedToOccupiedThreshold attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_MAX_VALUE ((uint8_t)0xfe)
/** @brief Default value for UltrasonicUnoccupiedToOccupiedThreshold attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_DEFAULT_VALUE ESP_ZB_ZCL_OCCUPANCY_SENSING_ULTRASONIC_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_MIN_VALUE
/** @brief Default value for PhysicalContactOccupiedToUnoccupiedDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PHYSICAL_CONTACT_OCCUPIED_TO_UNOCCUPIED_DELAY_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief No-reporting value for PhysicalContactOccupiedToUnoccupiedDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PHYSICAL_CONTACT_OCCUPIED_TO_UNOCCUPIED_DELAY_NO_REPORTING_VALUE ((uint16_t)0xffff)
/** @brief Default value for PhysicalContactUnoccupiedToOccupiedDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_DELAY_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief No-reporting value for PhysicalContactUnoccupiedToOccupiedDelay attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_DELAY_NO_REPORTING_VALUE ((uint16_t)0xffff)
/** @brief Minimal value for PhysicalContactUnoccupiedToOccupiedThreshold attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_MIN_VALUE ((uint8_t)0x01)
/** @brief Maximal value for PhysicalContactUnoccupiedToOccupiedThreshold attribute */
#define ESP_ZB_ZCL_OCCUPANCY_SENSING_PHYSICAL_CONTACT_UNOCCUPIED_TO_OCCUPIED_THRESHOLD_MAX_VALUE ((uint8_t)0xfe)
typedef enum {
ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_UNOCCUPIED = 0, /*!< Unoccupied value */
ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_OCCUPIED = 1 /*!< Occupied value */
}esp_zb_zcl_occupancy_sensing_occupancy_t;
typedef enum {
ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_PIR = 0, /*!< PIR value */
ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_ULTRASONIC = 1, /*!< Ultrasonic value */
ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_PIR_AND_ULTRASONIC = 2, /*!< PIR and Ultrasonic value */
ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_RESERVED = 3 /*!< Reserved value */
}esp_zb_zcl_occupancy_sensing_occupancy_sensor_type_t;
typedef enum {
ESP_ZB_ZCL_CUSTOM_OCCUPANCY_SENSING_REPORTING_MODE_TYPE_REGULAR_REPORTING = 0,
ESP_ZB_ZCL_CUSTOM_OCCUPANCY_SENSING_REPORTING_MODE_TYPE_LOW_POWER_REPORTING = 1
}esp_zb_zcl_custom_reporting_mode_type_t;
typedef enum {
ESP_ZB_ZCL_OCCUPANCY_SENSING_CUSTOM_DEBUG_MODE_TYPE_SHORT = 0,
ESP_ZB_ZCL_OCCUPANCY_SENSING_CUSTOM_DEBUG_MODE_TYPE_ENHANCED = 1,
ESP_ZB_ZCL_OCCUPANCY_SENSING_CUSTOM_DEBUG_MODE_TYPE_DEBUG = 2
}esp_zb_zcl_custom_debug_mode_type_t;
typedef enum {
ESP_ZB_ZCL_OCCUPANCY_SENSING_CUSTOM_LEARN_NOT_YET_PERFORMED = 0,
ESP_ZB_ZCL_OCCUPANCY_SENSING_CUSTOM_LEARN_IN_PROGRESS = 1,
ESP_ZB_ZCL_OCCUPANCY_SENSING_CUSTOM_LEARN_FINISHED_WITH_A_FAILURE = 2,
ESP_ZB_ZCL_OCCUPANCY_SENSING_CUSTOM_LEARN_FINISHED_SUCCESSFULLY = 3
}esp_zb_zcl_custom_learn_type_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,49 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief On/Off cluster attribute identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID = 0, /*!< OnOff attribute */
ESP_ZB_ZCL_ATTR_ON_OFF_GLOBAL_SCENE_CONTROL = 0x4000, /*!< Global Scene Control attribute identifier. */
ESP_ZB_ZCL_ATTR_ON_OFF_ON_TIME = 0x4001, /*!< On Time attribute identifier. */
ESP_ZB_ZCL_ATTR_ON_OFF_OFF_WAIT_TIME = 0x4002, /*!< Off Wait Time attribute identifier. */
ESP_ZB_ZCL_ATTR_ON_OFF_START_UP_ON_OFF = 0x4003, /*!< Define the desired startup behavior */
} esp_zb_zcl_on_off_attr_t;
/** @brief Default value for OnOff attribute */
#define ESP_ZB_ZCL_ON_OFF_ON_OFF_DEFAULT_VALUE ((bool)0x00)
/** @brief Default value for GlobalSceneControl attribute */
#define ESP_ZB_ZCL_ON_OFF_GLOBAL_SCENE_CONTROL_DEFAULT_VALUE ((bool)0x01)
/** @brief Default value for OnTime attribute */
#define ESP_ZB_ZCL_ON_OFF_ON_TIME_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for OffWaitTime attribute */
#define ESP_ZB_ZCL_ON_OFF_OFF_WAIT_TIME_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief On/Off cluster command identifiers
*/
typedef enum {
ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID = 0x00, /*!< "Turn off" command. */
ESP_ZB_ZCL_CMD_ON_OFF_ON_ID = 0x01, /*!< "Turn on" command. */
ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID = 0x02, /*!< "Toggle state" command. */
ESP_ZB_ZCL_CMD_ON_OFF_OFF_WITH_EFFECT_ID = 0x40, /*!< "Off with effect" command. */
ESP_ZB_ZCL_CMD_ON_OFF_ON_WITH_RECALL_GLOBAL_SCENE_ID = 0x41, /*!< "On with recall global scene" command. */
ESP_ZB_ZCL_CMD_ON_OFF_ON_WITH_TIMED_OFF_ID = 0x42, /*!< "On with timed off" command. */
} esp_zb_zcl_on_off_cmd_id_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,33 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief on-off switch type attribute
*/
typedef enum {
ESP_ZB_ZCL_ON_OFF_SWITCH_CONFIGURATION_SWITCH_TYPE_TOGGLE = 0, /*!< Toggle switch */
ESP_ZB_ZCL_ON_OFF_SWITCH_CONFIGURATION_SWITCH_TYPE_MOMENTARY = 1, /*!< Momentary switch */
ESP_ZB_ZCL_ON_OFF_SWITCH_CONFIGURATION_SWITCH_TYPE_MULTIFUNCTION = 2 /*!< Multifunction switch */
} esp_zb_zcl_on_off_switch_configuration_switch_type_t;
/** @brief on-off switch actions attribute
*/
typedef enum {
ESP_ZB_ZCL_ON_OFF_SWITCH_CONFIGURATION_SWITCH_ACTIONS_TYPE1 = 0, /*!< First type command pattern */
ESP_ZB_ZCL_ON_OFF_SWITCH_CONFIGURATION_SWITCH_ACTIONS_TYPE2 = 1, /*!< Second type command pattern */
ESP_ZB_ZCL_ON_OFF_SWITCH_CONFIGURATION_SWITCH_ACTIONS_TOGGLE = 2 /*!< Toggle command pattern */
} esp_zb_zcl_on_off_switch_configuration_switch_actions_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,132 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief OTA upgrade cluster attribute identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_SERVER_ID = 0x0000, /*!< Indicates the address of the upgrade server */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_FILE_OFFSET_ID = 0x0001, /*!< Indicates the the current location in the OTA upgrade image */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_FILE_VERSION_ID = 0x0002, /*!< Indicates the file version of the running firmware image on the device */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_STACK_VERSION_ID = 0x0003, /*!< Brief CurrentZigbeeStackVersion attribute */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_DOWNLOADED_FILE_VERSION_ID = 0x0004, /*!< Indicates the file version of the downloaded image on the device */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_DOWNLOADED_STACK_VERSION_ID = 0x0005, /*!< Brief DownloadedZigbeeStackVersion attribute */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_IMAGE_STATUS_ID = 0x0006, /*!< Indicates the image upgrade status of the client device */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_MANUFACTURE_ID = 0x0007, /*!< Indicates the value for the manufacturer of the device */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_IMAGE_TYPE_ID = 0x0008, /*!< Indicates the the image type of the file that the client is currently downloading */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_MIN_BLOCK_REQUE_ID = 0x0009, /*!< Indicates the delay between Image Block Request commands in milliseconds */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_IMAGE_STAMP_ID = 0x000a, /*!< Brief Image Stamp attribute */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_UPGRADE_ACTIVATION_POLICY_ID = 0x000b, /*!< Indicates what behavior the client device supports for activating a fully downloaded but not installed upgrade image */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_UPGRADE_TIMEOUT_POLICY_ID = 0x000c, /*!< Indicates what behavior the client device supports for activating a fully downloaded image when the OTA server cannot be reached */
/* Server variables and Custom data */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_SERVER_ENDPOINT_ID = 0xfff3, /*!< Brief OTA server endpoint custom attribute */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_SERVER_ADDR_ID = 0xfff2, /*!< Brief OTA server addr custom attribute */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_CLIENT_DATA_ID = 0xfff1, /*!< Brief OTA client data attribute, its type can refer to esp_zb_zcl_ota_upgrade_client_variable_t */
ESP_ZB_ZCL_ATTR_OTA_UPGRADE_SERVER_DATA_ID = 0xfff0, /*!< Brief OTA server data attribute, its type can refer to esp_zb_zcl_ota_upgrade_server_variable_t */
} esp_zb_zcl_ota_upgrade_attr_t;
/** @brief Default value for UpgradeServerID attribute */
#define ESP_ZB_ZCL_OTA_UPGRADE_SERVER_DEF_VALUE { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }
/** @brief Default value for FileOffset attribute */
#define ESP_ZB_ZCL_OTA_UPGRADE_FILE_OFFSET_DEF_VALUE 0xffffffff
/** @brief Default value for CurrentFileVersion attribute */
#define ESP_ZB_ZCL_OTA_UPGRADE_FILE_VERSION_DEF_VALUE 0xffffffff
/** @brief Default value for CurrentZigbeeStackVersion attribute */
#define ESP_ZB_ZCL_OTA_UPGRADE_STACK_VERSION_DEF_VALUE 0xffff
/** @brief Default value for DownloadedFileVersion attribute */
#define ESP_ZB_ZCL_OTA_UPGRADE_DOWNLOADED_FILE_VERSION_DEF_VALUE 0xffffffff
/** @brief Default value for DownloadedZigbeeStackVersion attribute */
#define ESP_ZB_ZCL_OTA_UPGRADE_DOWNLOADED_STACK_DEF_VALUE 0xffff
/** @brief Default value for ManufacturerCode attribute */
#define ESP_ZB_OTA_UPGRADE_MANUFACTURER_CODE_DEF_VALUE 0x131B
/** @brief Default value for ImageType attribute */
#define ESP_ZB_OTA_UPGRADE_IMAGE_TYPE_DEF_VALUE 0xffbf
/** @brief Manufacturer Specific minimum value for ImageType attribute */
#define ESP_ZB_OTA_UPGRADE_MANUFACTURER_SPECIFIC_IMAGE_TYPE_MIN_VALUE 0x0000
/** @brief Manufacturer Specific maximum value for ImageType attribute */
#define ESP_ZB_OTA_UPGRADE_MANUFACTURER_SPECIFIC_IMAGE_TYPE_MAX_VALUE 0xffbf
/** @brief Client Security credentials value for ImageType attribute */
#define ESP_ZB_OTA_UPGRADE_CLI_SECURITY_CREDENTIALS_IMAGE_TYPE_VALUE 0xffc0
/** @brief Client Configuration value for ImageType attribute */
#define ESP_ZB_OTA_UPGRADE_CLI_CONFIG_IMAGE_TYPE_VALUE 0xffc1
/** @brief Server Log value for ImageType attribute */
#define ESP_ZB_OTA_UPGRADE_SERVER_LOG_IMAGE_TYPE_VALUE 0xffc2
/** @brief Picture value for ImageType attribute */
#define ESP_ZB_OTA_UPGRADE_PICTURE_IMAGE_TYPE_VALUE 0xffc3
/** @brief Wild card value for ImageType attribute */
#define ESP_ZB_OTA_UPGRADE_WILD_CARD_IMAGE_TYPE_VALUE 0xffff
/** @brief Default value for ImageUpgradeStatus attribute */
#define ESP_ZB_ZCL_OTA_UPGRADE_IMAGE_STATUS_DEF_VALUE 0x00
/** @brief Default value for MinimumBlockPeriod attribute */
#define ESP_ZB_OTA_UPGRADE_MIN_BLOCK_PERIOD_DEF_VALUE 0x0000
/** @brief Maximum value for ImageStamp attribute */
#define ESP_ZB_ZCL_OTA_UPGRADE_IMAGE_STAMP_DEF_VALUE 0xffffffff
/** @brief Default value for OTA server endpoint custom attribute */
#define ESP_ZB_ZCL_OTA_UPGRADE_SERVER_ENDPOINT_DEF_VALUE 0xff
/** @brief Default value for OTA server addr custom attribute */
#define ESP_ZB_ZCL_OTA_UPGRADE_SERVER_ADDR_DEF_VALUE 0xffff
/** @brief Default Frequency request server about new upgrade file (minutes) */
#define ESP_ZB_ZCL_OTA_UPGRADE_QUERY_TIMER_COUNT_DEF (24*60)
/** @brief Possible statuses of OTA upgrade
*/
typedef enum {
ESP_ZB_ZCL_OTA_UPGRADE_STATUS_START = 0x0000, /*!< Starts OTA upgrade */
ESP_ZB_ZCL_OTA_UPGRADE_STATUS_APPLY = 0x0001, /*!< Checks for manufacturer, image type etc are ok last step before actual upgrade */
ESP_ZB_ZCL_OTA_UPGRADE_STATUS_RECEIVE = 0x0002, /*!< Process image block */
ESP_ZB_ZCL_OTA_UPGRADE_STATUS_FINISH = 0x0003, /*!< OTA upgrade completed */
ESP_ZB_ZCL_OTA_UPGRADE_STATUS_ABORT = 0x0004, /*!< OTA upgrade aborted */
ESP_ZB_ZCL_OTA_UPGRADE_STATUS_CHECK = 0x0005, /*!< Downloading is finished, do additional checks if needed etc before upgrade end request */
ESP_ZB_ZCL_OTA_UPGRADE_STATUS_OK = 0x0006, /*!< OTA upgrade end response is ok */
ESP_ZB_ZCL_OTA_UPGRADE_STATUS_ERROR = 0x0007, /*!< OTA upgrade return error code */
ESP_ZB_ZCL_OTA_UPGRADE_IMAGE_STATUS_NORMAL = 0x0008, /*!< Accepted new image */
ESP_ZB_ZCL_OTA_UPGRADE_STATUS_BUSY = 0x0009, /*!< Another download is in progress, deny new image */
ESP_ZB_ZCL_OTA_UPGRADE_STATUS_SERVER_NOT_FOUND = 0x000A /*!< Notify an application that OTA Upgrade server not found */
} esp_zb_zcl_ota_upgrade_status_t;
/** @brief The status of OTA upgrade server */
typedef enum {
ESP_ZB_ZCL_OTA_UPGRADE_SERVER_STARTED = 0x00, /*!< Start OTA */
ESP_ZB_ZCL_OTA_UPGRADE_SERVER_ABORTED = 0x01, /*!< Abort OTA */
ESP_ZB_ZCL_OTA_UPGRADE_SERVER_END = 0x02, /*!< End OTA */
} esp_zb_ota_upgrade_server_status_t;
/** @brief OTA File header - fc fields bitmasks */
typedef enum esp_zb_zcl_ota_upgrade_file_header_fc_e {
ESP_ZB_ZCL_OTA_UPGRADE_FILE_HEADER_FC_CREDENTIAL_VER = 1 << 0, /*!< Indicate that the Security Credential Version field will be included. */
ESP_ZB_ZCL_OTA_UPGRADE_FILE_HEADER_FC_DEVICE_SPECIFIC = 1 << 1, /*!< Indicate that the Device Specific field will be included. */
ESP_ZB_ZCL_OTA_UPGRADE_FILE_HEADER_FC_HW_VER = 1 << 2, /*!< Indicate that the Hardware Versions Present field will be included. */
} esp_zb_zcl_ota_upgrade_file_header_fc_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,64 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief pH_Measurement cluster server attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_PH_MEASUREMENT_MEASURED_VALUE_ID = 0x0000, /**< MeasuredValue Attribute */
ESP_ZB_ZCL_ATTR_PH_MEASUREMENT_MIN_MEASURED_VALUE_ID = 0x0001, /**< MinMeasuredValue Attribute */
ESP_ZB_ZCL_ATTR_PH_MEASUREMENT_MAX_MEASURED_VALUE_ID = 0x0002, /**< MaxMeasuredValue Attribute */
ESP_ZB_ZCL_ATTR_PH_MEASUREMENT_TOLERANCE_ID = 0x0003, /**< Tolerance Attribute */
} esp_zb_zcl_ph_measurement_srv_attr_t;
/** @brief Minimum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_PH_MEASUREMENT_MIN_MEASURED_VALUE_MINIMUM ((uint16_t)0x0000)
/** @brief Maximum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_PH_MEASUREMENT_MIN_MEASURED_VALUE_MAXIMUM ((uint16_t)0x0577)
/** @brief Minimum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_PH_MEASUREMENT_MAX_MEASURED_VALUE_MINIMUM ((uint16_t)0x0001)
/** @brief Maximum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_PH_MEASUREMENT_MAX_MEASURED_VALUE_MAXIMUM ((uint16_t)0x0578)
/** @brief Minimum value for Tolerance attribute */
#define ESP_ZB_ZCL_PH_MEASUREMENT_TOLERANCE_MINIMUM ((uint16_t)0x0000)
/** @brief Maximum value for Tolerance attribute */
#define ESP_ZB_ZCL_PH_MEASUREMENT_TOLERANCE_MAXIMUM ((uint16_t)0x00c8)
/** @brief Unknown value for MeasuredValue attribute */
#define ESP_ZB_ZCL_PH_MEASUREMENT_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Unknown value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_PH_MEASUREMENT_MIN_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Unknown value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_PH_MEASUREMENT_MAX_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MeasuredValue attribute */
#define ESP_ZB_ZCL_PH_MEASUREMENT_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_PH_MEASUREMENT_MIN_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_PH_MEASUREMENT_MAX_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
void esp_zb_zcl_ph_measurement_init_server(void);
#define ESP_ZB_ZCL_CLUSTER_ID_PH_MEASUREMENT_SERVER_ROLE_INIT esp_zb_zcl_ph_measurement_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_PH_MEASUREMENT_CLIENT_ROLE_INIT NULL
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,58 @@
/*
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief PM2.5 Measurement cluster attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_PM2_5_MEASUREMENT_MEASURED_VALUE_ID = 0x0000, /*!< MeasuredValue attribute */
ESP_ZB_ZCL_ATTR_PM2_5_MEASUREMENT_MIN_MEASURED_VALUE_ID = 0x0001, /*!< MinMeasuredValue attribute */
ESP_ZB_ZCL_ATTR_PM2_5_MEASUREMENT_MAX_MEASURED_VALUE_ID = 0x0002, /*!< MaxMeasuredValue attribute */
ESP_ZB_ZCL_ATTR_PM2_5_MEASUREMENT_TOLERANCE_ID = 0x0003, /*!< Tolerance attribute */
} esp_zb_zcl_pm2_5_measurement_attr_t;
/** @brief Minimum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_PM2_5_MEASUREMENT_MIN_MEASURED_VALUE_MINIMUM (0.0)
/** @brief Maximum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_PM2_5_MEASUREMENT_MIN_MEASURED_VALUE_MAXIMUM (1.0)
/** @brief Minimum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_PM2_5_MEASUREMENT_MAX_MEASURED_VALUE_MINIMUM (0.0)
/** @brief Maximum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_PM2_5_MEASUREMENT_MAX_MEASURED_VALUE_MAXIMUM (1.0)
/** @brief Unknown value for MeasuredValue attribute */
#define ESP_ZB_ZCL_PM2_5_MEASUREMENT_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_NaN
/** @brief Unknown value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_PM2_5_MEASUREMENT_MIN_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_NaN
/** @brief Unknown value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_PM2_5_MEASUREMENT_MAX_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_NaN
/** @brief Default value for MeasuredValue attribute */
#define ESP_ZB_ZCL_PM2_5_MEASUREMENT_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_NaN
/** @brief Default value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_PM2_5_MEASUREMENT_MIN_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_NaN
/** @brief Default value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_PM2_5_MEASUREMENT_MAX_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_NaN
void esp_zb_zcl_pm2_5_measurement_init_server(void);
#define ESP_ZB_ZCL_CLUSTER_ID_PM2_5_MEASUREMENT_SERVER_ROLE_INIT esp_zb_zcl_pm2_5_measurement_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_PM2_5_MEASUREMENT_CLIENT_ROLE_INIT NULL
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,78 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Poll Control cluster attribute identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_POLL_CONTROL_CHECK_IN_INTERVAL_ID = 0x0000U, /*!< Represents the default amount of time between check-ins by the poll control server with the poll control client. */
ESP_ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_INTERVAL_ID = 0x0001U, /*!< Defines the frequency of polling that an end device does when it is NOT in fast poll mode. */
ESP_ZB_ZCL_ATTR_POLL_CONTROL_SHORT_POLL_INTERVAL_ID = 0x0002U, /*!< Represents the number of quarter-seconds that an end device waits between MAC Data Requests to its parent when it is expecting data */
ESP_ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_TIMEOUT_ID = 0x0003U, /*!< Represents the number of quarter-seconds that an end device will stay in fast poll mode by default. */
ESP_ZB_ZCL_ATTR_POLL_CONTROL_MIN_CHECK_IN_INTERVAL_ID = 0x0004U, /*!< The Poll Control Server MAY optionally provide its own minimum value for the Check-inInterval */
ESP_ZB_ZCL_ATTR_POLL_CONTROL_LONG_POLL_MIN_INTERVAL_ID = 0x0005U, /*!< The Poll Control Server MAY optionally provide its own minimum value for the LongPollInterval */
ESP_ZB_ZCL_ATTR_POLL_CONTROL_FAST_POLL_MAX_TIMEOUT_ID = 0x0006U, /*!< The Poll Control Server MAY optionally provide its own maximum value for the FastPollTimeout*/
} esp_zb_zcl_poll_control_attr_t;
/** @brief Default values for Poll Control cluster attributes */
#define ESP_ZB_ZCL_POLL_CONTROL_CHECK_IN_INTERVAL_DEFAULT_VALUE ((uint32_t)0x3840U)
/** @brief Default value for Long Poll Interval attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_LONG_POLL_INTERVAL_DEFAULT_VALUE ((uint32_t)0x0014U)
/** @brief Default value for Short Poll Interval attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_SHORT_POLL_INTERVAL_DEFAULT_VALUE ((uint16_t)0x0002U)
/** @brief Default value for Fast Poll Timeout attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_FAST_POLL_TIMEOUT_DEFAULT_VALUE ((uint16_t)0x0028U)
/** @brief Default value for Check-in Interval Min attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_MIN_CHECK_IN_INTERVAL_DEFAULT_VALUE ((uint32_t)0x0000U)
/** @brief Default value for Long Poll Interval Min attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_LONG_POLL_MIN_INTERVAL_DEFAULT_VALUE ((uint32_t)0x0000U)
/** @brief Default value for Fast Poll Timeout Max attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_FAST_POLL_MAX_TIMEOUT_DEFAULT_VALUE ((uint16_t)0x0000U)
/** @brief Minimum and maximum values for Poll Control cluster attributes */
#define ESP_ZB_ZCL_POLL_CONTROL_CHECK_IN_INTERVAL_MIN_VALUE ((uint32_t)0x0000U)
/** @brief Maximum value for Check-in Interval attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_CHECK_IN_INTERVAL_MAX_VALUE ((uint32_t)0x6e0000U)
/** @brief Minimum value for Long Poll Interval attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_LONG_POLL_INTERVAL_MIN_VALUE ((uint32_t)0x0004U) /* 4 quarter seconds = 1 second */
/** @brief Maximum value for Long Poll Interval attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_LONG_POLL_INTERVAL_MAX_VALUE ((uint32_t)0x6e0000U)
/** @brief Minimum value for Short Poll Interval attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_SHORT_POLL_INTERVAL_MIN_VALUE ((uint16_t)0x0001U) /* 1 quarter second */
/** @brief Maximum value for Short Poll Interval attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_SHORT_POLL_INTERVAL_MAX_VALUE ((uint16_t)0xffffU)
/** @brief Minimum value for Fast Poll Timeout attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_FAST_POLL_TIMEOUT_MIN_VALUE ((uint16_t)0x0001U)
/** @brief Maximum value for Fast Poll Timeout attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_FAST_POLL_TIMEOUT_MAX_VALUE ((uint16_t)0xffffU)
/** @brief Minimum value for Fast Poll Timeout Max attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_FAST_POLL_MAX_TIMEOUT_MIN_VALUE ((uint16_t)0x0001U)
/** @brief Maximum value for Fast Poll Timeout Max attribute */
#define ESP_ZB_ZCL_POLL_CONTROL_FAST_POLL_MAX_TIMEOUT_MAX_VALUE ((uint16_t)0xffffU)
/** @brief Poll Control cluster client generated command identifiers */
typedef enum {
ESP_ZB_ZCL_CMD_POLL_CONTROL_CHECK_IN_RESPONSE_ID = 0x00, /*!< Check-in Response command */
ESP_ZB_ZCL_CMD_POLL_CONTROL_FAST_POLL_STOP_ID = 0x01, /*!< Fast Poll Stop command */
ESP_ZB_ZCL_CMD_POLL_CONTROL_SET_LONG_POLL_INTERVAL_ID = 0x02, /*!< Set Long Poll Interval command */
ESP_ZB_ZCL_CMD_POLL_CONTROL_SET_SHORT_POLL_INTERVAL_ID = 0x03, /*!< Set Short Poll Interval command */
} esp_zb_zcl_poll_control_cli_cmd_id_t;
/** @brief Poll Control cluster server generated command identifiers */
typedef enum {
ESP_ZB_ZCL_CMD_POLL_CONTROL_CHECK_IN_ID = 0x00, /*!< Check-in command */
} esp_zb_zcl_poll_control_srv_cmd_id_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,132 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Power configuration cluster information attribute set identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_POWER_CONFIG_MAINS_VOLTAGE_ID = 0x0000, /*!< MainsVoltage attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_MAINS_FREQUENCY_ID = 0x0001, /*!< MainsFrequency attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_MAINS_ALARM_MASK_ID = 0x0010, /*< MainsAlarmMask attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_MAINS_VOLTAGE_MIN_THRESHOLD = 0x0011, /*< MainsVoltageMinThreshold attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_MAINS_VOLTAGE_MAX_THRESHOLD = 0x0012, /*< MainsVoltageMaxThreshold attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_MAINS_DWELL_TRIP_POINT = 0x0013, /*< MainsVoltageDwellTripPoint attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_ID = 0x0020, /*!< BatteryVoltage attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_REMAINING_ID = 0x0021, /*!< BatteryPercentageRemaining attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_MANUFACTURER_ID = 0x0030, /*!< Name of the battery manufacturer as a character string. */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_SIZE_ID = 0x0031, /*!< BatterySize attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_A_HR_RATING_ID = 0x0032, /*!< The Ampere-hour rating of the battery, measured in units of 10mAHr. */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_QUANTITY_ID = 0x0033, /*!< BatteryQuantity attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_RATED_VOLTAGE_ID = 0x0034, /*!< BatteryRatedVoltage attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_ALARM_MASK_ID = 0x0035, /*!< BatteryAlarmMask attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_MIN_THRESHOLD_ID = 0x0036, /*!< BatteryVoltageMinThreshold attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_THRESHOLD1_ID = 0x0037, /*!< BatteryVoltageThreshold1 attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_THRESHOLD2_ID = 0x0038, /*!< BatteryVoltageThreshold2 attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_VOLTAGE_THRESHOLD3_ID = 0x0039, /*!< BatteryVoltageThreshold3 attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_MIN_THRESHOLD_ID = 0x003a, /*!< BatteryPercentageMinThreshold attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_THRESHOLD1_ID = 0x003b, /*!< BatteryPercentageThreshold1 attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_THRESHOLD2_ID = 0x003c, /*!< BatteryPercentageThreshold2 attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_THRESHOLD3_ID = 0x003d, /*!< BatteryPercentageThreshold3 attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_ALARM_STATE_ID = 0x003e, /*!< BatteryAlarmState attribute */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_VOLTAGE_ID = 0x0040, /*!< Battery Information 2 attribute set */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_PERCENTAGE_REMAINING_ID = 0x0041,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_MANUFACTURER_ID = 0x0050, /*!< Battery Settings 2 attribute set */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_SIZE_ID = 0x0051,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_A_HR_RATING_ID = 0x0052,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_QUANTITY_ID = 0x0053,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_RATED_VOLTAGE_ID = 0x0054,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_ALARM_MASK_ID = 0x0055,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_VOLTAGE_MIN_THRESHOLD_ID = 0x0056,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_VOLTAGE_THRESHOLD1_ID = 0x0057,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_VOLTAGE_THRESHOLD2_ID = 0x0058,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_VOLTAGE_THRESHOLD3_ID = 0x0059,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_PERCENTAGE_MIN_THRESHOLD_ID = 0x005a,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_PERCENTAGE_THRESHOLD1_ID = 0x005b,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_PERCENTAGE_THRESHOLD2_ID = 0x005c,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_PERCENTAGE_THRESHOLD3_ID = 0x005d,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY2_ALARM_STATE_ID = 0x005e,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_VOLTAGE_ID = 0x0060, /*!< Battery Information 3 attribute set */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_PERCENTAGE_REMAINING_ID = 0x0061,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_MANUFACTURER_ID = 0x0070, /*!< Battery Settings 3 attribute set */
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_SIZE_ID = 0x0071,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_A_HR_RATING_ID = 0x0072,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_QUANTITY_ID = 0x0073,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_RATED_VOLTAGE_ID = 0x0074,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_ALARM_MASK_ID = 0x0075,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_VOLTAGE_MIN_THRESHOLD_ID = 0x0076,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_VOLTAGE_THRESHOLD1_ID = 0x0077,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_VOLTAGE_THRESHOLD2_ID = 0x0078,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_VOLTAGE_THRESHOLD3_ID = 0x0079,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_PERCENTAGE_MIN_THRESHOLD_ID = 0x007a,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_PERCENTAGE_THRESHOLD1_ID = 0x007b,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_PERCENTAGE_THRESHOLD2_ID = 0x007c,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_PERCENTAGE_THRESHOLD3_ID = 0x007d,
ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY3_ALARM_STATE_ID = 0x007e,
} esp_zb_zcl_power_config_attr_t;
/**
* @brief Power Configuration MainsAlarmMask value
*/
typedef enum {
ESP_ZB_ZCL_POWER_CONFIG_MAINS_ALARM_MASK_VOLTAGE_LOW = 0x01, /*!< MainsAlarmMask - Mains Voltage too low */
ESP_ZB_ZCL_POWER_CONFIG_MAINS_ALARM_MASK_VOLTAGE_HIGH = 0x02, /*!< MainsAlarmMask - Mains Voltage too high */
ESP_ZB_ZCL_POWER_CONFIG_MAINS_ALARM_MASK_VOLTAGE_UNAVAIL = 0x04, /*!< MainsAlarmMask - Mains power supply lost/unavailable */
} esp_zb_zcl_power_config_mains_alarm_mask_t;
/**
* @brief Power Configuration BatterySize value
*/
typedef enum {
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_SIZE_NO_BATTERY = 0, /*!< BatterySize - no battery*/
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_SIZE_BUILT_IN = 1, /*!< BatterySize - built in */
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_SIZE_OTHER = 2, /*!< BatterySize - other */
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_SIZE_AA = 3, /*!< BatterySize - AA */
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_SIZE_AAA = 4, /*!< BatterySize - AAA */
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_SIZE_C = 5, /*!< BatterySize - C */
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_SIZE_D = 6, /*!< BatterySize - D */
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_SIZE_CR2 = 7, /*!< BatterySize - CR2 */
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_SIZE_CR123A = 8, /*!< BatterySize - CR123A */
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_SIZE_UNKNOWN = 0xff, /*!< BatterySize - unknown */
} esp_zb_zcl_power_config_battery_size_t;
/**
* @brief Power Configuration BatteryAlarmMask value
*/
typedef enum {
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_ALARM_MASK_VOLTAGE_LOW = 0, /*!< BatteryAlarmMask - Battery voltage too low */
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_ALARM_MASK_ALARM1 = 1, /*!< BatteryAlarmMask - Alarm1 */
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_ALARM_MASK_ALARM2 = 2, /*!< BatteryAlarmMask - Alarm2 */
ESP_ZB_ZCL_POWER_CONFIG_BATTERY_ALARM_MASK_ALARM3 = 3, /*!< BatteryAlarmMask - Alarm3 */
} esp_zb_zcl_power_config_battery_alarm_mask_t;
/** @brief Default value for MainsAlarmMask attribute */
#define ESP_ZB_ZCL_POWER_CONFIG_MAINS_ALARM_MASK_DEFAULT_VALUE ((uint8_t)0x00)
/** @brief Default value for MainsVoltageMinThreshold attribute */
#define ESP_ZB_ZCL_POWER_CONFIG_MAINS_VOLTAGE_MIN_THRESHOLD_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for MainsVoltageMaxThreshold attribute */
#define ESP_ZB_ZCL_POWER_CONFIG_MAINS_VOLTAGE_MAX_THRESHOLD_DEFAULT_VALUE ((uint16_t)0xFFFF)
/** @brief Default value for MainsDwellTripPoint attribute */
#define ESP_ZB_ZCL_POWER_CONFIG_MAINS_DWELL_TRIP_POINT_DEFAULT_VALUE ((uint16_t)0x0000)
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,100 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Pressure Measurement cluster attribute identifiers
*/
typedef enum
{
ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_VALUE_ID = 0x0000, /*!< MeasuredValue */
ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MIN_VALUE_ID = 0x0001, /*!< MinMeasuredValue */
ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MAX_VALUE_ID = 0x0002, /*!< MaxMeasuredValue */
ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_TOLERANCE_ID = 0x0003, /*!< MeasuredTolerance */
ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_SCALED_VALUE_ID = 0x0010, /*!< ScaledValue */
ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MIN_SCALED_VALUE_ID = 0x0011, /*!< MinScaledValue */
ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MAX_SCALED_VALUE_ID = 0x0012, /*!< MaxScaledValue */
ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_SCALED_TOLERANCE_ID = 0x0013, /*!< ScaledTolerance */
ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_SCALE_ID = 0x0014, /*!< Scale */
}esp_zb_zcl_pressure_measurement_attr_t;
/** @brief Default value for Pressure Measurement cluster revision global attribute */
#define ESP_ZB_ZCL_PRESSURE_MEASUREMENT_CLUSTER_REVISION_DEFAULT ((zb_uint16_t)0x0002u)
/** @brief MeasuredValue attribute unknown value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_VALUE_UNKNOWN ((int16_t)0x8000)
/** @brief MinMeasuredValue attribute minimum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MIN_VALUE_MIN_VALUE ((int16_t)0x8001)
/** @brief MinMeasuredValue attribute maximum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MIN_VALUE_MAX_VALUE ((int16_t)0x7ffe)
/** @brief MinMeasuredValue attribute invalid value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MIN_VALUE_INVALID ((int16_t)0x8000)
/** @brief MaxMeasuredValue attribute minimum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MAX_VALUE_MIN_VALUE ((int16_t)0x8002)
/** @brief MaxMeasuredValue attribute maximum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MAX_VALUE_MAX_VALUE ((int16_t)0x7fff)
/** @brief MaxMeasuredValue attribute invalid value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MAX_VALUE_INVALID ((int16_t)0x8000)
/** @brief Tolerance attribute minimum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_TOLERANCE_MIN_VALUE ((uint16_t)0x0000)
/** @brief Tolerance attribute maximum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_TOLERANCE_MAX_VALUE ((uint16_t)0x0800)
/** @brief Default value for Value attribute */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_VALUE_DEFAULT_VALUE ((int16_t)0xFFFF)
/** @brief Default value for MinValue attribute */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MIN_VALUE_DEFAULT_VALUE ((int16_t)0x8000)
/** @brief Default value for MaxValue attribute */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MAX_VALUE_DEFAULT_VALUE ((int16_t)0x8000)
/** @brief MinScaledValue attribute unknown value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MIN_SCALED_VALUE_UNKNOWN ((int16_t)0x8000)
/** @brief MinScaledValue attribute minimum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MIN_SCALED_VALUE_MIN_VALUE ((int16_t)0x8001)
/** @brief MinScaledValue attribute maximum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MIN_SCALED_VALUE_MAX_VALUE ((int16_t)0x7ffe)
/** @brief MaxScaledValue attribute unknown value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MAX_SCALED_VALUE_UNKNOWN ((int16_t)0x8000)
/** @brief MaxScaledValue attribute minimum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MAX_SCALED_VALUE_MIN_VALUE ((int16_t)0x8002)
/** @brief MaxScaledValue attribute maximum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MAX_SCALED_VALUE_MAX_VALUE ((int16_t)0x7fff)
/** @brief MaxScaledValue attribute minimum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_SCALED_TOLERANCE_MIN_VALUE ((uint16_t)0x0000)
/** @brief MaxScaledValue attribute maximum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_SCALED_TOLERANCE_MAX_VALUE ((uint16_t)0x0800)
/** @brief MaxScaledValue attribute minimum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_SCALE_MIN_VALUE ((int8_t)0x81)
/** @brief MaxScaledValue attribute maximum value */
#define ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_SCALE_MAX_VALUE ((int8_t)0x7f)
#ifdef __cplusplus
}
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,72 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Scene cluster attribute identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_SCENES_SCENE_COUNT_ID = 0x0000, /*!< Number of scenes currently in the device's scene table */
ESP_ZB_ZCL_ATTR_SCENES_CURRENT_SCENE_ID = 0x0001, /*!< Scene ID of the scene last invoked */
ESP_ZB_ZCL_ATTR_SCENES_CURRENT_GROUP_ID = 0x0002, /*!< Group ID of the scene last invoked */
ESP_ZB_ZCL_ATTR_SCENES_SCENE_VALID_ID = 0x0003, /*!< Indicates whether the state of the device corresponds to CurrentScene and CurrentGroup attributes */
ESP_ZB_ZCL_ATTR_SCENES_NAME_SUPPORT_ID = 0x0004, /*!< The most significant bit of the NameSupport attribute indicates whether or not scene names are supported */
ESP_ZB_ZCL_ATTR_SCENES_LAST_CONFIGURED_BY_ID = 0x0005 /*!< specifies the IEEE address of the device that last configured the scene table */
} esp_zb_zcl_scene_attr_t;
/** @brief Default value for Scene count attribute */
#define ESP_ZB_ZCL_SCENES_SCENE_COUNT_DEFAULT_VALUE 0
/** @brief Default value for Current scene attribute */
#define ESP_ZB_ZCL_SCENES_CURRENT_SCENE_DEFAULT_VALUE 0
/** @brief Default value for Current group attribute */
#define ESP_ZB_ZCL_SCENES_CURRENT_GROUP_DEFAULT_VALUE 0
/** @brief Default value for Scene valid attribute */
#define ESP_ZB_ZCL_SCENES_SCENE_VALID_DEFAULT_VALUE 0
/** @brief Default value for Name support attribute */
#define ESP_ZB_ZCL_SCENES_NAME_SUPPORT_DEFAULT_VALUE 0
/** @brief Command identifiers for Scenes Cluster
*/
typedef enum {
ESP_ZB_ZCL_CMD_SCENES_ADD_SCENE = 0x00, /*!< Add scene command */
ESP_ZB_ZCL_CMD_SCENES_VIEW_SCENE = 0x01, /*!< View scene command */
ESP_ZB_ZCL_CMD_SCENES_REMOVE_SCENE = 0x02, /*!< Remove scene command */
ESP_ZB_ZCL_CMD_SCENES_REMOVE_ALL_SCENES = 0x03, /*!< Remove all scenes command */
ESP_ZB_ZCL_CMD_SCENES_STORE_SCENE = 0x04, /*!< Store scene command */
ESP_ZB_ZCL_CMD_SCENES_RECALL_SCENE = 0x05, /*!< Recall scene command */
ESP_ZB_ZCL_CMD_SCENES_GET_SCENE_MEMBERSHIP = 0x06, /*!< Get scene membership command */
ESP_ZB_ZCL_CMD_SCENES_ENHANCED_ADD_SCENE = 0x40, /*!< The Enhanced Add Scene command allows a scene to be added using a finer scene transition time than the Add Scene command. */
ESP_ZB_ZCL_CMD_SCENES_ENHANCED_VIEW_SCENE = 0x41, /*!< The Enhanced View Scene command allows a scene to be retrieved using a finer scene transition time than the View Scene command. */
ESP_ZB_ZCL_CMD_SCENES_COPY_SCENE = 0x42, /*!< The Copy Scene command allows a device to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
} esp_zb_zcl_scenes_cmd_id_t;
/** @brief Response command identifiers for Scenes Cluster
*/
typedef enum {
ESP_ZB_ZCL_CMD_SCENES_ADD_SCENE_RESPONSE = 0x00, /*!< Add scene response */
ESP_ZB_ZCL_CMD_SCENES_VIEW_SCENE_RESPONSE = 0x01, /*!< View scene response */
ESP_ZB_ZCL_CMD_SCENES_REMOVE_SCENE_RESPONSE = 0x02, /*!< Remove scene response */
ESP_ZB_ZCL_CMD_SCENES_REMOVE_ALL_SCENES_RESPONSE = 0x03, /*!< Remove all scenes response */
ESP_ZB_ZCL_CMD_SCENES_STORE_SCENE_RESPONSE = 0x04, /*!< Store scene response */
ESP_ZB_ZCL_CMD_SCENES_GET_SCENE_MEMBERSHIP_RESPONSE = 0x06, /*!< Get scene membership response */
ESP_ZB_ZCL_CMD_SCENES_ENHANCED_ADD_SCENE_RESPONSE = 0x40, /*!< The Enhanced Add Scene Response command allows a device to respond to an Enhanced Add Scene command.*/
ESP_ZB_ZCL_CMD_SCENES_ENHANCED_VIEW_SCENE_RESPONSE = 0x41, /*!< The Enhanced View Scene Response command allows a device to respond to an Enhanced View Scene command
using a finer scene transition time that was available in the ZCL. */
ESP_ZB_ZCL_CMD_SCENES_COPY_SCENE_RESPONSE = 0x42, /*!< The Copy Scene Response command allows a device to respond to a Copy Scene command.*/
} esp_zb_zcl_scenes_cmd_resp_id_t;
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,33 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Shade Configuration cluster information attribute set identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_SHADE_CONFIG_PHYSICAL_CLOSED_LIMIT_ID = 0x0000, /*!< It indicates the most closed (numerically lowest) position that the shade can physically move to. */
ESP_ZB_ZCL_ATTR_SHADE_CONFIG_MOTOR_STEP_SIZE_ID = 0x0001, /*!< It indicates the angle the shade motor moves for one step, measured in 1/10ths of a degree. */
ESP_ZB_ZCL_ATTR_SHADE_CONFIG_STATUS_ID = 0x0002 /*!< Status attribute */
} esp_zb_zcl_shade_config_info_attr_t;
/** @brief Shade Configuration Status attribute default value */
#define ESP_ZB_ZCL_SHADE_CONFIG_STATUS_DEFAULT_VALUE 0x00
/** @brief ClosedLimit attribute default value */
#define ESP_ZB_ZCL_SHADE_CONFIG_CLOSED_LIMIT_DEFAULT_VALUE 0x0001
/** @brief Mode attribute default value */
#define ESP_ZB_ZCL_SHADE_CONFIG_MODE_DEFAULT_VALUE 0x00
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,65 @@
/*
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Temperature Measurement cluster attribute identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID = 0x0000, /*!< MeasuredValue */
ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_MIN_VALUE_ID = 0x0001, /*!< MinMeasuredValue*/
ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_MAX_VALUE_ID = 0x0002, /*!< MaxMeasuredValue */
ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_TOLERANCE_ID = 0x0003, /*!< Tolerance */
} esp_zb_zcl_temp_measurement_attr_t;
/** @brief Minimum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_TEMP_MEASUREMENT_MIN_MEASURED_VALUE_MINIMUM ((int16_t)0x954d)
/** @brief Maximum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_TEMP_MEASUREMENT_MIN_MEASURED_VALUE_MAXIMUM ((int16_t)0x7ffe)
/** @brief Minimum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_TEMP_MEASUREMENT_MAX_MEASURED_VALUE_MINIMUM ((int16_t)0x954e)
/** @brief Maximum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_TEMP_MEASUREMENT_MAX_MEASURED_VALUE_MAXIMUM ((int16_t)0x7fff)
/** @brief Minimum value for Tolerance attribute */
#define ESP_ZB_ZCL_TEMP_MEASUREMENT_TOLERANCE_MINIMUM ((uint16_t)0x0000)
/** @brief Maximum value for Tolerance attribute */
#define ESP_ZB_ZCL_TEMP_MEASUREMENT_TOLERANCE_MAXIMUM ((uint16_t)0x0800)
/** @brief Unknown value for MeasuredValue attribute */
#define ESP_ZB_ZCL_TEMP_MEASUREMENT_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_S16_NONE
/** @brief Unknown value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_TEMP_MEASUREMENT_MIN_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_S16_NONE
/** @brief Unknown value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_TEMP_MEASUREMENT_MAX_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_S16_NONE
/** @brief Default value for MeasuredValue attribute */
#define ESP_ZB_ZCL_TEMP_MEASUREMENT_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_S16_NONE
/** @brief Default value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_TEMP_MEASUREMENT_MIN_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_S16_NONE
/** @brief Default value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_TEMP_MEASUREMENT_MAX_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_S16_NONE
void esp_zb_zcl_temp_measurement_init_server(void);
#define ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT_SERVER_ROLE_INIT esp_zb_zcl_temp_measurement_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT_CLIENT_ROLE_INIT NULL
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,556 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_err.h"
#include "esp_zigbee_type.h"
/** @brief Thermostat cluster attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_THERMOSTAT_LOCAL_TEMPERATURE_ID = 0x0000, /*!< Local Temperature attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_OUTDOOR_TEMPERATURE_ID = 0x0001, /*!< Outdoor Temperature attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_OCCUPANCY_ID = 0x0002, /*!< Occupancy attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_ABS_MIN_HEAT_SETPOINT_LIMIT_ID = 0x0003, /*!< The AbsMinHeatSetpointLimit attribute specifies the absolute minimum level that the heating setpoint MAY be set to */
ESP_ZB_ZCL_ATTR_THERMOSTAT_ABS_MAX_HEAT_SETPOINT_LIMIT_ID = 0x0004, /*!< The AbsMaxHeatSetpointLimit attribute specifies the absolute maximum level that the heating setpoint MAY be set to */
ESP_ZB_ZCL_ATTR_THERMOSTAT_ABS_MIN_COOL_SETPOINT_LIMIT_ID = 0x0005, /*!< The AbsMinCoolSetpointLimit attribute specifies the absolute minimum level that the cooling setpoint MAY be set to */
ESP_ZB_ZCL_ATTR_THERMOSTAT_ABS_MAX_COOL_SETPOINT_LIMIT_ID = 0x0006, /*!< The AbsMaxCoolSetpointLimit attribute specifies the absolute maximum level that the cooling setpoint MAY be set to */
ESP_ZB_ZCL_ATTR_THERMOSTAT_PI_COOLING_DEMAND_ID = 0x0007, /*!< The PICoolingDemand attribute is 8 bits in length and specifies the level of cooling demanded by the PI (proportional integral) control loop in use by the thermostat (if any), in percent */
ESP_ZB_ZCL_ATTR_THERMOSTAT_PI_HEATING_DEMAND_ID = 0x0008, /*!< The PIHeatingDemand attribute is 8 bits in length and specifies the level of heating demanded by the PI loop in percent */
ESP_ZB_ZCL_ATTR_THERMOSTAT_HVAC_SYSTEM_TYPE_CONFIGURATION_ID = 0x0009, /*!< The HVACSystemTypeConfiguration attribute specifies the HVAC system type controlled by the thermostat */
ESP_ZB_ZCL_ATTR_THERMOSTAT_LOCAL_TEMPERATURE_CALIBRATION_ID = 0x0010, /*!< Local Temperature Calibration */
ESP_ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_COOLING_SETPOINT_ID = 0x0011, /*!< Occupied Cooling Setpoint attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_HEATING_SETPOINT_ID = 0x0012, /*!< Occupied Heating Setpoint attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_COOLING_SETPOINT_ID = 0x0013, /*!< Unoccupied Cooling Setpoint attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_HEATING_SETPOINT_ID = 0x0014, /*!< Unoccupied Heating Setpoint attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_MIN_HEAT_SETPOINT_LIMIT_ID = 0x0015, /*!< The MinHeatSetpointLimit attribute specifies the minimum level that the heating setpoint MAY be set to */
ESP_ZB_ZCL_ATTR_THERMOSTAT_MAX_HEAT_SETPOINT_LIMIT_ID = 0x0016, /*!< The MaxHeatSetpointLimit attribute specifies the maximum level that the heating setpoint MAY be set to */
ESP_ZB_ZCL_ATTR_THERMOSTAT_MIN_COOL_SETPOINT_LIMIT_ID = 0x0017, /*!< The MinCoolSetpointLimit attribute specifies the minimum level that the cooling setpoint MAY be set to */
ESP_ZB_ZCL_ATTR_THERMOSTAT_MAX_COOL_SETPOINT_LIMIT_ID = 0x0018, /*!< The MaxCoolSetpointLimit attribute specifies the maximum level that the cooling setpoint MAY be set to */
ESP_ZB_ZCL_ATTR_THERMOSTAT_MIN_SETPOINT_DEAD_BAND_ID = 0x0019, /*!< The MinSetpointDeadBand attribute specifies the minimum difference between the Heat Setpoint and the Cool SetPoint, in steps of 0.1C */
ESP_ZB_ZCL_ATTR_THERMOSTAT_REMOTE_SENSING_ID = 0x001a, /*!< The RemoteSensing attribute is an 8-bit bitmap that specifies whether the local temperature, outdoor temperature and occupancy are being sensed by internal sensors or remote networked sensors */
ESP_ZB_ZCL_ATTR_THERMOSTAT_CONTROL_SEQUENCE_OF_OPERATION_ID = 0x001b, /*!< Control Sequence Of Operation attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_SYSTEM_MODE_ID = 0x001c, /*!< System Mode attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_ALARM_MASK_ID = 0x001d, /*!< The AlarmMask attribute specifies whether each of the alarms is enabled */
ESP_ZB_ZCL_ATTR_THERMOSTAT_RUNNING_MODE_ID = 0x001e, /*!< Thermostat Running Mode attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_START_OF_WEEK_ID = 0x0020, /*!< Start of Week attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_NUMBER_OF_WEEKLY_TRANSITIONS_ID = 0x0021, /*!< NumberOfWeeklyTransitions attribute determines how many weekly schedule transitions the thermostat is capable of handling */
ESP_ZB_ZCL_ATTR_THERMOSTAT_NUMBER_OF_DAILY_TRANSITIONS_ID = 0x0022, /*!< NumberOfDailyTransitions attribute determines how many daily schedule transitions the thermostat is capable of handling */
ESP_ZB_ZCL_ATTR_THERMOSTAT_TEMPERATURE_SETPOINT_HOLD_ID = 0x0023, /*!< TemperatureSetpointHold specifies the temperature hold status on the thermostat */
ESP_ZB_ZCL_ATTR_THERMOSTAT_TEMPERATURE_SETPOINT_HOLD_DURATION_ID = 0x0024, /*!< TemperatureSetpointHoldDuration sets the period in minutes for which a setpoint hold is active */
ESP_ZB_ZCL_ATTR_THERMOSTAT_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ID = 0x0025, /*!< The ThermostatProgrammingOperationMode attribute determines the operational state of the thermostats programming */
ESP_ZB_ZCL_ATTR_THERMOSTAT_THERMOSTAT_RUNNING_STATE_ID = 0x0029, /*!< ThermostatRunningState represents the current relay state of the heat, cool, and fan relays */
ESP_ZB_ZCL_ATTR_THERMOSTAT_SETPOINT_CHANGE_SOURCE_ID = 0x0030, /*!< The SetpointChangeSource attribute specifies the source of the current active OccupiedCoolingSetpoint or OccupiedHeatingSetpoint (i.e., who or what determined the current setpoint) */
ESP_ZB_ZCL_ATTR_THERMOSTAT_SETPOINT_CHANGE_AMOUNT_ID = 0x0031, /*!< The SetpointChangeAmount attribute specifies the delta between the current active OccupiedCoolingSetpoint or OccupiedHeatingSetpoint and the previous active setpoint */
ESP_ZB_ZCL_ATTR_THERMOSTAT_SETPOINT_CHANGE_SOURCE_TIMESTAMP_ID = 0x0032, /*!< The SetpointChangeSourceTimestamp attribute specifies the time in UTC at which the SetpointChangeSourceAmount attribute change was recorded */
ESP_ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_SETBACK_ID = 0x0034, /*!< Specifies the degrees Celsius, in 0.1 degree increments, the Thermostat server will allow the LocalTemperature attribute to float above the OccupiedCooling setpoint or below the OccupiedHeating setpoint before initiating a state change to bring the temperature back to the users desired setpoint */
ESP_ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_SETBACK_MIN_ID = 0x0035, /*!< Specifies the minimum degrees Celsius, in 0.1 degree increments, the Thermostat server will allow the OccupiedSetback attribute to be configured by a user */
ESP_ZB_ZCL_ATTR_THERMOSTAT_OCCUPIED_SETBACK_MAX_ID = 0x0036, /*!< Specifies the maximum degrees Celsius, in 0.1 degree increments, the Thermostat server will allow the OccupiedSetback attribute to be configured by a user */
ESP_ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_SETBACK_ID = 0x0037, /*!< Specifies the degrees Celsius, in 0.1 degree increments, the Thermostat server will allow the LocalTemperature attribute to float above the UnoccupiedCooling setpoint or below the UnoccupiedHeating setpoint before initiating a state change to bring the temperature back to the users desired setpoint */
ESP_ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_SETBACK_MIN_ID = 0x0038, /*!< Specifies the minimum degrees Celsius, in 0.1 degree increments, the Thermostat server will allow the UnoccupiedSetback attribute to be configured by a user */
ESP_ZB_ZCL_ATTR_THERMOSTAT_UNOCCUPIED_SETBACK_MAX_ID = 0x0039, /*!< Specifies the maximum degrees Celsius, in 0.1 degree increments, the Thermostat server will allow the UnoccupiedSetback attribute to be configured by a user. */
ESP_ZB_ZCL_ATTR_THERMOSTAT_EMERGENCY_HEAT_DELTA_ID = 0x003a, /*!< Specifies the delta, in 0.1 degrees Celsius, between LocalTemperature and the OccupiedHeatingSetpoint or UnoccupiedHeatingSetpoint attributes at which the Thermostat server will operate in emergency heat mode */
ESP_ZB_ZCL_ATTR_THERMOSTAT_AC_TYPE_ID = 0x0040, /*!< Indicates the type of Mini Split ACType of Mini Split AC is defined depending on how Cooling and Heating condition is achieved by Mini Split AC */
ESP_ZB_ZCL_ATTR_THERMOSTAT_AC_CAPACITY_ID = 0x0041, /*!< Indicates capacity of Mini Split AC in terms of the format defined by the ACCapacityFormat attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_AC_REFRIGERANT_TYPE_ID = 0x0042, /*!< Indicates type of refrigerant used within the Mini Split AC */
ESP_ZB_ZCL_ATTR_THERMOSTAT_AC_COMPRESSOR_TYPE_ID = 0x0043, /*!< This indicates type of Compressor used within the Mini Split AC */
ESP_ZB_ZCL_ATTR_THERMOSTAT_AC_ERROR_CODE_ID = 0x0044, /*!< This indicates the type of errors encountered within the Mini Split AC */
ESP_ZB_ZCL_ATTR_THERMOSTAT_AC_LOUVER_POSITION_ID = 0x0045, /*!< AC Louver position attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_AC_COIL_TEMPERATURE_ID = 0x0046, /*!< ACCoilTemperature represents the temperature in degrees Celsius, as measured locally or remotely (over the network) */
ESP_ZB_ZCL_ATTR_THERMOSTAT_AC_CAPACITY_FORMAT_ID = 0x0047, /*!< This is the format for the ACCapacity attribute */
} esp_zb_zcl_thermostat_attr_t;
/** @brief Thermostat cluster command identifiers */
typedef enum {
ESP_ZB_ZCL_CMD_THERMOSTAT_SETPOINT_RAISE_LOWER = 0x00, /*!< Setpoint Raise/Lower command */
ESP_ZB_ZCL_CMD_THERMOSTAT_SET_WEEKLY_SCHEDULE = 0x01, /*!< Set Weekly Schedule command */
ESP_ZB_ZCL_CMD_THERMOSTAT_GET_WEEKLY_SCHEDULE = 0x02, /*!< Get Weekly Schedule command */
ESP_ZB_ZCL_CMD_THERMOSTAT_CLEAR_WEEKLY_SCHEDULE = 0x03, /*!< Clear Weekly Schedule command */
ESP_ZB_ZCL_CMD_THERMOSTAT_GET_RELAY_STATUS_LOG = 0x04 /*!< Get Relay Status Log command */
} esp_zb_zcl_thermostat_cmd_id_t;
/** @brief Thermostat cluster command identifiers */
typedef enum {
ESP_ZB_ZCL_CMD_THERMOSTAT_GET_WEEKLY_SCHEDULE_RESP = 0x00, /*!< Get Weekly Schedule response command */
ESP_ZB_ZCL_CMD_THERMOSTAT_GET_RELAY_STATUS_LOG_RESP = 0x01 /*!< Get Relay Status Log response command */
} esp_zb_zcl_thermostat_cmd_resp_id_t;
/** @brief Values for Control Sequence Of Operation attribute */
typedef enum {
ESP_ZB_ZCL_THERMOSTAT_CONTROL_SEQ_OF_OPERATION_COOLING_ONLY = 0x00, /*!< Cooling Only value */
ESP_ZB_ZCL_THERMOSTAT_CONTROL_SEQ_OF_OPERATION_COOLING_WITH_REHEAT = 0x01, /*!< Cooling With Reheat value */
ESP_ZB_ZCL_THERMOSTAT_CONTROL_SEQ_OF_OPERATION_HEATING_ONLY = 0x02, /*!< Heating Only value */
ESP_ZB_ZCL_THERMOSTAT_CONTROL_SEQ_OF_OPERATION_HEATING_WITH_REHEAT = 0x03, /*!< Heating With Reheat value */
ESP_ZB_ZCL_THERMOSTAT_CONTROL_SEQ_OF_OPERATION_COOLING_AND_HEATING_4_PIPES = 0x04, /*!< Cooling and Heating 4-pipes value */
ESP_ZB_ZCL_THERMOSTAT_CONTROL_SEQ_OF_OPERATION_COOLING_AND_HEATING_4_PIPES_WITH_REHEAT = 0x05, /*!< Cooling and Heating 4-pipes with Reheat value */
} esp_zb_zcl_thermostat_control_sequence_of_operation_t;
/** @brief Values for System Mode attribute */
typedef enum {
ESP_ZB_ZCL_THERMOSTAT_SYSTEM_MODE_OFF = 0x00, /*!< Off value */
ESP_ZB_ZCL_THERMOSTAT_SYSTEM_MODE_AUTO = 0x01, /*!< Auto value */
ESP_ZB_ZCL_THERMOSTAT_SYSTEM_MODE_COOL = 0x03, /*!< Cool value */
ESP_ZB_ZCL_THERMOSTAT_SYSTEM_MODE_HEAT = 0x04, /*!< Heat value */
ESP_ZB_ZCL_THERMOSTAT_SYSTEM_MODE_EMERGENCY_HEATING = 0x05, /*!< Emergency Heating value */
ESP_ZB_ZCL_THERMOSTAT_SYSTEM_MODE_PRECOOLING = 0x06, /*!< Precooling value */
ESP_ZB_ZCL_THERMOSTAT_SYSTEM_MODE_FAN_ONLY = 0x07, /*!< Fan Only value */
ESP_ZB_ZCL_THERMOSTAT_SYSTEM_MODE_DRY = 0x08, /*!< Dry value */
ESP_ZB_ZCL_THERMOSTAT_SYSTEM_MODE_SLEEP = 0x09, /*!< Sleep value */
} esp_zb_zcl_thermostat_system_mode_t;
/** @brief Values for AC Louver position attribute */
typedef enum {
ESP_ZB_ZCL_THERMOSTAT_LOUVER_FULLY_CLOSED = 0x01, /*!< Fully close */
ESP_ZB_ZCL_THERMOSTAT_LOUVER_FULLY_OPEN = 0x02, /*!< Fully open */
ESP_ZB_ZCL_THERMOSTAT_LOUVER_QUARTER_OPEN = 0x03, /*!< Qyarter open */
ESP_ZB_ZCL_THERMOSTAT_LOUVER_HALF_OPEN = 0x04, /*!< Half open */
ESP_ZB_ZCL_THERMOSTAT_LOUVER_THREE_QUARTERS_OPEN = 0x05, /*!< Three quaters open */
} esp_zb_zcl_thermostat_ac_louver_position_t;
/** @brief Values for Start of Week attribute */
typedef enum {
ESP_ZB_ZCL_THERMOSTAT_START_OF_WEEK_SUNDAY = 0x00, /*!< Sunday value */
ESP_ZB_ZCL_THERMOSTAT_START_OF_WEEK_MONDAY = 0x01, /*!< Monday value */
ESP_ZB_ZCL_THERMOSTAT_START_OF_WEEK_TUESDAY = 0x02, /*!< Tuesday value */
ESP_ZB_ZCL_THERMOSTAT_START_OF_WEEK_WEDNESDAY = 0x03, /*!< Wednesday value */
ESP_ZB_ZCL_THERMOSTAT_START_OF_WEEK_THURSDAY = 0x04, /*!< Thursday value */
ESP_ZB_ZCL_THERMOSTAT_START_OF_WEEK_FRIDAY = 0x05, /*!< Friday value */
ESP_ZB_ZCL_THERMOSTAT_START_OF_WEEK_SATURDAY = 0x06, /*!< Saturday value */
} esp_zb_zcl_thermostat_start_of_week_t;
/** @brief Values for Temperature Setpoint Hold attribute */
typedef enum {
ESP_ZB_ZCL_THERMOSTAT_TEMPERATURE_SETPOINT_HOLD_OFF = 0x00, /*!< Off value */
ESP_ZB_ZCL_THERMOSTAT_TEMPERATURE_SETPOINT_HOLD_ON = 0x01, /*!< On value */
} esp_zb_zcl_thermostat_temperature_setpoint_hold_t;
/** @brief Values for AlarmMask attribute */
typedef enum {
ESP_ZB_ZCL_THERMOSTAT_ALARM_CODE_INITIALIZATION_FAILURE = 0x00, /*!< MainsVoltageAlarmCode - MainsVoltageMinThreshold reached for Mains Voltage**/
ESP_ZB_ZCL_THERMOSTAT_ALARM_CODE_HARDWARE_FAILURE = 0x01, /*!< MainsVoltageAlarmCode - MainsVoltageMaxThreshold reached for Mains Voltage**/
ESP_ZB_ZCL_THERMOSTAT_ALARM_CODE_SELFCALIBRATION_FAILURE = 0x02, /*!< BatteryAlarmCode - BatteryVoltageMinThreshold or BatteryPercentageMinThreshold reached for Battery Source 1 */
} esp_zb_zcl_thermostat_alarm_code_t;
/** @brief Bits of ThermostatProgrammingOperationMode */
typedef enum {
ESP_ZB_ZCL_THERMOSTAT_SCHEDULE_PROGRAMMING_MODE_BIT = 0x01, /*!< Schedule programming bit */
ESP_ZB_ZCL_THERMOSTAT_AUTO_RECOVERY_PROGRAMMING_MODE_BIT = 0x02, /*!< Auto/recovery bit */
ESP_ZB_ZCL_THERMOSTAT_ECONOMY_ENERGY_START_PROGRAMMING_MODE_BIT = 0x04, /*!< Economy/energy star bit */
} esp_zb_zcl_thermostat_programming_operation_mode_bit_t;
/** @brief Values for Mode field for SetpointRaiseLower*/
typedef enum {
ESP_ZB_ZCL_THERMOSTAT_SETPOINT_RAISE_LOWER_MODE_HEAT = 0x00, /*!< Heat value */
ESP_ZB_ZCL_THERMOSTAT_SETPOINT_RAISE_LOWER_MODE_COOL = 0x01, /*!< Cool value */
ESP_ZB_ZCL_THERMOSTAT_SETPOINT_RAISE_LOWER_MODE_BOTH = 0x02, /*!< Both (Heat and Cool) value */
} esp_zb_zcl_thermostat_setpoint_raise_lower_mode_t;
/** @brief Values for Mode for Sequence field */
typedef enum {
ESP_ZB_ZCL_THERMOSTAT_WEEKLY_SCHEDULE_MODE_FOR_SEQ_HEAT = 0x01, /*!< Heat value */
ESP_ZB_ZCL_THERMOSTAT_WEEKLY_SCHEDULE_MODE_FOR_SEQ_COOL = 0x02, /*!< Cool value */
ESP_ZB_ZCL_THERMOSTAT_WEEKLY_SCHEDULE_MODE_FOR_SEQ_BOTH = 0x03, /*!< Both (Heat and Cool) value */
} esp_zb_zcl_thermostat_weekly_schedule_mode_for_seq_t;
/** @brief Value for Day of Week */
typedef enum {
ESP_ZB_ZCL_THERMOSTAT_DAY_OF_WEEK_SUNDAY = (1 << 0), /*!< SUNDAY */
ESP_ZB_ZCL_THERMOSTAT_DAY_OF_WEEK_MONDAY = (1 << 1), /*!< MONDAY */
ESP_ZB_ZCL_THERMOSTAT_DAY_OF_WEEK_TUESDAY = (1 << 2), /*!< TUESDAY */
ESP_ZB_ZCL_THERMOSTAT_DAY_OF_WEEK_WEDNESDAY = (1 << 3), /*!< WEDNESDAY */
ESP_ZB_ZCL_THERMOSTAT_DAY_OF_WEEK_THURSDAY = (1 << 4), /*!< THURSDAY */
ESP_ZB_ZCL_THERMOSTAT_DAY_OF_WEEK_FRIDAY = (1 << 5), /*!< FRIDAY */
ESP_ZB_ZCL_THERMOSTAT_DAY_OF_WEEK_SATURDAY = (1 << 6), /*!< SATURDAY */
ESP_ZB_ZCL_THERMOSTAT_DAY_OF_WEEK_VACATION = (1 << 7), /*!< VACATION */
} esp_zb_zcl_thermostat_day_of_week_t;
/* Default value for Start Of Week attribute */
#define ESP_ZB_ZCL_THERMOSTAT_START_OF_WEEK_DEFAULT_VALUE 0x00
/** @brief Min value for Local Temperature attribute */
#define ESP_ZB_ZCL_THERMOSTAT_LOCAL_TEMPERATURE_MIN_VALUE 0x954d
/** @brief Max value for Local Temperature attribute */
#define ESP_ZB_ZCL_THERMOSTAT_LOCAL_TEMPERATURE_MAX_VALUE 0x7fff
/** @brief Min value for Outdoor Temperature attribute */
#define ESP_ZB_ZCL_THERMOSTAT_OUTDOOR_TEMPERATURE_MIN_VALUE 0x954d
/** @brief Max value for Outdoor Temperature attribute */
#define ESP_ZB_ZCL_THERMOSTAT_OUTDOOR_TEMPERATURE_MAX_VALUE 0x7fff
/** @brief Invalid value for Local Temperature attribute */
#define ESP_ZB_ZCL_THERMOSTAT_LOCAL_TEMPERATURE_INVALID ((zb_int16_t)0x8000)
/** @brief Default value for Local Temperature attribute */
#define ESP_ZB_ZCL_THERMOSTAT_LOCAL_TEMPERATURE_DEFAULT_VALUE (ESP_ZB_ZCL_VALUE_FF)
/** @brief Min value for Local Temperature Calibration attribute */
#define ESP_ZB_ZCL_THERMOSTAT_LOCAL_TEMPERATURE_CALIBRATION_MIN_VALUE 0xe7
/** @brief Max value for Local Temperature Calibration attribute */
#define ESP_ZB_ZCL_THERMOSTAT_LOCAL_TEMPERATURE_CALIBRATION_MAX_VALUE 0x19
/** @brief Default value for Occupied Cooling Setpoint attribute */
#define ESP_ZB_ZCL_THERMOSTAT_OCCUPIED_COOLING_SETPOINT_DEFAULT_VALUE 0x0a28
/** @brief Min value for Occupied Cooling Setpoint attribute */
#define ESP_ZB_ZCL_THERMOSTAT_OCCUPIED_COOLING_SETPOINT_MIN_VALUE 0x954d
/** @brief Max value for Occupied Cooling Setpoint attribute */
#define ESP_ZB_ZCL_THERMOSTAT_OCCUPIED_COOLING_SETPOINT_MAX_VALUE 0x7fff
/** @brief Default value for Occupied Heating Setpoint attribute */
#define ESP_ZB_ZCL_THERMOSTAT_OCCUPIED_HEATING_SETPOINT_DEFAULT_VALUE 0x07d0
/** @brief Min value for Occupied Heating Setpoint attribute */
#define ESP_ZB_ZCL_THERMOSTAT_OCCUPIED_HEATING_SETPOINT_MIN_VALUE 0x954d
/** @brief Max value for Occupied Heating Setpoint attribute */
#define ESP_ZB_ZCL_THERMOSTAT_OCCUPIED_HEATING_SETPOINT_MAX_VALUE 0x7fff
/** @brief Min value for Min Setpoint Dead Band attribute */
#define ESP_ZB_ZCL_THERMOSTAT_MIN_SETPOINT_DEAD_BAND_MIN_VALUE 0x0a
/** @brief Max value for Min Setpoint Dead Band attribute */
#define ESP_ZB_ZCL_THERMOSTAT_MIN_SETPOINT_DEAD_BAND_MAX_VALUE 0x19
/** @brief Local Temperature Sensed Remotely bit of Remote Sensing attribute */
#define ESP_ZB_ZCL_THERMOSTAT_REMOTE_SENSING_LOCAL_TEMPERATURE_SENSED_REMOTELY_BIT (1 << 0)
/** @brief Outdoor Temperature Sensed Remotely bit of Remote Sensing attribute */
#define ESP_ZB_ZCL_THERMOSTAT_REMOTE_SENSING_OUTDOOR_TEMPERATURE_SENSED_REMOTELY_BIT (1 << 1)
/** @brief Occupancy Sensed Sensed Remotely bit of Remote Sensing attribute */
#define ESP_ZB_ZCL_THERMOSTAT_REMOTE_SENSING_OCCUPANCY_SENSED_REMOTELY_BIT (1 << 2)
/** @brief Default value for Control Sequence Of Operation attribute */
#define ESP_ZB_ZCL_THERMOSTAT_CONTROL_SEQ_OF_OPERATION_DEFAULT_VALUE 0x04
/** @brief Default value for System Mode attribute */
#define ESP_ZB_ZCL_THERMOSTAT_CONTROL_SYSTEM_MODE_DEFAULT_VALUE 0x01
/** @brief Default value for Occupancy attribute */
#define ESP_ZB_ZCL_THERMOSTAT_OCCUPANCY_DEFAULT_VALUE ((zb_uint8_t)1U)
/** @brief Bitmask for Occupancy attribute */
#define ESP_ZB_ZCL_THERMOSTAT_OCCUPANCY_BITMASK ((zb_uint8_t)0x01)
/** @brief Default value for AbsMinHeatSetpointLimit attribute */
#define ESP_ZB_ZCL_THERMOSTAT_ABS_MIN_HEAT_SETPOINT_LIMIT_DEFAULT_VALUE ((zb_int16_t)0x02BC)
/** @brief Default value for AbsMaxHeatSetpointLimit attribute */
#define ESP_ZB_ZCL_THERMOSTAT_ABS_MAX_HEAT_SETPOINT_LIMIT_DEFAULT_VALUE ((zb_int16_t)0x0BB8)
/** @brief Default value for AbsMinCoolSetpointLimit attribute */
#define ESP_ZB_ZCL_THERMOSTAT_ABS_MIN_COOL_SETPOINT_LIMIT_DEFAULT_VALUE ((zb_int16_t)0x0640)
/** @brief Default value for AbsMaxCoolSetpointLimit attribute */
#define ESP_ZB_ZCL_THERMOSTAT_ABS_MAX_COOL_SETPOINT_LIMIT_DEFAULT_VALUE ((zb_int16_t)0x0C80)
/** @brief Min value for PICoolingDemand attribute */
#define ESP_ZB_ZCL_THERMOSTAT_PI_COOLING_DEMAND_MIN_VALUE ((zb_uint8_t)0x00)
/** @brief Max value for PICoolingDemand attribute */
#define ESP_ZB_ZCL_THERMOSTAT_PI_COOLING_DEMAND_MAX_VALUE ((zb_uint8_t)0x64)
/** @brief Min value for PIHeatingDemand attribute */
#define ESP_ZB_ZCL_THERMOSTAT_PI_HEATING_DEMAND_MIN_VALUE ((zb_uint8_t)0x00)
/** @brief Max value for PIHeatingDemand attribute */
#define ESP_ZB_ZCL_THERMOSTAT_PI_HEATING_DEMAND_MAX_VALUE ((zb_uint8_t)0x64)
/** @brief Default value for HVACSystemTypeConfiguration attribute */
#define ESP_ZB_ZCL_THERMOSTAT_HVAC_SYSTEM_TYPE_CONFIGURATION_DEFAULT_VALUE ((zb_uint8_t)0)
/** @brief Default value for LocalTemperatureCalibration attribute */
#define ESP_ZB_ZCL_THERMOSTAT_LOCAL_TEMPERATURE_CALIBRATION_DEFAULT_VALUE ((zb_int8_t)0x00)
/** @brief Default value for UnoccupiedCoolingSetpoint attribute */
#define ESP_ZB_ZCL_THERMOSTAT_UNOCCUPIED_COOLING_SETPOINT_DEFAULT_VALUE ((zb_int16_t)0x0A28)
/** @brief Default value for UnoccupiedHeatingSetpoint attribute */
#define ESP_ZB_ZCL_THERMOSTAT_UNOCCUPIED_HEATING_SETPOINT_DEFAULT_VALUE ((zb_int16_t)0x07D0)
/** @brief Default value for MinHeatSetpointLimit attribute */
#define ESP_ZB_ZCL_THERMOSTAT_MIN_HEAT_SETPOINT_LIMIT_DEFAULT_VALUE ((zb_int16_t)0x02BC)
/** @brief Default value for MaxHeatSetpointLimit attribute */
#define ESP_ZB_ZCL_THERMOSTAT_MAX_HEAT_SETPOINT_LIMIT_DEFAULT_VALUE ((zb_int16_t)0x0BB8)
/** @brief Default value for MinCoolSetpointLimit attribute */
#define ESP_ZB_ZCL_THERMOSTAT_MIN_COOL_SETPOINT_LIMIT_DEFAULT_VALUE ((zb_int16_t)0x0640)
/** @brief Default value for MaxCoolSetpointLimit attribute */
#define ESP_ZB_ZCL_THERMOSTAT_MAX_COOL_SETPOINT_LIMIT_DEFAULT_VALUE ((zb_int16_t)0x0C80)
/** @brief Default value for MinSetpointDeadBand attribute */
#define ESP_ZB_ZCL_THERMOSTAT_MIN_SETPOINT_DEAD_BAND_DEFAULT_VALUE ((zb_int8_t)0x19)
/** @brief Default value for RemoteSensing attribute */
#define ESP_ZB_ZCL_THERMOSTAT_REMOTE_SENSING_DEFAULT_VALUE ((zb_uint8_t)0)
/** @brief Default value for ControlSequenceOfOperation attribute */
#define ESP_ZB_ZCL_THERMOSTAT_CONTROL_SEQUENCE_OF_OPERATION_DEFAULT_VALUE ((zb_uint8_t)0x04)
/** @brief Default value for SystemMode attribute */
#define ESP_ZB_ZCL_THERMOSTAT_SYSTEM_MODE_DEFAULT_VALUE ((zb_uint8_t)0x01)
/** @brief Default value for AlarmMask attribute */
#define ESP_ZB_ZCL_THERMOSTAT_ALARM_MASK_DEFAULT_VALUE ((zb_uint8_t)0)
/** @brief Default value for RunningMode attribute */
#define ESP_ZB_ZCL_THERMOSTAT_RUNNING_MODE_DEFAULT_VALUE ((zb_uint8_t)0x00)
/** @brief Off value for RunningMode attribute */
#define ESP_ZB_ZCL_THERMOSTAT_RUNNING_MODE_OFF_VALUE ((zb_uint8_t)0x00)
/** @brief Cool value for RunningMode attribute */
#define ESP_ZB_ZCL_THERMOSTAT_RUNNING_MODE_COOL_VALUE ((zb_uint8_t)0x03)
/** @brief Heat value for RunningMode attribute */
#define ESP_ZB_ZCL_THERMOSTAT_RUNNING_MODE_HEAT_VALUE ((zb_uint8_t)0x04)
/** @brief Default value for TemperatureSetpointHold attribute */
#define ESP_ZB_ZCL_THERMOSTAT_TEMPERATURE_SETPOINT_HOLD_DEFAULT_VALUE ((zb_uint8_t)0x00)
/** @brief Default value for TemperatureSetpointHoldDuration attribute */
#define ESP_ZB_ZCL_THERMOSTAT_TEMPERATURE_SETPOINT_HOLD_DURATION_DEFAULT_VALUE ((zb_uint16_t)0xFFFF)
/** @brief Min value for TemperatureSetpointHoldDuration attribute */
#define ESP_ZB_ZCL_THERMOSTAT_TEMPERATURE_SETPOINT_HOLD_DURATION_MIN_VALUE ((zb_uint16_t)0x0000)
/** @brief Max value for TemperatureSetpointHoldDuration attribute */
#define ESP_ZB_ZCL_THERMOSTAT_TEMPERATURE_SETPOINT_HOLD_DURATION_MAX_VALUE ((zb_uint16_t)0x05a0)
/** @brief Default value for ThermostatProgrammingOperationMode attribute */
#define ESP_ZB_ZCL_THERMOSTAT_THERMOSTAT_PROGRAMMING_OPERATION_MODE_DEFAULT_VALUE ((zb_uint8_t)0)
/** @brief Default value for SetpointChangeSource attribute */
#define ESP_ZB_ZCL_THERMOSTAT_SETPOINT_CHANGE_SOURCE_DEFAULT_VALUE ((zb_uint8_t)0x00)
/** @brief Default value for SetpointChangeAmount attribute */
#define ESP_ZB_ZCL_THERMOSTAT_SETPOINT_CHANGE_AMOUNT_DEFAULT_VALUE ((zb_int16_t)0x8000)
/** @brief Default value for SetpointChangeSourceTimestamp attribute */
#define ESP_ZB_ZCL_THERMOSTAT_SETPOINT_CHANGE_SOURCE_TIMESTAMP_DEFAULT_VALUE ((zb_time_t)0x00000000)
/** @brief Default value for OccupiedSetback attribute */
#define ESP_ZB_ZCL_THERMOSTAT_OCCUPIED_SETBACK_DEFAULT_VALUE ((zb_uint8_t)0xFF)
/** @brief Default value for OccupiedSetbackMin attribute */
#define ESP_ZB_ZCL_THERMOSTAT_OCCUPIED_SETBACK_MIN_DEFAULT_VALUE ((zb_uint8_t)0xFF)
/** @brief Default value for OccupiedSetbackMax attribute */
#define ESP_ZB_ZCL_THERMOSTAT_OCCUPIED_SETBACK_MAX_DEFAULT_VALUE ((zb_uint8_t)0xFF)
/** @brief Default value for UnoccupiedSetback attribute */
#define ESP_ZB_ZCL_THERMOSTAT_UNOCCUPIED_SETBACK_DEFAULT_VALUE ((zb_uint8_t)0xFF)
/** @brief Default value for UnoccupiedSetbackMin attribute */
#define ESP_ZB_ZCL_THERMOSTAT_UNOCCUPIED_SETBACK_MIN_DEFAULT_VALUE ((zb_uint8_t)0xFF)
/** @brief Default value for UnoccupiedSetbackMax attribute */
#define ESP_ZB_ZCL_THERMOSTAT_UNOCCUPIED_SETBACK_MAX_DEFAULT_VALUE ((zb_uint8_t)0xFF)
/** @brief Default value for EmergencyHeatDelta attribute */
#define ESP_ZB_ZCL_THERMOSTAT_EMERGENCY_HEAT_DELTA_DEFAULT_VALUE ((zb_uint8_t)0xFF)
/** @brief Default value for ACType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_TYPE_DEFAULT_VALUE ((zb_uint8_t)0x00)
/** @brief Unknown value for ACType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_TYPE_UNKNOWN_VALUE ESP_ZB_ZCL_THERMOSTAT_AC_TYPE_DEFAULT_VALUE
/** @brief Cooling and Fixed Speed value for ACType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_TYPE_COOLING_AND_FIXED_SPEED_VALUE ((zb_uint8_t)0x01)
/** @brief Heat Pump and Fixed Speed value for ACType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_TYPE_HEAT_PUMP_AND_FIXED_SPEED_VALUE ((zb_uint8_t)0x02)
/** @brief Cooling and Inverter value for ACType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_TYPE_COOLING_AND_INVERTER_VALUE ((zb_uint8_t)0x03)
/** @brief Heat Pump and Inverter value value for ACType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_TYPE_HEAT_PUMP_AND_INVERTER_VALUE ((zb_uint8_t)0x04)
/** @brief Default value for ACCapacity attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_CAPACITY_DEFAULT_VALUE ((zb_uint16_t)0x0000)
/** @brief Default value for ACRefrigerantType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_REFRIGERANT_TYPE_DEFAULT_VALUE ((zb_uint8_t)0x00)
/** @brief Unknown value for ACRefrigerantType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_REFRIGERANT_TYPE_UNKNOWN_VALUE ESP_ZB_ZCL_THERMOSTAT_AC_REFRIGERANT_TYPE_DEFAULT_VALUE
/** @brief R22 value for ACRefrigerantType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_REFRIGERANT_TYPE_R22_VALUE ((zb_uint8_t)0x01)
/** @brief R410a value for ACRefrigerantType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_REFRIGERANT_TYPE_R410A_VALUE ((zb_uint8_t)0x02)
/** @brief R407c value for ACRefrigerantType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_REFRIGERANT_TYPE_R407C_VALUE ((zb_uint8_t)0x03)
/** @brief Default value for ACCompressorType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_COMPRESSOR_TYPE_DEFAULT_VALUE ((zb_uint8_t)0x00)
/** @brief Unknown value for ACCompressorType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_COMPRESSOR_TYPE_UNKNOWN_VALUE ESP_ZB_ZCL_THERMOSTAT_AC_COMPRESSOR_TYPE_DEFAULT_VALUE
/** @brief T1(Max working ambient 43 ºC) value for ACCompressorType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_COMPRESSOR_TYPE_T1_VALUE ((zb_uint8_t)0x01)
/** @brief T2(Max working ambient 35 ºC) value for ACCompressorType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_COMPRESSOR_TYPE_T2_VALUE ((zb_uint8_t)0x02)
/** @brief T3(Max working ambient 52 ºC) value for ACCompressorType attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_COMPRESSOR_TYPE_T3_VALUE ((zb_uint8_t)0x03)
/** @brief Default value for ACErrorCode attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_ERROR_CODE_DEFAULT_VALUE ((zb_uint32_t)0x00000000)
/** @brief Compressor Failure or Refrigerant Leakage bit of AC Error Code attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_ERROR_CODE_COMPRESSOR_FAILURE_OR_REFRIGERANT_LEAKAGE_BIT (1 << 0)
/** @brief Room Temperature Sensor Failure bit of AC Error Code attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_ERROR_CODE_ROOM_TEMPERATURE_SENSOR_FAILURE_BIT (1 << 1)
/** @brief Outdoor Temperature Sensor Failure bit of AC Error Code attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_ERROR_CODE_OUTDOOR_TEMPERATURE_SENSOR_FAILURE_BIT (1 << 2)
/** @brief Indoor Coil Temperature Sensor Failure bit of AC Error Code attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_ERROR_CODE_INDOOR_COIL_TEMPERATURE_SENSOR_FAILURE_BIT (1 << 3)
/** @brief Fan Failure bit of AC Error Code attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_ERROR_CODE_FAN_FAILURE_BIT (1 << 4)
/** @brief Default value for ACLouverPosition attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_LOUVER_POSITION_DEFAULT_VALUE ((zb_uint8_t)0x00)
/** @brief Fully Closed value for ACLouverPosition attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_LOUVER_POSITION_FULLY_CLOSED_VALUE ((zb_uint8_t)0x01)
/** @brief Fully Open value for ACLouverPosition attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_LOUVER_POSITION_FULLY_OPEN_VALUE ((zb_uint8_t)0x02)
/** @brief Quarter Open value for ACLouverPosition attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_LOUVER_POSITION_QUARTER_OPEN_VALUE ((zb_uint8_t)0x03)
/** @brief Three Quarters Open value for ACLouverPosition attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_LOUVER_POSITION_THREE_QUARTERS_OPEN_VALUE ((zb_uint8_t)0x05)
/** @brief Half Open value for ACLouverPosition attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_LOUVER_POSITION_HALF_OPEN_VALUE ((zb_uint8_t)0x04)
/** @brief Min value for AC Coil Temperature attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_COIL_TEMPERATURE_MIN_VALUE 0x954d
/** @brief Max value for AC Coil Temperature attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_COIL_TEMPERATURE_MAX_VALUE 0x7fff
/** @brief Default value for AC Capacity Format attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_CAPACITY_FORMAT_DEFAULT_VALUE ((zb_uint8_t)0x00)
/** @brief BTUh value for AC Capacity Format attribute */
#define ESP_ZB_ZCL_THERMOSTAT_AC_CAPACITY_FORMAT_BTUH_VALUE ESP_ZB_ZCL_THERMOSTAT_AC_CAPACITY_FORMAT_DEFAULT_VALUE
/** @brief Initialization failure bit of Alarm Mask attribute */
#define ESP_ZB_ZCL_THERMOSTAT_ALARM_MASK_INITIALIZATION_FAILURE_BIT (1 << 0)
/** @brief Hardware Failure bit of Alarm Mask attribute */
#define ESP_ZB_ZCL_THERMOSTAT_ALARM_MASK_HARDWARE_FAILURE_BIT (1 << 1)
/** @brief Self-Calibration Failure bit of Alarm Mask attribute */
#define ESP_ZB_ZCL_THERMOSTAT_ALARM_MASK_SELFCALIBRATION_FAILURE_BIT (1 << 2)
/** @brief Simple/Setpoint(0) or Schedule_Programming(1) mode bit of Thermostat Programming Operation Mode attribute */
#define ESP_ZB_ZCL_THERMOSTAT_PROGRAMMING_OPERATION_MODE_SIMPLE_SETPOINT_OR_PROGRAMMING_MODE_BIT (1 << 0)
/** @brief Auto/recovery mode bit of Thermostat Programming Operation Mode attribute */
#define ESP_ZB_ZCL_THERMOSTAT_PROGRAMMING_OPERATION_MODE_AUTO_RECOVERY_MODE_BIT (1 << 1)
/** @brief Economy/EnergyStar mode bit of Thermostat Programming Operation Mode attribute */
#define ESP_ZB_ZCL_THERMOSTAT_PROGRAMMING_OPERATION_MODE_ECONOMY_ENERGY_STAR_MODE_BIT (1 << 2)
/** @brief Heat State On bit of Thermostat Running State attribute */
#define ESP_ZB_ZCL_THERMOSTAT_RUNNING_STATE_HEAT_STATE_ON_BIT (1 << 0)
/** @brief Cool State On bit of Thermostat Running State attribute */
#define ESP_ZB_ZCL_THERMOSTAT_RUNNING_STATE_COOL_STATE_ON_BIT (1 << 1)
/** @brief Fan State On bit of Thermostat Running State attribute */
#define ESP_ZB_ZCL_THERMOSTAT_RUNNING_STATE_FAN_STATE_ON_BIT (1 << 2)
/** @brief Heat 2nd Stage State On bit of Thermostat Running State attribute */
#define ESP_ZB_ZCL_THERMOSTAT_RUNNING_STATE_HEAT_2ND_STAGE_STATE_ON_BIT (1 << 3)
/** @brief Cool 2nd Stage State On bit of Thermostat Running State attribute */
#define ESP_ZB_ZCL_THERMOSTAT_RUNNING_STATE_COOL_2ND_STAGE_STATE_ON_BIT (1 << 4)
/** @brief Fan 2nd Stage State On bit of Thermostat Running State attribute */
#define ESP_ZB_ZCL_THERMOSTAT_RUNNING_STATE_FAN_2ND_STAGE_STATE_ON_BIT (1 << 5)
/** @brief Fan 3rd Stage State On bit of Thermostat Running State attribute */
#define ESP_ZB_ZCL_THERMOSTAT_RUNNING_STATE_FAN_3RD_STAGE_STATE_ON_BIT (1 << 6)
/**
* @brief Structure for Thermostat Weekly Schedule Transition field
*
*/
typedef struct esp_zb_zcl_thermostat_weekly_schedule_transition_s {
uint16_t transition_time; /*!< This field represents the start time of the schedule transition during the associated day. */
uint16_t heat_setpoint; /*!< This field represents the heat setpoint to be applied at this associated transition start time. */
uint16_t cool_setpoint; /*!< this field represents the cool setpoint to be applied at this associated transition start time.*/
} esp_zb_zcl_thermostat_weekly_schedule_transition_t;
/**
* @brief Structure for the record in Thermostat Weekly Schedule Table
*/
typedef struct esp_zb_zcl_thermostat_weekly_schedule_record_s {
uint8_t day_of_week; /*!< Day of week, refer to esp_zb_zcl_thermostat_day_of_week_t */
uint8_t mode_for_seq; /*!< Mode for Sequence, refer to esp_zb_zcl_thermostat_weekly_schedule_mode_for_seq_t */
uint16_t transition_time; /*!< Transition time in minutes after midnight */
uint16_t heat_setpoint; /*!< Heat Set Point */
uint16_t cool_setpoint; /*!< Cool Set Point */
} esp_zb_zcl_thermostat_weekly_schedule_record_t;
/**
* @brief Start thermostat weekly schedule
*
* @return
* - ESP_OK: On success, otherwise, failure.
*/
esp_err_t esp_zb_zcl_thermostat_weekly_schedule_start(void);
/**
* @brief Stop thermostat weekly schedule
*
* @return
* - ESP_OK: On success, otherwise, failure.
*/
esp_err_t esp_zb_zcl_thermostat_weekly_schedule_stop(void);
/**
* @brief Get the next scheduled record from the thermostat weekly schedule table
*
* @param[in] iterator An iterator used to iterate through the thermostat weekly schedule table
* @param[out] record The next record in the thermostat weekly schedule table, refer to esp_zb_zcl_thermostat_weekly_schedule_record_t
* @return
* - ESP_OK: On success
* - ESP_ERR_INVALID_ARG: Invalid arguments
* - ESP_ERR_NOT_FOUND: End of the table reached
* - Otherwise: Failure
*/
esp_err_t esp_zb_zcl_thermostat_weekly_schedule_get_next_record(uint16_t *iterator, esp_zb_zcl_thermostat_weekly_schedule_record_t *record);
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,32 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/*! @brief Thermostat UI Configuration cluster attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_THERMOSTAT_UI_CONFIG_TEMPERATURE_DISPLAY_MODE_ID = 0x0000, /*!< Temperature Display Mode attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_UI_CONFIG_KEYPAD_LOCKOUT_ID = 0x0001, /*!< Keypad Lockout attribute */
ESP_ZB_ZCL_ATTR_THERMOSTAT_UI_CONFIG_SCHEDULE_PROGRAMMING_VISIBILITY_ID = 0x0002, /*!< The Schedule ProgrammingVisibility attribute is used to hide the weekly schedule programming functionality or menu on a thermostat from a user to prevent local user programming of the weekly schedule. */
} esp_zb_zcl_thermostat_ui_config_attr_t;
/** @brief Default value for Temperature Display Mode attribute */
#define ESP_ZB_ZCL_THERMOSTAT_UI_CONFIG_TEMPERATURE_DISPLAY_MODE_DEFAULT_VALUE 0x00
/** @brief Default value for Keypad Lockout attribute */
#define ESP_ZB_ZCL_THERMOSTAT_UI_CONFIG_KEYPAD_LOCKOUT_DEFAULT_VALUE 0x00
/** @brief Default value for ScheduleProgrammingVisibility attribute */
#define ESP_ZB_ZCL_THERMOSTAT_UI_CONFIG_SCHEDULE_PROGRAMMING_VISIBILITY_DEFAULT_VALUE ((zb_uint8_t)0x00)
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,61 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Time cluster attribute identifiers
*/
typedef enum {
ESP_ZB_ZCL_ATTR_TIME_TIME_ID = 0x0000, /*!< Time attribute */
ESP_ZB_ZCL_ATTR_TIME_TIME_STATUS_ID = 0x0001, /*!< Time Status attribute */
ESP_ZB_ZCL_ATTR_TIME_TIME_ZONE_ID = 0x0002, /*!< Time Zone attribute */
ESP_ZB_ZCL_ATTR_TIME_DST_START_ID = 0x0003, /*!< Dst Start attribute */
ESP_ZB_ZCL_ATTR_TIME_DST_END_ID = 0x0004, /*!< Dst End attribute */
ESP_ZB_ZCL_ATTR_TIME_DST_SHIFT_ID = 0x0005, /*!< Dst Shift attribute */
ESP_ZB_ZCL_ATTR_TIME_STANDARD_TIME_ID = 0x0006, /*!< Standard Time attribute */
ESP_ZB_ZCL_ATTR_TIME_LOCAL_TIME_ID = 0x0007, /*!< Local Time attribute */
ESP_ZB_ZCL_ATTR_TIME_LAST_SET_TIME_ID = 0x0008, /*!< Last Set Time attribute */
ESP_ZB_ZCL_ATTR_TIME_VALID_UNTIL_TIME_ID = 0x0009 /*!< Valid Until Time attribute */
} esp_zb_zcl_time_attr_t;
/** @brief Default value for Time attribute */
#define ESP_ZB_ZCL_TIME_TIME_DEFAULT_VALUE 0xffffffff
/** @brief Default value for Time Status attribute */
#define ESP_ZB_ZCL_TIME_TIME_STATUS_DEFAULT_VALUE 0x00
/** @brief Default value for Time Zone attribute */
#define ESP_ZB_ZCL_TIME_TIME_ZONE_DEFAULT_VALUE 0x00000000
/** @brief Default value for DstStart attribute */
#define ESP_ZB_ZCL_TIME_DST_START_DEFAULT_VALUE ((uint32_t)0xFFFFFFFF)
/** @brief Default value for DstEnd attribute */
#define ESP_ZB_ZCL_TIME_DST_END_DEFAULT_VALUE ((uint32_t)0xFFFFFFFF)
/** @brief Default value for Dst Shift attribute */
#define ESP_ZB_ZCL_TIME_DST_SHIFT_DEFAULT_VALUE 0x00000000
/** @brief Default value for StandardTime attribute */
#define ESP_ZB_ZCL_TIME_STANDARD_TIME_DEFAULT_VALUE ((uint32_t)0xFFFFFFFF)
/** @brief Default value for LocalTime attribute */
#define ESP_ZB_ZCL_TIME_LOCAL_TIME_DEFAULT_VALUE ((uint32_t)0xFFFFFFFF)
/** @brief Default value for Last Set Time attribute */
#define ESP_ZB_ZCL_TIME_LAST_SET_TIME_DEFAULT_VALUE 0xffffffff
/** @brief Default value for Valid Until Time attribute */
#define ESP_ZB_ZCL_TIME_VALID_UNTIL_TIME_DEFAULT_VALUE 0xffffffff
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,64 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Wind_Speed_Measurement cluster server attribute identifiers */
typedef enum {
ESP_ZB_ZCL_ATTR_WIND_SPEED_MEASUREMENT_MEASURED_VALUE_ID = 0x0000, /**< MeasuredValue Attribute */
ESP_ZB_ZCL_ATTR_WIND_SPEED_MEASUREMENT_MIN_MEASURED_VALUE_ID = 0x0001, /**< MinMeasuredValue Attribute */
ESP_ZB_ZCL_ATTR_WIND_SPEED_MEASUREMENT_MAX_MEASURED_VALUE_ID = 0x0002, /**< MaxMeasuredValue Attribute */
ESP_ZB_ZCL_ATTR_WIND_SPEED_MEASUREMENT_TOLERANCE_ID = 0x0003, /**< Tolerance Attribute */
} esp_zb_zcl_wind_speed_measurement_srv_attr_t;
/** @brief Minimum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_WIND_SPEED_MEASUREMENT_MIN_MEASURED_VALUE_MINIMUM ((uint16_t)0x0000)
/** @brief Maximum value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_WIND_SPEED_MEASUREMENT_MIN_MEASURED_VALUE_MAXIMUM ((uint16_t)0xfffd)
/** @brief Minimum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_WIND_SPEED_MEASUREMENT_MAX_MEASURED_VALUE_MINIMUM ((uint16_t)0x0001)
/** @brief Maximum value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_WIND_SPEED_MEASUREMENT_MAX_MEASURED_VALUE_MAXIMUM ((uint16_t)0xfffe)
/** @brief Minimum value for Tolerance attribute */
#define ESP_ZB_ZCL_WIND_SPEED_MEASUREMENT_TOLERANCE_MINIMUM ((uint16_t)0x0000)
/** @brief Maximum value for Tolerance attribute */
#define ESP_ZB_ZCL_WIND_SPEED_MEASUREMENT_TOLERANCE_MAXIMUM ((uint16_t)0x0308)
/** @brief Unknown value for MeasuredValue attribute */
#define ESP_ZB_ZCL_WIND_SPEED_MEASUREMENT_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Unknown value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_WIND_SPEED_MEASUREMENT_MIN_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Unknown value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_WIND_SPEED_MEASUREMENT_MAX_MEASURED_VALUE_UNKNOWN ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MeasuredValue attribute */
#define ESP_ZB_ZCL_WIND_SPEED_MEASUREMENT_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MinMeasuredValue attribute */
#define ESP_ZB_ZCL_WIND_SPEED_MEASUREMENT_MIN_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
/** @brief Default value for MaxMeasuredValue attribute */
#define ESP_ZB_ZCL_WIND_SPEED_MEASUREMENT_MAX_MEASURED_VALUE_DEFAULT ESP_ZB_ZCL_VALUE_U16_NONE
void esp_zb_zcl_wind_speed_measurement_init_server(void);
#define ESP_ZB_ZCL_CLUSTER_ID_WIND_SPEED_MEASUREMENT_SERVER_ROLE_INIT esp_zb_zcl_wind_speed_measurement_init_server
#define ESP_ZB_ZCL_CLUSTER_ID_WIND_SPEED_MEASUREMENT_CLIENT_ROLE_INIT NULL
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,162 @@
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_zigbee_type.h"
/** @brief Window Covering cluster attribute identifiers
*/
typedef enum{
ESP_ZB_ZCL_WINDOW_COVERING_INFORMATION = 0x000, /*!< Window Covering Information attribute set */
ESP_ZB_ZCL_WINDOW_COVERING_SETTINGS = 0x001 /*!< Window Covering Settings attribute set */
}esp_zb_zcl_window_covering_attribute_sets_t;
typedef enum{
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_WINDOW_COVERING_TYPE_ID = 0x0000, /*!< Window Covering Type attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_PHYSICAL_CLOSED_LIMIT_LIFT_ID = 0x0001, /*!< PhysicalClosedLimit Lift attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_PHY_CLOSED_LIMIT_TILT_ID = 0x0002, /*!< PhysicalClosedLimit Tilt attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_LIFT_ID = 0x0003, /*!< CurrentPosition Lift attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_TILT_ID = 0x0004, /*!< CurrentPosition Tilt attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_NUMBER_OF_ACTUATIONS_LIFT_ID = 0x0005, /*!< Number of Actuations Lift attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_NUMBER_OF_ACTUATIONS_TILT_ID = 0x0006, /*!< Number of Actuations Tilt attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CONFIG_STATUS_ID = 0x0007, /*!< Config/Status attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_LIFT_PERCENTAGE_ID = 0x0008, /*!< Current Position Lift Percentage attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CURRENT_POSITION_TILT_PERCENTAGE_ID = 0x0009 /*!< Current Position Tilt Percentage attribute */
}esp_zb_zcl_window_covering_info_attr_t;
typedef enum {
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_ROLLERSHADE = 0x00, /*!< Rollershade value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_ROLLERSHADE_2_MOTOR = 0x01, /*!< Rollershade - 2 Motor value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_ROLLERSHADE_EXTERIOR = 0x02, /*!< Rollershade - Exterior value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_ROLLERSHADE_EXTERIOR_2_MOTOR = 0x03, /*!< Rollershade - Exterior - 2 Motor value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_DRAPERY = 0x04, /*!< Drapery value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_AWNING = 0x05, /*!< Awning value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_SHUTTER = 0x06, /*!< Shutter value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_TILT_BLIND_TILT_ONLY = 0x07, /*!< Tilt Blind - Tilt Only value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_TILT_BLIND_LIFT_AND_TILT = 0x08, /*!< Tilt Blind - Lift and Tilt value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_PROJECTOR_SCREEN = 0x09 /*!< Projector screen value */
}esp_zb_zcl_window_covering_window_covering_type_t;
typedef enum {
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CONFIG_OPERATIONAL = 0x01, /*!< Operational value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CONFIG_ONLINE = 0x02, /*!< Online value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CONFIG_REVERSE_COMMANDS = 0x04, /*!< Open/Up Commands have been reversed value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CONFIG_LIFT_CONTROL_IS_CLOSED_LOOP = 0x08, /*!< Lift control is Closed Loop value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CONFIG_TILT_CONTROL_IS_CLOSED_LOOP = 0x10, /*!< Tilt control is Closed Loop value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CONFIG_LIFT_ENCODER_CONTROLLED = 0x20, /*!< Lift Encoder Controlled value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CONFIG_TILT_ENCODER_CONTROLLED = 0x40 /*!< Tilt Encoder Controlled value */
}esp_zb_zcl_window_covering_config_status_t;
typedef enum {
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_OPEN_LIMIT_LIFT_ID = 0x0010, /*!< InstalledOpenLimit - Lift attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_CLOSED_LIMIT_LIFT_ID = 0x0011, /*!< InstalledClosedLimit - Lift attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_OPEN_LIMIT_TILT_ID = 0x0012, /*!< InstalledOpenLimit - Tilt attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_INSTALLED_CLOSED_LIMIT_TILT_ID = 0x0013, /*!< InstalledClosedLimit - Tilt attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_VELOCITY_ID = 0x0014, /*!< Velocity - Lift attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_ACCELERATION_TIME_ID = 0x0015, /*!< Acceleration Time - Lift attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_DECELERATION_TIME_ID = 0x0016, /*!< Deceleration Time - Lift attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_MODE_ID = 0x0017, /*!< Mode attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_INTERMEDIATE_SETPOINTS_LIFT_ID = 0x0018, /*!< Intermediate Setpoints - Lift attribute */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_INTERMEDIATE_SETPOINTS_TILT_ID = 0x0019 /*!< Intermediate Setpoints - Tilt attribute */
}esp_zb_zcl_window_covering_settings_attr_t;
typedef enum {
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_REVERSED_MOTOR_DIRECTION = 0x01, /*!< Reversed motor direction value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_RUN_IN_CALIBRATION_MODE = 0x02, /*!< Run in calibration mode value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_MOTOR_IS_RUNNING_IN_MAINTENANCE_MODE = 0x04, /*!< Motor is running in maintenance mode value */
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_LEDS_WILL_DISPLAY_FEEDBACK = 0x08 /*!< LEDs will display feedback value */
}esp_zb_zcl_window_covering_mode_t;
typedef enum{
ESP_ZB_ZCL_CMD_WINDOW_COVERING_UP_OPEN = 0x00, /*!< Up/Open command */
ESP_ZB_ZCL_CMD_WINDOW_COVERING_DOWN_CLOSE = 0x01, /*!< Down/Close command */
ESP_ZB_ZCL_CMD_WINDOW_COVERING_STOP = 0x02, /*!< Stop command */
ESP_ZB_ZCL_CMD_WINDOW_COVERING_GO_TO_LIFT_VALUE = 0x04, /*!< Go to Lift Value command */
ESP_ZB_ZCL_CMD_WINDOW_COVERING_GO_TO_LIFT_PERCENTAGE = 0x05, /*!< Go to Lift Percentage command */
ESP_ZB_ZCL_CMD_WINDOW_COVERING_GO_TO_TILT_VALUE = 0x07, /*!< Go to Tilt Value command */
ESP_ZB_ZCL_CMD_WINDOW_COVERING_GO_TO_TILT_PERCENTAGE = 0x08 /*!< Go to Tilt Percentage command */
}esp_zb_zcl_window_covering_cmd_t;
/** @brief Default value for Window Covering cluster revision global attribute */
#define ESP_ZB_ZCL_WINDOW_COVERING_CLUSTER_REVISION_DEFAULT ((uint16_t)0x0003u)
/** @brief Default value for PhysicalClosedLimitLift attribute */
#define ESP_ZB_ZCL_WINDOW_COVERING_PHYSICAL_CLOSED_LIMIT_LIFT_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for PhyClosedLimitTilt attribute */
#define ESP_ZB_ZCL_WINDOW_COVERING_PHY_CLOSED_LIMIT_TILT_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for CurrentPositionLift attribute */
#define ESP_ZB_ZCL_WINDOW_COVERING_CURRENT_POSITION_LIFT_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for CurrentPositionTilt attribute */
#define ESP_ZB_ZCL_WINDOW_COVERING_CURRENT_POSITION_TILT_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for NumberOfActuationsLift attribute */
#define ESP_ZB_ZCL_WINDOW_COVERING_NUMBER_OF_ACTUATIONS_LIFT_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for NumberOfActuationsTilt attribute */
#define ESP_ZB_ZCL_WINDOW_COVERING_NUMBER_OF_ACTUATIONS_TILT_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Window covering type attribute default value */
#define ESP_ZB_ZCL_WINDOW_COVERING_WINDOW_COVERING_TYPE_DEFAULT_VALUE 0x00
/** @brief Config/status attribute default value */
#define ESP_ZB_ZCL_WINDOW_COVERING_CONFIG_STATUS_DEFAULT_VALUE \
ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CONFIG_OPERATIONAL \
| ESP_ZB_ZCL_ATTR_WINDOW_COVERING_CONFIG_ONLINE
/** @brief Current position lift percentage attribute default value */
#define ESP_ZB_ZCL_WINDOW_COVERING_CURRENT_POSITION_LIFT_PERCENTAGE_DEFAULT_VALUE 0xff
/** @brief Current position lift percentage attribute max value */
#define ESP_ZB_ZCL_WINDOW_COVERING_CURRENT_POSITION_LIFT_PERCENTAGE_MAX_VALUE 0x64
/** @brief Current position tilt percentage attribute default value */
#define ESP_ZB_ZCL_WINDOW_COVERING_CURRENT_POSITION_TILT_PERCENTAGE_DEFAULT_VALUE 0xff
/** @brief Current position tilt percentage attribute max value */
#define ESP_ZB_ZCL_WINDOW_COVERING_CURRENT_POSITION_TILT_PERCENTAGE_MAX_VALUE 0x64
/** @brief Installed open limit lift attribute default value */
#define ESP_ZB_ZCL_WINDOW_COVERING_INSTALLED_OPEN_LIMIT_LIFT_DEFAULT_VALUE 0x0000
/** @brief Installed closed limit lift attribute default value */
#define ESP_ZB_ZCL_WINDOW_COVERING_INSTALLED_CLOSED_LIMIT_LIFT_DEFAULT_VALUE 0xffff
/** @brief Installed open limit tilt attribute default value */
#define ESP_ZB_ZCL_WINDOW_COVERING_INSTALLED_OPEN_LIMIT_TILT_DEFAULT_VALUE 0x0000
/** @brief Installed closed limit tilt attribute default value */
#define ESP_ZB_ZCL_WINDOW_COVERING_INSTALLED_CLOSED_LIMIT_TILT_DEFAULT_VALUE 0xffff
/** @brief Default value for Velocity attribute */
#define ESP_ZB_ZCL_WINDOW_COVERING_VELOCITY_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for AccelerationTime attribute */
#define ESP_ZB_ZCL_WINDOW_COVERING_ACCELERATION_TIME_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Default value for DecelerationTime attribute */
#define ESP_ZB_ZCL_WINDOW_COVERING_DECELERATION_TIME_DEFAULT_VALUE ((uint16_t)0x0000)
/** @brief Mode attribute default value */
#define ESP_ZB_ZCL_WINDOW_COVERING_MODE_DEFAULT_VALUE ESP_ZB_ZCL_ATTR_WINDOW_COVERING_TYPE_MOTOR_IS_RUNNING_IN_MAINTENANCE_MODE
/** @brief Default value for IntermediateSetpointsLift attribute */
#define ESP_ZB_ZCL_WINDOW_COVERING_INTERMEDIATE_SETPOINTS_LIFT_DEFAULT_VALUE {0x31, 0x2C, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x00}
/** @brief Default value for IntermediateSetpointsTilt attribute */
#define ESP_ZB_ZCL_WINDOW_COVERING_INTERMEDIATE_SETPOINTS_TILT_DEFAULT_VALUE {0x31, 0x2C, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x00}
#ifdef __cplusplus
}
#endif