1
1
#include " ZigbeeCarbonDioxideSensor.h"
2
2
#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED
3
3
4
- esp_zb_cluster_list_t *zigbee_carbon_dioxide_sensor_clusters_create (zigbee_carbon_dioxide_sensor_cfg_t *carbon_dioxide_sensor)
5
- {
6
- esp_zb_basic_cluster_cfg_t *basic_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->basic_cfg ) : NULL ;
7
- esp_zb_identify_cluster_cfg_t *identify_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->identify_cfg ) : NULL ;
8
- esp_zb_carbon_dioxide_measurement_cluster_cfg_t *carbon_dioxide_meas_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->carbon_dioxide_meas_cfg ) : NULL ;
9
- esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create ();
10
- esp_zb_cluster_list_add_basic_cluster (cluster_list, esp_zb_basic_cluster_create (basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
11
- esp_zb_cluster_list_add_identify_cluster (cluster_list, esp_zb_identify_cluster_create (identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
12
- esp_zb_cluster_list_add_carbon_dioxide_measurement_cluster (cluster_list, esp_zb_carbon_dioxide_measurement_cluster_create (carbon_dioxide_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
13
- esp_zb_cluster_list_add_identify_cluster (cluster_list, esp_zb_zcl_attr_list_create (ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
14
- return cluster_list;
4
+ esp_zb_cluster_list_t *zigbee_carbon_dioxide_sensor_clusters_create (zigbee_carbon_dioxide_sensor_cfg_t *carbon_dioxide_sensor) {
5
+ esp_zb_basic_cluster_cfg_t *basic_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->basic_cfg ) : NULL ;
6
+ esp_zb_identify_cluster_cfg_t *identify_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->identify_cfg ) : NULL ;
7
+ esp_zb_carbon_dioxide_measurement_cluster_cfg_t *carbon_dioxide_meas_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->carbon_dioxide_meas_cfg ) : NULL ;
8
+ esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create ();
9
+ esp_zb_cluster_list_add_basic_cluster (cluster_list, esp_zb_basic_cluster_create (basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
10
+ esp_zb_cluster_list_add_identify_cluster (cluster_list, esp_zb_identify_cluster_create (identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
11
+ esp_zb_cluster_list_add_carbon_dioxide_measurement_cluster (
12
+ cluster_list, esp_zb_carbon_dioxide_measurement_cluster_create (carbon_dioxide_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE
13
+ );
14
+ esp_zb_cluster_list_add_identify_cluster (cluster_list, esp_zb_zcl_attr_list_create (ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
15
+ return cluster_list;
15
16
}
16
17
17
18
ZigbeeCarbonDioxideSensor::ZigbeeCarbonDioxideSensor (uint8_t endpoint) : ZigbeeEP(endpoint) {
@@ -21,29 +22,27 @@ ZigbeeCarbonDioxideSensor::ZigbeeCarbonDioxideSensor(uint8_t endpoint) : ZigbeeE
21
22
zigbee_carbon_dioxide_sensor_cfg_t carbon_dioxide_sensor_cfg = ZIGBEE_DEFAULT_CARBON_DIOXIDE_SENSOR_CONFIG ();
22
23
_cluster_list = zigbee_carbon_dioxide_sensor_clusters_create (&carbon_dioxide_sensor_cfg);
23
24
24
- _ep_config = {
25
- .endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0
26
- };
25
+ _ep_config = {.endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0 };
27
26
}
28
27
29
28
void ZigbeeCarbonDioxideSensor::setMinMaxValue (float min, float max) {
30
- float zb_min = min/ 1000000 .0f ;
31
- float zb_max = max/ 1000000 .0f ;
29
+ float zb_min = min / 1000000 .0f ;
30
+ float zb_max = max / 1000000 .0f ;
32
31
esp_zb_attribute_list_t *carbon_dioxide_measure_cluster =
33
32
esp_zb_cluster_list_get_cluster (_cluster_list, ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
34
33
esp_zb_cluster_update_attr (carbon_dioxide_measure_cluster, ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MIN_MEASURED_VALUE_ID, (void *)&zb_min);
35
34
esp_zb_cluster_update_attr (carbon_dioxide_measure_cluster, ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MAX_MEASURED_VALUE_ID, (void *)&zb_max);
36
35
}
37
36
38
37
void ZigbeeCarbonDioxideSensor::setTolerance (float tolerance) {
39
- float zb_tolerance = tolerance/ 1000000 .0f ;
38
+ float zb_tolerance = tolerance / 1000000 .0f ;
40
39
esp_zb_attribute_list_t *carbon_dioxide_measure_cluster =
41
40
esp_zb_cluster_list_get_cluster (_cluster_list, ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
42
41
esp_zb_temperature_meas_cluster_add_attr (carbon_dioxide_measure_cluster, ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_TOLERANCE_ID, (void *)&zb_tolerance);
43
42
}
44
43
45
44
void ZigbeeCarbonDioxideSensor::setReporting (uint16_t min_interval, uint16_t max_interval, uint16_t delta) {
46
- if (delta > 0 ) {
45
+ if (delta > 0 ) {
47
46
log_e (" Delta reporting is currently not supported by the carbon dioxide sensor" );
48
47
}
49
48
// clang-format off
@@ -80,13 +79,14 @@ void ZigbeeCarbonDioxideSensor::setReporting(uint16_t min_interval, uint16_t max
80
79
}
81
80
82
81
void ZigbeeCarbonDioxideSensor::setCarbonDioxide (float carbon_dioxide) {
83
- float zb_carbon_dioxide = carbon_dioxide/ 1000000 .0f ;
82
+ float zb_carbon_dioxide = carbon_dioxide / 1000000 .0f ;
84
83
log_v (" Updating carbon dioxide sensor value..." );
85
84
/* Update carbon dioxide sensor measured value */
86
85
log_d (" Setting carbon dioxide to %0.1f" , carbon_dioxide);
87
86
esp_zb_lock_acquire (portMAX_DELAY);
88
87
esp_zb_zcl_set_attribute_val (
89
- _endpoint, ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MEASURED_VALUE_ID, &zb_carbon_dioxide, false
88
+ _endpoint, ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MEASURED_VALUE_ID,
89
+ &zb_carbon_dioxide, false
90
90
);
91
91
esp_zb_lock_release ();
92
92
}
0 commit comments