28 ezb_af_ep_desc_t ep_desc;
30 case EZB_ZHA_MAINS_POWER_OUTLET_DEVICE_ID: {
31 ezb_zha_mains_power_outlet_config_t config = EZB_ZHA_MAINS_POWER_OUTLET_CONFIG();
32 config.basic_cfg.power_source = power_source;
33 ep_desc = ezb_zha_create_mains_power_outlet(ep_id, &config);
36 case EZB_ZHA_LIGHT_SENSOR_DEVICE_ID: {
37 ezb_zha_light_sensor_config_t config = EZB_ZHA_LIGHT_SENSOR_CONFIG();
38 config.basic_cfg.power_source = power_source;
39 ep_desc = ezb_zha_create_light_sensor(ep_id, &config);
42 case EZB_ZHA_TEMPERATURE_SENSOR_DEVICE_ID: {
43 ezb_zha_temperature_sensor_config_t config = EZB_ZHA_TEMPERATURE_SENSOR_CONFIG();
44 config.basic_cfg.power_source = power_source;
45 ep_desc = ezb_zha_create_temperature_sensor(ep_id, &config);
50 ezb_af_ep_config_t config = {
52 .app_profile_id = EZB_AF_HA_PROFILE_ID,
53 .app_device_id = device_id,
54 .app_device_version = 0,
56 ep_desc = ezb_af_create_endpoint_desc(&config);
65 case EZB_ZCL_CLUSTER_ID_BASIC:
66 return ezb_zcl_basic_create_cluster_desc(NULL, role_mask);
67 case EZB_ZCL_CLUSTER_ID_IDENTIFY:
68 return ezb_zcl_identify_create_cluster_desc(NULL, role_mask);
69 case EZB_ZCL_CLUSTER_ID_ON_OFF:
70 return ezb_zcl_on_off_create_cluster_desc(NULL, role_mask);
71 case EZB_ZCL_CLUSTER_ID_TIME:
72 return ezb_zcl_time_create_cluster_desc(NULL, role_mask);
73 case EZB_ZCL_CLUSTER_ID_ANALOG_INPUT:
74 return ezb_zcl_analog_input_create_cluster_desc(NULL, role_mask);
75 case EZB_ZCL_CLUSTER_ID_ANALOG_OUTPUT:
76 return ezb_zcl_analog_output_create_cluster_desc(NULL, role_mask);
77 case EZB_ZCL_CLUSTER_ID_BINARY_INPUT:
78 return ezb_zcl_binary_input_create_cluster_desc(NULL, role_mask);
79 case EZB_ZCL_CLUSTER_ID_BINARY_OUTPUT:
80 return ezb_zcl_binary_output_create_cluster_desc(NULL, role_mask);
81 case EZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT:
82 return ezb_zcl_illuminance_measurement_create_cluster_desc(NULL, role_mask);
83 case EZB_ZCL_CLUSTER_ID_TEMPERATURE_MEASUREMENT:
84 return ezb_zcl_temperature_measurement_create_cluster_desc(NULL, role_mask);
85 case EZB_ZCL_CLUSTER_ID_PRESSURE_MEASUREMENT:
86 return ezb_zcl_pressure_measurement_create_cluster_desc(NULL, role_mask);
87 case EZB_ZCL_CLUSTER_ID_FLOW_MEASUREMENT:
88 return ezb_zcl_flow_measurement_create_cluster_desc(NULL, role_mask);
89 case EZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT:
90 return ezb_zcl_rel_humidity_measurement_create_cluster_desc(NULL, role_mask);
91 case EZB_ZCL_CLUSTER_ID_OCCUPANCY_SENSING:
92 return ezb_zcl_occupancy_sensing_create_cluster_desc(NULL, role_mask);
93 case EZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT:
94 return ezb_zcl_carbon_dioxide_measurement_create_cluster_desc(NULL, role_mask);
95 case EZB_ZCL_CLUSTER_ID_PM2_5_MEASUREMENT:
96 return ezb_zcl_pm2_5_measurement_create_cluster_desc(NULL, role_mask);
98 ezb_zcl_custom_cluster_config_t config = {0};
99 config.cluster_id = cluster_id;
100 return ezb_zcl_custom_create_cluster_desc(&config, role_mask);
107 switch (cluster_id) {
108 case EZB_ZCL_CLUSTER_ID_BASIC:
109 return ezb_zcl_basic_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
110 case EZB_ZCL_CLUSTER_ID_IDENTIFY:
111 return ezb_zcl_identify_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
112 case EZB_ZCL_CLUSTER_ID_ON_OFF:
113 return ezb_zcl_on_off_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
114 case EZB_ZCL_CLUSTER_ID_TIME:
115 return ezb_zcl_time_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
116 case EZB_ZCL_CLUSTER_ID_ANALOG_INPUT:
117 return ezb_zcl_analog_input_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
118 case EZB_ZCL_CLUSTER_ID_ANALOG_OUTPUT:
119 return ezb_zcl_analog_output_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
120 case EZB_ZCL_CLUSTER_ID_BINARY_INPUT:
121 return ezb_zcl_binary_input_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
122 case EZB_ZCL_CLUSTER_ID_BINARY_OUTPUT:
123 return ezb_zcl_binary_output_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
124 case EZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT:
125 return ezb_zcl_illuminance_measurement_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
126 case EZB_ZCL_CLUSTER_ID_TEMPERATURE_MEASUREMENT:
127 return ezb_zcl_temperature_measurement_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
128 case EZB_ZCL_CLUSTER_ID_PRESSURE_MEASUREMENT:
129 return ezb_zcl_pressure_measurement_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
130 case EZB_ZCL_CLUSTER_ID_FLOW_MEASUREMENT:
131 return ezb_zcl_flow_measurement_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
132 case EZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT:
133 return ezb_zcl_rel_humidity_measurement_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
134 case EZB_ZCL_CLUSTER_ID_OCCUPANCY_SENSING:
135 return ezb_zcl_occupancy_sensing_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
136 case EZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT:
137 return ezb_zcl_carbon_dioxide_measurement_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
138 case EZB_ZCL_CLUSTER_ID_PM2_5_MEASUREMENT:
139 return ezb_zcl_pm2_5_measurement_cluster_desc_add_attr(cluster_desc, attr_id, value_p);
141 return EZB_ERR_NOT_FOUND;