diff --git a/components/esp_matter/esp_matter_core.cpp b/components/esp_matter/esp_matter_core.cpp index 3faee7eb4..639976305 100644 --- a/components/esp_matter/esp_matter_core.cpp +++ b/components/esp_matter/esp_matter_core.cpp @@ -714,6 +714,33 @@ static void esp_matter_chip_init_task(intptr_t context) xTaskNotifyGive(task_to_notify); } +static void device_callback_for_ota(const ChipDeviceEvent * event, intptr_t arg) +{ + static bool is_ota_requestor_start = false; + switch (event->Type) + { + case chip::DeviceLayer::DeviceEventType::kInterfaceIpAddressChanged: + if (event->InterfaceIpAddressChanged.Type == chip::DeviceLayer::InterfaceIpChangeType::kIpV6_Assigned) { + if (!is_ota_requestor_start) { + esp_matter_ota_requestor_start(); + is_ota_requestor_start = true; + } + } + break; +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD + case chip::DeviceLayer::DeviceEventType::kThreadConnectivityChange: + if (!is_ota_requestor_start && + event->ThreadConnectivityChange.Result == chip::DeviceLayer::ConnectivityChange::kConnectivity_Established) { + esp_matter_ota_requestor_start(); + is_ota_requestor_start = true; + } +#endif + break; + default: + break; + } +} + static esp_err_t chip_init(event_callback_t callback) { if (chip::Platform::MemoryInit() != CHIP_NO_ERROR) { @@ -731,6 +758,7 @@ static esp_err_t chip_init(event_callback_t callback) ESP_LOGE(TAG, "Failed to launch Matter main task"); return ESP_FAIL; } + PlatformMgr().AddEventHandler(device_callback_for_ota, static_cast(NULL)); PlatformMgr().AddEventHandler(callback, static_cast(NULL)); #if CHIP_DEVICE_CONFIG_ENABLE_THREAD if (ThreadStackMgr().InitThreadStack() != CHIP_NO_ERROR) { @@ -766,16 +794,13 @@ static esp_err_t chip_init(event_callback_t callback) esp_err_t start(event_callback_t callback) { - esp_err_t ota_err = esp_matter_ota_requestor_init(); + esp_matter_ota_requestor_init(); esp_err_t err = chip_init(callback); if (err != ESP_OK) { ESP_LOGE(TAG, "Error initializing matter"); } - if ((ota_err == ESP_OK) && (err == ESP_OK)) { - esp_matter_ota_requestor_start(); - } return err; } diff --git a/examples/blemesh_bridge/CMakeLists.txt b/examples/blemesh_bridge/CMakeLists.txt index cf6dfc9ea..d156df5ae 100644 --- a/examples/blemesh_bridge/CMakeLists.txt +++ b/examples/blemesh_bridge/CMakeLists.txt @@ -18,6 +18,9 @@ if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) endif() endif(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) +set(PROJECT_VER "v1.0") +set(PROJECT_VER_NUMBER 1) + set(ESP_MATTER_PATH $ENV{ESP_MATTER_PATH}) set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip) set(ZAP_GENERATED_PATH ${CMAKE_CURRENT_LIST_DIR}/main/zap-generated) diff --git a/examples/light/CMakeLists.txt b/examples/light/CMakeLists.txt index 8ebac2024..13b57b4cd 100644 --- a/examples/light/CMakeLists.txt +++ b/examples/light/CMakeLists.txt @@ -20,6 +20,9 @@ if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) endif() endif(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) +set(PROJECT_VER "v1.0") +set(PROJECT_VER_NUMBER 1) + set(ESP_MATTER_PATH $ENV{ESP_MATTER_PATH}) set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip) set(ZAP_GENERATED_PATH ${CMAKE_CURRENT_LIST_DIR}/main/zap-generated) diff --git a/examples/light_switch/CMakeLists.txt b/examples/light_switch/CMakeLists.txt index cb549433a..149456d38 100644 --- a/examples/light_switch/CMakeLists.txt +++ b/examples/light_switch/CMakeLists.txt @@ -18,6 +18,9 @@ if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) endif() endif(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) +set(PROJECT_VER "v1.0") +set(PROJECT_VER_NUMBER 1) + set(ESP_MATTER_PATH $ENV{ESP_MATTER_PATH}) set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip) set(ZAP_GENERATED_PATH ${CMAKE_CURRENT_LIST_DIR}/main/zap-generated) diff --git a/examples/zap_light/CMakeLists.txt b/examples/zap_light/CMakeLists.txt index c4819269f..86c83a955 100644 --- a/examples/zap_light/CMakeLists.txt +++ b/examples/zap_light/CMakeLists.txt @@ -20,6 +20,9 @@ if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) endif() endif(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) +set(PROJECT_VER "v1.0") +set(PROJECT_VER_NUMBER 1) + set(ESP_MATTER_PATH $ENV{ESP_MATTER_PATH}) set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip) set(ZAP_GENERATED_PATH ${CMAKE_CURRENT_LIST_DIR}/main/zap-generated) diff --git a/examples/zigbee_bridge/CMakeLists.txt b/examples/zigbee_bridge/CMakeLists.txt index 1c845be57..5f82e4610 100644 --- a/examples/zigbee_bridge/CMakeLists.txt +++ b/examples/zigbee_bridge/CMakeLists.txt @@ -17,6 +17,9 @@ if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) endif() endif(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) +set(PROJECT_VER "v1.0") +set(PROJECT_VER_NUMBER 1) + set(ESP_MATTER_PATH $ENV{ESP_MATTER_PATH}) set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip) set(ZAP_GENERATED_PATH ${CMAKE_CURRENT_LIST_DIR}/main/zap-generated)