--- a/main/task_wifi.c Thu Mar 30 21:55:24 2023 +0200 +++ b/main/task_wifi.c Fri Mar 31 20:31:12 2023 +0200 @@ -104,7 +104,8 @@ } else { ESP_LOGE(TAG, "wifi_event_handler() lock error WIFI_EVENT_STA_DISCONNECTED"); } - connect_mqtt(false); + if (ready_mqtt()) + connect_mqtt(false); xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_STA_CONNECTED); xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_STA_DISCONNECTED); break; @@ -227,8 +228,9 @@ /* * user requested a disconnect, this will in effect disconnect the wifi */ + ESP_LOGI(TAG, "Request STA disconnect"); connect_mqtt(false); - ESP_LOGI(TAG, "Request STA disconnect"); + wait_mqtt(10000); ESP_ERROR_CHECK(esp_wifi_disconnect()); xEventGroupWaitBits(xEventGroupWifi, TASK_WIFI_STA_DISCONNECTED, pdFALSE, pdTRUE, portMAX_DELAY );