4
4
ZigbeeIlluminanceSensor::ZigbeeIlluminanceSensor (uint8_t endpoint) : ZigbeeEP(endpoint) {
5
5
_device_id = ESP_ZB_HA_LIGHT_SENSOR_DEVICE_ID;
6
6
7
- esp_zb_light_sensor_cfg_t light_sensor_cfg = ESP_ZB_DEFAULT_LIGHT_SENSOR_CONFIG ();
7
+ esp_zb_light_sensor_cfg_t light_sensor_cfg = ESP_ZB_DEFAULT_ILLUMINANCE_SENSOR_CONFIG ();
8
8
_cluster_list = esp_zb_light_sensor_clusters_create (&light_sensor_cfg);
9
9
10
10
_ep_config = {
11
11
.endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_LIGHT_SENSOR_DEVICE_ID, .app_device_version = 0
12
12
};
13
13
}
14
14
15
- static int16_t zb_int_to_s16 (int value) {
16
- return (int16_t ) value;
17
- }
18
-
19
- void ZigbeeIlluminanceSensor::setMinMaxValue (int min, int max) {
20
- int16_t zb_min = zb_int_to_s16 (min);
21
- int16_t zb_max = zb_int_to_s16 (max);
15
+ void ZigbeeIlluminanceSensor::setMinMaxValue (uint16_t min, uint16_t max) {
22
16
esp_zb_attribute_list_t *light_measure_cluster =
23
17
esp_zb_cluster_list_get_cluster (_cluster_list, ESP_ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
24
- esp_zb_cluster_update_attr (light_measure_cluster, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MIN_MEASURED_VALUE_ID, (void *)&zb_min );
25
- esp_zb_cluster_update_attr (light_measure_cluster, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MAX_MEASURED_VALUE_ID, (void *)&zb_max );
18
+ esp_zb_cluster_update_attr (light_measure_cluster, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MIN_MEASURED_VALUE_ID, (void *)&min );
19
+ esp_zb_cluster_update_attr (light_measure_cluster, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MAX_MEASURED_VALUE_ID, (void *)&max );
26
20
}
27
21
28
- void ZigbeeIlluminanceSensor::setTolerance (int tolerance) {
29
- uint16_t zb_tolerance = (uint16_t ) tolerance;
22
+ void ZigbeeIlluminanceSensor::setTolerance (uint16_t tolerance) {
30
23
esp_zb_attribute_list_t *light_measure_cluster =
31
24
esp_zb_cluster_list_get_cluster (_cluster_list, ESP_ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
32
- esp_zb_illuminance_meas_cluster_add_attr (light_measure_cluster, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_TOLERANCE_ID, (void *)&zb_tolerance );
25
+ esp_zb_illuminance_meas_cluster_add_attr (light_measure_cluster, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_TOLERANCE_ID, (void *)&tolerance );
33
26
}
34
27
35
- void ZigbeeIlluminanceSensor::setReporting (uint16_t min_interval, uint16_t max_interval, int delta) {
28
+ void ZigbeeIlluminanceSensor::setReporting (uint16_t min_interval, uint16_t max_interval, uint16_t delta) {
36
29
esp_zb_zcl_reporting_info_t reporting_info;
37
30
memset (&reporting_info, 0 , sizeof (esp_zb_zcl_reporting_info_t ));
38
31
reporting_info.direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_SRV;
@@ -44,27 +37,26 @@ void ZigbeeIlluminanceSensor::setReporting(uint16_t min_interval, uint16_t max_i
44
37
reporting_info.u .send_info .max_interval = max_interval;
45
38
reporting_info.u .send_info .def_min_interval = min_interval;
46
39
reporting_info.u .send_info .def_max_interval = max_interval;
47
- reporting_info.u .send_info .delta .u16 = ( uint16_t ) delta;
40
+ reporting_info.u .send_info .delta .u16 = delta;
48
41
reporting_info.dst .profile_id = ESP_ZB_AF_HA_PROFILE_ID;
49
42
reporting_info.manuf_code = ESP_ZB_ZCL_ATTR_NON_MANUFACTURER_SPECIFIC;
50
43
esp_zb_lock_acquire (portMAX_DELAY);
51
44
esp_zb_zcl_update_reporting_info (&reporting_info);
52
45
esp_zb_lock_release ();
53
46
}
54
47
55
- void ZigbeeIlluminanceSensor::setIlluminance (int illuminanceValue) {
56
- int16_t zb_illuminanceValue = zb_int_to_s16 (illuminanceValue);
48
+ void ZigbeeIlluminanceSensor::setIlluminance (uint16_t illuminanceValue) {
57
49
log_v (" Updating Illuminance..." );
58
50
/* Update illuminance sensor measured illuminance */
59
- log_d (" Setting Illuminance to %d" , zb_illuminanceValue );
51
+ log_d (" Setting Illuminance to %d" , illuminanceValue );
60
52
esp_zb_lock_acquire (portMAX_DELAY);
61
53
esp_zb_zcl_set_attribute_val (
62
- _endpoint, ESP_ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_ID, &zb_illuminanceValue , false
54
+ _endpoint, ESP_ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_ID, &illuminanceValue , false
63
55
);
64
56
esp_zb_lock_release ();
65
57
}
66
58
67
- void ZigbeeIlluminanceSensor::reportIlluminance () {
59
+ void ZigbeeIlluminanceSensor::report () {
68
60
/* Send report attributes command */
69
61
esp_zb_zcl_report_attr_cmd_t report_attr_cmd;
70
62
report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT;
0 commit comments