diff --git a/components/esp_matter/esp_matter.h b/components/esp_matter/esp_matter.h index 74ef3aa95..3a7b40de3 100644 --- a/components/esp_matter/esp_matter.h +++ b/components/esp_matter/esp_matter.h @@ -127,6 +127,8 @@ enum /** Signals that operational credentials are changed, which may not be persistent. Can be used to affect what is needed for UpdateNOC prior to commit */ kFabricUpdated, + /** Signals that BLE is deinitialized and heap memory is reclaimed */ + kBLEDeinitialized, }; } // DeviceEventType diff --git a/components/esp_matter/esp_matter_core.cpp b/components/esp_matter/esp_matter_core.cpp index c8076a79a..d88536f27 100644 --- a/components/esp_matter/esp_matter_core.cpp +++ b/components/esp_matter/esp_matter_core.cpp @@ -868,6 +868,7 @@ static void deinit_ble_if_commissioned(void) return; } ESP_LOGI(TAG, "BLE deinit successful and memory reclaimed"); + PostEvent(chip::DeviceLayer::DeviceEventType::kBLEDeinitialized); } #endif /* CONFIG_BT_ENABLED && CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING */ } diff --git a/examples/light/main/app_main.cpp b/examples/light/main/app_main.cpp index 96ca3dc4d..b0c9bb2ff 100644 --- a/examples/light/main/app_main.cpp +++ b/examples/light/main/app_main.cpp @@ -106,6 +106,11 @@ static void app_event_cb(const ChipDeviceEvent *event, intptr_t arg) case chip::DeviceLayer::DeviceEventType::kFabricCommitted: ESP_LOGI(TAG, "Fabric is committed"); break; + + case chip::DeviceLayer::DeviceEventType::kBLEDeinitialized: + ESP_LOGI(TAG, "BLE deinitialized and memory reclaimed"); + break; + default: break; }