diff --git a/main/zigbee.c b/main/zigbee.c index 51ca527..dc03763 100644 --- a/main/zigbee.c +++ b/main/zigbee.c @@ -21,6 +21,12 @@ static esp_err_t deferred_driver_init(void) { return is_inited ? ESP_OK : ESP_FAIL; } +void zigbee_report_on_off_level(const bool on, const uint8_t level) { + esp_zb_zcl_set_attribute_val(endpoint_no, ESP_ZB_ZCL_CLUSTER_ID_ON_OFF, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID, (uint8_t*)&on, false); + esp_zb_zcl_set_attribute_val(endpoint_no, ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID, (uint8_t*)&level, false); +} + + static void bdb_start_top_level_commissioning_cb(const uint8_t mode_mask) { ESP_RETURN_ON_FALSE(esp_zb_bdb_start_top_level_commissioning(mode_mask) == ESP_OK, , TAG, "Failed to start Zigbee commissioning"); } @@ -207,6 +213,7 @@ void esp_zb_app_signal_handler(esp_zb_app_signal_t* signal_s) { extended_pan_id[7], extended_pan_id[6], extended_pan_id[5], extended_pan_id[4], extended_pan_id[3], extended_pan_id[2], extended_pan_id[1], extended_pan_id[0], esp_zb_get_pan_id(), esp_zb_get_current_channel(), esp_zb_get_short_address()); + zigbee_report_on_off_level(false, 254); } else { ESP_LOGI(TAG, "Network steering was not successful (status: %s)", esp_err_to_name(err_status));