This commit is contained in:
Dmitry Borisenko
2021-12-21 21:58:56 +01:00
parent b0b8203fec
commit 01b0a7d53e
9 changed files with 477 additions and 450 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

7
data_svelte/lile.json Normal file
View File

@@ -0,0 +1,7 @@
{
"type": "binary",
"subtype": "button-out",
"id": "btn1",
"gpio": 1,
"inv": false
}

View File

@@ -2,8 +2,10 @@
#include "Class/TCircularBuffer.h" #include "Class/TCircularBuffer.h"
#include "Global.h" #include "Global.h"
void wsInit(); void wsInit();
void wsSendSetup();
void wsSendSetupBuffer();
void wsPublishData(String topic, String data); void wsPublishData(String topic, String data);
void sendDataWs();
void loopWsExecute(); // void wsSendSetup();
// void wsSendSetupBuffer();
//
// void sendDataWs();
// void loopWsExecute();

View File

@@ -75,8 +75,8 @@ void deviceInit() {
} }
savedFromWeb = false; savedFromWeb = false;
//publishWidgets(); // publishWidgets();
//publishState(); // publishState();
} }
void loadScenario() { void loadScenario() {

View File

@@ -1,4 +1,5 @@
#include "Web.h" #include "Web.h"
#include "BufferExecute.h" #include "BufferExecute.h"
#include "Class/NotAsync.h" #include "Class/NotAsync.h"
#include "Global.h" #include "Global.h"
@@ -18,396 +19,395 @@ bool parseRequestForPreset(AsyncWebServerRequest* request, uint8_t& preset) {
} }
void web_init() { void web_init() {
// server.on("/set", HTTP_GET, [](AsyncWebServerRequest* request) { server.on("/set", HTTP_GET, [](AsyncWebServerRequest* request) {
// //==============================set.device.json==================================================================================================== //==============================set.device.json====================================================================================================
// if (request->hasArg(F("addItem"))) { if (request->hasArg(F("addItem"))) {
// addItem2(request->getParam("addItem")->value().toInt()); addItem2(request->getParam("addItem")->value().toInt());
// request->redirect("/?set.device"); request->redirect("/?set.device");
// } }
//
// if (request->hasArg(F("addPreset"))) { if (request->hasArg(F("addPreset"))) {
// addPreset2(request->getParam(F("addPreset"))->value().toInt()); addPreset2(request->getParam(F("addPreset"))->value().toInt());
//
// jsonWriteStr(configSetupJson, F("warning1"), F("<div style='margin-top:10px;margin-bottom:10px;'><font color='black'><p style='border: 1px solid #DCDCDC; border-radius: 3px; background-color: #ffc7c7; padding: 10px;'>Требуется перезагрузка</p></font></div>")); jsonWriteStr(configSetupJson, F("warning1"), F("<div style='margin-top:10px;margin-bottom:10px;'><font color='black'><p style='border: 1px solid #DCDCDC; border-radius: 3px; background-color: #ffc7c7; padding: 10px;'>Требуется перезагрузка</p></font></div>"));
//
// request->redirect(F("/?set.device")); request->redirect(F("/?set.device"));
// } }
//
// if (request->hasArg(F("delChoosingItems"))) { if (request->hasArg(F("delChoosingItems"))) {
// jsonWriteStr(configSetupJson, F("warning1"), F("<div style='margin-top:10px;margin-bottom:10px;'><font color='black'><p style='border: 1px solid #DCDCDC; border-radius: 3px; background-color: #ffc7c7; padding: 10px;'>Требуется перезагрузка</p></font></div>")); jsonWriteStr(configSetupJson, F("warning1"), F("<div style='margin-top:10px;margin-bottom:10px;'><font color='black'><p style='border: 1px solid #DCDCDC; border-radius: 3px; background-color: #ffc7c7; padding: 10px;'>Требуется перезагрузка</p></font></div>"));
// myNotAsyncActions->make(do_delChoosingItems); myNotAsyncActions->make(do_delChoosingItems);
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("delAllItems"))) { if (request->hasArg(F("delAllItems"))) {
// delAllItems(); delAllItems();
//#ifdef EnableLogging #ifdef EnableLogging
// cleanLogAndData(); cleanLogAndData();
//#endif #endif
// jsonWriteStr(configSetupJson, F("warning1"), F("<div style='margin-top:10px;margin-bottom:10px;'><font color='black'><p style='border: 1px solid #DCDCDC; border-radius: 3px; background-color: #ffc7c7; padding: 10px;'>Требуется перезагрузка</p></font></div>")); jsonWriteStr(configSetupJson, F("warning1"), F("<div style='margin-top:10px;margin-bottom:10px;'><font color='black'><p style='border: 1px solid #DCDCDC; border-radius: 3px; background-color: #ffc7c7; padding: 10px;'>Требуется перезагрузка</p></font></div>"));
// request->redirect(F("/?set.device")); request->redirect(F("/?set.device"));
// } }
//
// if (request->hasArg(F("saveItems"))) { if (request->hasArg(F("saveItems"))) {
// myNotAsyncActions->make(do_deviceInit); myNotAsyncActions->make(do_deviceInit);
// savedFromWeb = true; savedFromWeb = true;
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("scen"))) { if (request->hasArg(F("scen"))) {
// bool value = request->getParam(F("scen"))->value().toInt(); bool value = request->getParam(F("scen"))->value().toInt();
// jsonWriteBool(configSetupJson, F("scen"), value); jsonWriteBool(configSetupJson, F("scen"), value);
// saveConfig(); saveConfig();
// loadScenario(); loadScenario();
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("sceninit"))) { if (request->hasArg(F("sceninit"))) {
// loadScenario(); loadScenario();
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("MqttIn"))) { if (request->hasArg(F("MqttIn"))) {
// bool value = request->getParam(F("MqttIn"))->value().toInt(); bool value = request->getParam(F("MqttIn"))->value().toInt();
// jsonWriteBool(configSetupJson, "MqttIn", value); jsonWriteBool(configSetupJson, "MqttIn", value);
// saveConfig(); saveConfig();
// mqtt.subscribe((mqttPrefix + "/+/+/event").c_str()); mqtt.subscribe((mqttPrefix + "/+/+/event").c_str());
// mqtt.subscribe((mqttPrefix + "/+/+/info").c_str()); mqtt.subscribe((mqttPrefix + "/+/+/info").c_str());
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("MqttOut"))) { if (request->hasArg(F("MqttOut"))) {
// bool value = request->getParam(F("MqttOut"))->value().toInt(); bool value = request->getParam(F("MqttOut"))->value().toInt();
// jsonWriteBool(configSetupJson, F("MqttOut"), value); jsonWriteBool(configSetupJson, F("MqttOut"), value);
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("scenMqtt"))) { if (request->hasArg(F("scenMqtt"))) {
// myNotAsyncActions->make(do_sendScenMQTT); myNotAsyncActions->make(do_sendScenMQTT);
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("cleanlog"))) { if (request->hasArg(F("cleanlog"))) {
//#ifdef EnableLogging #ifdef EnableLogging
// cleanLogAndData(); cleanLogAndData();
//#endif #endif
// request->send(200); request->send(200);
// } }
//
// //==============================wifi settings============================================= //==============================wifi settings=============================================
// if (request->hasArg(F("devname"))) { if (request->hasArg(F("devname"))) {
// jsonWriteStr(configSetupJson, F("name"), request->getParam(F("devname"))->value()); jsonWriteStr(configSetupJson, F("name"), request->getParam(F("devname"))->value());
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("routerssid"))) { if (request->hasArg(F("routerssid"))) {
// jsonWriteStr(configSetupJson, F("routerssid"), request->getParam(F("routerssid"))->value()); jsonWriteStr(configSetupJson, F("routerssid"), request->getParam(F("routerssid"))->value());
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("routerpass"))) { if (request->hasArg(F("routerpass"))) {
// jsonWriteStr(configSetupJson, F("routerpass"), request->getParam(F("routerpass"))->value()); jsonWriteStr(configSetupJson, F("routerpass"), request->getParam(F("routerpass"))->value());
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("apssid"))) { if (request->hasArg(F("apssid"))) {
// jsonWriteStr(configSetupJson, F("apssid"), request->getParam(F("apssid"))->value()); jsonWriteStr(configSetupJson, F("apssid"), request->getParam(F("apssid"))->value());
// saveConfig(); saveConfig();
// request->send(200, "text/text", "OK"); request->send(200, "text/text", "OK");
// } }
//
// if (request->hasArg(F("appass"))) { if (request->hasArg(F("appass"))) {
// jsonWriteStr(configSetupJson, F("appass"), request->getParam(F("appass"))->value()); jsonWriteStr(configSetupJson, F("appass"), request->getParam(F("appass"))->value());
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("weblogin"))) { if (request->hasArg(F("weblogin"))) {
// jsonWriteStr(configSetupJson, F("weblogin"), request->getParam(F("weblogin"))->value()); jsonWriteStr(configSetupJson, F("weblogin"), request->getParam(F("weblogin"))->value());
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("webpass"))) { if (request->hasArg(F("webpass"))) {
// jsonWriteStr(configSetupJson, F("webpass"), request->getParam(F("webpass"))->value()); jsonWriteStr(configSetupJson, F("webpass"), request->getParam(F("webpass"))->value());
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("timezone"))) { if (request->hasArg(F("timezone"))) {
// String timezoneStr = request->getParam(F("timezone"))->value(); String timezoneStr = request->getParam(F("timezone"))->value();
// jsonWriteStr(configSetupJson, F("timezone"), timezoneStr); jsonWriteStr(configSetupJson, F("timezone"), timezoneStr);
// saveConfig(); saveConfig();
// timeNow->setTimezone(timezoneStr.toInt()); timeNow->setTimezone(timezoneStr.toInt());
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("ntp"))) { if (request->hasArg(F("ntp"))) {
// String ntpStr = request->getParam(F("ntp"))->value(); String ntpStr = request->getParam(F("ntp"))->value();
// jsonWriteStr(configSetupJson, F("ntp"), ntpStr); jsonWriteStr(configSetupJson, F("ntp"), ntpStr);
// saveConfig(); saveConfig();
// timeNow->setNtpPool(ntpStr); timeNow->setNtpPool(ntpStr);
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("blink"))) { if (request->hasArg(F("blink"))) {
// bool value = request->getParam(F("blink"))->value().toInt(); bool value = request->getParam(F("blink"))->value().toInt();
// jsonWriteBool(configSetupJson, F("blink"), value); jsonWriteBool(configSetupJson, F("blink"), value);
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg(F("reqReset"))) { if (request->hasArg(F("reqReset"))) {
// String tmp = "{}"; String tmp = "{}";
// jsonWriteStr(tmp, "title", F("<button class=\"close\" onclick=\"toggle('reset-block')\">×</button>Вы действительно хотите перезагрузить устройство?<a href=\"#\" class=\"btn btn-block btn-danger\" onclick=\"send_request(this, '/set?reset');setTimeout(function(){ location.href='/?set.device'; }, 15000);html('reset-block','<span class=loader></span>Идет перезагрузка устройства')\">Перезагрузить</a>")); jsonWriteStr(tmp, "title", F("<button class=\"close\" onclick=\"toggle('reset-block')\">×</button>Вы действительно хотите перезагрузить устройство?<a href=\"#\" class=\"btn btn-block btn-danger\" onclick=\"send_request(this, '/set?reset');setTimeout(function(){ location.href='/?set.device'; }, 15000);html('reset-block','<span class=loader></span>Идет перезагрузка устройства')\">Перезагрузить</a>"));
// jsonWriteStr(tmp, "class", "pop-up"); jsonWriteStr(tmp, "class", "pop-up");
// request->send(200, "text/html", tmp); request->send(200, "text/html", tmp);
// } }
//
// if (request->hasArg(F("reset"))) { if (request->hasArg(F("reset"))) {
// ESP.restart(); ESP.restart();
// request->send(200); request->send(200);
// } }
//
// //==============================mqtt settings============================================= //==============================mqtt settings=============================================
// //primary // primary
// if (request->hasArg(F("mqttServer"))) { if (request->hasArg(F("mqttServer"))) {
// jsonWriteStr(configSetupJson, F("mqttServer"), request->getParam(F("mqttServer"))->value()); jsonWriteStr(configSetupJson, F("mqttServer"), request->getParam(F("mqttServer"))->value());
// saveConfig(); saveConfig();
// myNotAsyncActions->make(do_MQTTPARAMSCHANGED); myNotAsyncActions->make(do_MQTTPARAMSCHANGED);
// request->send(200); request->send(200);
// } }
// if (request->hasArg(F("mqttPort"))) { if (request->hasArg(F("mqttPort"))) {
// int port = (request->getParam(F("mqttPort"))->value()).toInt(); int port = (request->getParam(F("mqttPort"))->value()).toInt();
// jsonWriteInt(configSetupJson, F("mqttPort"), port); jsonWriteInt(configSetupJson, F("mqttPort"), port);
// saveConfig(); saveConfig();
// myNotAsyncActions->make(do_MQTTPARAMSCHANGED); myNotAsyncActions->make(do_MQTTPARAMSCHANGED);
// request->send(200); request->send(200);
// } }
// if (request->hasArg(F("mqttPrefix"))) { if (request->hasArg(F("mqttPrefix"))) {
// jsonWriteStr(configSetupJson, F("mqttPrefix"), request->getParam(F("mqttPrefix"))->value()); jsonWriteStr(configSetupJson, F("mqttPrefix"), request->getParam(F("mqttPrefix"))->value());
// saveConfig(); saveConfig();
// myNotAsyncActions->make(do_MQTTPARAMSCHANGED); myNotAsyncActions->make(do_MQTTPARAMSCHANGED);
// request->send(200); request->send(200);
// } }
// if (request->hasArg(F("mqttUser"))) { if (request->hasArg(F("mqttUser"))) {
// jsonWriteStr(configSetupJson, F("mqttUser"), request->getParam(F("mqttUser"))->value()); jsonWriteStr(configSetupJson, F("mqttUser"), request->getParam(F("mqttUser"))->value());
// saveConfig(); saveConfig();
// myNotAsyncActions->make(do_MQTTPARAMSCHANGED); myNotAsyncActions->make(do_MQTTPARAMSCHANGED);
// request->send(200); request->send(200);
// } }
// if (request->hasArg(F("mqttPass"))) { if (request->hasArg(F("mqttPass"))) {
// jsonWriteStr(configSetupJson, F("mqttPass"), request->getParam(F("mqttPass"))->value()); jsonWriteStr(configSetupJson, F("mqttPass"), request->getParam(F("mqttPass"))->value());
// saveConfig(); saveConfig();
// myNotAsyncActions->make(do_MQTTPARAMSCHANGED); myNotAsyncActions->make(do_MQTTPARAMSCHANGED);
// request->send(200); request->send(200);
// } }
// //secondary // secondary
// if (request->hasArg(F("mqttServer2"))) { if (request->hasArg(F("mqttServer2"))) {
// jsonWriteStr(configSetupJson, F("mqttServer2"), request->getParam(F("mqttServer2"))->value()); jsonWriteStr(configSetupJson, F("mqttServer2"), request->getParam(F("mqttServer2"))->value());
// saveConfig(); saveConfig();
// myNotAsyncActions->make(do_MQTTPARAMSCHANGED); myNotAsyncActions->make(do_MQTTPARAMSCHANGED);
// request->send(200); request->send(200);
// } }
// if (request->hasArg(F("mqttPort2"))) { if (request->hasArg(F("mqttPort2"))) {
// int port = (request->getParam(F("mqttPort2"))->value()).toInt(); int port = (request->getParam(F("mqttPort2"))->value()).toInt();
// jsonWriteInt(configSetupJson, F("mqttPort2"), port); jsonWriteInt(configSetupJson, F("mqttPort2"), port);
// saveConfig(); saveConfig();
// myNotAsyncActions->make(do_MQTTPARAMSCHANGED); myNotAsyncActions->make(do_MQTTPARAMSCHANGED);
// request->send(200); request->send(200);
// } }
// if (request->hasArg(F("mqttPrefix2"))) { if (request->hasArg(F("mqttPrefix2"))) {
// jsonWriteStr(configSetupJson, F("mqttPrefix2"), request->getParam(F("mqttPrefix2"))->value()); jsonWriteStr(configSetupJson, F("mqttPrefix2"), request->getParam(F("mqttPrefix2"))->value());
// saveConfig(); saveConfig();
// myNotAsyncActions->make(do_MQTTPARAMSCHANGED); myNotAsyncActions->make(do_MQTTPARAMSCHANGED);
// request->send(200); request->send(200);
// } }
// if (request->hasArg(F("mqttUser2"))) { if (request->hasArg(F("mqttUser2"))) {
// jsonWriteStr(configSetupJson, F("mqttUser2"), request->getParam(F("mqttUser2"))->value()); jsonWriteStr(configSetupJson, F("mqttUser2"), request->getParam(F("mqttUser2"))->value());
// saveConfig(); saveConfig();
// myNotAsyncActions->make(do_MQTTPARAMSCHANGED); myNotAsyncActions->make(do_MQTTPARAMSCHANGED);
// request->send(200); request->send(200);
// } }
// if (request->hasArg(F("mqttPass2"))) { if (request->hasArg(F("mqttPass2"))) {
// jsonWriteStr(configSetupJson, F("mqttPass2"), request->getParam(F("mqttPass2"))->value()); jsonWriteStr(configSetupJson, F("mqttPass2"), request->getParam(F("mqttPass2"))->value());
// saveConfig(); saveConfig();
// myNotAsyncActions->make(do_MQTTPARAMSCHANGED); myNotAsyncActions->make(do_MQTTPARAMSCHANGED);
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg("mqttsend")) { if (request->hasArg("mqttsend")) {
// //myNotAsyncActions->make(do_MQTTUDP); // myNotAsyncActions->make(do_MQTTUDP);
// request->send(200); request->send(200);
// } }
//
// if (request->hasArg("mqttcheck")) { if (request->hasArg("mqttcheck")) {
// String buf = "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>" + getStateStr(); String buf = "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>" + getStateStr();
//
// String payload = "{}"; String payload = "{}";
// jsonWriteStr(payload, "title", buf); jsonWriteStr(payload, "title", buf);
// jsonWriteStr(payload, "class", "pop-up"); jsonWriteStr(payload, "class", "pop-up");
//
// request->send(200, "text/html", payload); request->send(200, "text/html", payload);
// } }
//
// //==============================telegram settings============================================= //==============================telegram settings=============================================
// if (request->hasArg("telegramApi")) { if (request->hasArg("telegramApi")) {
// jsonWriteStr(configSetupJson, "telegramApi", request->getParam("telegramApi")->value()); jsonWriteStr(configSetupJson, "telegramApi", request->getParam("telegramApi")->value());
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
// if (request->hasArg("autos")) { if (request->hasArg("autos")) {
// bool value = request->getParam("autos")->value().toInt(); bool value = request->getParam("autos")->value().toInt();
// jsonWriteBool(configSetupJson, "autos", value); jsonWriteBool(configSetupJson, "autos", value);
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
// if (request->hasArg("chatId")) { if (request->hasArg("chatId")) {
// jsonWriteStr(configSetupJson, "chatId", request->getParam("chatId")->value()); jsonWriteStr(configSetupJson, "chatId", request->getParam("chatId")->value());
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
// if (request->hasArg("telegonof")) { if (request->hasArg("telegonof")) {
// bool value = request->getParam("telegonof")->value().toInt(); bool value = request->getParam("telegonof")->value().toInt();
// jsonWriteBool(configSetupJson, "telegonof", value); jsonWriteBool(configSetupJson, "telegonof", value);
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
// if (request->hasArg("teleginput")) { if (request->hasArg("teleginput")) {
// bool value = request->getParam("teleginput")->value().toInt(); bool value = request->getParam("teleginput")->value().toInt();
// jsonWriteBool(configSetupJson, "teleginput", value); jsonWriteBool(configSetupJson, "teleginput", value);
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
//
// //==============================utilities settings============================================= //==============================utilities settings=============================================
// if (request->hasArg("i2c")) { if (request->hasArg("i2c")) {
// myNotAsyncActions->make(do_BUSSCAN); myNotAsyncActions->make(do_BUSSCAN);
// request->redirect("/?set.utilities"); request->redirect("/?set.utilities");
// } }
// if (request->hasArg("uart")) { if (request->hasArg("uart")) {
// bool value = request->getParam("uart")->value().toInt(); bool value = request->getParam("uart")->value().toInt();
// jsonWriteBool(configSetupJson, "uart", value); jsonWriteBool(configSetupJson, "uart", value);
// saveConfig(); saveConfig();
//#ifdef EnableUart #ifdef EnableUart
// uartInit(); uartInit();
//#endif #endif
// request->send(200); request->send(200);
// } }
// if (request->hasArg("uartEvents")) { if (request->hasArg("uartEvents")) {
// bool value = request->getParam("uartEvents")->value().toInt(); bool value = request->getParam("uartEvents")->value().toInt();
// jsonWriteBool(configSetupJson, "uartEvents", value); jsonWriteBool(configSetupJson, "uartEvents", value);
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
// if (request->hasArg("uartS")) { if (request->hasArg("uartS")) {
// jsonWriteStr(configSetupJson, "uartS", request->getParam("uartS")->value()); jsonWriteStr(configSetupJson, "uartS", request->getParam("uartS")->value());
// saveConfig(); saveConfig();
//#ifdef EnableUart #ifdef EnableUart
// uartInit(); uartInit();
//#endif #endif
// request->send(200); request->send(200);
// } }
// if (request->hasArg("uartTX")) { if (request->hasArg("uartTX")) {
// jsonWriteStr(configSetupJson, "uartTX", request->getParam("uartTX")->value()); jsonWriteStr(configSetupJson, "uartTX", request->getParam("uartTX")->value());
// saveConfig(); saveConfig();
//#ifdef EnableUart #ifdef EnableUart
// uartInit(); uartInit();
//#endif #endif
// request->send(200); request->send(200);
// } }
// if (request->hasArg("uartRX")) { if (request->hasArg("uartRX")) {
// jsonWriteStr(configSetupJson, "uartRX", request->getParam("uartRX")->value()); jsonWriteStr(configSetupJson, "uartRX", request->getParam("uartRX")->value());
// saveConfig(); saveConfig();
//#ifdef EnableUart #ifdef EnableUart
// uartInit(); uartInit();
//#endif #endif
// request->send(200); request->send(200);
// } }
//
// //==============================developer settings============================================= //==============================developer settings=============================================
// if (request->hasArg("serverip")) { if (request->hasArg("serverip")) {
// jsonWriteStr(configSetupJson, "serverip", request->getParam("serverip")->value()); jsonWriteStr(configSetupJson, "serverip", request->getParam("serverip")->value());
// saveConfig(); saveConfig();
// serverIP = jsonReadStr(configSetupJson, "serverip"); serverIP = jsonReadStr(configSetupJson, "serverip");
// request->send(200); request->send(200);
// } }
// //set?order=button_1 // set?order=button_1
// if (request->hasArg("order")) { if (request->hasArg("order")) {
// String order = request->getParam("order")->value(); String order = request->getParam("order")->value();
// order.replace("_", " "); order.replace("_", " ");
// loopCmdAdd(order + ","); loopCmdAdd(order + ",");
// request->send(200, "text/html", order); request->send(200, "text/html", order);
// } }
//
// if (request->hasArg("grafmax")) { if (request->hasArg("grafmax")) {
// int value = request->getParam("grafmax")->value().toInt(); int value = request->getParam("grafmax")->value().toInt();
// jsonWriteInt(configSetupJson, "grafmax", value); jsonWriteInt(configSetupJson, "grafmax", value);
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
//
// //gate mode // gate mode
//
// if (request->hasArg("gateAuto")) { if (request->hasArg("gateAuto")) {
// bool value = request->getParam("gateAuto")->value().toInt(); bool value = request->getParam("gateAuto")->value().toInt();
// jsonWriteBool(configSetupJson, "gateAuto", value); jsonWriteBool(configSetupJson, "gateAuto", value);
// saveConfig(); saveConfig();
// request->send(200); request->send(200);
// } }
// });
// });
// // server.on("/del", HTTP_GET, [](AsyncWebServerRequest* request) {
// //server.on("/del", HTTP_GET, [](AsyncWebServerRequest* request) { // if (request->hasArg("file") && request->hasArg("line")) {
// // if (request->hasArg("file") && request->hasArg("line")) { // String fileName = request->getParam("file")->value();
// // String fileName = request->getParam("file")->value(); // Serial.println(fileName);
// // Serial.println(fileName); // int line = request->getParam("line")->value().toInt();
// // int line = request->getParam("line")->value().toInt(); // Serial.println(line);
// // Serial.println(line); // myNotAsyncActions->make(do_delChoosingItems);
// // myNotAsyncActions->make(do_delChoosingItems); // request->redirect(F("/?set.device"));
// // request->redirect(F("/?set.device")); // }
// // } // });
// //});
// server.on("/check", HTTP_GET, [](AsyncWebServerRequest* request) {
// server.on("/check", HTTP_GET, [](AsyncWebServerRequest* request) { myNotAsyncActions->make(do_GETLASTVERSION);
// myNotAsyncActions->make(do_GETLASTVERSION); SerialPrint("I", "Update", "firmware version: " + String(lastVersion));
// SerialPrint("I", "Update", "firmware version: " + String(lastVersion));
// String msg = "";
// String msg = "";
// if (USE_OTA) {
// if (USE_OTA) { if (lastVersion == FIRMWARE_VERSION) {
// if (lastVersion == FIRMWARE_VERSION) { msg = F("Актуальная версия прошивки уже установлена.");
// msg = F("Актуальная версия прошивки уже установлена."); } else if (lastVersion > FIRMWARE_VERSION) {
// } else if (lastVersion > FIRMWARE_VERSION) { msg = F("Новая версия прошивки<a href=\"#\" class=\"btn btn-block btn-danger\" onclick=\"send_request(this, '/upgrade');setTimeout(function(){ location.href='/?set.device'; }, 90000);html('my-block','<span class=loader></span>Идет обновление прошивки, после обновления страница перезагрузится автоматически...')\">Установить</a>");
// msg = F("Новая версия прошивки<a href=\"#\" class=\"btn btn-block btn-danger\" onclick=\"send_request(this, '/upgrade');setTimeout(function(){ location.href='/?set.device'; }, 90000);html('my-block','<span class=loader></span>Идет обновление прошивки, после обновления страница перезагрузится автоматически...')\">Установить</a>"); } else if (lastVersion == -1) {
// } else if (lastVersion == -1) { msg = F("Cервер не найден. Попробуйте повторить позже...");
// msg = F("Cервер не найден. Попробуйте повторить позже..."); } else if (lastVersion == -2) {
// } else if (lastVersion == -2) { msg = F("Устройство не подключено к роутеру!");
// msg = F("Устройство не подключено к роутеру!"); } else if (lastVersion < FIRMWARE_VERSION) {
// } else if (lastVersion < FIRMWARE_VERSION) { msg = F("Ошибка версии. Попробуйте повторить позже...");
// msg = F("Ошибка версии. Попробуйте повторить позже..."); }
// } } else {
// } else { msg = F("Обновление невозможно, память устройства 1 мб");
// msg = F("Обновление невозможно, память устройства 1 мб"); }
// }
// String tmp = "{}";
// String tmp = "{}"; jsonWriteStr(tmp, "title", "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>" + msg);
// jsonWriteStr(tmp, "title", "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>" + msg); jsonWriteStr(tmp, "class", "pop-up");
// jsonWriteStr(tmp, "class", "pop-up"); request->send(200, "text/html", tmp);
// request->send(200, "text/html", tmp); });
// });
// /*
// /* * Upgrade
// * Upgrade */
// */ server.on("/upgrade", HTTP_GET, [](AsyncWebServerRequest* request) {
// server.on("/upgrade", HTTP_GET, [](AsyncWebServerRequest* request) { myNotAsyncActions->make(do_UPGRADE);
// myNotAsyncActions->make(do_UPGRADE); request->send(200, "text/html");
// request->send(200, "text/html"); });
// });
SerialPrint("I", F("Web"), F("WebAdmin Init")); SerialPrint("I", F("Web"), F("WebAdmin Init"));
} }

View File

@@ -11,7 +11,6 @@ AsyncWebSocket ws("/ws");
AsyncEventSource events("/events"); AsyncEventSource events("/events");
void HttpServerinit() { void HttpServerinit() {
String login = jsonReadStr(configSetupJson, "weblogin"); String login = jsonReadStr(configSetupJson, "weblogin");
String pass = jsonReadStr(configSetupJson, "webpass"); String pass = jsonReadStr(configSetupJson, "webpass");
#ifdef ESP32 #ifdef ESP32
@@ -20,6 +19,12 @@ void HttpServerinit() {
server.addHandler(new FSEditor(login, pass)); server.addHandler(new FSEditor(login, pass));
#endif #endif
//#ifdef CORS_DEBUG
DefaultHeaders::Instance().addHeader(F("Access-Control-Allow-Origin"), F("*"));
DefaultHeaders::Instance().addHeader(F("Access-Control-Allow-Headers"), F("content-type"));
//#endif
// server.sendHeader("Access-Control-Allow-Origin", "*");
server.serveStatic("/css/", FileFS, "/css/").setCacheControl("max-age=600"); server.serveStatic("/css/", FileFS, "/css/").setCacheControl("max-age=600");
server.serveStatic("/js/", FileFS, "/js/").setCacheControl("max-age=600"); server.serveStatic("/js/", FileFS, "/js/").setCacheControl("max-age=600");
server.serveStatic("/favicon.ico", FileFS, "/favicon.ico").setCacheControl("max-age=600"); server.serveStatic("/favicon.ico", FileFS, "/favicon.ico").setCacheControl("max-age=600");
@@ -32,9 +37,17 @@ void HttpServerinit() {
server.serveStatic("/", FileFS, "/").setDefaultFile("index.htm").setAuthentication(login.c_str(), pass.c_str()); server.serveStatic("/", FileFS, "/").setDefaultFile("index.htm").setAuthentication(login.c_str(), pass.c_str());
#endif #endif
//server.onNotFound([](AsyncWebServerRequest *request) {
// SerialPrint("[E]", "WebServer", "not found:\n" + getRequestInfo(request));
// request->send(404);
//});
server.onNotFound([](AsyncWebServerRequest *request) { server.onNotFound([](AsyncWebServerRequest *request) {
SerialPrint("[E]", "WebServer", "not found:\n" + getRequestInfo(request)); if (request->method() == HTTP_OPTIONS) {
request->send(404); request->send(200);
} else {
request->send(404);
}
}); });
server.onFileUpload([](AsyncWebServerRequest *request, const String &filename, size_t index, uint8_t *data, size_t len, bool final) { server.onFileUpload([](AsyncWebServerRequest *request, const String &filename, size_t index, uint8_t *data, size_t len, bool final) {
@@ -47,6 +60,11 @@ void HttpServerinit() {
} }
}); });
server.on("/file.json", HTTP_GET, [](AsyncWebServerRequest *request) {
String file = readFile("file.json", 1024);
request->send(200, "application/json", file);
});
// динамические данные // динамические данные
server.on("/config.live.json", HTTP_GET, [](AsyncWebServerRequest *request) { server.on("/config.live.json", HTTP_GET, [](AsyncWebServerRequest *request) {
request->send(200, "application/json", configLiveJson); request->send(200, "application/json", configLiveJson);
@@ -117,7 +135,7 @@ void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventTyp
if (msg.startsWith("/config")) { if (msg.startsWith("/config")) {
// myNotAsyncActions->make(do_webSocketSendSetup); // myNotAsyncActions->make(do_webSocketSendSetup);
wsSetupFlag = true; // wsSetupFlag = true;
} }
if (info->opcode == WS_TEXT) { if (info->opcode == WS_TEXT) {

View File

@@ -6,58 +6,58 @@
#include "Global.h" #include "Global.h"
void wsInit() { void wsInit() {
myWsBuffer = new TCircularBuffer<char*, 20480>; // myWsBuffer = new TCircularBuffer<char*, 20480>;
// myNotAsyncActions->add( // myNotAsyncActions->add(
// do_webSocketSendSetup, [&](void*) { // do_webSocketSendSetup, [&](void*) {
// delay(100); // delay(100);
// wsSendSetup(); // wsSendSetup();
// }, // },
// nullptr); // nullptr);
} }
void wsPublishData(String topic, String data) { void wsPublishData(String topic, String data) {
if (ws.enabled()) { if (ws.enabled()) {
// if (ws.availableForWriteAll()) { if (ws.availableForWriteAll()) {
data = "[" + topic + "]" + data; data = "[" + topic + "]" + data;
ws.textAll(data); ws.textAll(data);
//} }
} }
} }
//отправка setup массива в sockets способом через буфер string, рабочий способ но буфер стринг - плохой метод //отправка setup массива в sockets способом через буфер string, рабочий способ но буфер стринг - плохой метод
// void wsSendSetup3() { void wsSendSetup3() {
// File file = seekFile("/setup.json"); File file = seekFile("/setup.json");
// DynamicJsonDocument doc(2048); DynamicJsonDocument doc(2048);
// int i = 0; int i = 0;
// file.find("["); file.find("[");
// SerialPrint("I", F("WS"), F("start send config")); SerialPrint("I", F("WS"), F("start send config"));
// do { do {
// i++; i++;
// deserializeJson(doc, file); deserializeJson(doc, file);
// wsBuf += doc.as<String>() + "\n"; wsBuf += doc.as<String>() + "\n";
// } while (file.findUntil(",", "]")); } while (file.findUntil(",", "]"));
// SerialPrint("I", F("WS"), F("completed send config")); SerialPrint("I", F("WS"), F("completed send config"));
//} }
// void loopWsExecute3() { void loopWsExecute3() {
// static int attampts = wsAttempts; static int attampts = wsAttempts;
// if (wsBuf.length()) { if (wsBuf.length()) {
// if (attampts > 0) { if (attampts > 0) {
// if (ws.availableForWriteAll()) { if (ws.availableForWriteAll()) {
// String tmp = selectToMarker(wsBuf, "\n"); String tmp = selectToMarker(wsBuf, "\n");
// wsPublishData("config", tmp); wsPublishData("config", tmp);
// wsBuf = deleteBeforeDelimiter(wsBuf, "\n"); wsBuf = deleteBeforeDelimiter(wsBuf, "\n");
// attampts = wsAttempts; attampts = wsAttempts;
// } else { } else {
// attampts--; attampts--;
// SerialPrint("I", F("WS"), String(attampts)); SerialPrint("I", F("WS"), String(attampts));
// } }
// } else { } else {
// SerialPrint("I", F("WS"), F("socket fatal error")); SerialPrint("I", F("WS"), F("socket fatal error"));
// attampts = wsAttempts; attampts = wsAttempts;
// } }
// } }
// } }
//отправка setup массива в sockets способом через кольцевой буфер char //отправка setup массива в sockets способом через кольцевой буфер char
// void wsSendSetup() { // void wsSendSetup() {

View File

@@ -113,12 +113,12 @@ void loop() {
testLoop(); testLoop();
if (wsSetupFlag) { // if (wsSetupFlag) {
wsSetupFlag = false; // wsSetupFlag = false;
wsSendSetup(); // wsSendSetup();
} //}
loopWsExecute(); // loopWsExecute();
#ifdef OTA_UPDATES_ENABLED #ifdef OTA_UPDATES_ENABLED
ArduinoOTA.handle(); ArduinoOTA.handle();