Added a humidity cluster
This commit is contained in:
parent
55808ed7e1
commit
d857448df8
2 changed files with 31 additions and 5 deletions
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
#include <dk_buttons_and_leds.h>
|
||||
#include <prstlib/adc.h>
|
||||
#include <prstlib/shtc3.h>
|
||||
#include <zb_nrf_platform.h>
|
||||
#include <zboss_api.h>
|
||||
#include <zboss_api_addons.h>
|
||||
|
|
@ -51,10 +52,12 @@ LOG_MODULE_REGISTER(app, LOG_LEVEL_INF);
|
|||
/* Main application customizable context.
|
||||
* Stores all settings and static values.
|
||||
*/
|
||||
|
||||
struct zb_device_ctx {
|
||||
zb_zcl_basic_attrs_ext_t basic_attr;
|
||||
zb_zcl_identify_attrs_t identify_attr;
|
||||
zb_zcl_temp_measurement_attrs_t temp_measure_attrs;
|
||||
prst_rel_humidity_attrs_t rel_humidity_attrs;
|
||||
};
|
||||
|
||||
/* Zigbee device application context storage. */
|
||||
|
|
@ -84,11 +87,18 @@ ZB_ZCL_DECLARE_TEMP_MEASUREMENT_ATTRIB_LIST(temp_measurement_attr_list,
|
|||
&dev_ctx.temp_measure_attrs.max_measure_value,
|
||||
&dev_ctx.temp_measure_attrs.tolerance);
|
||||
|
||||
ZB_ZCL_DECLARE_REL_HUMIDITY_MEASUREMENT_ATTRIB_LIST(
|
||||
rel_humi_attr_list,
|
||||
&dev_ctx.rel_humidity_attrs.rel_humidity,
|
||||
&dev_ctx.rel_humidity_attrs.min_val,
|
||||
&dev_ctx.rel_humidity_attrs.max_val);
|
||||
|
||||
ZB_DECLARE_RANGE_EXTENDER_CLUSTER_LIST(
|
||||
app_template_clusters,
|
||||
basic_attr_list,
|
||||
identify_attr_list,
|
||||
temp_measurement_attr_list);
|
||||
temp_measurement_attr_list,
|
||||
rel_humi_attr_list);
|
||||
|
||||
ZB_DECLARE_RANGE_EXTENDER_EP(
|
||||
app_template_ep,
|
||||
|
|
@ -120,6 +130,11 @@ static void app_clusters_attr_init(void) {
|
|||
ZB_ZCL_CLUSTER_SERVER_ROLE, ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID,
|
||||
(zb_uint8_t*)&temperature_value, ZB_FALSE);
|
||||
|
||||
static zb_int16_t rel_humidity = 3 * (UINT16_MAX / 4);
|
||||
zb_zcl_set_attr_val(APP_TEMPLATE_ENDPOINT, ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT,
|
||||
ZB_ZCL_CLUSTER_SERVER_ROLE, ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_VALUE_ID,
|
||||
(zb_uint8_t*)&rel_humidity, ZB_FALSE);
|
||||
|
||||
/* Identify cluster attributes data. */
|
||||
dev_ctx.identify_attr.identify_time =
|
||||
ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
/** @cond internals_doc */
|
||||
|
||||
/** Range extender IN (server) clusters number */
|
||||
#define ZB_RANGE_EXTENDER_IN_CLUSTER_NUM 3
|
||||
#define ZB_RANGE_EXTENDER_IN_CLUSTER_NUM 4
|
||||
|
||||
/** Range extender OUT (client) clusters number */
|
||||
#define ZB_RANGE_EXTENDER_OUT_CLUSTER_NUM 0
|
||||
|
|
@ -37,13 +37,16 @@
|
|||
|
||||
typedef struct {
|
||||
zb_uint16_t rel_humidity;
|
||||
} prst_rel_humidity_t;
|
||||
zb_uint16_t min_val;
|
||||
zb_uint16_t max_val;
|
||||
} prst_rel_humidity_attrs_t;
|
||||
|
||||
#define ZB_DECLARE_RANGE_EXTENDER_CLUSTER_LIST( \
|
||||
cluster_list_name, \
|
||||
basic_attr_list, \
|
||||
identify_attr_list, \
|
||||
temp_measurement_attr_list) \
|
||||
temp_measurement_attr_list, \
|
||||
rel_humidity_attr_list) \
|
||||
zb_zcl_cluster_desc_t cluster_list_name[] = \
|
||||
{ \
|
||||
ZB_ZCL_CLUSTER_DESC( \
|
||||
|
|
@ -63,6 +66,12 @@ typedef struct {
|
|||
ZB_ZCL_ARRAY_SIZE(temp_measurement_attr_list, zb_zcl_attr_t), \
|
||||
(temp_measurement_attr_list), \
|
||||
ZB_ZCL_CLUSTER_SERVER_ROLE, \
|
||||
ZB_ZCL_MANUF_CODE_INVALID), \
|
||||
ZB_ZCL_CLUSTER_DESC( \
|
||||
ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT, \
|
||||
ZB_ZCL_ARRAY_SIZE(rel_humidity_attr_list, zb_zcl_attr_t), \
|
||||
(rel_humi_attr_list), \
|
||||
ZB_ZCL_CLUSTER_SERVER_ROLE, \
|
||||
ZB_ZCL_MANUF_CODE_INVALID)}
|
||||
|
||||
/** @cond internals_doc */
|
||||
|
|
@ -87,7 +96,9 @@ typedef struct {
|
|||
in_clust_num, \
|
||||
out_clust_num, \
|
||||
{ZB_ZCL_CLUSTER_ID_BASIC, \
|
||||
ZB_ZCL_CLUSTER_ID_IDENTIFY, ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT}}
|
||||
ZB_ZCL_CLUSTER_ID_IDENTIFY, \
|
||||
ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT, \
|
||||
ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT}}
|
||||
|
||||
/** @endcond */ /* internals_doc */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue