From be5bd3ede491a7e77e9fe0a120bd93b97a06b44a Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Thu, 11 Jun 2020 22:51:34 +0200 Subject: [PATCH] web interface changed --- Cmd.ino | 86 ++-- FS.ino | 20 +- Init.ino | 48 +- Logging.ino | 12 +- Scenario.ino | 32 +- Sensors.ino | 76 ++-- Time.ino | 8 +- Timers.ino | 18 +- Upgrade.ino | 8 +- Web.ino | 423 +++++++++--------- Web_server.ino | 13 +- WiFi.ino | 30 +- bus.ino | 4 +- data/config.json | 14 +- data/configs/{relay.c.txt => 1-relay.c.txt} | 0 data/configs/{analog.s.txt => 1-relay.s.txt} | 0 data/configs/{dht22.c.txt => 10-dht22.c.txt} | 0 data/configs/{dallas.s.txt => 10-dht22.s.txt} | 0 .../configs/{analog.c.txt => 11-analog.c.txt} | 0 data/configs/{dht11.s.txt => 11-analog.s.txt} | 0 .../configs/{dallas.c.txt => 12-dallas.c.txt} | 0 data/configs/{dht22.s.txt => 12-dallas.s.txt} | 0 .../{termostat.c.txt => 13-termostat.c.txt} | 0 .../{termostat.s.txt => 13-termostat.s.txt} | 0 data/configs/{level.c.txt => 14-level.c.txt} | 0 data/configs/{level.s.txt => 14-level.s.txt} | 0 .../{moution_r.c.txt => 15-moution.c.txt} | 0 .../{moution_r.s.txt => 15-moution.s.txt} | 0 .../{moution_s.c.txt => 16-moution.c.txt} | 0 .../{moution_s.s.txt => 16-moution.s.txt} | 0 .../{stepper.c.txt => 17-stepper.c.txt} | 0 .../{stepper.s.txt => 17-stepper.s.txt} | 0 data/configs/{servo.c.txt => 18-servo.c.txt} | 0 data/configs/{servo.s.txt => 18-servo.s.txt} | 0 data/configs/{relay_t.c.txt => 2-relay.c.txt} | 0 data/configs/{relay_t.s.txt => 2-relay.s.txt} | 0 data/configs/{relay_c.c.txt => 3-relay.c.txt} | 0 data/configs/{relay_c.s.txt => 3-relay.s.txt} | 0 data/configs/{relay_s.c.txt => 4-relay.c.txt} | 0 data/configs/{relay_s.s.txt => 4-relay.s.txt} | 0 .../configs/{relay_sw.c.txt => 5-relay.c.txt} | 0 .../configs/{relay_sw.s.txt => 5-relay.s.txt} | 0 .../configs/{relay_br.c.txt => 6-relay.c.txt} | 0 .../configs/{relay_br.s.txt => 6-relay.s.txt} | 0 .../configs/{relay_sr.c.txt => 7-relay.c.txt} | 0 .../configs/{relay_sr.s.txt => 7-relay.s.txt} | 0 data/configs/{pwm.c.txt => 8-pwm.c.txt} | 0 data/configs/{pwm.s.txt => 8-pwm.s.txt} | 0 data/configs/{dht11.c.txt => 9-dht11.c.txt} | 0 data/configs/{relay.s.txt => 9-dht11.s.txt} | 0 data/configs/relay_rm.c.txt | 3 - data/configs/relay_rm.s.txt | 3 - data/icon.jpeg | Bin 0 -> 15396 bytes data/index.json | 55 +-- data/lang/lang.ru.json | 22 +- data/set.device.json | 97 ++-- data/set.mqtt.json | 104 +++-- data/set.push.json | 95 ++-- data/set.udp.json | 30 +- data/set.utilities.json | 24 +- data/set.wifi.json | 125 +++--- ...2-esp8266_iot-manager_modules_firmware.ino | 2 +- main.ino | 6 +- mqtt.ino | 33 +- push_pushingbox.ino | 2 +- set.h | 15 +- udp.ino | 30 +- 67 files changed, 718 insertions(+), 720 deletions(-) rename data/configs/{relay.c.txt => 1-relay.c.txt} (100%) rename data/configs/{analog.s.txt => 1-relay.s.txt} (100%) rename data/configs/{dht22.c.txt => 10-dht22.c.txt} (100%) rename data/configs/{dallas.s.txt => 10-dht22.s.txt} (100%) rename data/configs/{analog.c.txt => 11-analog.c.txt} (100%) rename data/configs/{dht11.s.txt => 11-analog.s.txt} (100%) rename data/configs/{dallas.c.txt => 12-dallas.c.txt} (100%) rename data/configs/{dht22.s.txt => 12-dallas.s.txt} (100%) rename data/configs/{termostat.c.txt => 13-termostat.c.txt} (100%) rename data/configs/{termostat.s.txt => 13-termostat.s.txt} (100%) rename data/configs/{level.c.txt => 14-level.c.txt} (100%) rename data/configs/{level.s.txt => 14-level.s.txt} (100%) rename data/configs/{moution_r.c.txt => 15-moution.c.txt} (100%) rename data/configs/{moution_r.s.txt => 15-moution.s.txt} (100%) rename data/configs/{moution_s.c.txt => 16-moution.c.txt} (100%) rename data/configs/{moution_s.s.txt => 16-moution.s.txt} (100%) rename data/configs/{stepper.c.txt => 17-stepper.c.txt} (100%) rename data/configs/{stepper.s.txt => 17-stepper.s.txt} (100%) rename data/configs/{servo.c.txt => 18-servo.c.txt} (100%) rename data/configs/{servo.s.txt => 18-servo.s.txt} (100%) rename data/configs/{relay_t.c.txt => 2-relay.c.txt} (100%) rename data/configs/{relay_t.s.txt => 2-relay.s.txt} (100%) rename data/configs/{relay_c.c.txt => 3-relay.c.txt} (100%) rename data/configs/{relay_c.s.txt => 3-relay.s.txt} (100%) rename data/configs/{relay_s.c.txt => 4-relay.c.txt} (100%) rename data/configs/{relay_s.s.txt => 4-relay.s.txt} (100%) rename data/configs/{relay_sw.c.txt => 5-relay.c.txt} (100%) rename data/configs/{relay_sw.s.txt => 5-relay.s.txt} (100%) rename data/configs/{relay_br.c.txt => 6-relay.c.txt} (100%) rename data/configs/{relay_br.s.txt => 6-relay.s.txt} (100%) rename data/configs/{relay_sr.c.txt => 7-relay.c.txt} (100%) rename data/configs/{relay_sr.s.txt => 7-relay.s.txt} (100%) rename data/configs/{pwm.c.txt => 8-pwm.c.txt} (100%) rename data/configs/{pwm.s.txt => 8-pwm.s.txt} (100%) rename data/configs/{dht11.c.txt => 9-dht11.c.txt} (100%) rename data/configs/{relay.s.txt => 9-dht11.s.txt} (100%) delete mode 100644 data/configs/relay_rm.c.txt delete mode 100644 data/configs/relay_rm.s.txt create mode 100644 data/icon.jpeg diff --git a/Cmd.ino b/Cmd.ino index 9001fb42..41d8af9e 100644 --- a/Cmd.ino +++ b/Cmd.ino @@ -99,8 +99,8 @@ void button() { String start_state = sCmd.next(); String page_number = sCmd.next(); - jsonWriteStr(optionJson, "button_param" + button_number, button_param); - jsonWriteStr(configJson, "button" + button_number, start_state); + jsonWriteStr(configOptionJson, "button_param" + button_number, button_param); + jsonWriteStr(configLiveJson, "button" + button_number, start_state); if (isDigitStr (button_param)) { pinMode(button_param.toInt(), OUTPUT); @@ -108,7 +108,7 @@ void button() { } if (button_param == "scen") { - jsonWriteStr(configSetup, "scen", start_state); + jsonWriteStr(configSetupJson, "scen", start_state); Scenario_init(); saveConfig(); } @@ -133,14 +133,14 @@ void buttonSet() { String button_number = sCmd.next(); String button_state = sCmd.next(); - String button_param = jsonReadStr(optionJson, "button_param" + button_number); + String button_param = jsonReadStr(configOptionJson, "button_param" + button_number); if (button_param != "na" || button_param != "scen" || button_param.indexOf("line") != -1) { digitalWrite(button_param.toInt(), button_state.toInt()); } if (button_param == "scen") { - jsonWriteStr(configSetup, "scen", button_state); + jsonWriteStr(configSetupJson, "scen", button_state); Scenario_init(); saveConfig(); } @@ -161,20 +161,20 @@ void buttonSet() { eventGen ("button", button_number); - jsonWriteStr(configJson, "button" + button_number, button_state); + jsonWriteStr(configLiveJson, "button" + button_number, button_state); sendSTATUS("button" + button_number, button_state); } void buttonChange() { String button_number = sCmd.next(); - String current_state = jsonReadStr(configJson, "button" + button_number); + String current_state = jsonReadStr(configLiveJson, "button" + button_number); if (current_state == "1") { current_state = "0"; } else if (current_state == "0") { current_state = "1"; } order_loop += "buttonSet " + button_number + " " + current_state + ","; - jsonWriteStr(configJson, "button" + button_number, current_state); + jsonWriteStr(configLiveJson, "button" + button_number, current_state); sendSTATUS("button" + button_number, current_state); } @@ -205,11 +205,11 @@ void pwm() { uint8_t pwm_pin_int = pwm_pin.toInt(); - jsonWriteStr(optionJson, "pwm_pin" + pwm_number, pwm_pin); + jsonWriteStr(configOptionJson, "pwm_pin" + pwm_number, pwm_pin); pinMode(pwm_pin_int, INPUT); analogWrite(pwm_pin_int, start_state.toInt()); //analogWriteFreq(32000); - jsonWriteStr(configJson, "pwm" + pwm_number, start_state); + jsonWriteStr(configLiveJson, "pwm" + pwm_number, start_state); createWidget (widget_name, page_name, page_number, "widgets/widget.range.json", "pwm" + pwm_number); } @@ -220,12 +220,12 @@ void pwmSet() { String pwm_state = sCmd.next(); int pwm_state_int = pwm_state.toInt(); - int pin = jsonReadInt(optionJson, "pwm_pin" + pwm_number); + int pin = jsonReadInt(configOptionJson, "pwm_pin" + pwm_number); analogWrite(pin, pwm_state_int); eventGen ("pwm", pwm_number); - jsonWriteStr(configJson, "pwm" + pwm_number, pwm_state); + jsonWriteStr(configLiveJson, "pwm" + pwm_number, pwm_state); sendSTATUS("pwm" + pwm_number, pwm_state); } //================================================================================================================== @@ -251,13 +251,13 @@ void handleButton() { eventGen ("switch", String(switch_number)); - jsonWriteStr(configJson, "switch" + String(switch_number), "1"); + jsonWriteStr(configLiveJson, "switch" + String(switch_number), "1"); } if (buttons[switch_number].rose()) { eventGen ("switch", String(switch_number)); - jsonWriteStr(configJson, "switch" + String(switch_number), "0"); + jsonWriteStr(configLiveJson, "switch" + String(switch_number), "0"); } } switch_number++; @@ -275,13 +275,13 @@ void inputDigit() { page_name.replace("#", " "); String start_state = sCmd.next(); String page_number = sCmd.next(); - jsonWriteStr(configJson, "digit" + number, start_state); + jsonWriteStr(configLiveJson, "digit" + number, start_state); createWidget (widget_name, page_name, page_number, "widgets/widget.inputNum.json", "digit" + number); } void digitSet() { String number = sCmd.next(); String value = sCmd.next(); - jsonWriteStr(configJson, "digit" + number, value); + jsonWriteStr(configLiveJson, "digit" + number, value); sendSTATUS("digit" + number, value); } //===================================================================================================================================== @@ -295,13 +295,13 @@ void inputTime() { page_name.replace("#", " "); String start_state = sCmd.next(); String page_number = sCmd.next(); - jsonWriteStr(configJson, "time" + number, start_state); + jsonWriteStr(configLiveJson, "time" + number, start_state); createWidget (widget_name, page_name, page_number, "widgets/widget.inputTime.json", "time" + number); } void timeSet() { String number = sCmd.next(); String value = sCmd.next(); - jsonWriteStr(configJson, "time" + number, value); + jsonWriteStr(configLiveJson, "time" + number, value); sendSTATUS("time" + number, value); } @@ -309,9 +309,9 @@ void handle_time_init() { ts.add(TIME, 1000, [&](void*) { String tmp = GetTime(); - jsonWriteStr(configJson, "time", tmp); + jsonWriteStr(configLiveJson, "time", tmp); tmp.replace(":", "-"); - jsonWriteStr(configJson, "timenow", tmp); + jsonWriteStr(configLiveJson, "timenow", tmp); eventGen ("timenow", ""); }, nullptr, true); @@ -344,7 +344,7 @@ void textSet() { text = text + " " + GetDataDigital() + " " + time; } - jsonWriteStr(configJson, "text" + number, text); + jsonWriteStr(configLiveJson, "text" + number, text); sendSTATUS("text" + number, text); } //===================================================================================================================================== @@ -356,7 +356,7 @@ void stepper() { String pin_step = sCmd.next(); String pin_dir = sCmd.next(); - jsonWriteStr(optionJson, "stepper" + stepper_number, pin_step + " " + pin_dir); + jsonWriteStr(configOptionJson, "stepper" + stepper_number, pin_step + " " + pin_dir); pinMode(pin_step.toInt(), OUTPUT); pinMode(pin_dir.toInt(), OUTPUT); } @@ -365,20 +365,20 @@ void stepper() { void stepperSet() { String stepper_number = sCmd.next(); String steps = sCmd.next(); - jsonWriteStr(optionJson, "steps" + stepper_number, steps); + jsonWriteStr(configOptionJson, "steps" + stepper_number, steps); String stepper_speed = sCmd.next(); - String pin_step = selectToMarker (jsonReadStr(optionJson, "stepper" + stepper_number), " "); - String pin_dir = deleteBeforeDelimiter (jsonReadStr(optionJson, "stepper" + stepper_number), " "); + String pin_step = selectToMarker (jsonReadStr(configOptionJson, "stepper" + stepper_number), " "); + String pin_dir = deleteBeforeDelimiter (jsonReadStr(configOptionJson, "stepper" + stepper_number), " "); Serial.println(pin_step); Serial.println(pin_dir); if (steps.toInt() > 0) digitalWrite(pin_dir.toInt(), HIGH); if (steps.toInt() < 0) digitalWrite(pin_dir.toInt(), LOW); if (stepper_number == "1") { ts.add(STEPPER1, stepper_speed.toInt(), [&](void*) { - int steps_int = abs(jsonReadInt(optionJson, "steps1") * 2); + int steps_int = abs(jsonReadInt(configOptionJson, "steps1") * 2); static int count; count++; - String pin_step = selectToMarker (jsonReadStr(optionJson, "stepper1"), " "); + String pin_step = selectToMarker (jsonReadStr(configOptionJson, "stepper1"), " "); digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt())); yield(); if (count > steps_int) { @@ -390,10 +390,10 @@ void stepperSet() { } if (stepper_number == "2") { ts.add(STEPPER2, stepper_speed.toInt(), [&](void*) { - int steps_int = abs(jsonReadInt(optionJson, "steps2") * 2); + int steps_int = abs(jsonReadInt(configOptionJson, "steps2") * 2); static int count; count++; - String pin_step = selectToMarker (jsonReadStr(optionJson, "stepper2"), " "); + String pin_step = selectToMarker (jsonReadStr(configOptionJson, "stepper2"), " "); digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt())); yield(); if (count > steps_int) { @@ -425,7 +425,7 @@ void servo_() { String page_number = sCmd.next(); - jsonWriteStr(optionJson, "servo_pin" + servo_number, servo_pin); + jsonWriteStr(configOptionJson, "servo_pin" + servo_number, servo_pin); start_state_int = map(start_state_int, min_value.toInt(), max_value.toInt(), min_deg.toInt(), max_deg.toInt()); if (servo_number == "1") { @@ -450,12 +450,12 @@ void servo_() { #endif } - jsonWriteStr(optionJson, "s_min_val" + servo_number, min_value); - jsonWriteStr(optionJson, "s_max_val" + servo_number, max_value); - jsonWriteStr(optionJson, "s_min_deg" + servo_number, min_deg); - jsonWriteStr(optionJson, "s_max_deg" + servo_number, max_deg); + jsonWriteStr(configOptionJson, "s_min_val" + servo_number, min_value); + jsonWriteStr(configOptionJson, "s_max_val" + servo_number, max_value); + jsonWriteStr(configOptionJson, "s_min_deg" + servo_number, min_deg); + jsonWriteStr(configOptionJson, "s_max_deg" + servo_number, max_deg); - jsonWriteStr(configJson, "servo" + servo_number, start_state); + jsonWriteStr(configLiveJson, "servo" + servo_number, start_state); createWidgetParam (widget_name, page_name, page_number, "widgets/widget.range.json", "servo" + servo_number, "min", min_value, "max", max_value, "k", "1"); } @@ -465,13 +465,13 @@ void servoSet() { String servo_state = sCmd.next(); int servo_state_int = servo_state.toInt(); - int pin = jsonReadInt(optionJson, "servo_pin" + servo_number); + int pin = jsonReadInt(configOptionJson, "servo_pin" + servo_number); servo_state_int = map(servo_state_int, - jsonReadInt(optionJson, "s_min_val" + servo_number), - jsonReadInt(optionJson, "s_max_val" + servo_number), - jsonReadInt(optionJson, "s_min_deg" + servo_number), - jsonReadInt(optionJson, "s_max_deg" + servo_number)); + jsonReadInt(configOptionJson, "s_min_val" + servo_number), + jsonReadInt(configOptionJson, "s_max_val" + servo_number), + jsonReadInt(configOptionJson, "s_min_deg" + servo_number), + jsonReadInt(configOptionJson, "s_max_deg" + servo_number)); if (servo_number == "1") { #ifdef ESP8266 @@ -495,7 +495,7 @@ void servoSet() { eventGen ("servo", servo_number); - jsonWriteStr(configJson, "servo" + servo_number, servo_state); + jsonWriteStr(configLiveJson, "servo" + servo_number, servo_state); sendSTATUS("servo" + servo_number, servo_state); } #endif @@ -523,7 +523,7 @@ void mqttOrderSend() { String id = sCmd.next(); String order = sCmd.next(); - String all_line = jsonReadStr(configSetup, "mqttPrefix") + "/" + id + "/order"; + String all_line = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + id + "/order"; //Serial.print(all_line); //Serial.print("->"); //Serial.println(order); @@ -547,7 +547,7 @@ void firmware() { String widget_name = sCmd.next(); String page_name = sCmd.next(); String page_number = sCmd.next(); - jsonWriteStr(configJson, "firm1", firmware_version); + jsonWriteStr(configLiveJson, "firm1", firmware_version); choose_widget_and_create(widget_name, page_name, page_number, "any-data", "firm1"); } diff --git a/FS.ino b/FS.ino index 5b4b5ee6..54b4ec54 100644 --- a/FS.ino +++ b/FS.ino @@ -5,29 +5,29 @@ void File_system_init() { Serial.println("--------------started----------------"); //-------------------------------------------------------------- SPIFFS.begin(); - configSetup = readFile("config.json", 4096); - configSetup.replace(" ", ""); - configSetup.replace("\r\n", ""); - Serial.println(configSetup); - jsonWriteStr(configJson, "name", jsonReadStr(configSetup, "name")); - jsonWriteStr(configJson, "lang", jsonReadStr(configSetup, "lang")); + configSetupJson = readFile("config.json", 4096); + configSetupJson.replace(" ", ""); + configSetupJson.replace("\r\n", ""); + Serial.println(configSetupJson); + //jsonWriteStr(configLiveJson, "name", jsonReadStr(configSetupJson, "name")); + //jsonWriteStr(configLiveJson, "lang", jsonReadStr(configSetupJson, "lang")); #ifdef ESP32 uint32_t chipID_u = ESP.getEfuseMac(); chipID = String(chipID_u); - jsonWriteStr(configSetup, "chipID", chipID); + jsonWriteStr(configSetupJson, "chipID", chipID); #endif #ifdef ESP8266 chipID = String( ESP.getChipId() ) + "-" + String(ESP.getFlashChipId()); - jsonWriteStr(configSetup, "chipID", chipID); + jsonWriteStr(configSetupJson, "chipID", chipID); Serial.setDebugOutput(0); #endif - jsonWriteStr(configSetup, "firmware_version", firmware_version); + jsonWriteStr(configSetupJson, "firmware_version", firmware_version); - prex = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID; + prex = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID; Serial.println(chipID); } diff --git a/Init.ino b/Init.ino index 4465b97f..c5dd153d 100644 --- a/Init.ino +++ b/Init.ino @@ -5,7 +5,7 @@ void All_init() { } void Device_init() { - + logging_value_names_list = ""; enter_to_logging_counter = LOG1 - 1; @@ -47,47 +47,27 @@ void Device_init() { //-------------------------------сценарии----------------------------------------------------- void Scenario_init() { - if (jsonReadStr(configSetup, "scen") == "1") { + if (jsonReadStr(configSetupJson, "scen") == "1") { scenario = readFile("firmware.s.txt", 2048); } } -void up_time() { - uint32_t ss = millis() / 1000; - uint32_t mm = ss / 60; - uint32_t hh = mm / 60; - uint32_t dd = hh / 24; - - String out = ""; - - if (ss != 0) { - out = "[i] uptime = " + String(ss) + " sec"; - jsonWriteStr(configJson, "uptime", String(ss) + " sec"); - } - if (mm != 0) { - out = "[i] uptime = " + String(mm) + " min"; - jsonWriteStr(configJson, "uptime", String(mm) + " min"); - } - if (hh != 0) { - out = "[i] uptime = " + String(hh) + " hours"; - jsonWriteStr(configJson, "uptime", String(hh) + " hours"); - } - if (dd != 0) { - out = "[i] uptime = " + String(dd) + " days"; - jsonWriteStr(configJson, "uptime", String(dd) + " days"); - } - Serial.println(out + ", mqtt_lost_error: " + String(mqtt_lost_error) + ", wifi_lost_error: " + String(wifi_lost_error)); -} - -void statistics_init() { +void uptime_init() { + ts.add(UPTIME, 5000, [&](void*) { + handle_uptime(); + }, nullptr, true); ts.add(STATISTICS, statistics_update, [&](void*) { - - statistics(); - + handle_statistics(); }, nullptr, true); } -void statistics() { +void handle_uptime() { + if (myUpTime.check()) { + jsonWriteStr(configSetupJson, "uptime", uptime_as_string()); + } +} + +void handle_statistics() { if (WiFi.status() == WL_CONNECTED) { String urls = "http://backup.privet.lv/visitors/?"; //----------------------------------------------------------------- diff --git a/Logging.ino b/Logging.ino index 8f25bad1..0becb878 100644 --- a/Logging.ino +++ b/Logging.ino @@ -11,40 +11,40 @@ void logging() { String page_number = sCmd.next(); logging_value_names_list += value_name + ","; enter_to_logging_counter++; //считаем количество входов в эту функцию - jsonWriteStr(optionJson, value_name + "_c", maxCount); //создаем в файловой системе переменную количества точек на графике с отметкой _c что значит count + jsonWriteStr(configOptionJson, value_name + "_c", maxCount); //создаем в файловой системе переменную количества точек на графике с отметкой _c что значит count createChart (widget_name, page_name, page_number, "widgets/widget.chart.json", value_name + "_ch", maxCount); //создаем график в приложении с топиком _ch /prefix/3234045-1589487/value_name_ch if (enter_to_logging_counter == LOG1) { ts.add(LOG1, period_min.toInt() * 1000 * 60, [&](void*) { String tmp_buf_1 = selectFromMarkerToMarker(logging_value_names_list, ",", 0); - deleteOldDate("log." + tmp_buf_1 + ".txt", jsonReadInt(optionJson, tmp_buf_1 + "_c"), jsonReadStr(configJson, tmp_buf_1)); + deleteOldDate("log." + tmp_buf_1 + ".txt", jsonReadInt(configOptionJson, tmp_buf_1 + "_c"), jsonReadStr(configLiveJson, tmp_buf_1)); Serial.println("[i] LOGGING for sensor '" + tmp_buf_1 + "' done"); }, nullptr, false); } if (enter_to_logging_counter == LOG2) { ts.add(LOG2, period_min.toInt() * 1000 * 60, [&](void*) { String tmp_buf_2 = selectFromMarkerToMarker(logging_value_names_list, ",", 1); - deleteOldDate("log." + tmp_buf_2 + ".txt", jsonReadInt(optionJson, tmp_buf_2 + "_c"), jsonReadStr(configJson, tmp_buf_2)); + deleteOldDate("log." + tmp_buf_2 + ".txt", jsonReadInt(configOptionJson, tmp_buf_2 + "_c"), jsonReadStr(configLiveJson, tmp_buf_2)); Serial.println("[i] LOGGING for sensor '" + tmp_buf_2 + "' done"); }, nullptr, false); } if (enter_to_logging_counter == LOG3) { ts.add(LOG3, period_min.toInt() * 1000 * 60, [&](void*) { String tmp_buf_3 = selectFromMarkerToMarker(logging_value_names_list, ",", 2); - deleteOldDate("log." + tmp_buf_3 + ".txt", jsonReadInt(optionJson, tmp_buf_3 + "_c"), jsonReadStr(configJson, tmp_buf_3)); + deleteOldDate("log." + tmp_buf_3 + ".txt", jsonReadInt(configOptionJson, tmp_buf_3 + "_c"), jsonReadStr(configLiveJson, tmp_buf_3)); Serial.println("[i] LOGGING for sensor '" + tmp_buf_3 + "' done"); }, nullptr, false); } if (enter_to_logging_counter == LOG4) { ts.add(LOG4, period_min.toInt() * 1000 * 60, [&](void*) { String tmp_buf_4 = selectFromMarkerToMarker(logging_value_names_list, ",", 3); - deleteOldDate("log." + tmp_buf_4 + ".txt", jsonReadInt(optionJson, tmp_buf_4 + "_c"), jsonReadStr(configJson, tmp_buf_4)); + deleteOldDate("log." + tmp_buf_4 + ".txt", jsonReadInt(configOptionJson, tmp_buf_4 + "_c"), jsonReadStr(configLiveJson, tmp_buf_4)); Serial.println("[i] LOGGING for sensor '" + tmp_buf_4 + "' done"); }, nullptr, false); } if (enter_to_logging_counter == LOG5) { ts.add(LOG5, period_min.toInt() * 1000 * 60, [&](void*) { String tmp_buf_5 = selectFromMarkerToMarker(logging_value_names_list, ",", 4); - deleteOldDate("log." + tmp_buf_5 + ".txt", jsonReadInt(optionJson, tmp_buf_5 + "_c"), jsonReadStr(configJson, tmp_buf_5)); + deleteOldDate("log." + tmp_buf_5 + ".txt", jsonReadInt(configOptionJson, tmp_buf_5 + "_c"), jsonReadStr(configLiveJson, tmp_buf_5)); Serial.println("[i] LOGGING for sensor '" + tmp_buf_5 + "' done"); }, nullptr, false); } diff --git a/Scenario.ino b/Scenario.ino index 8422b0fa..96411b48 100644 --- a/Scenario.ino +++ b/Scenario.ino @@ -1,7 +1,7 @@ void handleScenario() { - if (jsonReadStr(configSetup, "scen") == "1") { - if ((jsonReadStr(optionJson, "scenario_status") != "")) { + if (jsonReadStr(configSetupJson, "scen") == "1") { + if ((jsonReadStr(configOptionJson, "scenario_status") != "")) { int i = 0; String str = scenario; //читаем переменную с сценариями (то что из файла на странице) str += "\n"; @@ -17,7 +17,7 @@ void handleScenario() { //Serial.println(i); String condition = selectToMarker (tmp, "\n"); //выделяем первую строку самого сценария button1 = 1 (условие) String param_name = selectFromMarkerToMarker(condition, " " , 0); - String order = jsonReadStr(optionJson, "scenario_status"); //читаем весь файл событий + String order = jsonReadStr(configOptionJson, "scenario_status"); //читаем весь файл событий String param = selectToMarker (order, ","); //читаем первое событие из файла событий if (param_name == param) { //если поступившее событие равно событию заданному buttonSet1 в файле начинаем его обработку @@ -25,30 +25,30 @@ void handleScenario() { String value = selectFromMarkerToMarker(condition, " " , 2); //читаем значение (1) if (value.indexOf("digit") != -1) { // value = add_set(value); - value = jsonReadStr(configJson, value); + value = jsonReadStr(configLiveJson, value); } if (value.indexOf("time") != -1) { // value = add_set(value); - value = jsonReadStr(configJson, value); + value = jsonReadStr(configLiveJson, value); } boolean flag = false; //если одно из значений совпало то только тогда начинаем выполнять комнады if (sign == "=") { - if (jsonReadStr(configJson, param_name) == value) flag = true; + if (jsonReadStr(configLiveJson, param_name) == value) flag = true; } if (sign == "!=") { - if (jsonReadStr(configJson, param_name) != value) flag = true; + if (jsonReadStr(configLiveJson, param_name) != value) flag = true; } if (sign == "<") { - if (jsonReadStr(configJson, param_name).toInt() < value.toInt()) flag = true; + if (jsonReadStr(configLiveJson, param_name).toInt() < value.toInt()) flag = true; } if (sign == ">") { - if (jsonReadStr(configJson, param_name).toInt() > value.toInt()) flag = true; + if (jsonReadStr(configLiveJson, param_name).toInt() > value.toInt()) flag = true; } if (sign == ">=") { - if (jsonReadStr(configJson, param_name).toInt() >= value.toInt()) flag = true; + if (jsonReadStr(configLiveJson, param_name).toInt() >= value.toInt()) flag = true; } if (sign == "<=") { - if (jsonReadStr(configJson, param_name).toInt() <= value.toInt()) flag = true; + if (jsonReadStr(configLiveJson, param_name).toInt() <= value.toInt()) flag = true; } if (flag) { @@ -63,9 +63,9 @@ void handleScenario() { str = deleteBeforeDelimiter(str, "end\n"); //удаляем первый сценарий //----------------------------------------------------------------------------------------------------------------------- } - String tmp2 = jsonReadStr(optionJson, "scenario_status"); //читаем файл событий + String tmp2 = jsonReadStr(configOptionJson, "scenario_status"); //читаем файл событий tmp2 = deleteBeforeDelimiter(tmp2, ","); //удаляем выполненное событие - jsonWriteStr(optionJson, "scenario_status", tmp2); //записываем обновленный файл событий + jsonWriteStr(configOptionJson, "scenario_status", tmp2); //записываем обновленный файл событий i = 0; } } @@ -73,10 +73,10 @@ void handleScenario() { void eventGen (String event_name, String number) { //событие выглядит как имя плюс set плюс номер: button+Set+1 - if (jsonReadStr(configSetup, "scen") == "1") { - String tmp = jsonReadStr(optionJson, "scenario_status") ; //генерирование события + if (jsonReadStr(configSetupJson, "scen") == "1") { + String tmp = jsonReadStr(configOptionJson, "scenario_status") ; //генерирование события //Serial.println(event_name); - jsonWriteStr(optionJson, "scenario_status", tmp + event_name + number + ","); + jsonWriteStr(configOptionJson, "scenario_status", tmp + event_name + number + ","); } } diff --git a/Sensors.ino b/Sensors.ino index 822949a0..9a837b89 100644 --- a/Sensors.ino +++ b/Sensors.ino @@ -57,10 +57,10 @@ void level() { String full_level = sCmd.next(); String page_number = sCmd.next(); level_value_name = value_name; - jsonWriteStr(optionJson, "e_lev", empty_level); - jsonWriteStr(optionJson, "f_lev", full_level); - jsonWriteStr(optionJson, "trig", trig); - jsonWriteStr(optionJson, "echo", echo); + jsonWriteStr(configOptionJson, "e_lev", empty_level); + jsonWriteStr(configOptionJson, "f_lev", full_level); + jsonWriteStr(configOptionJson, "trig", trig); + jsonWriteStr(configOptionJson, "echo", echo); pinMode(trig.toInt(), OUTPUT); pinMode(echo.toInt(), INPUT); choose_widget_and_create(widget_name, page_name, page_number, type, value_name); @@ -72,8 +72,8 @@ void level_reading() { int distance_cm; int level; static int counter; - int trig = jsonReadInt(optionJson, "trig"); - int echo = jsonReadInt(optionJson, "echo"); + int trig = jsonReadInt(configOptionJson, "trig"); + int echo = jsonReadInt(configOptionJson, "echo"); digitalWrite(trig, LOW); delayMicroseconds(2); digitalWrite(trig, HIGH); @@ -86,9 +86,9 @@ void level_reading() { if (counter > tank_level_times_to_send) { counter = 0; level = map(distance_cm, - jsonReadInt(optionJson, "e_lev"), - jsonReadInt(optionJson, "f_lev"), 0, 100); - jsonWriteInt(configJson, level_value_name, level); + jsonReadInt(configOptionJson, "e_lev"), + jsonReadInt(configOptionJson, "f_lev"), 0, 100); + jsonWriteInt(configLiveJson, level_value_name, level); eventGen (level_value_name, ""); sendSTATUS(level_value_name, String(level)); Serial.println("[i] sensor '" + level_value_name + "' data: " + String(level)); @@ -112,10 +112,10 @@ void analog() { String page_number = sCmd.next(); analog_value_names_list += value_name + ","; enter_to_analog_counter++; - jsonWriteStr(optionJson, value_name + "_st", analog_start); - jsonWriteStr(optionJson, value_name + "_end", analog_end); - jsonWriteStr(optionJson, value_name + "_st_out", analog_start_out); - jsonWriteStr(optionJson, value_name + "_end_out", analog_end_out); + jsonWriteStr(configOptionJson, value_name + "_st", analog_start); + jsonWriteStr(configOptionJson, value_name + "_end", analog_end); + jsonWriteStr(configOptionJson, value_name + "_st_out", analog_start_out); + jsonWriteStr(configOptionJson, value_name + "_end_out", analog_end_out); choose_widget_and_create(widget_name, page_name, page_number, type, value_name); if (enter_to_analog_counter == 1) { sensors_reading_map[1] = 1; @@ -134,11 +134,11 @@ void analog_reading1() { int analog_in = analogRead(A0); #endif int analog = map(analog_in, - jsonReadInt(optionJson, value_name + "_st") , - jsonReadInt(optionJson, value_name + "_end"), - jsonReadInt(optionJson, value_name + "_st_out"), - jsonReadInt(optionJson, value_name + "_end_out")); - jsonWriteInt(configJson, value_name, analog); + jsonReadInt(configOptionJson, value_name + "_st") , + jsonReadInt(configOptionJson, value_name + "_end"), + jsonReadInt(configOptionJson, value_name + "_st_out"), + jsonReadInt(configOptionJson, value_name + "_end_out")); + jsonWriteInt(configLiveJson, value_name, analog); eventGen (value_name, ""); sendSTATUS(value_name, String(analog)); Serial.println("[i] sensor '" + value_name + "' data: " + String(analog)); @@ -153,11 +153,11 @@ void analog_reading2() { int analog_in = analogRead(A0); #endif int analog = map(analog_in, - jsonReadInt(optionJson, value_name + "_st") , - jsonReadInt(optionJson, value_name + "_end"), - jsonReadInt(optionJson, value_name + "_st_out"), - jsonReadInt(optionJson, value_name + "_end_out")); - jsonWriteInt(configJson, value_name, analog); + jsonReadInt(configOptionJson, value_name + "_st") , + jsonReadInt(configOptionJson, value_name + "_end"), + jsonReadInt(configOptionJson, value_name + "_st_out"), + jsonReadInt(configOptionJson, value_name + "_end_out")); + jsonWriteInt(configLiveJson, value_name, analog); eventGen (value_name, ""); sendSTATUS(value_name, String(analog)); Serial.println("[i] sensor '" + value_name + "' data: " + String(analog)); @@ -186,7 +186,7 @@ void dallas_reading() { float temp = 0; sensors.requestTemperatures(); temp = sensors.getTempCByIndex(0); - jsonWriteStr(configJson, "dallas", String(temp)); + jsonWriteStr(configLiveJson, "dallas", String(temp)); eventGen ("dallas", ""); sendSTATUS("dallas", String(temp)); Serial.println("[i] sensor 'dallas' send date " + String(temp)); @@ -226,7 +226,7 @@ void dhtT_reading() { value = dht.getTemperature(); if (String(value) != "nan") { eventGen (dhtT_value_name, ""); - jsonWriteStr(configJson, dhtT_value_name, String(value)); + jsonWriteStr(configLiveJson, dhtT_value_name, String(value)); sendSTATUS(dhtT_value_name, String(value)); Serial.println("[i] sensor '" + dhtT_value_name + "' data: " + String(value)); } @@ -264,7 +264,7 @@ void dhtH_reading() { value = dht.getHumidity(); if (String(value) != "nan") { eventGen (dhtH_value_name, ""); - jsonWriteStr(configJson, dhtH_value_name, String(value)); + jsonWriteStr(configLiveJson, dhtH_value_name, String(value)); sendSTATUS(dhtH_value_name, String(value)); Serial.println("[i] sensor '" + dhtH_value_name + "' data: " + String(value)); } @@ -285,9 +285,9 @@ void dhtP_reading() { if (dht.getStatus() != 0) { sendSTATUS("dhtPerception", String(dht.getStatusString())); } else { - value = dht.computePerception(jsonReadStr(configJson, dhtT_value_name).toFloat(), jsonReadStr(configJson, dhtH_value_name).toFloat(), false); + value = dht.computePerception(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false); String final_line = perception(value); - jsonWriteStr(configJson, "dhtPerception", final_line); + jsonWriteStr(configLiveJson, "dhtPerception", final_line); eventGen ("dhtPerception", ""); sendSTATUS("dhtPerception", final_line); if (client_mqtt.connected()) { @@ -322,9 +322,9 @@ void dhtC_reading() { if (dht.getStatus() != 0) { sendSTATUS("dhtComfort", String(dht.getStatusString())); } else { - value = dht.getComfortRatio(cf, jsonReadStr(configJson, dhtT_value_name).toFloat(), jsonReadStr(configJson, dhtH_value_name).toFloat(), false); + value = dht.getComfortRatio(cf, jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false); String final_line = get_comfort_status(cf); - jsonWriteStr(configJson, "dhtComfort", final_line); + jsonWriteStr(configLiveJson, "dhtComfort", final_line); eventGen ("dhtComfort", ""); sendSTATUS("dhtComfort", final_line); Serial.println("[i] sensor 'dhtComfort' send date " + final_line); @@ -383,8 +383,8 @@ void dhtD_reading() { if (dht.getStatus() != 0) { sendSTATUS("dhtDewpoint", String(dht.getStatusString())); } else { - value = dht.computeDewPoint(jsonReadStr(configJson, dhtT_value_name).toFloat(), jsonReadStr(configJson, dhtH_value_name).toFloat(), false); - jsonWriteInt(configJson, "dhtDewpoint", value); + value = dht.computeDewPoint(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false); + jsonWriteInt(configLiveJson, "dhtDewpoint", value); eventGen ("dhtDewpoint", ""); sendSTATUS("dhtDewpoint", String(value)); Serial.println("[i] sensor 'dhtDewpoint' data: " + String(value)); @@ -420,7 +420,7 @@ void bmp280T_rading() { sensors_event_t temp_event, pressure_event; bmp_temp->getEvent(&temp_event); value = temp_event.temperature; - jsonWriteStr(configJson, bmp280T_value_name, String(value)); + jsonWriteStr(configLiveJson, bmp280T_value_name, String(value)); eventGen(bmp280T_value_name, ""); sendSTATUS(bmp280T_value_name, String(value)); Serial.println("[i] sensor '" + bmp280T_value_name + "' data: " + String(value)); @@ -452,7 +452,7 @@ void bmp280P_reading() { bmp_pressure->getEvent(&pressure_event); value = pressure_event.pressure; value = value / 1.333224; - jsonWriteStr(configJson, bmp280P_value_name, String(value)); + jsonWriteStr(configLiveJson, bmp280P_value_name, String(value)); eventGen(bmp280P_value_name, ""); sendSTATUS(bmp280P_value_name, String(value)); Serial.println("[i] sensor '" + bmp280P_value_name + "' data: " + String(value)); @@ -478,7 +478,7 @@ void bme280T() { void bme280T_reading() { float value = 0; value = bme.readTemperature(); - jsonWriteStr(configJson, bme280T_value_name, String(value)); + jsonWriteStr(configLiveJson, bme280T_value_name, String(value)); eventGen(bme280T_value_name, ""); sendSTATUS(bme280T_value_name, String(value)); Serial.println("[i] sensor '" + bme280T_value_name + "' data: " + String(value)); @@ -501,7 +501,7 @@ void bme280P() { void bme280P_reading() { float value = 0; value = bme.readPressure(); - jsonWriteStr(configJson, bme280P_value_name, String(value)); + jsonWriteStr(configLiveJson, bme280P_value_name, String(value)); eventGen(bme280P_value_name, ""); sendSTATUS(bme280P_value_name, String(value)); Serial.println("[i] sensor '" + bme280P_value_name + "' data: " + String(value)); @@ -524,7 +524,7 @@ void bme280H() { void bme280H_reading() { float value = 0; value = bme.readHumidity(); - jsonWriteStr(configJson, bme280H_value_name, String(value)); + jsonWriteStr(configLiveJson, bme280H_value_name, String(value)); eventGen(bme280H_value_name, ""); sendSTATUS(bme280H_value_name, String(value)); Serial.println("[i] sensor '" + bme280H_value_name + "' data: " + String(value)); @@ -547,7 +547,7 @@ void bme280A() { void bme280A_reading() { float value = 0; value = bme.readAltitude(1013.25); - jsonWriteStr(configJson, bme280A_value_name, String(value)); + jsonWriteStr(configLiveJson, bme280A_value_name, String(value)); eventGen(bme280A_value_name, ""); sendSTATUS(bme280A_value_name, String(value)); Serial.println("[i] sensor '" + bme280A_value_name + "' data: " + String(value)); diff --git a/Time.ino b/Time.ino index b1fc9b66..6eb6d43e 100644 --- a/Time.ino +++ b/Time.ino @@ -13,7 +13,7 @@ void time_check() { void reconfigTime() { if (WiFi.status() == WL_CONNECTED) { - String ntp = jsonReadStr(configSetup, "ntp"); + String ntp = jsonReadStr(configSetupJson, "ntp"); configTime(0, 0, ntp.c_str()); int i = 0; Serial.println("[i] Awaiting for time "); @@ -57,7 +57,7 @@ String GetTimeUnix() { // Получение текущего времени String GetTime() { time_t now = time(nullptr); // получаем время с помощью библиотеки time.h - int zone = 3600 * jsonReadStr(configSetup, "timezone").toInt(); + int zone = 3600 * jsonReadStr(configSetupJson, "timezone").toInt(); now = now + zone; String Time = ""; // Строка для результатов времени Time += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017 @@ -68,7 +68,7 @@ String GetTime() { String GetTimeWOsec() { time_t now = time(nullptr); // получаем время с помощью библиотеки time.h - int zone = 3600 * jsonReadStr(configSetup, "timezone").toInt(); + int zone = 3600 * jsonReadStr(configSetupJson, "timezone").toInt(); now = now + zone; String Time = ""; // Строка для результатов времени Time += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017 @@ -80,7 +80,7 @@ String GetTimeWOsec() { // Получение даты String GetDate() { time_t now = time(nullptr); // получаем время с помощью библиотеки time.h - int zone = 3600 * jsonReadStr(configSetup, "timezone").toInt(); + int zone = 3600 * jsonReadStr(configSetupJson, "timezone").toInt(); now = now + zone; String Data = ""; // Строка для результатов времени Data += ctime(&now); // Преобразуем время в строку формата Thu Jan 19 00:55:35 2017 diff --git a/Timers.ino b/Timers.ino index 941f0c0d..a744a310 100644 --- a/Timers.ino +++ b/Timers.ino @@ -4,7 +4,7 @@ void Timer_countdown_init() { ts.add(TIMER_COUNTDOWN, 1000, [&](void*) { - String old_line = jsonReadStr(optionJson, "timers"); + String old_line = jsonReadStr(configOptionJson, "timers"); if (old_line != "") { //Serial.println(old_line); int i = 0; @@ -17,7 +17,7 @@ void Timer_countdown_init() { int time = readTimer(number); if (time == 0) { delTimer (String (number)); - jsonWriteStr(configJson, "timer" + String(number), "0"); + jsonWriteStr(configLiveJson, "timer" + String(number), "0"); eventGen ("timer", String(number)); } else { time--; @@ -35,16 +35,16 @@ void timerStart() { String type = sCmd.next(); if (period_of_time.indexOf("digit") != -1) { //period_of_time = add_set(period_of_time); - period_of_time = jsonReadStr(configJson, period_of_time); + period_of_time = jsonReadStr(configLiveJson, period_of_time); } if (type == "sec") period_of_time = period_of_time; if (type == "min") period_of_time = String(period_of_time.toInt() * 60); if (type == "hours") period_of_time = String(period_of_time.toInt() * 60 * 60); addTimer(number, period_of_time); - jsonWriteStr(configJson, "timer" + number, "1"); + jsonWriteStr(configLiveJson, "timer" + number, "1"); } void addTimer(String number, String time) { - String tmp = jsonReadStr(optionJson, "timers"); //1:60,2:120, + String tmp = jsonReadStr(configOptionJson, "timers"); //1:60,2:120, String new_timer = number + ":" + time; int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо заменить if (psn1 != -1) { //если он есть @@ -56,7 +56,7 @@ void addTimer(String number, String time) { } else { //если его нет tmp += new_timer + ","; } - jsonWriteStr(optionJson, "timers", tmp); + jsonWriteStr(configOptionJson, "timers", tmp); //Serial.println("ura"); } @@ -66,18 +66,18 @@ void timerStop() { } void delTimer (String number) { - String tmp = jsonReadStr(optionJson, "timers"); //1:60,2:120, + String tmp = jsonReadStr(configOptionJson, "timers"); //1:60,2:120, int psn1 = tmp.indexOf(number + ":"); //0 ищем позицию таймера который надо удалить if (psn1 != -1) { //если он есть int psn2 = tmp.indexOf(",", psn1); //4 от этой позиции находим позицию запятой String timer = tmp.substring(psn1, psn2) + ","; //1:60, выделяем таймер который надо удалить tmp.replace(timer, ""); //удаляем таймер - jsonWriteStr(optionJson, "timers", tmp); + jsonWriteStr(configOptionJson, "timers", tmp); } } int readTimer(int number) { - String tmp = jsonReadStr(optionJson, "timers"); //1:60,2:120, + String tmp = jsonReadStr(configOptionJson, "timers"); //1:60,2:120, int psn1 = tmp.indexOf(String(number) + ":"); //0 ищем позицию таймера который надо прочитать String timer; if (psn1 != -1) { //если он есть diff --git a/Upgrade.ino b/Upgrade.ino index 6154acfe..ddd5de95 100644 --- a/Upgrade.ino +++ b/Upgrade.ino @@ -5,7 +5,7 @@ void initUpgrade() { #ifdef ESP32 if (WiFi.status() == WL_CONNECTED) last_version = getURL("http://91.204.228.124:1100/update/esp32/version.txt"); #endif - jsonWriteStr(configSetup, "last_version", last_version); + jsonWriteStr(configSetupJson, "last_version", last_version); Serial.print("[i] Last firmware version: "); Serial.println(last_version); } @@ -15,11 +15,11 @@ void do_upgrade_url() { upgrade_url = false; #ifdef ESP32 last_version = getURL("http://91.204.228.124:1100/update/esp32/version.txt"); - jsonWriteStr(configSetup, "last_version", last_version); + jsonWriteStr(configSetupJson, "last_version", last_version); #endif #ifdef ESP8266 last_version = getURL("http://91.204.228.124:1100/update/esp8266/version.txt"); - jsonWriteStr(configSetup, "last_version", last_version); + jsonWriteStr(configSetupJson, "last_version", last_version); #endif } } @@ -31,7 +31,7 @@ void upgrade_firmware() { String configSetup_for_update; scenario_for_update = readFile("firmware.s.txt", 4000); config_for_update = readFile("firmware.c.txt", 4000); - configSetup_for_update = configSetup; + configSetup_for_update = configSetupJson; Serial.println("Start upgrade SPIFFS, please wait..."); diff --git a/Web.ino b/Web.ino index fc4c9b11..72f3aad6 100644 --- a/Web.ino +++ b/Web.ino @@ -1,35 +1,117 @@ void web_init() { - /****************************************************************************** - **********************************INITIALIZATION******************************* - ******************************************************************************/ server.on("/set", HTTP_GET, [](AsyncWebServerRequest * request) { String value; //============================device settings===================================== + if (request->hasArg("preset")) { + //-------------------------------------------------------------------------------- + String value; + value = request->getParam("preset")->value(); + if (value == "1") { + writeFile("firmware.c.txt", readFile("configs/1-relay.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/1-relay.s.txt", 2048)); + } + if (value == "2") { + writeFile("firmware.c.txt", readFile("configs/2-relay.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/2-relay.s.txt", 2048)); + } + if (value == "3") { + writeFile("firmware.c.txt", readFile("configs/3-relay.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/3-relay.s.txt", 2048)); + } + if (value == "4") { + writeFile("firmware.c.txt", readFile("configs/4-relay.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/4-relay.s.txt", 2048)); + } + if (value == "5") { + writeFile("firmware.c.txt", readFile("configs/5-relay.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/5-relay.s.txt", 2048)); + } + if (value == "6") { + writeFile("firmware.c.txt", readFile("configs/6-relay.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/6-relay.s.txt", 2048)); + } + if (value == "7") { + writeFile("firmware.c.txt", readFile("configs/7-relay.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/7-relay.s.txt", 2048)); + } + if (value == "8") { + writeFile("firmware.c.txt", readFile("configs/8-pwm.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/8-pwm.s.txt", 2048)); + } + if (value == "9") { + writeFile("firmware.c.txt", readFile("configs/9-dht11.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/9-dht11.s.txt", 2048)); + } + if (value == "10") { + writeFile("firmware.c.txt", readFile("configs/10-dht22.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/10-dht22.s.txt", 2048)); + } + if (value == "11") { + writeFile("firmware.c.txt", readFile("configs/11-analog.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/11-analog.s.txt", 2048)); + } + if (value == "12") { + writeFile("firmware.c.txt", readFile("configs/12-dallas.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/12-dallas.s.txt", 2048)); + } + if (value == "13") { + writeFile("firmware.c.txt", readFile("configs/13-termostat.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/13-termostat.s.txt", 2048)); + } + if (value == "14") { + writeFile("firmware.c.txt", readFile("configs/14-level.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/14-level.s.txt", 2048)); + } + if (value == "15") { + writeFile("firmware.c.txt", readFile("configs/15-moution.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/15-moution.s.txt", 2048)); + } + if (value == "16") { + writeFile("firmware.c.txt", readFile("configs/16-moution.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/16-moution.s.txt", 2048)); + } + if (value == "17") { + writeFile("firmware.c.txt", readFile("configs/17-stepper.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/17-stepper.s.txt", 2048)); + } + if (value == "18") { + writeFile("firmware.c.txt", readFile("configs/18-servo.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/18-servo.s.txt", 2048)); + } + if (value == "19") { + writeFile("firmware.c.txt", readFile("configs/firmware.c.txt", 2048)); + writeFile("firmware.s.txt", readFile("configs/firmware.s.txt", 2048)); + } + Device_init(); + Scenario_init(); + request->redirect("/?set.device"); + } + //-------------------------------------------------------------------------------- if (request->hasArg("devinit")) { Device_init(); request->send(200, "text/text", "OK"); } - + //-------------------------------------------------------------------------------- if (request->hasArg("scen")) { value = request->getParam("scen")->value(); if (value == "0") { - jsonWriteStr(configSetup, "scen", value); + jsonWriteStr(configSetupJson, "scen", value); saveConfig(); Scenario_init(); } if (value == "1") { - jsonWriteStr(configSetup, "scen", value); + jsonWriteStr(configSetupJson, "scen", value); saveConfig(); Scenario_init(); } request->send(200, "text/text", "OK"); } - + //-------------------------------------------------------------------------------- if (request->hasArg("sceninit")) { Scenario_init(); request->send(200, "text/text", "OK"); } - + //-------------------------------------------------------------------------------- if (request->hasArg("cleanlog")) { #ifdef logging_enable clean_log_date(); @@ -39,58 +121,143 @@ void web_init() { if (request->hasArg("udponoff")) { value = request->getParam("udponoff")->value(); if (value == "0") { - jsonWriteStr(configSetup, "udponoff", value); + jsonWriteStr(configSetupJson, "udponoff", value); saveConfig(); Scenario_init(); } if (value == "1") { - jsonWriteStr(configSetup, "udponoff", value); + jsonWriteStr(configSetupJson, "udponoff", value); saveConfig(); Scenario_init(); } request->send(200, "text/text", "OK"); } - + //-------------------------------------------------------------------------------- if (request->hasArg("updatelist")) { SPIFFS.remove("/dev.csv"); addFile("dev.csv", "device id;device name;ip address"); request->redirect("/?set.udp"); } - + //-------------------------------------------------------------------------------- if (request->hasArg("updatepage")) { request->redirect("/?set.udp"); } - - - - - /*if (value == "5") { - i2c_scanning = true; - request->redirect("/?utilities"); - }*/ - - /*if (value == "2") { - mqtt_send_settings_to_udp = true; - request->send(200, "text/text", "ok"); - }*/ - }); - /****************************************************************************** - **********************************TIME***************************************** - ******************************************************************************/ - server.on("/time", HTTP_GET, [](AsyncWebServerRequest * request) { + //-------------------------------------------------------------------------------- + if (request->hasArg("devname")) { + jsonWriteStr(configSetupJson, "name", request->getParam("devname")->value()); + saveConfig(); + request->send(200, "text/text", "OK"); + } + //==============================wifi settings============================================= + if (request->hasArg("routerssid")) { + jsonWriteStr(configSetupJson, "routerssid", request->getParam("routerssid")->value()); + saveConfig(); + request->send(200, "text/text", "OK"); + } + if (request->hasArg("routerpass")) { + jsonWriteStr(configSetupJson, "routerpass", request->getParam("routerpass")->value()); + saveConfig(); + request->send(200, "text/text", "OK"); + } + //-------------------------------------------------------------------------------- + if (request->hasArg("apssid")) { + jsonWriteStr(configSetupJson, "apssid", request->getParam("apssid")->value()); + saveConfig(); + request->send(200, "text/text", "OK"); + } + if (request->hasArg("appass")) { + jsonWriteStr(configSetupJson, "appass", request->getParam("appass")->value()); + saveConfig(); + request->send(200, "text/text", "OK"); + } + //-------------------------------------------------------------------------------- + if (request->hasArg("weblogin")) { + jsonWriteStr(configSetupJson, "weblogin", request->getParam("weblogin")->value()); + saveConfig(); + request->send(200, "text/text", "OK"); + } + if (request->hasArg("webpass")) { + jsonWriteStr(configSetupJson, "webpass", request->getParam("webpass")->value()); + saveConfig(); + request->send(200, "text/text", "OK"); + } + //-------------------------------------------------------------------------------- if (request->hasArg("timezone")) { - jsonWriteStr(configSetup, "timezone", request->getParam("timezone")->value()); + jsonWriteStr(configSetupJson, "timezone", request->getParam("timezone")->value()); + saveConfig(); + reconfigTime(); + request->send(200, "text/text", "OK"); } if (request->hasArg("ntp")) { - jsonWriteStr(configSetup, "ntp", request->getParam("ntp")->value()); + jsonWriteStr(configSetupJson, "ntp", request->getParam("ntp")->value()); + saveConfig(); + reconfigTime(); + request->send(200, "text/text", "OK"); + } + //-------------------------------------------------------------------------------- + if (request->hasArg("device")) { + if (request->getParam("device")->value() == "ok") ESP.restart(); + request->send(200, "text/text", "OK"); + } + //==============================mqtt settings============================================= + if (request->hasArg("mqttServer")) { + jsonWriteStr(configSetupJson, "mqttServer", request->getParam("mqttServer")->value()); + saveConfig(); + mqtt_connection = true; + request->send(200, "text/text", "ok"); + } + if (request->hasArg("mqttPort")) { + int port = (request->getParam("mqttPort")->value()).toInt(); + jsonWriteInt(configSetupJson, "mqttPort", port); + saveConfig(); + mqtt_connection = true; + request->send(200, "text/text", "ok"); + } + if (request->hasArg("mqttPrefix")) { + jsonWriteStr(configSetupJson, "mqttPrefix", request->getParam("mqttPrefix")->value()); + saveConfig(); + mqtt_connection = true; + request->send(200, "text/text", "ok"); + } + if (request->hasArg("mqttUser")) { + jsonWriteStr(configSetupJson, "mqttUser", request->getParam("mqttUser")->value()); + saveConfig(); + mqtt_connection = true; + request->send(200, "text/text", "ok"); + } + if (request->hasArg("mqttPass")) { + jsonWriteStr(configSetupJson, "mqttPass", request->getParam("mqttPass")->value()); + saveConfig(); + mqtt_connection = true; + request->send(200, "text/text", "ok"); + } + //-------------------------------------------------------------------------------- + if (request->hasArg("mqttsend")) { + mqtt_send_settings_to_udp = true; + request->send(200, "text/text", "ok"); + } + //-------------------------------------------------------------------------------- + if (request->hasArg("mqttcheck")) { + String tmp = "{}"; + jsonWriteStr(tmp, "title", "" + stateMQTT()); + jsonWriteStr(tmp, "class", "pop-up"); + request->send(200, "text/text", tmp); + } + //==============================push settings============================================= +#ifdef push_enable + if (request->hasArg("pushingboxid")) { + jsonWriteStr(configSetupJson, "pushingboxid", request->getParam("pushingboxid")->value()); } saveConfig(); - reconfigTime(); - request->send(200, "text/text", "OK"); // отправляем ответ о выполнении + request->send(200, "text/text", "ok"); +#endif + //==============================utilities settings============================================= + if (request->hasArg("itoc")) { + i2c_scanning = true; + request->redirect("/?set.utilities"); + } }); - /****************************************************************************** - **********************************UPDATE*************************************** - ******************************************************************************/ + //==============================upgrade settings============================================= server.on("/check", HTTP_GET, [](AsyncWebServerRequest * request) { upgrade_url = true; Serial.print("[i] Last firmware version: "); @@ -125,191 +292,9 @@ void web_init() { } request->send(200, "text/text", tmp); }); - server.on("/upgrade", HTTP_GET, [](AsyncWebServerRequest * request) { upgrade = true; String tmp = "{}"; request->send(200, "text/text", "ok"); }); - /****************************************************************************** - **********************************WIFI***************************************** - ******************************************************************************/ - server.on("/ssid", HTTP_GET, [](AsyncWebServerRequest * request) { - if (request->hasArg("ssid")) { - jsonWriteStr(configSetup, "ssid", request->getParam("ssid")->value()); - } - if (request->hasArg("password")) { - jsonWriteStr(configSetup, "password", request->getParam("password")->value()); - } - saveConfig(); - request->send(200, "text/text", "OK"); - }); - server.on("/ssidap", HTTP_GET, [](AsyncWebServerRequest * request) { - if (request->hasArg("ssidAP")) { - jsonWriteStr(configSetup, "ssidAP", request->getParam("ssidAP")->value()); - } - if (request->hasArg("passwordAP")) { - jsonWriteStr(configSetup, "passwordAP", request->getParam("passwordAP")->value()); - } - saveConfig(); - request->send(200, "text/text", "OK"); - }); - server.on("/web", HTTP_GET, [](AsyncWebServerRequest * request) { - if (request->hasArg("web_login")) { - jsonWriteStr(configSetup, "web_login", request->getParam("web_login")->value()); - } - if (request->hasArg("web_pass")) { - jsonWriteStr(configSetup, "web_pass", request->getParam("web_pass")->value()); - } - saveConfig(); - //Web_server_init(); - request->send(200, "text/text", "OK"); - }); - server.on("/restart", HTTP_GET, [](AsyncWebServerRequest * request) { - if (request->hasArg("device")) { - if (request->getParam("device")->value() == "ok") ESP.restart(); - } - request->send(200, "text/text", "OK"); - }); - /****************************************************************************** - **********************************MQTT**************************************** - ******************************************************************************/ - server.on("/mqttSave", HTTP_GET, [](AsyncWebServerRequest * request) { - if (request->hasArg("mqttServer")) { - jsonWriteStr(configSetup, "mqttServer", request->getParam("mqttServer")->value()); - } - if (request->hasArg("mqttPort")) { - int port = (request->getParam("mqttPort")->value()).toInt(); - jsonWriteInt(configSetup, "mqttPort", port); - } - if (request->hasArg("mqttPrefix")) { - jsonWriteStr(configSetup, "mqttPrefix", request->getParam("mqttPrefix")->value()); - } - if (request->hasArg("mqttUser")) { - jsonWriteStr(configSetup, "mqttUser", request->getParam("mqttUser")->value()); - } - if (request->hasArg("mqttPass")) { - jsonWriteStr(configSetup, "mqttPass", request->getParam("mqttPass")->value()); - } - saveConfig(); - mqtt_connection = true; - request->send(200, "text/text", "ok"); - }); - server.on("/mqttCheck", HTTP_GET, [](AsyncWebServerRequest * request) { - String tmp = "{}"; - jsonWriteStr(tmp, "title", "" + stateMQTT()); - jsonWriteStr(tmp, "class", "pop-up"); - request->send(200, "text/text", tmp); - }); - /****************************************************************************** - **********************************PUSH***************************************** - ******************************************************************************/ -#ifdef push_enable - server.on("/pushingboxDate", HTTP_GET, [](AsyncWebServerRequest * request) { - if (request->hasArg("pushingbox_id")) { - jsonWriteStr(configSetup, "pushingbox_id", request->getParam("pushingbox_id")->value()); - } - saveConfig(); - request->send(200, "text/text", "ok"); - }); -#endif - /****************************************************************************** - **********************************PRESETS************************************** - ******************************************************************************/ - server.on("/preset", HTTP_GET, [](AsyncWebServerRequest * request) { - String value; - if (request->hasArg("arg")) { - value = request->getParam("arg")->value(); - } - if (value == "1") { - writeFile("firmware.c.txt", readFile("configs/relay.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/relay.s.txt", 2048)); - } - if (value == "2") { - writeFile("firmware.c.txt", readFile("configs/relay_t.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/relay_t.s.txt", 2048)); - } - if (value == "3") { - writeFile("firmware.c.txt", readFile("configs/relay_c.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/relay_c.s.txt", 2048)); - } - if (value == "4") { - writeFile("firmware.c.txt", readFile("configs/relay_s.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/relay_s.s.txt", 2048)); - } - if (value == "5") { - writeFile("firmware.c.txt", readFile("configs/relay_sw.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/relay_sw.s.txt", 2048)); - } - if (value == "6") { - writeFile("firmware.c.txt", readFile("configs/relay_br.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/relay_br.s.txt", 2048)); - } - if (value == "7") { - writeFile("firmware.c.txt", readFile("configs/relay_sr.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/relay_sr.s.txt", 2048)); - } - if (value == "8") { - writeFile("firmware.c.txt", readFile("configs/pwm.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/pwm.s.txt", 2048)); - } - if (value == "9") { - writeFile("firmware.c.txt", readFile("configs/dht11.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/dht11.s.txt", 2048)); - } - if (value == "10") { - writeFile("firmware.c.txt", readFile("configs/dht22.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/dht22.s.txt", 2048)); - } - if (value == "11") { - writeFile("firmware.c.txt", readFile("configs/analog.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/analog.s.txt", 2048)); - } - if (value == "12") { - writeFile("firmware.c.txt", readFile("configs/dallas.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/dallas.s.txt", 2048)); - } - if (value == "13") { - writeFile("firmware.c.txt", readFile("configs/termostat.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/termostat.s.txt", 2048)); - } - if (value == "14") { - writeFile("firmware.c.txt", readFile("configs/level.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/level.s.txt", 2048)); - } - if (value == "15") { - writeFile("firmware.c.txt", readFile("configs/moution_r.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/moution_r.s.txt", 2048)); - } - if (value == "16") { - writeFile("firmware.c.txt", readFile("configs/moution_s.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/moution_s.s.txt", 2048)); - } - if (value == "17") { - writeFile("firmware.c.txt", readFile("configs/stepper.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/stepper.s.txt", 2048)); - } - if (value == "18") { - writeFile("firmware.c.txt", readFile("configs/servo.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/servo.s.txt", 2048)); - } - if (value == "19") { - writeFile("firmware.c.txt", readFile("configs/firmware.c.txt", 2048)); - writeFile("firmware.s.txt", readFile("configs/firmware.s.txt", 2048)); - } - Device_init(); - Scenario_init(); - request->redirect("/?configuration"); - }); - /****************************************************************************** - **********************************UDP****************************************** - ******************************************************************************/ - server.on("/name", HTTP_GET, [](AsyncWebServerRequest * request) { - if (request->hasArg("arg")) { - jsonWriteStr(configSetup, "name", request->getParam("arg")->value()); - jsonWriteStr(configJson, "name", request->getParam("arg")->value()); - saveConfig(); - } - request->send(200, "text/text", "OK"); - }); } diff --git a/Web_server.ino b/Web_server.ino index f4e01087..b9d77cf6 100644 --- a/Web_server.ino +++ b/Web_server.ino @@ -48,9 +48,9 @@ void Web_server_init() { **************************************WEB**************************************** *********************************************************************************/ #ifdef ESP32 - server.addHandler(new SPIFFSEditor(SPIFFS, jsonReadStr(configSetup, "web_login").c_str(), jsonReadStr(configSetup, "web_pass").c_str())); + server.addHandler(new SPIFFSEditor(SPIFFS, jsonReadStr(configSetupJson, "web_login").c_str(), jsonReadStr(configSetupJson, "web_pass").c_str())); #elif defined(ESP8266) - server.addHandler(new SPIFFSEditor(jsonReadStr(configSetup, "web_login").c_str(), jsonReadStr(configSetup, "web_pass").c_str())); + server.addHandler(new SPIFFSEditor(jsonReadStr(configSetupJson, "web_login").c_str(), jsonReadStr(configSetupJson, "web_pass").c_str())); #endif /* server.on("/heap", HTTP_GET, [](AsyncWebServerRequest * request) { @@ -60,9 +60,10 @@ void Web_server_init() { server.serveStatic("/css/", SPIFFS, "/css/").setCacheControl("max-age=31536000"); server.serveStatic("/js/", SPIFFS, "/js/").setCacheControl("max-age=31536000"); server.serveStatic("/favicon.ico", SPIFFS, "/favicon.ico").setCacheControl("max-age=31536000"); + server.serveStatic("/icon.jpeg", SPIFFS, "/icon.jpeg").setCacheControl("max-age=31536000"); server.serveStatic("/", SPIFFS, "/").setDefaultFile("index.htm") - .setAuthentication(jsonReadStr(configSetup, "web_login").c_str(), jsonReadStr(configSetup, "web_pass").c_str()); + .setAuthentication(jsonReadStr(configSetupJson, "web_login").c_str(), jsonReadStr(configSetupJson, "web_pass").c_str()); server.onNotFound([](AsyncWebServerRequest * request) { Serial.printf("NOT_FOUND: "); @@ -133,15 +134,15 @@ void Web_server_init() { // --------------------Выдаем данные configJson //config.live.json - динамические данные server.on("/config.live.json", HTTP_GET, [](AsyncWebServerRequest * request) { - request->send(200, "application/json", configJson); + request->send(200, "application/json", configLiveJson); }); // --------------------Выдаем данные optionJson //config.option.json - данные не являющиеся событиями server.on("/config.option.json", HTTP_GET, [](AsyncWebServerRequest * request) { - request->send(200, "application/json", optionJson); + request->send(200, "application/json", configOptionJson); }); // -------------------Выдаем данные configSetup //config.setup.json - для хранения постоянных данных server.on("/config.setup.json", HTTP_GET, [](AsyncWebServerRequest * request) { - request->send(200, "application/json", configSetup); + request->send(200, "application/json", configSetupJson); }); // ------------------Выполнение команды из запроса diff --git a/WiFi.ino b/WiFi.ino index a4af35cd..dddf59b6 100644 --- a/WiFi.ino +++ b/WiFi.ino @@ -5,8 +5,8 @@ void ROUTER_Connecting() { WiFi.mode(WIFI_STA); byte tries = 20; - String _ssid = jsonReadStr(configSetup, "ssid"); - String _password = jsonReadStr(configSetup, "password"); + String _ssid = jsonReadStr(configSetupJson, "routerssid"); + String _password = jsonReadStr(configSetupJson, "routerpass"); //WiFi.persistent(false); if (_ssid == "" && _password == "") { @@ -24,7 +24,7 @@ void ROUTER_Connecting() { if (WiFi.status() == WL_CONNECT_FAILED) { Serial.println("[E] password is not correct"); tries = 1; - jsonWriteInt(optionJson, "pass_status", 1); + jsonWriteInt(configOptionJson, "pass_status", 1); } Serial.print("."); delay(1000); @@ -46,7 +46,7 @@ void ROUTER_Connecting() { Serial.print("[V] IP address: http://"); Serial.print(WiFi.localIP()); Serial.println(""); - jsonWriteStr(configJson, "ip", WiFi.localIP().toString()); + jsonWriteStr(configSetupJson, "ip", WiFi.localIP().toString()); led_blink("off"); //add_dev_in_list("dev.txt", chipID, WiFi.localIP().toString()); MQTT_init(); @@ -59,19 +59,19 @@ bool StartAPMode() { WiFi.mode(WIFI_AP); - String _ssidAP = jsonReadStr(configSetup, "ssidAP"); - String _passwordAP = jsonReadStr(configSetup, "passwordAP"); + String _ssidAP = jsonReadStr(configSetupJson, "apssid"); + String _passwordAP = jsonReadStr(configSetupJson, "appass"); WiFi.softAP(_ssidAP.c_str(), _passwordAP.c_str()); IPAddress myIP = WiFi.softAPIP(); led_blink("on"); Serial.print("AP IP address: "); Serial.println(myIP); - jsonWriteStr(configJson, "ip", myIP.toString()); + jsonWriteStr(configSetupJson, "ip", myIP.toString()); - //if (jsonReadInt(optionJson, "pass_status") != 1) { + //if (jsonReadInt(configOptionJson, "pass_status") != 1) { ts.add(ROUTER_SEARCHING, 10 * 1000, [&](void*) { Serial.println("->try find router"); - if (RouterFind(jsonReadStr(configSetup, "ssid"))) { + if (RouterFind(jsonReadStr(configSetupJson, "routerssid"))) { ts.remove(ROUTER_SEARCHING); WiFi.scanDelete(); ROUTER_Connecting(); @@ -132,12 +132,12 @@ boolean RouterFind(String ssid) { for (uint8_t i = 0; i < n; i++) { JsonObject& data = networks.createNestedObject(); String ssidMy = WiFi.SSID(i); - data["ssid"] = ssidMy; + data["routerssid"] = ssidMy; data["pass"] = (WiFi.encryptionType(i) == ENC_TYPE_NONE) ? "" : "*"; int8_t dbm = WiFi.RSSI(i); data["dbm"] = dbm; - if (ssidMy == jsonReadStr(configSetup, "ssid")) { - jsonWriteStr(configJson, "dbm", dbm); + if (ssidMy == jsonReadStr(configSetupJson, "routerssid")) { + jsonWriteStr(configLiveJson, "dbm", dbm); } } String root; @@ -149,14 +149,14 @@ boolean RouterFind(String ssid) { { "type":"wifi", "title":"{{LangWiFi1}}", - "name":"ssid", + "name":"routerssid", "state":"{{ssid}}", "pattern":".{1,}" }, { - "type":"password", + "type":"routerpass", "title":"{{LangPass}}", - "name":"ssidPass", + "name":"routerpass", "state":"{{ssidPass}}", "pattern":".{8,}" }, diff --git a/bus.ino b/bus.ino index 17486aab..447c5c78 100644 --- a/bus.ino +++ b/bus.ino @@ -5,10 +5,10 @@ void do_i2c_scanning() { if (tmp == "error") { tmp = i2c_scan(); Serial.println(tmp); - jsonWriteStr(configJson, "i2c", tmp); + jsonWriteStr(configLiveJson, "i2c", tmp); } else { Serial.println(tmp); - jsonWriteStr(configJson, "i2c", tmp); + jsonWriteStr(configLiveJson, "i2c", tmp); } } } diff --git a/data/config.json b/data/config.json index daf66cda..bd69a709 100644 --- a/data/config.json +++ b/data/config.json @@ -1,10 +1,10 @@ { "name": "IoTmanager", "chipID": "", - "ssidAP": "WiFi2", - "passwordAP": "", - "ssid": "rise", - "password": "hostel3333", + "apssid": "IoTmanager", + "appass": "", + "routerssid": "rise", + "routerpass": "hostel3333", "timezone": 2, "ntp": "pool.ntp.org", "mqttServer": "91.204.228.124", @@ -13,8 +13,8 @@ "mqttUser": "test", "mqttPass": "test", "scen": "1", - "pushingbox_id": "v7C133E426B0C69E", - "web_login": "admin", - "web_pass": "admin", + "pushingboxid": "v7C133E426B0C69E", + "weblogin": "admin", + "webpass": "admin", "udponoff": "1" } \ No newline at end of file diff --git a/data/configs/relay.c.txt b/data/configs/1-relay.c.txt similarity index 100% rename from data/configs/relay.c.txt rename to data/configs/1-relay.c.txt diff --git a/data/configs/analog.s.txt b/data/configs/1-relay.s.txt similarity index 100% rename from data/configs/analog.s.txt rename to data/configs/1-relay.s.txt diff --git a/data/configs/dht22.c.txt b/data/configs/10-dht22.c.txt similarity index 100% rename from data/configs/dht22.c.txt rename to data/configs/10-dht22.c.txt diff --git a/data/configs/dallas.s.txt b/data/configs/10-dht22.s.txt similarity index 100% rename from data/configs/dallas.s.txt rename to data/configs/10-dht22.s.txt diff --git a/data/configs/analog.c.txt b/data/configs/11-analog.c.txt similarity index 100% rename from data/configs/analog.c.txt rename to data/configs/11-analog.c.txt diff --git a/data/configs/dht11.s.txt b/data/configs/11-analog.s.txt similarity index 100% rename from data/configs/dht11.s.txt rename to data/configs/11-analog.s.txt diff --git a/data/configs/dallas.c.txt b/data/configs/12-dallas.c.txt similarity index 100% rename from data/configs/dallas.c.txt rename to data/configs/12-dallas.c.txt diff --git a/data/configs/dht22.s.txt b/data/configs/12-dallas.s.txt similarity index 100% rename from data/configs/dht22.s.txt rename to data/configs/12-dallas.s.txt diff --git a/data/configs/termostat.c.txt b/data/configs/13-termostat.c.txt similarity index 100% rename from data/configs/termostat.c.txt rename to data/configs/13-termostat.c.txt diff --git a/data/configs/termostat.s.txt b/data/configs/13-termostat.s.txt similarity index 100% rename from data/configs/termostat.s.txt rename to data/configs/13-termostat.s.txt diff --git a/data/configs/level.c.txt b/data/configs/14-level.c.txt similarity index 100% rename from data/configs/level.c.txt rename to data/configs/14-level.c.txt diff --git a/data/configs/level.s.txt b/data/configs/14-level.s.txt similarity index 100% rename from data/configs/level.s.txt rename to data/configs/14-level.s.txt diff --git a/data/configs/moution_r.c.txt b/data/configs/15-moution.c.txt similarity index 100% rename from data/configs/moution_r.c.txt rename to data/configs/15-moution.c.txt diff --git a/data/configs/moution_r.s.txt b/data/configs/15-moution.s.txt similarity index 100% rename from data/configs/moution_r.s.txt rename to data/configs/15-moution.s.txt diff --git a/data/configs/moution_s.c.txt b/data/configs/16-moution.c.txt similarity index 100% rename from data/configs/moution_s.c.txt rename to data/configs/16-moution.c.txt diff --git a/data/configs/moution_s.s.txt b/data/configs/16-moution.s.txt similarity index 100% rename from data/configs/moution_s.s.txt rename to data/configs/16-moution.s.txt diff --git a/data/configs/stepper.c.txt b/data/configs/17-stepper.c.txt similarity index 100% rename from data/configs/stepper.c.txt rename to data/configs/17-stepper.c.txt diff --git a/data/configs/stepper.s.txt b/data/configs/17-stepper.s.txt similarity index 100% rename from data/configs/stepper.s.txt rename to data/configs/17-stepper.s.txt diff --git a/data/configs/servo.c.txt b/data/configs/18-servo.c.txt similarity index 100% rename from data/configs/servo.c.txt rename to data/configs/18-servo.c.txt diff --git a/data/configs/servo.s.txt b/data/configs/18-servo.s.txt similarity index 100% rename from data/configs/servo.s.txt rename to data/configs/18-servo.s.txt diff --git a/data/configs/relay_t.c.txt b/data/configs/2-relay.c.txt similarity index 100% rename from data/configs/relay_t.c.txt rename to data/configs/2-relay.c.txt diff --git a/data/configs/relay_t.s.txt b/data/configs/2-relay.s.txt similarity index 100% rename from data/configs/relay_t.s.txt rename to data/configs/2-relay.s.txt diff --git a/data/configs/relay_c.c.txt b/data/configs/3-relay.c.txt similarity index 100% rename from data/configs/relay_c.c.txt rename to data/configs/3-relay.c.txt diff --git a/data/configs/relay_c.s.txt b/data/configs/3-relay.s.txt similarity index 100% rename from data/configs/relay_c.s.txt rename to data/configs/3-relay.s.txt diff --git a/data/configs/relay_s.c.txt b/data/configs/4-relay.c.txt similarity index 100% rename from data/configs/relay_s.c.txt rename to data/configs/4-relay.c.txt diff --git a/data/configs/relay_s.s.txt b/data/configs/4-relay.s.txt similarity index 100% rename from data/configs/relay_s.s.txt rename to data/configs/4-relay.s.txt diff --git a/data/configs/relay_sw.c.txt b/data/configs/5-relay.c.txt similarity index 100% rename from data/configs/relay_sw.c.txt rename to data/configs/5-relay.c.txt diff --git a/data/configs/relay_sw.s.txt b/data/configs/5-relay.s.txt similarity index 100% rename from data/configs/relay_sw.s.txt rename to data/configs/5-relay.s.txt diff --git a/data/configs/relay_br.c.txt b/data/configs/6-relay.c.txt similarity index 100% rename from data/configs/relay_br.c.txt rename to data/configs/6-relay.c.txt diff --git a/data/configs/relay_br.s.txt b/data/configs/6-relay.s.txt similarity index 100% rename from data/configs/relay_br.s.txt rename to data/configs/6-relay.s.txt diff --git a/data/configs/relay_sr.c.txt b/data/configs/7-relay.c.txt similarity index 100% rename from data/configs/relay_sr.c.txt rename to data/configs/7-relay.c.txt diff --git a/data/configs/relay_sr.s.txt b/data/configs/7-relay.s.txt similarity index 100% rename from data/configs/relay_sr.s.txt rename to data/configs/7-relay.s.txt diff --git a/data/configs/pwm.c.txt b/data/configs/8-pwm.c.txt similarity index 100% rename from data/configs/pwm.c.txt rename to data/configs/8-pwm.c.txt diff --git a/data/configs/pwm.s.txt b/data/configs/8-pwm.s.txt similarity index 100% rename from data/configs/pwm.s.txt rename to data/configs/8-pwm.s.txt diff --git a/data/configs/dht11.c.txt b/data/configs/9-dht11.c.txt similarity index 100% rename from data/configs/dht11.c.txt rename to data/configs/9-dht11.c.txt diff --git a/data/configs/relay.s.txt b/data/configs/9-dht11.s.txt similarity index 100% rename from data/configs/relay.s.txt rename to data/configs/9-dht11.s.txt diff --git a/data/configs/relay_rm.c.txt b/data/configs/relay_rm.c.txt deleted file mode 100644 index 92abc26d..00000000 --- a/data/configs/relay_rm.c.txt +++ /dev/null @@ -1,3 +0,0 @@ -switch 1 0 10 - -//физическая кнопка номер 1 подключенная к пину 0, задержка от дребезга 10 мс \ No newline at end of file diff --git a/data/configs/relay_rm.s.txt b/data/configs/relay_rm.s.txt deleted file mode 100644 index 827e1495..00000000 --- a/data/configs/relay_rm.s.txt +++ /dev/null @@ -1,3 +0,0 @@ -switch1 = 1 -mqtt 3233662-1589489 buttonChange_1 -end \ No newline at end of file diff --git a/data/icon.jpeg b/data/icon.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..abdd18c00ecd49330a896317621726204bdf4bac GIT binary patch literal 15396 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 literal 0 HcmV?d00001 diff --git a/data/index.json b/data/index.json index bd0b9d88..1b6413ad 100644 --- a/data/index.json +++ b/data/index.json @@ -1,7 +1,8 @@ { "configs": [ "/config.live.json", - "/config.setup.json" + "/config.setup.json", + "/lang/lang.ru.json" ], "title": "Главная", "class": "col-sm-offset-1 col-sm-10 col-md-offset-2 col-md-8 col-lg-offset-3 col-lg-6", @@ -12,41 +13,16 @@ "class": "alert-default" }, { - "type": "h4", - "title": "Device ID: {{chipID}}" - }, - { - "type": "h4", - "title": "IP address: {{ip}}" - }, - { - "type": "h4", - "title": "Uptime: {{uptime}}" - }, - { - "type": "h4", - "title": "Time: {{time}}" - }, - { - "type": "h4", - "title": "Build version: {{firmware_version}}" - }, - { - "type": "h4", - "title": "SPIFFS version: 2.3.3" - }, - { - "type": "hr" - }, + "type": "text", + "class": "alert alert-light", + "title": "
IoT Manager
" + }, { "type": "link", "title": "Конфигурация устройства", "action": "/?set.device", "class": "btn btn-block btn-default" }, - { - "type": "hr" - }, { "type": "link", "title": "Список других устройств в сети", @@ -77,25 +53,6 @@ "action": "/?set.utilities", "class": "btn btn-block btn-default" }, - { - "type": "h3", - "name": "my-block", - "style": "position:fixed;top:50%;left:50%;width:400px;margin-left:-200px;text-align:center;", - "class": "hidden" - }, - { - "type": "hr" - }, - { - "type": "button", - "title": "Обновить прошивку", - "action": "/check", - "response": "[[my-block]]", - "class": "btn btn-block btn-default" - }, - { - "type": "hr" - }, { "type": "link", "title": "Скачать приложение IoT Manager для android", diff --git a/data/lang/lang.ru.json b/data/lang/lang.ru.json index 9b80f156..9d4d1929 100644 --- a/data/lang/lang.ru.json +++ b/data/lang/lang.ru.json @@ -7,14 +7,32 @@ "SetUDPList": "Список других устройств в сети:", - "SetUDPWarn1": "После нажатия на кнопку 'Переформировать список устройств' ждите примерно минуту, а затем обновите страницу и список появится вновь", + "SetUDPWarn1": "После нажатия на кнопку переформировать список устройств ждите примерно минуту, а затем обновите страницу и список появится вновь", "SetUDPUpdateList":"Переформировать список устройств", "SetUDPUpdatePage":"Обновить страницу", "SetUDPNameOfDev":"Имя этого устройства:", "SetUDPDateExchange":"Включить обмен данными между устройствами", - "SetUDPWarn2":"Если обмен данными включен, то устройства будут обмениваться широковещательными пакетами udp для формирования списка устройств и для осуществления посылки настроек mqtt. Данный обмен создает дополнительную нагрузку на wifi сеть." + "SetUDPWarn2":"Если обмен данными включен, то устройства будут обмениваться широковещательными пакетами udp для формирования списка устройств и для осуществления посылки настроек mqtt. Данный обмен создает дополнительную нагрузку на wifi сеть.", + "SetWiFiNameOfDev":"Имя устройства:", + "SetWiFiRouterConnect":"Подключение к WiFi роутеру:", + "SetWiFiAccessPoint":"Точка доступа:", + "SetWiFiWeb":"Логин и пароль web interface:", + "SetWiFiTimeZone":"Временная зона:", + "SetWiFiNTP":"Сервер NTP:", + "SetWiFiWarn1":"Имя устройства должно состоять из английских букв и иметь длинну от 6 до 12 символов", + "SetWiFiWarn2":"После того как вы введете логин пароль от вашего wifi роутера необходимо нажать кнопку сохранить, а затем обязательно нажать кнопку перезагрузить устройство внизу этой страницы", + "SetWiFiWarn3":"Устройство постоянно сканирует сеть на наличие wifi. Если роутер отключен, то устройство автоматически перейдет в режим точки доступа. Когда wifi появится устройство автоматически подключится к роутеру снова, и выключит точку доступа", + "SetWiFiWarn4":"После изменения поля NTP сервер необходимо перезагрузить устройство", + "SetMQTTServerName":"Имя сервера:", + "SetMQTTPort":"Номер порта:", + "SetMQTTPrefix":"Префикс:", + "SetMQTTUserName":"Имя пользователя:", + "SetMQTTPassword":"Пароль:", + "SetMQTTSendSettings":"Отправить настройки MQTT с этого устройства на все остальные", + "SetMQTTWarn1":"Обратите внимание что поле префикс может состоять только из одного слова и одного разделителя: /prefix, вариант вида: /prefix1/prefix2 работать не будет. После изменения поля prefix необходимо перезагрузить устройство", + "SetMQTTWarn2":"Прежде чем нажимать на кнопку Отправить настройки MQTT сохрание их, если Вы их меняли. Настройки получат и перезапишут все устройства в локальной сети" } \ No newline at end of file diff --git a/data/set.device.json b/data/set.device.json index c35189ec..2cb731a6 100644 --- a/data/set.device.json +++ b/data/set.device.json @@ -2,6 +2,7 @@ "configs": [ "/config.setup.json", "/config.option.json", + "/config.live.json", "/lang/lang.ru.json" ], "class": "col-sm-offset-1 col-sm-10", @@ -11,6 +12,15 @@ "title": "{{name}}", "class": "alert-default" }, + { + "type": "link", + "title": "{{ButMainPage}}", + "action": "/", + "class": "btn btn-block btn-default" + }, + { + "type": "hr" + }, { "type": "h4", "title": "Device ID: {{chipID}}" @@ -19,13 +29,21 @@ "type": "h4", "title": "IP address: {{ip}}" }, + { + "type": "h4", + "title": "Time: {{time}}" + }, { "type": "h4", "title": "Uptime: {{uptime}}" }, { "type": "h4", - "title": "Time: {{time}}" + "title": "Build version: {{firmware_version}}" + }, + { + "type": "h4", + "title": "SPIFFS version: 2.3.3" }, { "type": "hr" @@ -37,25 +55,25 @@ "style": "display:inline", "title": { "#": "{{SetDevPreset}}", - "/preset?arg=1": "1.Вкл. выкл. локального реле", - "/preset?arg=2": "2.Вкл. выкл. локального реле в определенное время", - "/preset?arg=3": "3.Вкл. выкл. локального реле на определенный период времени", - "/preset?arg=4": "4.Вкл. выкл. нескольких локальных реле кнопкой в приложении", - "/preset?arg=5": "5.Вкл. выкл. локального реле физической кнопкой и кнопкой в приложении параллельно (для выключателя света)", - "/preset?arg=6": "6.Вкл. выкл. нескольких удаленных реле кнопкой в приложении (нужно указать Device ID)", - "/preset?arg=7": "7.Вкл. выкл. нескольких удаленных реле физической кнопкой (нужно указать Device ID)", - "/preset?arg=8": "8.Широтно импульсная модуляция", - "/preset?arg=9": "9.Сенсор DHT11 и логгирование", - "/preset?arg=10": "10.Сенсор DHT22, DHT33, DHT44, AM2302, RHT03 и логгирование", - "/preset?arg=11": "11.Аналоговый сенсор и логгирование", - "/preset?arg=12": "12.Сенсор DS18B20 и логгирование", - "/preset?arg=13": "13.Термостат на DS18B20 с переключением в ручной режим и логгированием", - "/preset?arg=14": "14.Контроль уровня в баке на сенсорах: JSN-SR04T, HC-SR04, HY-SRF05 и логгирование (управление насосом)", - "/preset?arg=15": "15.Датчик движения включающий свет", - "/preset?arg=16": "16.Охранный датчик движения", - "/preset?arg=17": "17.Система управления шаговыми двигателями на основе драйвера A4988 (открытие закрытие штор)", - "/preset?arg=18": "18.Система управления сервоприводами", - "/preset?arg=19": "Настройки по умолчанию" + "/set?preset=1": "1.Вкл. выкл. локального реле", + "/set?preset=2": "2.Вкл. выкл. локального реле в определенное время", + "/set?preset=3": "3.Вкл. выкл. локального реле на определенный период времени", + "/set?preset=4": "4.Вкл. выкл. нескольких локальных реле кнопкой в приложении", + "/set?preset=5": "5.Вкл. выкл. локального реле физической кнопкой и кнопкой в приложении параллельно (для выключателя света)", + "/set?preset=6": "6.Вкл. выкл. нескольких удаленных реле кнопкой в приложении (нужно указать Device ID)", + "/set?preset=7": "7.Вкл. выкл. нескольких удаленных реле физической кнопкой (нужно указать Device ID)", + "/set?preset=8": "8.Широтно импульсная модуляция", + "/set?preset=9": "9.Сенсор DHT11 и логгирование", + "/set?preset=10": "10.Сенсор DHT22, DHT33, DHT44, AM2302, RHT03 и логгирование", + "/set?preset=11": "11.Аналоговый сенсор и логгирование", + "/set?preset=12": "12.Сенсор DS18B20 и логгирование", + "/set?preset=13": "13.Термостат на DS18B20 с переключением в ручной режим и логгированием", + "/set?preset=14": "14.Контроль уровня в баке на сенсорах: JSN-SR04T, HC-SR04, HY-SRF05 и логгирование (управление насосом)", + "/set?preset=15": "15.Датчик движения включающий свет", + "/set?preset=16": "16.Охранный датчик движения", + "/set?preset=17": "17.Система управления шаговыми двигателями на основе драйвера A4988 (открытие закрытие штор)", + "/set?preset=18": "18.Система управления сервоприводами", + "/set?preset=19": "Настройки по умолчанию" } }, { @@ -65,17 +83,11 @@ { "type": "file", "state": "firmware.c.txt", - "style": "width:100%;height:400px", + "style": "width:100%;height:350px", "title": "Сохранить", "action": "/set?devinit", "class": "btn btn-block btn-default" }, - { - "type": "link", - "title": "Инструкция", - "action": "https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/wiki/Instruction", - "class": "btn btn-block btn-default" - }, { "type": "h2", "title": "Сценарии" @@ -90,25 +102,40 @@ { "type": "file", "state": "firmware.s.txt", - "style": "width:100%;height:400px", + "style": "width:100%;height:350px", "title": "Сохранить", "action": "/set?sceninit", - "class": "btn btn-block btn-success" + "class": "btn btn-block btn-default" }, + { - "type": "hr" + "type": "link", + "title": "Инструкция к системе автоматизации", + "action": "https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/wiki/Instruction", + "class": "btn btn-block btn-default" }, { "type": "link", "title": "Очистить логи сенсоров", "action": "/set?cleanlog", - "class": "btn btn-block btn-success" + "class": "btn btn-block btn-default" }, { - "type": "link", - "title": "Главная", - "action": "/", - "class": "btn btn-block btn-danger btn-sm" + "type": "hr" + }, + { + "type": "h3", + "name": "my-block", + "style": "position:fixed;top:50%;left:50%;width:400px;margin-left:-200px;text-align:center;", + "class": "hidden" + }, + + { + "type": "button", + "title": "Обновить прошивку устройства", + "action": "/check", + "response": "[[my-block]]", + "class": "btn btn-block btn-default" } ] } \ No newline at end of file diff --git a/data/set.mqtt.json b/data/set.mqtt.json index 0bd4acc5..a088c2dc 100644 --- a/data/set.mqtt.json +++ b/data/set.mqtt.json @@ -1,68 +1,85 @@ { "configs": [ - "/config.setup.json" + "/config.setup.json", + "/lang/lang.ru.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": "{{name}}", - "class": "alert-warning" + "class": "alert-default" + }, { - "type": "text", - "class": "alert alert-warning", - "title": "Обратите внимание что поле prefix может состоять только из одного слова и одного разделителя: /prefix, вариант вида: /prefix1/prefix2 работать не будет. После изменения поля prefix необходимо перезагрузить устройство" + "type": "link", + "title": "{{ButMainPage}}", + "action": "/", + "class": "btn btn-block btn-default" }, + { + "type": "hr" + }, + { "type": "h4", - "title": "Server name:" + "title": "{{SetMQTTServerName}}", + "style": "width:60%;float:left;" }, { "type": "input", "title": "", - "name": "1", - "state": "{{mqttServer}}" + "name": "mqttServer-arg", + "state": "{{mqttServer}}", + "style": "width:40%;float:right" }, { "type": "h4", - "title": "Port:" + "title": "{{SetMQTTPort}}", + "style": "width:60%;float:left;" }, { "type": "input", "title": "", - "name": "2", - "state": "{{mqttPort}}" + "name": "mqttPort-arg", + "state": "{{mqttPort}}", + "style": "width:40%;float:right" }, { "type": "h4", - "title": "Prefix:" + "title": "{{SetMQTTPrefix}}", + "style": "width:60%;float:left;" }, { "type": "input", "title": "", - "name": "3", - "state": "{{mqttPrefix}}" + "name": "mqttPrefix-arg", + "state": "{{mqttPrefix}}", + "style": "width:40%;float:right" }, { "type": "h4", - "title": "User name:" + "title": "{{SetMQTTUserName}}", + "style": "width:60%;float:left;" }, { "type": "input", "title": "", - "name": "4", - "state": "{{mqttUser}}" + "name": "mqttUser-arg", + "state": "{{mqttUser}}", + "style": "width:40%;float:right" }, { "type": "h4", - "title": "Password:" + "title": "{{SetMQTTPassword}}", + "style": "width:60%;float:left;" }, { "type": "input", "title": "", - "name": "5", - "state": "{{mqttPass}}" + "name": "mqttPass-arg", + "state": "{{mqttPass}}", + "style": "width:40%;float:right" }, { "type": "h3", @@ -70,42 +87,47 @@ "style": "position:fixed;top:30%;left:50%;width:400px;margin-left:-200px;text-align:center;", "class": "hidden" }, + { - "type": "text", - "class": "alert alert-warning", - "title": "Прежде чем нажимать на кнопку 'Отправить настройки MQTT' сохрание их, если Вы их меняли. Настройки получат и перезапишут все устройства в локальной сети" + "type": "button", + "title": "{{ButSave}}", + "style": "width:100%;float:left;", + "action": "set?mqttServer=[[mqttServer-arg]]&mqttPort=[[mqttPort-arg]]&mqttPrefix=[[mqttPrefix-arg]]&mqttUser=[[mqttUser-arg]]&mqttPass=[[mqttPass-arg]]", + "class": "btn btn-block btn-default" }, { "type": "button", - "title": "Сохранить", - "action": "mqttSave?mqttServer=[[1]]&mqttPort=[[2]]&mqttPrefix=[[3]]&mqttUser=[[4]]&mqttPass=[[5]]", - "class": "btn btn-block btn-success" - }, - { - "type": "button", - "title": "Отправить настройки MQTT с этого устройства на все остальные", - "action": "udp?arg=2", - "class": "btn btn-block btn-success" + "style": "width:100%;float:left;", + "title": "{{SetMQTTSendSettings}}", + "action": "set?mqttsend", + "class": "btn btn-block btn-default" }, { "type": "button", + "style": "width:100%;float:left;", "title": "Проверить соединение с MQTT", - "action": "mqttCheck", + "action": "set?mqttcheck", "response": "[[my-block]]", - "class": "btn btn-block btn-success" + "class": "btn btn-block btn-default" + }, + { + "type": "text", + "style": "width:100%;float:left;", + "title": "

{{SetMQTTWarn1}}

" + + }, + { + "type": "text", + "style": "width:100%;float:left;", + "title": "

{{SetMQTTWarn2}}

" }, { "type": "link", + "style": "width:100%;float:left;", "title": "Перезагрузить устройство", "action": "javascript:if(confirm(renameBlock(jsonResponse,'Перезагрузить?'))){send_request(this,'/restart?device=ok');}", - "class": "btn btn-block btn-success" - }, - { - "type": "link", - "title": "Главная", - "action": "/", - "class": "btn btn-block btn-danger btn-sm" + "class": "btn btn-block btn-danger" } ] } \ No newline at end of file diff --git a/data/set.push.json b/data/set.push.json index eac5a080..555797e4 100644 --- a/data/set.push.json +++ b/data/set.push.json @@ -1,46 +1,51 @@ { - "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": "{{name}}", - "class":"alert-warning" - }, - { - "type": "h4", - "title": "Device id:" - }, -{ - "type": "input", - "title": "", - "name":"1", - "state": "{{pushingbox_id}}" - }, - -{ - "type": "button", - "title":"Сохранить", - "action": "pushingboxDate?pushingbox_id=[[1]]", - "class": "btn btn-block btn-success", - "style": "width:100%;display:inline" - }, -{ - "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": "/", - "class": "btn btn-block btn-danger btn-sm" - } - ] -} + "configs": [ + "/config.setup.json", + "/lang/lang.ru.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": "{{name}}", + "class": "alert-default" + }, + { + "type": "link", + "title": "{{ButMainPage}}", + "action": "/", + "class": "btn btn-block btn-default" + }, + { + "type": "hr" + }, + { + "type": "h4", + "style": "width:60%;float:left;", + "title": "Device id:" + }, + { + "type": "input", + "title": "", + "name": "push-arg", + "style": "width:40%;float:right", + "state": "{{pushingboxid}}" + }, + { + "type": "button", + "title": "{{ButSave}}", + "action": "set?pushingboxid=[[push-arg]]", + "class": "btn btn-block btn-default", + "style": "width:100%;display:inline" + }, + { + "type": "hr" + }, + { + "type": "link", + "title": "Перезагрузить устройство", + "action": "javascript:if(confirm(renameBlock(jsonResponse,'Перезагрузить?'))){send_request(this,'/restart?device=ok');}", + "class": "btn btn-block btn-danger" + } + ] +} \ No newline at end of file diff --git a/data/set.udp.json b/data/set.udp.json index 7619150c..6bea3042 100644 --- a/data/set.udp.json +++ b/data/set.udp.json @@ -11,6 +11,15 @@ "title": "{{name}}", "class": "alert-default" }, + { + "type": "link", + "title": "{{ButMainPage}}", + "action": "/", + "class": "btn btn-block btn-default" + }, + { + "type": "hr" + }, { "type": "h3", "title": "{{SetUDPList}}" @@ -35,13 +44,13 @@ { "type": "link", "title": "{{SetUDPUpdateList}}", - "action": "set?updatelist", + "action": "/set?updatelist", "class": "btn btn-block btn-default" }, { "type": "link", "title": "{{SetUDPUpdatePage}}", - "action": "set?updatepage", + "action": "/set?updatepage", "class": "btn btn-block btn-default" }, { @@ -49,7 +58,7 @@ }, { "type": "text", - "title": "

{{SetUDPWarn1}}

", + "title": "

{{SetUDPWarn1}}

", "style": "width:100%;float:left;" }, { @@ -59,14 +68,14 @@ { "type": "input", "title": "{{SetUDPNameOfDev}}", - "name": "dev_name", + "name": "devname-arg", "state": "{{name}}", "pattern": "[A-Za-z0-9]{6,12}" }, { "type": "button", "title": "{{ButSave}}", - "action": "name?arg=[[dev_name]]", + "action": "/set?devname=[[devname-arg]]", "class": "btn btn-block btn-default" }, { @@ -81,16 +90,7 @@ }, { "type": "text", - "title": "

{{SetUDPWarn2}}

" - }, - { - "type": "hr" - }, - { - "type": "link", - "title": "{{ButMainPage}}", - "action": "/", - "class": "btn btn-block btn-default" + "title": "

{{SetUDPWarn2}}

" } ] } \ No newline at end of file diff --git a/data/set.utilities.json b/data/set.utilities.json index ee82a0c0..92769f85 100644 --- a/data/set.utilities.json +++ b/data/set.utilities.json @@ -1,7 +1,8 @@ { "configs": [ "/config.live.json", - "/config.setup.json" + "/config.setup.json", + "/lang/lang.ru.json" ], "title": "Главная", "class": "col-sm-offset-1 col-sm-10 col-md-offset-2 col-md-8 col-lg-offset-3 col-lg-6", @@ -9,7 +10,13 @@ { "type": "h5", "title": "{{name}}", - "class": "alert-warning" + "class": "alert-default" + }, + { + "type": "link", + "title": "{{ButMainPage}}", + "action": "/", + "class": "btn btn-block btn-default" }, { "type": "hr" @@ -25,17 +32,8 @@ { "type": "link", "title": "Сканировать", - "action": "/init?arg=5", - "class": "btn btn-block btn-success" - }, - { - "type": "hr" - }, - { - "type": "link", - "title": "Главная", - "action": "/", - "class": "btn btn-block btn-danger" + "action": "/set?itoc", + "class": "btn btn-block btn-default" } ] } \ No newline at end of file diff --git a/data/set.wifi.json b/data/set.wifi.json index 18ebf108..01e5054b 100644 --- a/data/set.wifi.json +++ b/data/set.wifi.json @@ -1,6 +1,7 @@ { "configs": [ - "/config.setup.json" + "/config.setup.json", + "/lang/lang.ru.json" ], "title": "Конфигурация", "class": "col-sm-offset-1 col-sm-10 col-md-offset-2 col-md-8 col-lg-offset-3 col-lg-6", @@ -8,146 +9,154 @@ { "type": "h5", "title": "{{name}}", - "class": "alert-warning" + "class": "alert-default" }, { "type": "link", - "title": "Главная", + "title": "{{ButMainPage}}", "action": "/", - "class": "btn btn-block btn-danger" + "class": "btn btn-block btn-default" }, { "type": "hr" }, { - "type": "h2", - "title": "Имя устройства" + "type": "h3", + "title": "{{SetWiFiNameOfDev}}" }, { "type": "input", - "title": "Имя устройства", - "name": "dev_name", + "title": "{{SetWiFiNameOfDev}}", + "name": "devname-arg", "state": "{{name}}", "pattern": "[A-Za-z0-9]{6,12}" }, { "type": "button", - "title": "Сохранить", - "action": "name?arg=[[dev_name]]", - "class": "btn btn-block btn-success" + "title": "{{ButSave}}", + "action": "set?devname=[[devname-arg]]", + "class": "btn btn-block btn-default" + }, + { + "type": "text", + "title": "

{{SetWiFiWarn1}}

" }, { "type": "hr" }, { - "type": "h2", - "title": "Подключение к Wi-Fi роутеру" + "type": "h3", + "title": "{{SetWiFiRouterConnect}}" }, { "type": "input", - "title": "Сеть", - "name": "ssid", - "state": "{{ssid}}" + "title": "", + "name": "routerssid-arg", + "state": "{{routerssid}}" }, { "type": "password", - "title": "Введите пароль", - "name": "ssidPass", - "state": "{{password}}" + "title": "", + "name": "routerpass-arg", + "state": "{{routerpass}}" }, { "type": "button", - "title": "Сохранить", - "class": "btn btn-block btn-success", - "action": "ssid?ssid=[[ssid]]&password=[[ssidPass]]" + "title": "{{ButSave}}", + "class": "btn btn-block btn-default", + "action": "set?routerssid=[[routerssid-arg]]&routerpass=[[routerpass-arg]]" + }, + { + "type": "text", + "title": "

{{SetWiFiWarn2}}

" }, { "type": "hr" }, { - "type": "h2", - "title": "Точка доступа" + "type": "h3", + "title": "{{SetWiFiAccessPoint}}" }, { "type": "input", - "title": "Имя WI-FI сети", - "name": "ssidap", - "state": "{{ssidAP}}", + "title": "", + "name": "apssid-arg", + "state": "{{apssid}}", "pattern": ".{1,20}" }, { "type": "password", - "title": "Пароль", - "name": "ssidApPass", - "state": "{{passwordAP}}", + "title": "", + "name": "appass-arg", + "state": "{{appass}}", "pattern": ".{8,20}" }, { "type": "button", - "title": "Сохранить", - "action": "ssidap?ssidAP=[[ssidap]]&passwordAP=[[ssidApPass]]", - "class": "btn btn-block btn-success" + "title": "{{ButSave}}", + "action": "set?apssid=[[apssid-arg]]&appass=[[appass-arg]]", + "class": "btn btn-block btn-default" + }, + { + "type": "text", + "title": "

{{SetWiFiWarn3}}

" }, { "type": "hr" }, { - "type": "h2", - "title": "Логин и пароль web interface" + "type": "h3", + "title": "{{SetWiFiWeb}}" }, { "type": "input", "title": "Логин", - "name": "web-login", - "state": "{{web_login}}", + "name": "weblogin-arg", + "state": "{{weblogin}}", "pattern": ".{1,20}" }, { "type": "password", "title": "Пароль", - "name": "web-pass", - "state": "{{web_pass}}", + "name": "webpass-arg", + "state": "{{webpass}}", "pattern": ".{1,20}" }, { "type": "button", - "title": "Сохранить", - "action": "web?web_login=[[web-login]]&web_pass=[[web-pass]]", - "class": "btn btn-block btn-success" + "title": "{{ButSave}}", + "action": "set?weblogin=[[weblogin-arg]]&webpass=[[webpass-arg]]", + "class": "btn btn-block btn-default" }, { "type": "hr" }, { - "type": "h2", - "title": "Временная зона" + "type": "h3", + "title": "{{SetWiFiTimeZone}}" }, { "type": "input", - "title": "Временная зона", - "name": "1", + "title": "", + "name": "timezone-arg", "state": "{{timezone}}", "pattern": ".{1,20}" }, { "type": "input", - "title": "Название ntp сервера", - "name": "2", + "title": "", + "name": "ntp-arg", "state": "{{ntp}}" }, { "type": "button", - "title": "Сохранить", - "action": "time?timezone=[[1]]&ntp=[[2]]", - "class": "btn btn-block btn-success" - }, - { - "type": "hr" + "title": "{{ButSave}}", + "action": "set?timezone=[[timezone-arg]]&ntp=[[ntp-arg]]", + "class": "btn btn-block btn-default" }, { "type": "text", - "class": "alert alert-warning", - "title": "После изменения поля 'NTP сервер' необходимо перезагрузить устройство" + "title": "

{{SetWiFiWarn4}}

" }, { "type": "hr" @@ -155,8 +164,8 @@ { "type": "link", "title": "Перезагрузить устройство", - "action": "javascript:if(confirm(renameBlock(jsonResponse,'Перезагрузить?'))){send_request(this,'/restart?device=ok');}", - "class": "btn btn-block btn-warning" + "action": "javascript:if(confirm(renameBlock(jsonResponse,'Перезагрузить?'))){send_request(this,'/set?device=ok');}", + "class": "btn btn-block btn-danger" } ] } \ No newline at end of file diff --git a/esp32-esp8266_iot-manager_modules_firmware.ino b/esp32-esp8266_iot-manager_modules_firmware.ino index 675d6a53..77f73704 100644 --- a/esp32-esp8266_iot-manager_modules_firmware.ino +++ b/esp32-esp8266_iot-manager_modules_firmware.ino @@ -17,7 +17,7 @@ void setup() { ROUTER_Connecting(); Serial.println("[V] ROUTER_Connecting"); //-------------------------------------------------------------- - statistics_init(); + uptime_init(); Serial.println("[V] statistics_init"); //-------------------------------------------------------------- initUpgrade(); diff --git a/main.ino b/main.ino index 3f505ae8..f9c47149 100644 --- a/main.ino +++ b/main.ino @@ -171,7 +171,7 @@ String u64toStr(uint64_t input) //============================================================================================================== //=============================================CONFIG=========================================================== void saveConfig () { - writeFile("config.json", configSetup); + writeFile("config.json", configSetupJson); } //============================================================================================================== //=============================================STRING=========================================================== @@ -286,7 +286,7 @@ String safeDataToFile(String data, String Folder) { fileName = Folder + "/" + fileName + ".txt"; // addFile(fileName, GetTime() + "/" + data); Serial.println(fileName); - jsonWriteStr(configJson, "test", fileName); + jsonWriteStr(configLiveJson, "test", fileName); } // ------------- Чтение файла в строку ------------------------------------------------------------------------------- String readFile(String fileName, size_t len ) { @@ -350,7 +350,7 @@ String readFileString(String fileName, String found) { //=======================================УПРАВЛЕНИЕ ВИДЖЕТАМИ MQTT========================================================= void sendCONFIG(String topik, String widgetConfig, String key, String date) { yield(); - topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/status"; + topik = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/" + topik + "/status"; String outer = "{\"widgetConfig\":"; String inner = "{\""; inner = inner + key; diff --git a/mqtt.ino b/mqtt.ino index 9d38e247..abc25564 100644 --- a/mqtt.ino +++ b/mqtt.ino @@ -1,7 +1,6 @@ //===============================================ИНИЦИАЛИЗАЦИЯ================================================ void MQTT_init() { ts.add(WIFI_MQTT_CONNECTION_CHECK, wifi_mqtt_reconnecting, [&](void*) { - up_time(); if (WiFi.status() == WL_CONNECTED) { Serial.println("[VV] WiFi-ok"); if (client_mqtt.connected()) { @@ -41,21 +40,21 @@ void handleMQTT() { } //===============================================ПОДКЛЮЧЕНИЕ======================================================== boolean MQTT_Connecting() { - String mqtt_server = jsonReadStr(configSetup, "mqttServer"); + String mqtt_server = jsonReadStr(configSetupJson, "mqttServer"); if ((mqtt_server != "")) { Serial.println("[E] Lost MQTT connection, start reconnecting"); led_blink("fast"); - client_mqtt.setServer(mqtt_server.c_str(), jsonReadInt(configSetup, "mqttPort")); + client_mqtt.setServer(mqtt_server.c_str(), jsonReadInt(configSetupJson, "mqttPort")); if (WiFi.status() == WL_CONNECTED) { if (!client_mqtt.connected()) { Serial.println("[V] Connecting to MQTT server commenced"); - if (client_mqtt.connect(chipID.c_str(), jsonReadStr(configSetup, "mqttUser").c_str(), jsonReadStr(configSetup, "mqttPass").c_str())) { + if (client_mqtt.connect(chipID.c_str(), jsonReadStr(configSetupJson, "mqttUser").c_str(), jsonReadStr(configSetupJson, "mqttPass").c_str())) { Serial.println("[VV] MQTT connected"); led_blink("off"); client_mqtt.setCallback(callback); - client_mqtt.subscribe(jsonReadStr(configSetup, "mqttPrefix").c_str()); // Для приема получения HELLOW и подтверждения связи - client_mqtt.subscribe((jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/+/control").c_str()); // Подписываемся на топики control - client_mqtt.subscribe((jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/order").c_str()); // Подписываемся на топики order + client_mqtt.subscribe(jsonReadStr(configSetupJson, "mqttPrefix").c_str()); // Для приема получения HELLOW и подтверждения связи + client_mqtt.subscribe((jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/+/control").c_str()); // Подписываемся на топики control + client_mqtt.subscribe((jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/order").c_str()); // Подписываемся на топики order Serial.println("[V] Callback set, subscribe done"); return true; } else { @@ -123,34 +122,34 @@ void outcoming_date() { //======================================CONFIG================================================== boolean sendMQTT(String end_of_topik, String data) { - String topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + end_of_topik; + String topik = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/" + end_of_topik; boolean send_status = client_mqtt.beginPublish(topik.c_str(), data.length(), false); client_mqtt.print(data); client_mqtt.endPublish(); return send_status; } boolean sendCHART(String topik, String data) { - topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status"; + topik = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status"; boolean send_status = client_mqtt.beginPublish(topik.c_str(), data.length(), false); client_mqtt.print(data); client_mqtt.endPublish(); return send_status; } boolean sendCHART_test(String topik, String data) { - topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status"; + topik = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status"; boolean send_status = client_mqtt.publish (topik.c_str(), data.c_str(), false); return send_status; } //======================================STATUS================================================== void sendSTATUS(String topik, String state) { - topik = jsonReadStr(configSetup, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status"; + topik = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + chipID + "/" + topik + "/" + "status"; String json_ = "{}"; jsonWriteStr(json_, "status", state); int send_status = client_mqtt.publish (topik.c_str(), json_.c_str(), false); } //======================================CONTROL================================================== void sendCONTROL(String id, String topik, String state) { - String all_line = jsonReadStr(configSetup, "mqttPrefix") + "/" + id + "/" + topik + "/control"; + String all_line = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + id + "/" + topik + "/control"; int send_status = client_mqtt.publish (all_line.c_str(), state.c_str(), false); } @@ -197,7 +196,7 @@ void sendAllWigets() { //=====================================================ОТПРАВЛЯЕМ ДАННЫЕ В ВИДЖЕТЫ ПРИ ОБНОВЛЕНИИ СТРАНИЦЫ======================================================== void sendAllData() { //берет строку json и ключи превращает в топики а значения колючей в них посылает - String current_config = configJson; //{"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"} + String current_config = configLiveJson; //{"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1"} getMemoryLoad("[i] after send all date"); current_config.replace("{", ""); current_config.replace("}", ""); //"name":"MODULES","lang":"","ip":"192.168.43.60","DS":"34.00","rel1":"1","rel2":"1" @@ -250,7 +249,7 @@ String stateMQTT() { /*void scenario_devices_topiks_subscribe() { //SCENARIO ANALOG > 5 800324-1458415 rel1 0 - if (jsonReadStr(configSetup, "scen") == "1") { + if (jsonReadStr(configSetupJson, "scen") == "1") { //String all_text = readFile("firmware.s.txt", 1024) + "\r\n"; String all_text = scenario + "\r\n"; all_text.replace("\r\n", "\n"); @@ -259,7 +258,7 @@ String stateMQTT() { String line_ = selectToMarker (all_text, "\n"); String id = selectFromMarkerToMarker(line_, " ", 4); if (id != "not found") { - client_mqtt.subscribe((jsonReadStr(configSetup, "mqttPrefix") + "/" + id + "/+/status").c_str(), 0); + client_mqtt.subscribe((jsonReadStr(configSetupJson, "mqttPrefix") + "/" + id + "/+/status").c_str(), 0); Serial.println("subscribed to device, id: " + id); } all_text = deleteBeforeDelimiter(all_text, "\n"); @@ -269,7 +268,7 @@ String stateMQTT() { */ /*void scenario_devices_test_msg_send() { - if (jsonReadStr(configSetup, "scen") == "1") { + if (jsonReadStr(configSetupJson, "scen") == "1") { String all_text = scenario + "\r\n"; all_text.replace("\r\n", "\n"); @@ -279,7 +278,7 @@ String stateMQTT() { String id = selectFromMarkerToMarker(line_, " ", 4); if (id != "not found") { //Serial.println(); - Serial.println(client_mqtt.publish ((jsonReadStr(configSetup, "mqttPrefix") + "/" + id).c_str(), "CHECK", true)); + Serial.println(client_mqtt.publish ((jsonReadStr(configSetupJson, "mqttPrefix") + "/" + id).c_str(), "CHECK", true)); } all_text = deleteBeforeDelimiter(all_text, "\n"); diff --git a/push_pushingbox.ino b/push_pushingbox.ino index 169b6c33..9cb062c4 100644 --- a/push_pushingbox.ino +++ b/push_pushingbox.ino @@ -9,7 +9,7 @@ void pushControl() { static String body_old; const char* logServer = "api.pushingbox.com"; - String deviceId = jsonReadStr(configSetup, "pushingbox_id"); + String deviceId = jsonReadStr(configSetupJson, "pushingboxid"); Serial.println("- starting client"); diff --git a/set.h b/set.h index 18f53186..d32c3576 100644 --- a/set.h +++ b/set.h @@ -1,7 +1,7 @@ /******************************************************************* **********************FIRMWARE SETTINGS**************************** ******************************************************************/ - //dev +//dev String firmware_version = "2.3.3"; boolean mb_4_of_memory = true; //#define OTA_enable @@ -97,9 +97,12 @@ AsyncEventSource events("/events"); #include #include -enum {ROUTER_SEARCHING, WIFI_MQTT_CONNECTION_CHECK, SENSORS, STEPPER1, STEPPER2, LOG1, LOG2, LOG3, LOG4, LOG5, TIMER_COUNTDOWN, TIME, TIME_SYNC, STATISTICS, UDP, UDP_DB, TEST }; +enum {ROUTER_SEARCHING, WIFI_MQTT_CONNECTION_CHECK, SENSORS, STEPPER1, STEPPER2, LOG1, LOG2, LOG3, LOG4, LOG5, TIMER_COUNTDOWN, TIME, TIME_SYNC, STATISTICS, UPTIME, UDP, UDP_DB, TEST }; TickerScheduler ts(TEST + 1); +#include +uptime_interval myUpTime(10); + #include WiFiClient espClient; PubSubClient client_mqtt(espClient); @@ -124,7 +127,7 @@ OneWire *oneWire; DallasTemperature sensors; #endif -#ifdef dht_enable +#ifdef dht_enable #include DHTesp dht; #endif @@ -154,9 +157,9 @@ Adafruit_Sensor *bme_humidity = bme.getHumiditySensor(); boolean just_load = true; const char* hostName = "IoT Manager"; //JSON -String configSetup = "{}"; -String configJson = "{}"; -String optionJson = "{}"; +String configSetupJson = "{}"; //все настройки +String configLiveJson = "{}"; //все данные с датчиков (связан с mqtt) +String configOptionJson = "{}"; //для трансфера //MQTT String chipID = ""; String prex; diff --git a/udp.ino b/udp.ino index 94c99d23..88d36725 100644 --- a/udp.ino +++ b/udp.ino @@ -14,10 +14,10 @@ void UDP_init() { udp_period = random(50000, 60000); ts.add(UDP, udp_period, [&](void*) { - if (jsonReadStr(configSetup, "udponoff") == "1") { + if (jsonReadStr(configSetupJson, "udponoff") == "1") { if (WiFi.status() == WL_CONNECTED) { if (!udp_busy) { - String line_to_send = "iotm;" + chipID + ";" + jsonReadStr(configSetup, "name"); + String line_to_send = "iotm;" + chipID + ";" + jsonReadStr(configSetupJson, "name"); #ifdef ESP8266 Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP()); Udp.write(line_to_send.c_str()); @@ -35,7 +35,7 @@ void UDP_init() { void handleUdp() { #ifdef ESP8266 - if (jsonReadStr(configSetup, "udponoff") == "1") { + if (jsonReadStr(configSetupJson, "udponoff") == "1") { if (WiFi.status() == WL_CONNECTED) { int packetSize = Udp.parsePacket(); if (packetSize) { @@ -66,7 +66,7 @@ void handleUdp_esp32() { udp.onPacket([](AsyncUDPPacket packet) { received_udp_line = (char*)packet.data(); received_ip = packet.remoteIP().toString(); - if (jsonReadStr(configSetup, "udponoff") == "1") { + if (jsonReadStr(configSetupJson, "udponoff") == "1") { if (received_udp_line.indexOf("iotm;") >= 0) { udp_data_parse = true; @@ -88,11 +88,11 @@ void do_udp_data_parse() { Serial.print(" "); Serial.println(received_udp_line); if (received_udp_line.indexOf("mqttServer") >= 0) { - jsonWriteStr(configSetup, "mqttServer", jsonReadStr(received_udp_line, "mqttServer")); - jsonWriteInt(configSetup, "mqttPort", jsonReadInt(received_udp_line, "mqttPort")); - jsonWriteStr(configSetup, "mqttPrefix", jsonReadStr(received_udp_line, "mqttPrefix")); - jsonWriteStr(configSetup, "mqttUser", jsonReadStr(received_udp_line, "mqttUser")); - jsonWriteStr(configSetup, "mqttPass", jsonReadStr(received_udp_line, "mqttPass")); + jsonWriteStr(configSetupJson, "mqttServer", jsonReadStr(received_udp_line, "mqttServer")); + jsonWriteInt(configSetupJson, "mqttPort", jsonReadInt(received_udp_line, "mqttPort")); + jsonWriteStr(configSetupJson, "mqttPrefix", jsonReadStr(received_udp_line, "mqttPrefix")); + jsonWriteStr(configSetupJson, "mqttUser", jsonReadStr(received_udp_line, "mqttUser")); + jsonWriteStr(configSetupJson, "mqttPass", jsonReadStr(received_udp_line, "mqttPass")); saveConfig(); Serial.println("[V] new mqtt setting received from udp and saved"); mqtt_connection = true; @@ -111,15 +111,15 @@ void add_dev_in_list(String fileName, String id, String dev_name, String ip) { } void send_mqtt_to_udp() { - if (jsonReadStr(configSetup, "udponoff") == "1") { + if (jsonReadStr(configSetupJson, "udponoff") == "1") { if (WiFi.status() == WL_CONNECTED) { udp_busy = true; String mqtt_data = "{}"; - jsonWriteStr(mqtt_data, "mqttServer", jsonReadStr(configSetup, "mqttServer")); - jsonWriteInt(mqtt_data, "mqttPort", jsonReadInt(configSetup, "mqttPort")); - jsonWriteStr(mqtt_data, "mqttPrefix", jsonReadStr(configSetup, "mqttPrefix")); - jsonWriteStr(mqtt_data, "mqttUser", jsonReadStr(configSetup, "mqttUser")); - jsonWriteStr(mqtt_data, "mqttPass", jsonReadStr(configSetup, "mqttPass")); + jsonWriteStr(mqtt_data, "mqttServer", jsonReadStr(configSetupJson, "mqttServer")); + jsonWriteInt(mqtt_data, "mqttPort", jsonReadInt(configSetupJson, "mqttPort")); + jsonWriteStr(mqtt_data, "mqttPrefix", jsonReadStr(configSetupJson, "mqttPrefix")); + jsonWriteStr(mqtt_data, "mqttUser", jsonReadStr(configSetupJson, "mqttUser")); + jsonWriteStr(mqtt_data, "mqttPass", jsonReadStr(configSetupJson, "mqttPass")); Serial.println(mqtt_data); #ifdef ESP8266 Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());