6 Commits
v1.13 ... v1.15

Author SHA1 Message Date
ed42021c9b Version 1.15
Minor changes.
2023-02-12 18:42:57 +03:00
02b8326b80 Minor changes 2023-02-11 08:42:57 +03:00
0795911f7a Minor changes 2023-02-09 21:28:56 +03:00
dc9f08e82c Version 1.14
Changed FS from SPIFFS to LittleFS.
2023-02-04 10:57:34 +03:00
4d8146e64b Changed FS from SPIFFS to LittleFS 2023-02-02 20:31:16 +03:00
39a13599c3 Minor changes 2023-01-28 14:52:38 +03:00
3 changed files with 26 additions and 13 deletions

View File

@ -28,3 +28,5 @@ See [here](https://github.com/aZholtikov/ESP-NOW-Light-Led-Strip/tree/main/hardw
3. If encryption is used, the key must be set same of all another ESP-NOW devices in network. 3. If encryption is used, the key must be set same of all another ESP-NOW devices in network.
4. Upload the "data" folder (with web interface) into the filesystem before flashing. 4. Upload the "data" folder (with web interface) into the filesystem before flashing.
5. For using this firmware on Tuya/SmartLife WiFi light/led strip controllers, the WiFi module must be replaced with an ESP8266 compatible module (if necessary). 5. For using this firmware on Tuya/SmartLife WiFi light/led strip controllers, the WiFi module must be replaced with an ESP8266 compatible module (if necessary).
Any feedback via [e-mail](mailto:github@zh.com.ru) would be appreciated. Or... [Buy me a coffee](https://paypal.me/aZholtikov).

View File

@ -2,20 +2,24 @@
platform = espressif8266 platform = espressif8266
board = esp12e board = esp12e
framework = arduino framework = arduino
board_build.filesystem = littlefs
board_build.ldscript = eagle.flash.4m2m.ld
lib_deps = lib_deps =
https://github.com/aZholtikov/ZHNetwork https://github.com/aZholtikov/ZHNetwork
https://github.com/aZholtikov/ZHConfig https://github.com/aZholtikov/ZHConfig
bblanchon/ArduinoJson@^6.19.4 https://github.com/aZholtikov/Async-Web-Server
me-no-dev/ESP Async WebServer@^1.2.3 https://github.com/bblanchon/ArduinoJson
[env:ESP-12E-OTA] [env:ESP-12E-OTA]
platform = espressif8266 platform = espressif8266
board = esp12e board = esp12e
framework = arduino framework = arduino
board_build.filesystem = littlefs
board_build.ldscript = eagle.flash.4m2m.ld
upload_port = 192.168.4.1 upload_port = 192.168.4.1
upload_protocol = espota upload_protocol = espota
lib_deps = lib_deps =
https://github.com/aZholtikov/ZHNetwork https://github.com/aZholtikov/ZHNetwork
https://github.com/aZholtikov/ZHConfig https://github.com/aZholtikov/ZHConfig
bblanchon/ArduinoJson@^6.19.4 https://github.com/aZholtikov/Async-Web-Server
me-no-dev/ESP Async WebServer@^1.2.3 https://github.com/bblanchon/ArduinoJson

View File

@ -1,6 +1,7 @@
#include "ArduinoJson.h" #include "ArduinoJson.h"
#include "ArduinoOTA.h" #include "ArduinoOTA.h"
#include "ESPAsyncWebServer.h" #include "ESPAsyncWebServer.h" // https://github.com/aZholtikov/Async-Web-Server
#include "LittleFS.h"
#include "Ticker.h" #include "Ticker.h"
#include "ZHNetwork.h" #include "ZHNetwork.h"
#include "ZHConfig.h" #include "ZHConfig.h"
@ -30,7 +31,7 @@ typedef struct
std::vector<espnow_message_t> espnowMessage; std::vector<espnow_message_t> espnowMessage;
const String firmware{"1.13"}; const String firmware{"1.15"};
String espnowNetName{"DEFAULT"}; String espnowNetName{"DEFAULT"};
@ -83,7 +84,7 @@ void setup()
{ {
analogWriteRange(255); analogWriteRange(255);
SPIFFS.begin(); LittleFS.begin();
loadConfig(); loadConfig();
@ -151,7 +152,11 @@ void onBroadcastReceiving(const char *data, const uint8_t *sender)
{ {
wasMqttAvailable = temp; wasMqttAvailable = temp;
if (temp) if (temp)
{
sendConfigMessage(); sendConfigMessage();
sendAttributesMessage();
sendStatusMessage();
}
} }
gatewayAvailabilityCheckTimer.once(15, gatewayAvailabilityCheckTimerCallback); gatewayAvailabilityCheckTimer.once(15, gatewayAvailabilityCheckTimerCallback);
} }
@ -198,6 +203,7 @@ void onConfirmReceiving(const uint8_t *target, const uint16_t id, const bool sta
{ {
espnow_message_t message = espnowMessage[i]; espnow_message_t message = espnowMessage[i];
if (message.id == id) if (message.id == id)
{
if (status) if (status)
espnowMessage.erase(espnowMessage.begin() + i); espnowMessage.erase(espnowMessage.begin() + i);
else else
@ -206,13 +212,14 @@ void onConfirmReceiving(const uint8_t *target, const uint16_t id, const bool sta
espnowMessage.at(i) = message; espnowMessage.at(i) = message;
} }
} }
}
} }
void loadConfig() void loadConfig()
{ {
if (!SPIFFS.exists("/config.json")) if (!LittleFS.exists("/config.json"))
saveConfig(); saveConfig();
File file = SPIFFS.open("/config.json", "r"); File file = LittleFS.open("/config.json", "r");
String jsonFile = file.readString(); String jsonFile = file.readString();
StaticJsonDocument<512> json; StaticJsonDocument<512> json;
deserializeJson(json, jsonFile); deserializeJson(json, jsonFile);
@ -252,7 +259,7 @@ void saveConfig()
json["green"] = green; json["green"] = green;
json["blue"] = blue; json["blue"] = blue;
json["system"] = "empty"; json["system"] = "empty";
File file = SPIFFS.open("/config.json", "w"); File file = LittleFS.open("/config.json", "w");
serializeJsonPretty(json, file); serializeJsonPretty(json, file);
file.close(); file.close();
} }
@ -260,7 +267,7 @@ void saveConfig()
void setupWebServer() void setupWebServer()
{ {
webServer.on("/", HTTP_GET, [](AsyncWebServerRequest *request) webServer.on("/", HTTP_GET, [](AsyncWebServerRequest *request)
{ request->send(SPIFFS, "/index.htm"); }); { request->send(LittleFS, "/index.htm"); });
webServer.on("/setting", HTTP_GET, [](AsyncWebServerRequest *request) webServer.on("/setting", HTTP_GET, [](AsyncWebServerRequest *request)
{ {
@ -282,8 +289,8 @@ void setupWebServer()
webServer.onNotFound([](AsyncWebServerRequest *request) webServer.onNotFound([](AsyncWebServerRequest *request)
{ {
if (SPIFFS.exists(request->url())) if (LittleFS.exists(request->url()))
request->send(SPIFFS, request->url()); request->send(LittleFS, request->url());
else else
{ {
request->send(404, "text/plain", "File Not Found"); request->send(404, "text/plain", "File Not Found");