Initial commit: ESP32-C6 Zigbee Router project
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA
|
||||
* Copyright (c) 2021-2022 Espressif Systems (Shanghai) PTE LTD
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form, except as embedded into a Espressif Systems
|
||||
* integrated circuit in a product or a software update for such product,
|
||||
* must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the copyright holder nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software without
|
||||
* specific prior written permission.
|
||||
*
|
||||
* 4. Any software provided in binary form under this license must not be reverse
|
||||
* engineered, decompiled, modified and/or disassembled.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/* PURPOSE: HA configuration
|
||||
*/
|
||||
|
||||
#ifndef ZB_HA_CONFIG_H
|
||||
#define ZB_HA_CONFIG_H 1
|
||||
|
||||
#include "zb_vendor.h"
|
||||
|
||||
#if defined ZB_ENABLE_HA || defined DOXYGEN
|
||||
|
||||
/** @cond DOXYGEN_HA_SECTION */
|
||||
|
||||
/* Specify a list of devices that should be supported */
|
||||
#define xZB_ALL_DEVICE_SUPPORT /* Attention! use this macro in testing purposes */
|
||||
|
||||
/* Normally startup attribute sets should be processed */
|
||||
/* TODO Re-enable HA SAS processing when appropriate */
|
||||
#define xZB_ENABLE_HA_SAS
|
||||
|
||||
/* NK: why Gateway is always defined? */
|
||||
#define xZB_HA_DEFINE_DEVICE_GATEWAY
|
||||
|
||||
|
||||
#include "zb_ha_device_config.h"
|
||||
#include "zcl/zb_zcl_config.h"
|
||||
|
||||
/** @endcond */ /* DOXYGEN_HA_SECTION */
|
||||
|
||||
#endif /* ZB_ENABLE_HA */
|
||||
|
||||
#endif /* ZB_HA_CONFIG_H */
|
||||
@@ -0,0 +1,602 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2022 DSR Corporation, Denver CO, USA
|
||||
* Copyright (c) 2021-2022 Espressif Systems (Shanghai) PTE LTD
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form, except as embedded into a Espressif Systems
|
||||
* integrated circuit in a product or a software update for such product,
|
||||
* must reproduce the above copyright notice, this list of conditions and
|
||||
* the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the copyright holder nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software without
|
||||
* specific prior written permission.
|
||||
*
|
||||
* 4. Any software provided in binary form under this license must not be reverse
|
||||
* engineered, decompiled, modified and/or disassembled.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/* PURPOSE: HA devices configuration
|
||||
*/
|
||||
|
||||
#ifndef ZB_HA_DEVICE_CONFIG_H
|
||||
#define ZB_HA_DEVICE_CONFIG_H 1
|
||||
|
||||
#if defined ZB_ENABLE_HA || defined DOXYGEN
|
||||
|
||||
/** @cond DOXYGEN_HA_SECTION */
|
||||
|
||||
/*! @defgroup ha_config_params HA Device types */
|
||||
/*! @{
|
||||
*/
|
||||
|
||||
/** @brief HA Device identifiers. */
|
||||
enum zb_ha_standard_devs_e
|
||||
{
|
||||
/*! General On/Off switch */
|
||||
ZB_HA_ON_OFF_SWITCH_DEVICE_ID = 0x0000,
|
||||
/*! Level Control Switch */
|
||||
ZB_HA_LEVEL_CONTROL_SWITCH_DEVICE_ID = 0x0001,
|
||||
/*! General On/Off output */
|
||||
ZB_HA_ON_OFF_OUTPUT_DEVICE_ID = 0x0002,
|
||||
/*! Level Controllable Output */
|
||||
ZB_HA_LEVEL_CONTROLLABLE_OUTPUT_DEVICE_ID = 0x0003,
|
||||
/*! Scene Selector */
|
||||
ZB_HA_SCENE_SELECTOR_DEVICE_ID = 0x0004,
|
||||
/*! Configuration Tool */
|
||||
ZB_HA_CONFIGURATION_TOOL_DEVICE_ID = 0x0005,
|
||||
/*! Remote Control */
|
||||
ZB_HA_REMOTE_CONTROL_DEVICE_ID = 0x0006,
|
||||
/*! Combined Interface */
|
||||
ZB_HA_COMBINED_INTERFACE_DEVICE_ID = 0x0007,
|
||||
/*! Range Extender */
|
||||
ZB_HA_RANGE_EXTENDER_DEVICE_ID = 0x0008,
|
||||
/*! Mains Power Outlet */
|
||||
ZB_HA_MAINS_POWER_OUTLET_DEVICE_ID = 0x0009,
|
||||
/*! Door lock client */
|
||||
ZB_HA_DOOR_LOCK_DEVICE_ID = 0x000A,
|
||||
/*! Door lock controller */
|
||||
ZB_HA_DOOR_LOCK_CONTROLLER_DEVICE_ID = 0x000B,
|
||||
/*! Simple Sensor device */
|
||||
ZB_HA_SIMPLE_SENSOR_DEVICE_ID = 0x000C,
|
||||
/*! Consumption Awareness Device */
|
||||
ZB_HA_CONSUMPTION_AWARENESS_DEVICE_ID = 0x000D,
|
||||
/*! Home Gateway */
|
||||
ZB_HA_HOME_GATEWAY_DEVICE_ID = 0x0050,
|
||||
/*! Smart plug */
|
||||
ZB_HA_SMART_PLUG_DEVICE_ID = 0x0051,
|
||||
/*! White Goods */
|
||||
ZB_HA_WHITE_GOODS_DEVICE_ID = 0x0052,
|
||||
/*! Meter Interface */
|
||||
ZB_HA_METER_INTERFACE_DEVICE_ID = 0x0053,
|
||||
/* Lightning */
|
||||
/*! On/Off Light Device */
|
||||
ZB_HA_ON_OFF_LIGHT_DEVICE_ID = 0x0100,
|
||||
/*! Dimmable Light Device */
|
||||
ZB_HA_DIMMABLE_LIGHT_DEVICE_ID = 0x0101,
|
||||
/*! Color Dimmable Light Device */
|
||||
ZB_HA_COLOR_DIMMABLE_LIGHT_DEVICE_ID = 0x0102,
|
||||
/*! Dimmer Switch Device */
|
||||
ZB_HA_DIMMER_SWITCH_DEVICE_ID = 0x0104,
|
||||
/*! Color Dimmer Switch Device */
|
||||
ZB_HA_COLOR_DIMMER_SWITCH_DEVICE_ID = 0x0105,
|
||||
/*! Shade */
|
||||
ZB_HA_SHADE_DEVICE_ID = 0x0200,
|
||||
/*! Shade controller */
|
||||
ZB_HA_SHADE_CONTROLLER_DEVICE_ID = 0x0201,
|
||||
/*! Window Covering client*/
|
||||
ZB_HA_WINDOW_COVERING_DEVICE_ID = 0x0202,
|
||||
/*! Window Covering controller */
|
||||
ZB_HA_WINDOW_COVERING_CONTROLLER_DEVICE_ID = 0x0203,
|
||||
/* HVAC */
|
||||
/*! Heating/Cooling Unit device */
|
||||
ZB_HA_HEATING_COOLING_UNIT_DEVICE_ID = 0x0300,
|
||||
/*! Thermostat Device */
|
||||
ZB_HA_THERMOSTAT_DEVICE_ID = 0x0301,
|
||||
/*! Temperature Sensor */
|
||||
ZB_HA_TEMPERATURE_SENSOR_DEVICE_ID = 0x0302,
|
||||
/* IAS */
|
||||
/*! IAS Control and Indicating Equipment */
|
||||
ZB_HA_IAS_CONTROL_INDICATING_EQUIPMENT_ID = 0x0400,
|
||||
/*! IAS Ancillary Control Equipment */
|
||||
ZB_HA_IAS_ANCILLARY_CONTROL_EQUIPMENT_ID = 0x0401,
|
||||
/*! IAS Zone */
|
||||
ZB_HA_IAS_ZONE_ID = 0x0402,
|
||||
/*! IAS Warning Device */
|
||||
ZB_HA_IAS_WARNING_DEVICE_ID = 0x0403,
|
||||
/*! Custom HA device for test */
|
||||
ZB_HA_TEST_DEVICE_ID = 0xfff0,
|
||||
/*! Custom Tunnel device (should declared in private profile) */
|
||||
ZB_HA_CUSTOM_TUNNEL_DEVICE_ID = 0xfff1,
|
||||
/*! Custom Attributes Device */
|
||||
ZB_HA_CUSTOM_ATTR_DEVICE_ID = 0xfff2
|
||||
};
|
||||
|
||||
|
||||
/** @cond DOXYGEN_INTERNAL_DOC */
|
||||
/* Define supported devices here */
|
||||
#ifdef ZB_ALL_DEVICE_SUPPORT
|
||||
|
||||
#define ZB_HA_DEFINE_DEVICE_ON_OFF_SWITCH
|
||||
#define ZB_HA_DEFINE_DEVICE_ON_OFF_OUTPUT
|
||||
#define ZB_HA_DEFINE_DEVICE_DOOR_LOCK
|
||||
#define ZB_HA_DEFINE_DEVICE_DOOR_LOCK_CONTROLLER
|
||||
#define ZB_HA_DEFINE_DEVICE_SIMPLE_SENSOR
|
||||
#define ZB_HA_DEFINE_DEVICE_COMBINED_INTERFACE
|
||||
#define ZB_HA_DEFINE_DEVICE_SCENE_SELECTOR
|
||||
#define ZB_HA_DEFINE_DEVICE_CONFIGURATION_TOOL
|
||||
#define ZB_HA_DEFINE_DEVICE_MAINS_POWER_OUTLET
|
||||
#define ZB_HA_DEFINE_DEVICE_RANGE_EXTENDER
|
||||
#define ZB_HA_DEFINE_DEVICE_LEVEL_CONTROL_SWITCH
|
||||
#define ZB_HA_DEFINE_DEVICE_LEVEL_CONTROLLABLE_OUTPUT
|
||||
#define ZB_HA_DEFINE_DEVICE_WINDOW_COVERING
|
||||
#define ZB_HA_DEFINE_DEVICE_WINDOW_COVERING_CONTROLLER
|
||||
#define ZB_HA_DEFINE_DEVICE_SHADE
|
||||
#define ZB_HA_DEFINE_DEVICE_SHADE_CONTROLLER
|
||||
/* HVAC */
|
||||
#define ZB_HA_DEFINE_DEVICE_TEMPERATURE_SENSOR
|
||||
/* IAS*/
|
||||
#define ZB_HA_DEFINE_DEVICE_IAS_CONTROL_INDICATING_EQUIPMENT
|
||||
#define ZB_HA_DEFINE_DEVICE_IAS_ANCILLARY_CONTROL_EQUIPMENT
|
||||
#define ZB_HA_DEFINE_DEVICE_IAS_ZONE
|
||||
#define ZB_HA_DEFINE_DEVICE_IAS_WARNING_DEVICE
|
||||
|
||||
#define ZB_HA_DEFINE_DEVICE_CUSTOM_ATTR
|
||||
#define ZB_HA_DEFINE_DEVICE_DIMMABLE_LIGHT
|
||||
#define ZB_HA_DEFINE_DEVICE_DIMMER_SWITCH
|
||||
|
||||
#define ZB_HA_DEFINE_DEVICE_SMART_PLUG
|
||||
#define ZB_HA_DEFINE_DEVICE_THERMOSTAT
|
||||
|
||||
#define ZB_HA_DEFINE_DEVICE_TEST_DEVICE
|
||||
|
||||
/************** Custom Devices ******************/
|
||||
/* Define device support for custom security sensor */
|
||||
#define ZB_HA_DEFINE_DEVICE_CUSTOM_SECURITY_SENSOR
|
||||
/* this device definition - for coordinator (CIE) role, need for test
|
||||
* only - remove it in release build */
|
||||
#define ZB_HA_DEFINE_DEVICE_CUSTOM_SECURITY_CONTROL
|
||||
/* Define device support for Low Cost Gateway */
|
||||
#define ZB_HA_DEFINE_DEVICE_GATEWAY
|
||||
#define ZB_HA_DEFINE_DEVICE_CUSTOM_DIMMABLE_LIGHT
|
||||
/* Linky */
|
||||
#define ZB_HA_DEFINE_DEVICE_ERL_INTERFACE_DEVICE
|
||||
#define ZB_HA_DEFINE_DEVICE_ERL_GW
|
||||
|
||||
#ifdef ZB_ENABLE_CUSTOM_CLUSTERS
|
||||
#define ZB_PROFILE_DEFINE_DEVICE_CUSTOM_TUNNEL
|
||||
#endif
|
||||
|
||||
#ifdef ZB_ENABLE_SE_CLUSTERS
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_EVENTS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_CALENDAR 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_PREPAYMENT 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_DEVICE_MANAGEMENT 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_MDU_PAIRING 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ENERGY_MANAGEMENT 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_TIME 1
|
||||
#endif
|
||||
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_DRLC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_PRICE 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_TUNNELING 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_MESSAGING 1
|
||||
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_METER_IDENTIFICATION 1
|
||||
|
||||
/* Define optional common clusters. These clusters are common to all devices
|
||||
* and expected to be part of the build if ZB_ALL_DEVICE_SUPPORT is declared.
|
||||
* For example, application 'multi_ep' expects "Alarms" cluster to be present.
|
||||
*
|
||||
* Clusters with reporting capability are omitted since common part implies
|
||||
* client role which receives attribute reports. It is not necessary to enable
|
||||
* ZB_ZCL_SUPPORT_* during stack build. It will be enough for applications to
|
||||
* define corresponding ZB_ZCL_SUPPORT_* during application's build because
|
||||
* only headers should be included, no *.c files.
|
||||
*
|
||||
* Also, common manufacturer-specific clusters are ignored here.
|
||||
*/
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_POWER_CONFIG 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ALARMS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ELECTRICAL_MEASUREMENT 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_POLL_CONTROL 1
|
||||
|
||||
/* Define clusters which are not used by any device but expected to be
|
||||
* supported in ZBOSS stack when ZB_ALL_DEVICE_SUPPORT is defined.
|
||||
*
|
||||
* The main intention of ZB_ALL_DEVICE_SUPPORT define is to compile in ZBOSS
|
||||
* stack as much HA-related functionality as possible so declaring support for
|
||||
* clusters not being used by any device but used by some sample seems to be
|
||||
* fine.
|
||||
*/
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_DEHUMIDIFICATION_CONTROL 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_OCCUPANCY_SENSING 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ANALOG_INPUT 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ANALOG_VALUE 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_MULTISTATE_VALUE 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_DEVICE_TEMP_CONFIG 1
|
||||
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_CARBON_DIOXIDE_MEASUREMENT 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_PM2_5_MEASUREMENT 1
|
||||
|
||||
#endif /* ZB_ALL_DEVICE_SUPPORT */
|
||||
|
||||
//#define ZB_HA_DEFINE_DEVICE_SMART_PLUG
|
||||
|
||||
/*********************** HA devices to cluster configuration **********************/
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_ON_OFF_SWITCH
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF_SWITCH_CONFIG 1
|
||||
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_ON_OFF_OUTPUT */
|
||||
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_ON_OFF_OUTPUT
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_ON_OFF_OUTPUT */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_BASIC_LIGHT
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_BASIC_LIGHT */
|
||||
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_DOOR_LOCK
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_DOOR_LOCK 1
|
||||
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_DOOR_LOCK */
|
||||
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_DOOR_LOCK_CONTROLLER
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_DOOR_LOCK 1
|
||||
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_DOOR_LOCK_CONTROLLER */
|
||||
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_SIMPLE_SENSOR
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BINARY_INPUT 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_SIMPLE_SENSOR */
|
||||
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_COMBINED_INTERFACE
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF_SWITCH_CONFIG 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_COMBINED_INTERFACE */
|
||||
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_SCENE_SELECTOR
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_SCENE_SELECTOR */
|
||||
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_CONFIGURATION_TOOL
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_CONFIGURATION_TOOL */
|
||||
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_MAINS_POWER_OUTLET
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_MAINS_POWER_OUTLET */
|
||||
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_RANGE_EXTENDER
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_RANGE_EXTENDER */
|
||||
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_LEVEL_CONTROL_SWITCH
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_LEVEL_CONTROL 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_LEVEL_CONTROL_SWITCH */
|
||||
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_LEVEL_CONTROLLABLE_OUTPUT
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_LEVEL_CONTROL 1
|
||||
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_LEVEL_CONTROLLABLE_OUTPUT */
|
||||
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_WINDOW_COVERING
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_WINDOW_COVERING 1
|
||||
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_WINDOW_COVERING */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_CUSTOM_ATTR
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_WINDOW_COVERING 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_CUSTOM_ATTR 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_CUSTOM_ATTR */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_DIMMABLE_LIGHT
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_LEVEL_CONTROL 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_DIMMABLE_LIGHT */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_DIMMER_SWITCH
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_LEVEL_CONTROL 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_DIMMER_SWITCH */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_WINDOW_COVERING_CONTROLLER
|
||||
#define ZB_HA_DEFINE_DEVICE_WINDOW_COVERING_CONTROLLER
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_WINDOW_COVERING 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_WINDOW_COVERING_CONTROLLER */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_SHADE
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SHADE_CONFIG 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_LEVEL_CONTROL 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_SHADE */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_SHADE_CONTROLLER
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_LEVEL_CONTROL 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_SHADE_CONTROLLER */
|
||||
|
||||
/* HVAC */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_TEMPERATURE_SENSOR
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_TEMP_MEASUREMENT 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_TEMPERATURE_SENSOR */
|
||||
|
||||
/* IAS*/
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_IAS_CONTROL_INDICATING_EQUIPMENT
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IAS_ACE 1
|
||||
//#define ZB_ZCL_SUPPORT_CLUSTER_IAS_WD 1
|
||||
//#define ZB_ZCL_SUPPORT_CLUSTER_IAS_ZONE 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_IAS_CONTROL_INDICATING_EQUIPMENT */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_IAS_ANCILLARY_CONTROL_EQUIPMENT
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IAS_ZONE 1
|
||||
//#define ZB_ZCL_SUPPORT_CLUSTER_IAS_ACE 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_IAS_ANCILLARY_CONTROL_EQUIPMENT */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_IAS_ZONE
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IAS_ZONE 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_IAS_ZONE */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_IAS_WARNING_DEVICE
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IAS_WD 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IAS_ZONE 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_IAS_WARNING_DEVICE */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_CUSTOM_SECURITY_SENSOR
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IAS_ZONE 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_TEMP_MEASUREMENT 1
|
||||
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_POWER_CONFIG 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_POLL_CONTROL 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_DIAGNOSTICS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_OTA_UPGRADE 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ILLUMINANCE_MEASUREMENT 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_REL_HUMIDITY_MEASUREMENT 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_CUSTOM_SECURITY_SENSOR */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_CUSTOM_SECURITY_CONTROL
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IAS_ZONE 1
|
||||
//#define ZB_ZCL_SUPPORT_CLUSTER_POLL_CONTROL 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_CUSTOM_SECURITY_CONTROL */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_THERMOSTAT
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_THERMOSTAT 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_THERMOSTAT_UI_CONFIG 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_FAN_CONTROL 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ELECTRICAL_MEASUREMENT 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_THERMOSTAT */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_GATEWAY
|
||||
/*
|
||||
* Gateway supports many clusters, but in the client role and in general it's
|
||||
* not necessary to define their support with ZB_ZCL_SUPPORT_CLUSTER_xxx.
|
||||
* Such defines are necessary only for clusters in the server role.
|
||||
* The only exception is poll control cluster for now.
|
||||
*/
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_POLL_CONTROL 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IAS_ZONE 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_TIME 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_DIAGNOSTICS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_OTA_UPGRADE 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS_CLIENT 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_EN50523_APPLIANCE_EVENTS_AND_ALERTS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_POWER_CONFIG 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_REL_HUMIDITY_MEASUREMENT 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_TEMP_MEASUREMENT 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_PRESSURE_MEASUREMENT 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_METERING 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IAS_ACE 1
|
||||
/*
|
||||
* Gateway uses EZ mode only for Gemtek smartplug, which is
|
||||
* currently excluded from build.
|
||||
*/
|
||||
/* #define ZB_HA_SUPPORT_EZ_MODE 1 */
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_GATEWAY */
|
||||
|
||||
/* Custom device should not be declared as a part of HA, keep it
|
||||
* here foe simplicity */
|
||||
#ifdef ZB_PROFILE_DEFINE_DEVICE_CUSTOM_TUNNEL
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_TUNNEL 1
|
||||
#endif
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_SMART_PLUG
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_METERING 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
/* FIXME: Are Scenes really needed? */
|
||||
/* #define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1 */
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_DIAGNOSTICS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_OTA_UPGRADE 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_SMART_PLUG */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_IR_BLASTER
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_POWER_CONFIG 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_OTA_UPGRADE 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IR_BLASTER 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_IR_BLASTER */
|
||||
|
||||
#ifdef ZB_HA_DEFINE_DEVICE_CUSTOM_DIMMABLE_LIGHT
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_SCENES 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_GROUPS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ON_OFF 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_LEVEL_CONTROL 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_COLOR_CONTROL 1
|
||||
#endif /* ZB_HA_DEFINE_DEVICE_CUSTOM_DIMMABLE_LIGHT */
|
||||
|
||||
#if defined ZB_HA_DEFINE_DEVICE_ERL_INTERFACE_DEVICE || defined ZB_HA_DEFINE_DEVICE_ERL_GW
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_BASIC 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_TIME 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_METER_IDENTIFICATION 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_ELECTRICAL_MEASUREMENT 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_DIAGNOSTICS 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_METERING 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_MESSAGING 1
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_DAILY_SCHEDULE 1
|
||||
#endif /* defined ZB_HA_DEFINE_DEVICE_ERL_INTERFACE_DEVICE || defined ZB_HA_DEFINE_DEVICE_ERL_GW */
|
||||
|
||||
/* BDB uses identify */
|
||||
#if defined ZB_BDB_MODE && !defined ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY
|
||||
#define ZB_ZCL_SUPPORT_CLUSTER_IDENTIFY 1
|
||||
#endif
|
||||
|
||||
/** @endcond */
|
||||
|
||||
/** @} */ /* ha_api */
|
||||
|
||||
/** @endcond */ /* DOXYGEN_HA_SECTION */
|
||||
|
||||
#ifdef ZB_ZCL_SUPPORT_CLUSTER_DIAGNOSTICS
|
||||
/* need to define it here because that .h file can be included after zb_config.h */
|
||||
#ifndef ZB_MAC_DIAGNOSTICS
|
||||
#define ZB_MAC_DIAGNOSTICS
|
||||
#endif
|
||||
#ifndef ZDO_DIAGNOSTICS
|
||||
#define ZDO_DIAGNOSTICS
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* ZB_ENABLE_HA */
|
||||
|
||||
#if defined ZB_ZCL_SUPPORT_CLUSTER_DIAGNOSTICS && ! defined ZDO_DIAGNOSTICS
|
||||
#error Define ZDO_DIAGNOSTICS in vendor file if you need Diagnostic cluster!
|
||||
#endif
|
||||
|
||||
#endif /* ZB_HA_DEVICE_CONFIG_H */
|
||||
Reference in New Issue
Block a user