From 65b48550e9c46bcbd6f089f36c513876989b4763 Mon Sep 17 00:00:00 2001 From: M-Factory Date: Wed, 18 Feb 2026 10:50:05 +0900 Subject: [PATCH] =?UTF-8?q?ESPTimeCast=20Firmware=201.0.1=20=E2=80=93=20Pa?= =?UTF-8?q?tch=20Release?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed / Updated: • AP-mode SSID/Password bug: Saving in AP mode now preserves the correct SSID and password, preventing the device from getting stuck in AP mode. • AP-mode loop refactor: Display animation and web server handling optimized for better responsiveness and stability. • Web UI updates: factory_reset and upload endpoints updated to match the new design. Notes: • Users experiencing AP-mode issues should reselect their WiFi and re-enter their password once to restore STA mode. • Patch release only; no new features added. --- ESPTimeCast_ESP32/ESPTimeCast_ESP32.ino | 201 +++++++++++--------- ESPTimeCast_ESP32/index_html.h | 2 +- ESPTimeCast_ESP8266/ESPTimeCast_ESP8266.ino | 199 +++++++++++-------- ESPTimeCast_ESP8266/index_html.h | 2 +- 4 files changed, 233 insertions(+), 171 deletions(-) diff --git a/ESPTimeCast_ESP32/ESPTimeCast_ESP32.ino b/ESPTimeCast_ESP32/ESPTimeCast_ESP32.ino index 197451c..49fcbfb 100644 --- a/ESPTimeCast_ESP32/ESPTimeCast_ESP32.ino +++ b/ESPTimeCast_ESP32/ESPTimeCast_ESP32.ino @@ -841,9 +841,13 @@ void setupWebServer() { Serial.println(F("[SAVE] Password unchanged.")); // do nothing, keep the one already in doc } - } - - else if (n == "openWeatherApiKey") { + } else if (n == "ssid") { + if (v != "********" && v.length() > 0) { + doc[n] = v; + } else { + Serial.println(F("[SAVE] SSID unchanged.")); + } + } else if (n == "openWeatherApiKey") { if (v != "********************************") { // ignore mask only doc[n] = v; // save new key (even if empty) Serial.print(F("[SAVE] API key updated: ")); @@ -1589,44 +1593,54 @@ void setupWebServer() { server.on("/upload", HTTP_GET, [](AsyncWebServerRequest *request) { String html = R"rawliteral( - + - +

Upload config.json

@@ -1643,26 +1657,35 @@ void setupWebServer() { "/upload", HTTP_POST, [](AsyncWebServerRequest *request) { String html = R"rawliteral( - + Upload Successful @@ -1715,25 +1739,36 @@ void setupWebServer() { } const char *FACTORY_RESET_HTML = R"rawliteral( - + Resetting Device +

Upload config.json

@@ -1638,26 +1652,35 @@ void setupWebServer() { "/upload", HTTP_POST, [](AsyncWebServerRequest *request) { String html = R"rawliteral( - + Upload Successful @@ -1710,25 +1734,35 @@ void setupWebServer() { } const char *FACTORY_RESET_HTML = R"rawliteral( - + Resetting Device