ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
zigbee_number_zephyr.h
Go to the documentation of this file.
1#pragma once
2
4#if defined(USE_ZIGBEE) && defined(USE_NRF52) && defined(USE_NUMBER)
8extern "C" {
9#include <zboss_api.h>
10#include <zboss_api_addons.h>
11}
12
13enum {
22};
23
24#define ZB_ZCL_ANALOG_OUTPUT_CLUSTER_REVISION_DEFAULT ((zb_uint16_t) 0x0001u)
25
26#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ANALOG_OUTPUT_DESCRIPTION_ID(data_ptr) \
27 { \
28 ZB_ZCL_ATTR_ANALOG_OUTPUT_DESCRIPTION_ID, ZB_ZCL_ATTR_TYPE_CHAR_STRING, ZB_ZCL_ATTR_ACCESS_READ_ONLY, \
29 (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), (void *) (data_ptr) \
30 }
31
32#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ANALOG_OUTPUT_OUT_OF_SERVICE_ID(data_ptr) \
33 { \
34 ZB_ZCL_ATTR_ANALOG_OUTPUT_OUT_OF_SERVICE_ID, ZB_ZCL_ATTR_TYPE_BOOL, \
35 ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_WRITE_OPTIONAL, (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \
36 (void *) (data_ptr) \
37 }
38// PresentValue
39#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ANALOG_OUTPUT_PRESENT_VALUE_ID(data_ptr) \
40 { \
41 ZB_ZCL_ATTR_ANALOG_OUTPUT_PRESENT_VALUE_ID, ZB_ZCL_ATTR_TYPE_SINGLE, \
42 ZB_ZCL_ATTR_ACCESS_READ_WRITE | ZB_ZCL_ATTR_ACCESS_REPORTING, (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \
43 (void *) (data_ptr) \
44 }
45// MaxPresentValue
46#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ANALOG_OUTPUT_MAX_PRESENT_VALUE_ID(data_ptr) \
47 { \
48 ZB_ZCL_ATTR_ANALOG_OUTPUT_MAX_PRESENT_VALUE_ID, ZB_ZCL_ATTR_TYPE_SINGLE, \
49 ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_WRITE_OPTIONAL, (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \
50 (void *) (data_ptr) \
51 }
52// MinPresentValue
53#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ANALOG_OUTPUT_MIN_PRESENT_VALUE_ID(data_ptr) \
54 { \
55 ZB_ZCL_ATTR_ANALOG_OUTPUT_MIN_PRESENT_VALUE_ID, ZB_ZCL_ATTR_TYPE_SINGLE, \
56 ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_WRITE_OPTIONAL, (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \
57 (void *) (data_ptr) \
58 }
59// Resolution
60#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ANALOG_OUTPUT_RESOLUTION_ID(data_ptr) \
61 { \
62 ZB_ZCL_ATTR_ANALOG_OUTPUT_RESOLUTION_ID, ZB_ZCL_ATTR_TYPE_SINGLE, \
63 ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_WRITE_OPTIONAL, (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \
64 (void *) (data_ptr) \
65 }
66
67#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ANALOG_OUTPUT_STATUS_FLAG_ID(data_ptr) \
68 { \
69 ZB_ZCL_ATTR_ANALOG_OUTPUT_STATUS_FLAG_ID, ZB_ZCL_ATTR_TYPE_8BITMAP, \
70 ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \
71 (void *) (data_ptr) \
72 }
73
74#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_ANALOG_OUTPUT_ENGINEERING_UNITS_ID(data_ptr) \
75 { \
76 ZB_ZCL_ATTR_ANALOG_OUTPUT_ENGINEERING_UNITS_ID, ZB_ZCL_ATTR_TYPE_16BIT_ENUM, ZB_ZCL_ATTR_ACCESS_READ_ONLY, \
77 (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), (void *) (data_ptr) \
78 }
79
80#define ESPHOME_ZB_ZCL_DECLARE_ANALOG_OUTPUT_ATTRIB_LIST(attr_list, out_of_service, present_value, status_flag, \
81 max_present_value, min_present_value, resolution, \
82 engineering_units, description) \
83 ZB_ZCL_START_DECLARE_ATTRIB_LIST_CLUSTER_REVISION(attr_list, ZB_ZCL_ANALOG_OUTPUT) \
84 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_ANALOG_OUTPUT_OUT_OF_SERVICE_ID, (out_of_service)) \
85 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_ANALOG_OUTPUT_PRESENT_VALUE_ID, (present_value)) \
86 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_ANALOG_OUTPUT_STATUS_FLAG_ID, (status_flag)) \
87 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_ANALOG_OUTPUT_MAX_PRESENT_VALUE_ID, (max_present_value)) \
88 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_ANALOG_OUTPUT_MIN_PRESENT_VALUE_ID, (min_present_value)) \
89 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_ANALOG_OUTPUT_RESOLUTION_ID, (resolution)) \
90 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_ANALOG_OUTPUT_ENGINEERING_UNITS_ID, (engineering_units)) \
91 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_ANALOG_OUTPUT_DESCRIPTION_ID, (description)) \
92 ZB_ZCL_FINISH_DECLARE_ATTRIB_LIST
93
96#define ZB_ZCL_CLUSTER_ID_ANALOG_OUTPUT_SERVER_ROLE_INIT zb_zcl_analog_output_init_server
97#define ZB_ZCL_CLUSTER_ID_ANALOG_OUTPUT_CLIENT_ROLE_INIT zb_zcl_analog_output_init_client
98
99namespace esphome::zigbee {
100
101class ZigbeeNumber : public ZigbeeEntity, public Component {
102 public:
104 void set_cluster_attributes(AnalogAttrsOutput &cluster_attributes) {
105 this->cluster_attributes_ = &cluster_attributes;
106 }
107
108 void setup() override;
109 void dump_config() override;
110
111 protected:
114 void zcl_device_cb_(zb_bufid_t bufid);
115};
116
117} // namespace esphome::zigbee
118#endif
Base-class for all numbers.
Definition number.h:29
void zcl_device_cb_(zb_bufid_t bufid)
void set_cluster_attributes(AnalogAttrsOutput &cluster_attributes)
@ ZB_ZCL_ATTR_ANALOG_OUTPUT_DESCRIPTION_ID
@ ZB_ZCL_ATTR_ANALOG_OUTPUT_ENGINEERING_UNITS_ID
@ ZB_ZCL_ATTR_ANALOG_OUTPUT_MIN_PRESENT_VALUE_ID
@ ZB_ZCL_ATTR_ANALOG_OUTPUT_PRESENT_VALUE_ID
@ ZB_ZCL_ATTR_ANALOG_OUTPUT_OUT_OF_SERVICE_ID
@ ZB_ZCL_ATTR_ANALOG_OUTPUT_RESOLUTION_ID
@ ZB_ZCL_ATTR_ANALOG_OUTPUT_MAX_PRESENT_VALUE_ID
@ ZB_ZCL_ATTR_ANALOG_OUTPUT_STATUS_FLAG_ID
void zb_zcl_analog_output_init_server()
void zb_zcl_analog_output_init_client()