From b799a48c8aba151fe16dd1c0bcc2e528a4bc0944 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Sun, 22 Mar 2020 22:41:52 +0100 Subject: [PATCH] fix many bugs --- SSDP.ino | 40 ++++++++ Upgrade.ino | 47 ++++++--- Web_server.ino | 2 +- WiFi.ino | 9 +- data/lang/lang.ru.json.gz | Bin 395 -> 0 bytes data/push.json | 92 ------------------ {data => date_excess}/.exclude.files | 0 {data => date_excess}/ace.js.gz | Bin {data => date_excess}/config-all.json | 1 + {data => date_excess}/edit.htm.gz | Bin {data => date_excess}/mode-html.js.gz | Bin {data => date_excess}/worker-html.js.gz | Bin ...2-esp8266_iot-manager_modules_firmware.ino | 14 ++- mqtt.ino | 7 +- set.h | 18 ++-- 15 files changed, 99 insertions(+), 131 deletions(-) create mode 100644 SSDP.ino delete mode 100644 data/lang/lang.ru.json.gz delete mode 100644 data/push.json rename {data => date_excess}/.exclude.files (100%) rename {data => date_excess}/ace.js.gz (100%) rename {data => date_excess}/config-all.json (90%) rename {data => date_excess}/edit.htm.gz (100%) rename {data => date_excess}/mode-html.js.gz (100%) rename {data => date_excess}/worker-html.js.gz (100%) diff --git a/SSDP.ino b/SSDP.ino new file mode 100644 index 00000000..2ee42981 --- /dev/null +++ b/SSDP.ino @@ -0,0 +1,40 @@ +/* +void SSDP_init() { + + // --------------------Получаем ssdp со страницы + server.on("/ssdp", HTTP_GET, [](AsyncWebServerRequest * request) { + if (request->hasArg("ssdp")) { + jsonWrite(configSetup, "SSDP", request->getParam("ssdp")->value()); + jsonWrite(configJson, "SSDP", request->getParam("ssdp")->value()); + SSDP.setName(jsonRead(configSetup, "SSDP")); + } + saveConfig(); + request->send(200, "text/text", "OK"); + }); + + // SSDP дескриптор + server.on("/description.xml", [](AsyncWebServerRequest * request) { + //SSDP.schema(http.client()); + request->send(200, "text/text", "OK"); + }); + + + if (WiFi.status() == WL_CONNECTED) { + //Если версия 2.0.0 закаментируйте следующую строчку + SSDP.setDeviceType("upnp:rootdevice"); + SSDP.setSchemaURL("description.xml"); + SSDP.setHTTPPort(80); + SSDP.setName(jsonRead(configSetup, "SSDP")); + SSDP.setSerialNumber(chipID); + SSDP.setURL("/"); + SSDP.setModelName("tech"); + SSDP.setModelNumber(chipID + "/" + jsonRead(configSetup, "SSDP")); + + + SSDP.setModelURL("https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware"); + SSDP.setManufacturer("Borisenko Dmitry"); + SSDP.setManufacturerURL("https://www.instagram.com/rriissee3"); + SSDP.begin(); + } +} +*/ diff --git a/Upgrade.ino b/Upgrade.ino index 2bf9a25a..446173ed 100644 --- a/Upgrade.ino +++ b/Upgrade.ino @@ -1,36 +1,51 @@ void initUpgrade() { server.on("/upgrade", HTTP_GET, [](AsyncWebServerRequest * request) { -#ifdef ESP32 - new_version = getURL("http://91.204.228.124:1100/update/esp32/version.txt"); -#endif -#ifdef ESP8266 - //new_version = getURL("http://91.204.228.124:1100/update/esp8266/version.txt"); -#endif + start_check_version = true; Serial.print("[i] Last firmware version: "); - Serial.println(new_version); + Serial.println(last_version); String tmp = "{}"; - - if (new_version != "error") { - if (new_version == firmware_version) { - jsonWrite(tmp, "title", "Последняя версия прошивки уже установлена."); - jsonWrite(tmp, "class", "pop-up"); + if (!flash_1mb) { + if (last_version != "") { + if (last_version != "error") { + if (last_version == firmware_version) { + jsonWrite(tmp, "title", "Последняя версия прошивки уже установлена."); + jsonWrite(tmp, "class", "pop-up"); + } else { + upgrade_flag = true; + jsonWrite(tmp, "title", "Идет обновление прошивки... После завершения устройство перезагрузится. Подождите одну минуту!!!"); + jsonWrite(tmp, "class", "pop-up"); + } + } else { + jsonWrite(tmp, "title", "Ошибка... Cервер не найден. Попробуйте позже..."); + jsonWrite(tmp, "class", "pop-up"); + } } else { - upgrade_flag = true; - jsonWrite(tmp, "title", "Идет обновление прошивки... После завершения устройство перезагрузится. Подождите минуту..."); + jsonWrite(tmp, "title", "Нажмите на кнопку \"обновить прошивку\" повторно..."); jsonWrite(tmp, "class", "pop-up"); } } else { - jsonWrite(tmp, "title", "Ошибка... Cервер не найден. Попробуйте позже..."); + jsonWrite(tmp, "title", "Обновление по воздуху не поддерживается, модуль имеет меньше 4 мб памяти..."); jsonWrite(tmp, "class", "pop-up"); } - request->send(200, "text/text", tmp); }); } +void handle_get_url() { + if (start_check_version) { + start_check_version = false; +#ifdef ESP32 + last_version = getURL("http://91.204.228.124:1100/update/esp32/version.txt"); +#endif +#ifdef ESP8266 + last_version = getURL("http://91.204.228.124:1100/update/esp8266/version.txt"); +#endif + } +} + void upgrade_firmware() { String scenario_for_update; diff --git a/Web_server.ino b/Web_server.ino index d537103a..f1e67126 100644 --- a/Web_server.ino +++ b/Web_server.ino @@ -146,7 +146,7 @@ void Web_server_init() { }); // ------------------Выполнение команды из запроса - server.on("/cmd", HTTP_GET, [](AsyncWebServerRequest * request) { //http://192.168.88.45/cmd?command=rel 1 1 + server.on("/cmd", HTTP_GET, [](AsyncWebServerRequest * request) { //http://192.168.88.45/cmd?command=rel%201%201 String com = request->getParam("command")->value(); Serial.println(com); order_loop += com + ","; diff --git a/WiFi.ino b/WiFi.ino index 9f948582..086834d1 100644 --- a/WiFi.ino +++ b/WiFi.ino @@ -1,12 +1,5 @@ void WIFI_init() { - - // --------------------Получаем ssid password со страницы - server.on("/wifi.scan.json", HTTP_GET, [](AsyncWebServerRequest * request) { - String tmp; - //tmp = scanWIFI(); - //Serial.println(tmp); - request->send(200, "application/json", tmp); // отправляем ответ о выполнении - }); + // --------------------Получаем ssid password со страницы server.on("/ssid", HTTP_GET, [](AsyncWebServerRequest * request) { if (request->hasArg("ssid")) { diff --git a/data/lang/lang.ru.json.gz b/data/lang/lang.ru.json.gz deleted file mode 100644 index e49a5826ef18270a978a19591a9ac85ec6b92ef5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 395 zcmV;60d)Q!iwFob&?H^}18iY#XD)JeE^2dcZU9x0%}T>S6ovPFijuW0hd=%OOn z2aq97(?B~ZNi2#8X{&-Lx>N+M;scoe(P`4gSGf0$yfd{)y2$39Z_YjE=BiLMPEDuX z=E67jjZ&!uKQPA!h#-M6eTyRAKnM$nNi%i`uQ6d&c-J<$M=#(V!Xiu{CTI*R9N<$* z9d~@&5#FxCzTp=G&BQQ+6-bz+T%G&AEv!Aoz0uAUt&}h!FM5G@An`e64=-4|)8Yyp zk}P2fGYoQ8=8@9AXh~Ggk~A86Jl4(PY%bR0tzn&Y`Pw7FTOFF>Vjmw<;(!U0w-ob% zeU*TSFjcFz=R5ADl3%e$K%#=?I@BC?Mtv3VLhcg`Z~$}45SGhX=DOqh|CCA+kdY*# zM5hgNjhSmU^^J!lO6)605%p01+ik17)!EoD pDan0Kt8mY@#QKI3rrF#P%;%d|Q~Hf6d1Mr>3xCTn4$E@_0049LyEy;= diff --git a/data/push.json b/data/push.json deleted file mode 100644 index 5ae4af98..00000000 --- a/data/push.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "configs": [ -"/config.setup.json" - ], - "class":"col-sm-offset-1 col-sm-10 col-md-offset-2 col-md-8 col-lg-offset-3 col-lg-6", - "content": [ - { - "type": "h5", - "title": "{{SSDP}}", - "class":"alert-warning" - }, - { - "type": "h4", - "title": "Host name:" - }, -{ - "type": "input", - "title": "", - "name":"1", - "state": "{{pushHost}}" - }, -{ - "type": "h4", - "title": "Port:" - }, -{ - "type": "input", - "title": "", - "name":"2", - "state": "{{pushPort}}" - }, -{ - "type": "h4", - "title": "Fingerprint:" - }, -{ - "type": "input", - "title": "", - "name":"3", - "state": "{{pushFingerprint}}" - }, -{ - "type": "h4", - "title": "Access Token:" - }, -{ - "type": "input", - "title": "", - "name":"4", - "state": "{{pushAccessToken}}" - }, -{ - "type":"h3", - "name":"my-block", -"style":"position:fixed;top:30%;left:50%;width:400px;margin-left:-200px;text-align:center;", - "class":"hidden" - }, -{ - "type": "button", - "title":"Сохранить и проверить соединение", - "action": "pushDate?pushHost=[[1]]&pushPort=[[2]]&pushFingerprint=[[3]]&pushAccessToken=[[4]]", - "response":"[[my-block]]", - "class": "btn btn-block btn-success", - "style": "width:100%;display:inline" - }, -{ - "type": "hr" - }, -{ -"type": "checkbox", -"name":"start-push", -"title": "Отправлять push при включении устройства", -"action": "startPush?status=[[start-push]]", -"state": "{{startPush}}" -}, -{ - "type": "hr" - }, - { - "type": "link", - "title": "Перезагрузить устройство", - "action": "javascript:if(confirm(renameBlock(jsonResponse,'Перезагрузить?'))){send_request(this,'/restart?device=ok');}", - "class": "btn btn-block btn-warning" - }, - { - "type": "link", - "title": "Главная", - "action": "/page.htm?index", - "class": "btn btn-block btn-danger btn-sm" - } - ] -} diff --git a/data/.exclude.files b/date_excess/.exclude.files similarity index 100% rename from data/.exclude.files rename to date_excess/.exclude.files diff --git a/data/ace.js.gz b/date_excess/ace.js.gz similarity index 100% rename from data/ace.js.gz rename to date_excess/ace.js.gz diff --git a/data/config-all.json b/date_excess/config-all.json similarity index 90% rename from data/config-all.json rename to date_excess/config-all.json index 9f6f3ef1..6d81dee4 100644 --- a/data/config-all.json +++ b/date_excess/config-all.json @@ -8,6 +8,7 @@ "timezone": 3, "mqttServer": "", "mqttPort": 0, + "mqttPrefix": "/IoTmanager", "mqttUser": "", "mqttPass": "", "scenario": "1", diff --git a/data/edit.htm.gz b/date_excess/edit.htm.gz similarity index 100% rename from data/edit.htm.gz rename to date_excess/edit.htm.gz diff --git a/data/mode-html.js.gz b/date_excess/mode-html.js.gz similarity index 100% rename from data/mode-html.js.gz rename to date_excess/mode-html.js.gz diff --git a/data/worker-html.js.gz b/date_excess/worker-html.js.gz similarity index 100% rename from data/worker-html.js.gz rename to date_excess/worker-html.js.gz diff --git a/esp32-esp8266_iot-manager_modules_firmware.ino b/esp32-esp8266_iot-manager_modules_firmware.ino index db93b88d..182cf42f 100644 --- a/esp32-esp8266_iot-manager_modules_firmware.ino +++ b/esp32-esp8266_iot-manager_modules_firmware.ino @@ -59,20 +59,26 @@ void setup() { Push_init(); Serial.println("[V] Push_init"); //-------------------------------------------------------------- + //SSDP_init(); + //Serial.println("[V] SSDP_init"); + //-------------------------------------------------------------- + Serial.print("[i] Date compiling: "); Serial.println(DATE_COMPILING); getMemoryLoad("[i] After loading"); #ifdef ESP8266 - new_version = getURL("http://91.204.228.124:1100/update/esp8266/version.txt"); + last_version = getURL("http://91.204.228.124:1100/update/esp8266/version.txt"); #endif #ifdef ESP32 - new_version = getURL("http://91.204.228.124:1100/update/esp32/version.txt"); + last_version = getURL("http://91.204.228.124:1100/update/esp32/version.txt"); #endif + jsonWrite(configSetup, "last_version", last_version); + Serial.print("[i] Last firmware version: "); - Serial.println(new_version); + Serial.println(last_version); just_load = false; } @@ -90,7 +96,9 @@ void loop() { #endif handleMQTT(); + handle_connection(); + handle_get_url(); handleCMD_loop(); handleButton(); diff --git a/mqtt.ino b/mqtt.ino index 3c9f86e5..ce8b73cc 100644 --- a/mqtt.ino +++ b/mqtt.ino @@ -38,7 +38,8 @@ void MQTT_init() { jsonWrite(configSetup, "mqttPass", request->getParam("mqttPass")->value()); } saveConfig(); - start_connection = true; + start_connecting_to_mqtt = true; + request->send(200, "text/text", "ok"); }); @@ -51,8 +52,8 @@ void MQTT_init() { } void handle_connection() { - if (start_connection) { - start_connection = false; + if (start_connecting_to_mqtt) { + start_connecting_to_mqtt = false; client.disconnect(); MQTT_Connecting(); } diff --git a/set.h b/set.h index 5d3fe3dd..ce02251e 100644 --- a/set.h +++ b/set.h @@ -1,7 +1,7 @@ String firmware_version = "2.3.1"; -String new_version; - -//23560 +boolean flash_1mb = true; +String last_version; +boolean start_check_version = false; //#define OTA_enable //#define MDNS_enable @@ -33,9 +33,11 @@ String new_version; #ifdef ESP8266 #include #include -#include +//#include +#ifdef MDNS_enable #include - +#endif +//#include #include #include ESP8266HTTPUpdateServer httpUpdater; @@ -50,11 +52,11 @@ ESP8266HTTPUpdateServer httpUpdater; #endif #include #include - +//#include #include #include //HTTPClient http; -#include +//#include #endif //==общие библиотеки и объекты==// @@ -149,4 +151,4 @@ String var; boolean upgrade_flag = false; boolean get_url_flag = false; -boolean start_connection = false; +boolean start_connecting_to_mqtt = false;