From 3e5d9770a1178c00acbe7f15d3360cd05935fc0f Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Fri, 11 Dec 2020 17:37:29 +0300 Subject: [PATCH] 272 --- data/config.json | 4 ++-- data/set.dev.json | 14 ++++++++++++-- data/set.device.json | 31 ++++++++++++++++++++++++------- data/set.mqtt.json | 20 ++++++++++++-------- data/set.telegram.json | 12 +++++++++--- data/set.wifi.json | 11 +++++++++-- include/Consts.h | 11 ++++++++--- src/Class/ScenarioClass3.cpp | 11 ++++++----- src/MqttClient.cpp | 6 +++--- src/Web.cpp | 28 ++++++++++++++++++++-------- 10 files changed, 105 insertions(+), 43 deletions(-) diff --git a/data/config.json b/data/config.json index 10d2fcc6..827b49ed 100644 --- a/data/config.json +++ b/data/config.json @@ -18,8 +18,8 @@ "teleginput":"0", "weblogin": "admin", "webpass": "admin", - "snaUdp": "0", - "snaMqtt": "0", + "MqttIn": "0", + "MqttOut": "0", "blink": "1", "oneWirePin": "2", "serverip": "http://206.189.49.244", diff --git a/data/set.dev.json b/data/set.dev.json index fb697b50..4815eb95 100644 --- a/data/set.dev.json +++ b/data/set.dev.json @@ -37,9 +37,19 @@ "class": "btn btn-block btn-default" }, { - "type": "link", + "type": "hr" + }, + { + "type": "h3", + "name": "reset-block", + "style": "position:fixed;top:50%;left:50%;width:400px;margin-left:-200px;text-align:center;", + "class": "hidden" + }, + { + "type": "button", "title": "Перезагрузить устройство", - "action": "javascript:if(confirm(renameBlock(jsonResponse,'Перезагрузить?'))){send_request(this,'/set?device=ok');}", + "action": "/set?reqReset", + "response": "[[reset-block]]", "class": "btn btn-block btn-danger" } ] diff --git a/data/set.device.json b/data/set.device.json index 4a501636..eec1e537 100644 --- a/data/set.device.json +++ b/data/set.device.json @@ -43,7 +43,7 @@ }, { "type": "h4", - "title": "Версия файловой системы: 271" + "title": "Версия файловой системы: 272" }, { "type": "h4", @@ -179,10 +179,20 @@ }, { "type": "checkbox", - "name": "snaMqtt", - "title": "Включить единые сценарии для всех устройств", - "action": "/set?snaMqtt=[[snaMqtt]]", - "state": "{{snaMqtt}}" + "name": "MqttOut", + "title": "Передавать события другим устройствам", + "action": "/set?MqttOut=[[MqttOut]]", + "state": "{{MqttOut}}" + }, + { + "type": "hr" + }, + { + "type": "checkbox", + "name": "MqttIn", + "title": "Принимать события с других устройств", + "action": "/set?MqttIn=[[MqttIn]]", + "state": "{{MqttIn}}" }, { "type": "hr" @@ -234,9 +244,16 @@ "type": "hr" }, { - "type": "link", + "type": "h3", + "name": "reset-block", + "style": "position:fixed;top:50%;left:50%;width:400px;margin-left:-200px;text-align:center;", + "class": "hidden" + }, + { + "type": "button", "title": "Перезагрузить устройство", - "action": "javascript:if(confirm(renameBlock(jsonResponse,'Перезагрузить?'))){send_request(this,'/set?device=ok');}", + "action": "/set?reqReset", + "response": "[[reset-block]]", "class": "btn btn-block btn-danger" } ] diff --git a/data/set.mqtt.json b/data/set.mqtt.json index a088c2dc..58223acf 100644 --- a/data/set.mqtt.json +++ b/data/set.mqtt.json @@ -9,7 +9,6 @@ "type": "h5", "title": "{{name}}", "class": "alert-default" - }, { "type": "link", @@ -20,7 +19,6 @@ { "type": "hr" }, - { "type": "h4", "title": "{{SetMQTTServerName}}", @@ -87,7 +85,6 @@ "style": "position:fixed;top:30%;left:50%;width:400px;margin-left:-200px;text-align:center;", "class": "hidden" }, - { "type": "button", "title": "{{ButSave}}", @@ -102,7 +99,6 @@ "action": "set?mqttsend", "class": "btn btn-block btn-default" }, - { "type": "button", "style": "width:100%;float:left;", @@ -115,7 +111,6 @@ "type": "text", "style": "width:100%;float:left;", "title": "

{{SetMQTTWarn1}}

" - }, { "type": "text", @@ -123,10 +118,19 @@ "title": "

{{SetMQTTWarn2}}

" }, { - "type": "link", - "style": "width:100%;float:left;", + "type": "hr" + }, + { + "type": "h3", + "name": "reset-block", + "style": "position:fixed;top:50%;left:50%;width:400px;margin-left:-200px;text-align:center;", + "class": "hidden" + }, + { + "type": "button", "title": "Перезагрузить устройство", - "action": "javascript:if(confirm(renameBlock(jsonResponse,'Перезагрузить?'))){send_request(this,'/restart?device=ok');}", + "action": "/set?reqReset", + "response": "[[reset-block]]", "class": "btn btn-block btn-danger" } ] diff --git a/data/set.telegram.json b/data/set.telegram.json index 43db41e8..a0857838 100644 --- a/data/set.telegram.json +++ b/data/set.telegram.json @@ -49,7 +49,6 @@ "name": "chatId-arg", "state": "{{chatId}}" }, - { "type": "h4", "title": "Telegram API token" @@ -78,9 +77,16 @@ "type": "hr" }, { - "type": "link", + "type": "h3", + "name": "reset-block", + "style": "position:fixed;top:50%;left:50%;width:400px;margin-left:-200px;text-align:center;", + "class": "hidden" + }, + { + "type": "button", "title": "Перезагрузить устройство", - "action": "javascript:if(confirm(renameBlock(jsonResponse,'Перезагрузить?'))){send_request(this,'/set?device=ok');}", + "action": "/set?reqReset", + "response": "[[reset-block]]", "class": "btn btn-block btn-danger" } ] diff --git a/data/set.wifi.json b/data/set.wifi.json index 936d1cc2..01fa46f9 100644 --- a/data/set.wifi.json +++ b/data/set.wifi.json @@ -175,9 +175,16 @@ "type": "hr" }, { - "type": "link", + "type": "h3", + "name": "reset-block", + "style": "position:fixed;top:50%;left:50%;width:400px;margin-left:-200px;text-align:center;", + "class": "hidden" + }, + { + "type": "button", "title": "Перезагрузить устройство", - "action": "javascript:if(confirm(renameBlock(jsonResponse,'Перезагрузить?'))){send_request(this,'/set?device=ok');}", + "action": "/set?reqReset", + "response": "[[reset-block]]", "class": "btn btn-block btn-danger" } ] diff --git a/include/Consts.h b/include/Consts.h index d017003f..941df935 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -1,13 +1,18 @@ #pragma once //===========Firmware============================================================================================================================================= -#define FIRMWARE_VERSION 271 +#define FIRMWARE_VERSION 272 //#define FLASH_SIZE_1MB true #ifdef ESP8266 -#define FIRMWARE_NAME "esp8266-iotm" +#ifdef FLASH_SIZE_1MB +#define FIRMWARE_NAME "esp8266-1mb" +#else +#define FIRMWARE_NAME "esp8266" +#endif + #endif #ifdef ESP32 -#define FIRMWARE_NAME "esp32-iotm" +#define FIRMWARE_NAME "esp32" #endif //===========FSystem============================================================================================================================================== diff --git a/src/Class/ScenarioClass3.cpp b/src/Class/ScenarioClass3.cpp index ec2f4efb..b50f3f83 100644 --- a/src/Class/ScenarioClass3.cpp +++ b/src/Class/ScenarioClass3.cpp @@ -10,20 +10,21 @@ void eventGen2(String eventName, String eventValue) { String event = eventName + " " + eventValue + ","; eventBuf += event; - if (jsonReadBool(configSetupJson, "snaMqtt")) publishEvent(eventName, eventValue); - //streamEventUDP(event); + if (jsonReadBool(configSetupJson, "MqttOut")) { + publishEvent(eventName, eventValue); + } } void streamEventUDP(String event) { - #ifdef UDP_ENABLED +#ifdef UDP_ENABLED if (!jsonReadBool(configSetupJson, "snaUdp")) { return; } - + if (event.indexOf("timenow") == -1) { event = "iotm;event:" + event; asyncUdp.broadcastTo(event.c_str(), 4210); } - #endif +#endif } \ No newline at end of file diff --git a/src/MqttClient.cpp b/src/MqttClient.cpp index 2d31e71b..d5ce4107 100644 --- a/src/MqttClient.cpp +++ b/src/MqttClient.cpp @@ -71,7 +71,7 @@ void mqttSubscribe() { mqtt.subscribe((mqttRootDevice + "/+/control").c_str()); mqtt.subscribe((mqttRootDevice + "/update").c_str()); - if (jsonReadBool(configSetupJson, "snaMqtt")) { + if (jsonReadBool(configSetupJson, "MqttIn")) { mqtt.subscribe((mqttPrefix + "/+/+/event").c_str()); mqtt.subscribe((mqttPrefix + "/+/+/info").c_str()); } @@ -143,7 +143,7 @@ void mqttCallback(char* topic, uint8_t* payload, size_t length) { } else if (topicStr.indexOf("event") != -1) { - if (!jsonReadBool(configSetupJson, "snaMqtt")) { + if (!jsonReadBool(configSetupJson, "MqttIn")) { return; } if (topicStr.indexOf(chipId) == -1) { @@ -215,7 +215,7 @@ boolean publishStatus(const String& topic, const String& data) { boolean publishEvent(const String& topic, const String& data) { String path = mqttRootDevice + "/" + topic + "/event"; - return mqtt.publish(path.c_str(), data.c_str(), false); + return mqtt.publish(path.c_str(), data.c_str(), true); } boolean publishInfo(const String& topic, const String& data) { diff --git a/src/Web.cpp b/src/Web.cpp index 5990488b..6be0c2cc 100644 --- a/src/Web.cpp +++ b/src/Web.cpp @@ -88,15 +88,22 @@ void web_init() { // request->send(200); //} - if (request->hasArg("snaMqtt")) { - bool value = request->getParam("snaMqtt")->value().toInt(); - jsonWriteBool(configSetupJson, "snaMqtt", value); + if (request->hasArg("MqttIn")) { + bool value = request->getParam("MqttIn")->value().toInt(); + jsonWriteBool(configSetupJson, "MqttIn", value); saveConfig(); - mqtt.subscribe((mqttPrefix + "/+/+/status").c_str()); + mqtt.subscribe((mqttPrefix + "/+/+/event").c_str()); mqtt.subscribe((mqttPrefix + "/+/+/info").c_str()); request->send(200); } + if (request->hasArg("MqttOut")) { + bool value = request->getParam("MqttOut")->value().toInt(); + jsonWriteBool(configSetupJson, "MqttOut", value); + saveConfig(); + request->send(200); + } + if (request->hasArg("scenMqtt")) { myNotAsyncActions->make(do_sendScenMQTT); request->send(200); @@ -175,10 +182,15 @@ void web_init() { request->send(200); } - if (request->hasArg("device")) { - if (request->getParam("device")->value() == "ok") { - ESP.restart(); - } + if (request->hasArg("reqReset")) { + String tmp = "{}"; + jsonWriteStr(tmp, "title", F("Вы действительно хотите перезагрузить устройство?Идет перезагрузка устройства')\">Перезагрузить")); + jsonWriteStr(tmp, "class", "pop-up"); + request->send(200, "text/html", tmp); + } + + if (request->hasArg("reset")) { + ESP.restart(); request->send(200); }