* changed reload time for opendtufusion after update to 5s
* fix default interval and gap for communication
* fix serial number in exported json (was decimal, now correct as hexdecimal number)
* beautified factory reset
* added second stage for erase settings
* increased maximal number of inverters to 32 for opendtufusion board (ESP32-S3)
* fixed crash if CMT inverter is enabled, but CMT isn't configured
This commit is contained in:
lumapu 2023-12-30 02:33:57 +01:00
parent b5cdd775a7
commit 86ff9f054a
8 changed files with 79 additions and 42 deletions

View file

@ -88,6 +88,10 @@ class RestApi {
else if(path == "html/logout") getHtmlLogout(request, root);
else if(path == "html/reboot") getHtmlReboot(request, root);
else if(path == "html/save") getHtmlSave(request, root);
else if(path == "html/erase") getHtmlErase(request, root);
else if(path == "html/erasetrue") getHtmlEraseTrue(request, root);
else if(path == "html/factory") getHtmlFactory(request, root);
else if(path == "html/factorytrue") getHtmlFactoryTrue(request, root);
else if(path == "system") getSysInfo(request, root);
else if(path == "generic") getGeneric(request, root);
else if(path == "reboot") getReboot(request, root);
@ -214,6 +218,16 @@ class RestApi {
tmp.remove(i, tmp.indexOf("\"", i)-i);
}
}
i = 0;
// convert all serial numbers to hexadecimal
while (i != -1) {
i = tmp.indexOf("\"sn\":", i);
if(-1 != i) {
i+=5;
String sn = tmp.substring(i, tmp.indexOf("\"", i)-1);
tmp.replace(sn, String(atoll(sn.c_str()), HEX));
}
}
response = request->beginResponse(200, F("application/json; charset=utf-8"), tmp);
}
@ -337,6 +351,40 @@ class RestApi {
#endif
}
void getHtmlErase(AsyncWebServerRequest *request, JsonObject obj) {
getGeneric(request, obj.createNestedObject(F("generic")));
obj[F("html")] = F("Erase settings (not WiFi)? <a class=\"btn\" href=\"/erasetrue\">yes</a> <a class=\"btn\" href=\"/\">no</a>");
}
void getHtmlEraseTrue(AsyncWebServerRequest *request, JsonObject obj) {
getGeneric(request, obj.createNestedObject(F("generic")));
mApp->eraseSettings(false);
mApp->setRebootFlag();
obj[F("html")] = F("Erase settings: success");
#if defined(ETHERNET) && defined(CONFIG_IDF_TARGET_ESP32S3)
obj[F("reload")] = 5;
#else
obj[F("reload")] = 20;
#endif
}
void getHtmlFactory(AsyncWebServerRequest *request, JsonObject obj) {
getGeneric(request, obj.createNestedObject(F("generic")));
obj[F("html")] = F("Factory reset? <a class=\"btn\" href=\"/factorytrue\">yes</a> <a class=\"btn\" href=\"/\">no</a>");
}
void getHtmlFactoryTrue(AsyncWebServerRequest *request, JsonObject obj) {
getGeneric(request, obj.createNestedObject(F("generic")));
mApp->eraseSettings(true);
mApp->setRebootFlag();
obj[F("html")] = F("Factory reset: success");
#if defined(ETHERNET) && defined(CONFIG_IDF_TARGET_ESP32S3)
obj[F("reload")] = 5;
#else
obj[F("reload")] = 20;
#endif
}
void getReboot(AsyncWebServerRequest *request, JsonObject obj) {
getGeneric(request, obj.createNestedObject(F("generic")));
obj[F("refresh")] = 10;