#include namespace Ota { void loop() { ArduinoOTA.handle(); } Task tLoop(TASK_IMMEDIATE, TASK_FOREVER, loop, &ts, true); void setup() { ArduinoOTA.onStart([]() { Serial.println("Starting OTA"); Mqtt::publishCleanupConfig(); delay(2000); Mqtt::disconnect(); }); ArduinoOTA.onEnd([]() { Serial.println("\nOTA Finished"); }); ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { Serial.printf("Progress: %u%%\r", (progress / (total / 100))); }); ArduinoOTA.onError([](ota_error_t error) { Serial.printf("Error[%u]: ", error); if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed"); else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed"); else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed"); else if (error == OTA_END_ERROR) Serial.println("End Failed"); }); ArduinoOTA.begin(); } }