ESPHome 2026.1.4
Loading...
Searching...
No Matches
zigbee_switch_zephyr.h
Go to the documentation of this file.
1#pragma once
2
4#if defined(USE_ZIGBEE) && defined(USE_NRF52) && defined(USE_SWITCH)
7extern "C" {
8#include <zboss_api.h>
9#include <zboss_api_addons.h>
10}
11
12#define ZB_ZCL_BINARY_OUTPUT_CLUSTER_REVISION_DEFAULT ((zb_uint16_t) 0x0001u)
13
14// NOLINTNEXTLINE(readability-identifier-naming)
21
22#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BINARY_OUTPUT_OUT_OF_SERVICE_ID(data_ptr) \
23 { \
24 ZB_ZCL_ATTR_BINARY_OUTPUT_OUT_OF_SERVICE_ID, ZB_ZCL_ATTR_TYPE_BOOL, \
25 ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_WRITE_OPTIONAL, (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \
26 (void *) (data_ptr) \
27 }
28
29#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BINARY_OUTPUT_PRESENT_VALUE_ID(data_ptr) \
30 { \
31 ZB_ZCL_ATTR_BINARY_OUTPUT_PRESENT_VALUE_ID, ZB_ZCL_ATTR_TYPE_BOOL, \
32 ZB_ZCL_ATTR_ACCESS_READ_WRITE | ZB_ZCL_ATTR_ACCESS_REPORTING, (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \
33 (void *) (data_ptr) \
34 }
35
36#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BINARY_OUTPUT_STATUS_FLAG_ID(data_ptr) \
37 { \
38 ZB_ZCL_ATTR_BINARY_OUTPUT_STATUS_FLAG_ID, ZB_ZCL_ATTR_TYPE_8BITMAP, \
39 ZB_ZCL_ATTR_ACCESS_READ_ONLY | ZB_ZCL_ATTR_ACCESS_REPORTING, (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), \
40 (void *) (data_ptr) \
41 }
42
43#define ZB_SET_ATTR_DESCR_WITH_ZB_ZCL_ATTR_BINARY_OUTPUT_DESCRIPTION_ID(data_ptr) \
44 { \
45 ZB_ZCL_ATTR_BINARY_OUTPUT_DESCRIPTION_ID, ZB_ZCL_ATTR_TYPE_CHAR_STRING, ZB_ZCL_ATTR_ACCESS_READ_ONLY, \
46 (ZB_ZCL_NON_MANUFACTURER_SPECIFIC), (void *) (data_ptr) \
47 }
48
49#define ESPHOME_ZB_ZCL_DECLARE_BINARY_OUTPUT_ATTRIB_LIST(attr_list, out_of_service, present_value, status_flag, \
50 description) \
51 ZB_ZCL_START_DECLARE_ATTRIB_LIST_CLUSTER_REVISION(attr_list, ZB_ZCL_BINARY_OUTPUT) \
52 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_BINARY_OUTPUT_OUT_OF_SERVICE_ID, (out_of_service)) \
53 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_BINARY_OUTPUT_PRESENT_VALUE_ID, (present_value)) \
54 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_BINARY_OUTPUT_STATUS_FLAG_ID, (status_flag)) \
55 ZB_ZCL_SET_ATTR_DESC(ZB_ZCL_ATTR_BINARY_OUTPUT_DESCRIPTION_ID, (description)) \
56 ZB_ZCL_FINISH_DECLARE_ATTRIB_LIST
57
60
61#define ZB_ZCL_CLUSTER_ID_BINARY_OUTPUT_SERVER_ROLE_INIT zb_zcl_binary_output_init_server
62#define ZB_ZCL_CLUSTER_ID_BINARY_OUTPUT_CLIENT_ROLE_INIT zb_zcl_binary_output_init_client
63
64namespace esphome::zigbee {
65
66class ZigbeeSwitch : public ZigbeeEntity, public Component {
67 public:
69 void set_cluster_attributes(BinaryAttrs &cluster_attributes) { this->cluster_attributes_ = &cluster_attributes; }
70
71 void setup() override;
72
73 void dump_config() override;
74
75 protected:
76 void zcl_device_cb_(zb_bufid_t bufid);
77
80};
81
82} // namespace esphome::zigbee
83#endif
Base class for all switches.
Definition switch.h:39
void set_cluster_attributes(BinaryAttrs &cluster_attributes)
void zcl_device_cb_(zb_bufid_t bufid)
void zb_zcl_binary_output_init_client()
void zb_zcl_binary_output_init_server()
zb_zcl_binary_output_attr_e
@ ZB_ZCL_ATTR_BINARY_OUTPUT_OUT_OF_SERVICE_ID
@ ZB_ZCL_ATTR_BINARY_OUTPUT_STATUS_FLAG_ID
@ ZB_ZCL_ATTR_BINARY_OUTPUT_PRESENT_VALUE_ID
@ ZB_ZCL_ATTR_BINARY_OUTPUT_DESCRIPTION_ID