ESPHome 2026.1.4
Loading...
Searching...
No Matches
zigbee_sensor_zephyr.h
Go to the documentation of this file.
1#pragma once
2
4#if defined(USE_ZIGBEE) && defined(USE_NRF52) && defined(USE_SENSOR)
7extern "C" {
8#include <zboss_api.h>
9#include <zboss_api_addons.h>
10}
11
12enum {
18};
19
20#define ZB_ZCL_ANALOG_INPUT_CLUSTER_REVISION_DEFAULT ((zb_uint16_t) 0x0001u)
21
22#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ANALOG_INPUT_DESCRIPTION_ID(data_ptr) \
23 { \
24 ZB_ZCL_ATTR_ANALOG_INPUT_DESCRIPTION_ID, ZB_ZCL_ATTR_TYPE_CHAR_STRING, ZB_ZCL_ATTR_ACCESS_READ_ONLY, \
25 (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), (void *) (data_ptr) \
26 }
27
28#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ANALOG_INPUT_OUT_OF_SERVICE_ID(data_ptr) \
29 { \
30 ZB_ZCL_ATTR_ANALOG_INPUT_OUT_OF_SERVICE_ID, ZB_ZCL_ATTR_TYPE_BOOL, \
31 ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_WRITE_OPTIONAL, (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \
32 (void *) (data_ptr) \
33 }
34
35#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ANALOG_INPUT_PRESENT_VALUE_ID(data_ptr) \
36 { \
37 ZB_ZCL_ATTR_ANALOG_INPUT_PRESENT_VALUE_ID, ZB_ZCL_ATTR_TYPE_SINGLE, \
38 ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_WRITE_OPTIONAL | ZB_ZCL_ATTR_ACCESS_REPORTING, \
39 (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), (void *) (data_ptr) \
40 }
41
42#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ANALOG_INPUT_STATUS_FLAG_ID(data_ptr) \
43 { \
44 ZB_ZCL_ATTR_ANALOG_INPUT_STATUS_FLAG_ID, ZB_ZCL_ATTR_TYPE_8BITMAP, \
45 ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \
46 (void *) (data_ptr) \
47 }
48
49#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ANALOG_INPUT_ENGINEERING_UNITS_ID(data_ptr) \
50 { \
51 ZB_ZCL_ATTR_ANALOG_INPUT_ENGINEERING_UNITS_ID, ZB_ZCL_ATTR_TYPE_16BIT_ENUM, ZB_ZCL_ATTR_ACCESS_READ_ONLY, \
52 (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), (void *) (data_ptr) \
53 }
54
55#define ESPHOME_ZB_ZCL_DECLARE_ANALOG_INPUT_ATTRIB_LIST(attr_list, out_of_service, present_value, status_flag, \
56 engineering_units, description) \
57 ZB_ZCL_START_DECLARE_ATTRIB_LIST_CLUSTER_REVISION(attr_list, ZB_ZCL_ANALOG_INPUT) \
58 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_ANALOG_INPUT_OUT_OF_SERVICE_ID, (out_of_service)) \
59 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_ANALOG_INPUT_PRESENT_VALUE_ID, (present_value)) \
60 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_ANALOG_INPUT_STATUS_FLAG_ID, (status_flag)) \
61 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_ANALOG_INPUT_ENGINEERING_UNITS_ID, (engineering_units)) \
62 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_ANALOG_INPUT_DESCRIPTION_ID, (description)) \
63 ZB_ZCL_FINISH_DECLARE_ATTRIB_LIST
64
67#define ZB_ZCL_CLUSTER_ID_ANALOG_INPUT_SERVER_ROLE_INIT zb_zcl_analog_input_init_server
68#define ZB_ZCL_CLUSTER_ID_ANALOG_INPUT_CLIENT_ROLE_INIT zb_zcl_analog_input_init_client
69
70namespace esphome::zigbee {
71
72class ZigbeeSensor : public ZigbeeEntity, public Component {
73 public:
74 explicit ZigbeeSensor(sensor::Sensor *sensor);
75 void set_cluster_attributes(AnalogAttrs &cluster_attributes) { this->cluster_attributes_ = &cluster_attributes; }
76
77 void setup() override;
78 void dump_config() override;
79
80 protected:
83};
84
85} // namespace esphome::zigbee
86#endif
Base-class for all sensors.
Definition sensor.h:42
void set_cluster_attributes(AnalogAttrs &cluster_attributes)
ZigbeeSensor(sensor::Sensor *sensor)
void zb_zcl_analog_input_init_client()
@ ZB_ZCL_ATTR_ANALOG_INPUT_PRESENT_VALUE_ID
@ ZB_ZCL_ATTR_ANALOG_INPUT_OUT_OF_SERVICE_ID
@ ZB_ZCL_ATTR_ANALOG_INPUT_DESCRIPTION_ID
@ ZB_ZCL_ATTR_ANALOG_INPUT_STATUS_FLAG_ID
@ ZB_ZCL_ATTR_ANALOG_INPUT_ENGINEERING_UNITS_ID
void zb_zcl_analog_input_init_server()