#include #include "my_wifi.h" #include #include "config.h" void ota_setup() { ArduinoOTA.onStart([]() { String type; if (ArduinoOTA.getCommand() == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end() Serial.println("OTA * Start updating " + type); }); ArduinoOTA.onEnd([]() { Serial.println("\nOTA * End"); }); ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { Serial.printf("OTA * Progress: %u%%\r", (progress / (total / 100))); }); ArduinoOTA.onError([](ota_error_t error) { Serial.printf("OTA * 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"); }); char client_id[30]; int chipid; #if defined( ESP8266 ) chipid = ESP.getChipId(); #elif defined( ESP32 ) chipid = ESP.getEfuseMac() & 0xFFFFFF; #else #error Neither ESP32 nor ESP8266 set. #endif snprintf(client_id, 30, HOSTNAME, chipid); LOG("OTA * Starting OTA with client_id "); LOGln(client_id); ArduinoOTA.setHostname(client_id); ArduinoOTA.begin(); } void ota_loop() { ArduinoOTA.handle(); }