diff --git a/Cmd.ino b/Cmd.ino
index 38f0f3c0..1589f292 100644
--- a/Cmd.ino
+++ b/Cmd.ino
@@ -342,6 +342,7 @@ void stepperSet() {
count++;
String pin_step = selectToMarker (jsonRead(optionJson, "stepper1"), " ");
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
+ yield();
if (count > steps_int) {
digitalWrite(pin_step.toInt(), LOW);
ts.remove(STEPPER1);
@@ -356,6 +357,7 @@ void stepperSet() {
count++;
String pin_step = selectToMarker (jsonRead(optionJson, "stepper2"), " ");
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
+ yield();
if (count > steps_int) {
digitalWrite(pin_step.toInt(), LOW);
ts.remove(STEPPER2);
diff --git a/Init.ino b/Init.ino
index ace8b18b..c0b1fd50 100644
--- a/Init.ino
+++ b/Init.ino
@@ -199,13 +199,14 @@ void statistics() {
//-----------------------------------------------------------------
#ifdef ESP8266
urls += ESP.getResetReason();
+ Serial.println(ESP.getResetReason());
#endif
#ifdef ESP32
- urls += "Unknown";
+ urls += "Power on";
#endif
urls += "&";
//-----------------------------------------------------------------
- urls += "firm version: " + firmware_version + " " + DATE_COMPILING + " " + TIME_COMPILING;
+ urls += "ver: " + firmware_version; // + " " + DATE_COMPILING + " " + TIME_COMPILING;
//-----------------------------------------------------------------
String stat = getURL(urls);
//Serial.println(stat);
diff --git a/Logging.ino b/Logging.ino
index 5c537d16..777b8507 100644
--- a/Logging.ino
+++ b/Logging.ino
@@ -7,15 +7,15 @@ void logging() {
String period_min = sCmd.next();
String maxCount = sCmd.next();
- String optimozation = sCmd.next();
+ String optimization = sCmd.next();
String widget_name = sCmd.next();
widget_name.replace("#", " ");
String page_name = sCmd.next();
String page_number = sCmd.next();
- if (optimozation == "fast") chart_data_in_solid_array = true;
- if (optimozation == "slow") chart_data_in_solid_array = false;
+ if (optimization == "fast") chart_data_in_solid_array = true;
+ if (optimization == "slow") chart_data_in_solid_array = false;
if (sensor_name == "analog") jsonWriteStr(optionJson, "analog_logging_count", maxCount);
if (sensor_name == "level") jsonWriteStr(optionJson, "level_logging_count", maxCount);
diff --git a/Upgrade.ino b/Upgrade.ino
index 26b46e79..f576bfe6 100644
--- a/Upgrade.ino
+++ b/Upgrade.ino
@@ -22,8 +22,8 @@ void initUpgrade() {
if (last_version == firmware_version) {
jsonWriteStr(tmp, "title", "Последняя версия прошивки уже установлена.");
jsonWriteStr(tmp, "class", "pop-up");
- } else {
- jsonWriteStr(tmp, "title", "Имеется новая версия прошивкиИдет обновление прошивки, после обновления страница перезагрузится автоматически...')\">Установить");
+ } else {
+ jsonWriteStr(tmp, "title", "Имеется новая версия прошивкиИдет обновление прошивки, после обновления страница перезагрузится автоматически...')\">Установить");
jsonWriteStr(tmp, "class", "pop-up");
}
} else {
@@ -46,10 +46,9 @@ void initUpgrade() {
});
server.on("/upgrade", HTTP_GET, [](AsyncWebServerRequest * request) {
- upgrade = true;
- String tmp = "{}";
- //jsonWriteStr(tmp, "title", "Есть новая версия Установить?");
- request->send(200, "text/text", "ok");
+ upgrade = true;
+ String tmp = "{}";
+ request->send(200, "text/text", "ok");
});
}
@@ -72,8 +71,8 @@ void upgrade_firmware() {
String scenario_for_update;
String config_for_update;
String configSetup_for_update;
- scenario_for_update = readFile("firmware.s.txt", 3072);
- config_for_update = readFile("firmware.c.txt", 3072);
+ scenario_for_update = readFile("firmware.s.txt", 4000);
+ config_for_update = readFile("firmware.c.txt", 4000);
configSetup_for_update = configSetup;
Serial.println("Start upgrade SPIFFS, please wait...");
@@ -109,10 +108,15 @@ void upgrade_firmware() {
#endif
if (ret == HTTP_UPDATE_OK) {
+
Serial.println("BUILD upgrade done!");
Serial.println("Restart ESP....");
ESP.restart();
+ } else {
+ Serial.println("!!!!BUILD upgrade ERROR");
}
+ } else {
+ Serial.println("!!!!SPIFFS upgrade ERROR");
}
}
diff --git a/date_excess/.exclude.files b/data/.exclude.files
similarity index 100%
rename from date_excess/.exclude.files
rename to data/.exclude.files
diff --git a/data/config.json b/data/config.json
index 9ce5891e..b77d425e 100644
--- a/data/config.json
+++ b/data/config.json
@@ -6,13 +6,13 @@
"ssid": "rise",
"password": "hostel3333",
"timezone": 2,
- "mqttServer": "mqtt.ioty.ru",
+ "mqttServer": "91.204.228.124",
"mqttPort": 1883,
"mqttPrefix": "/rise",
"mqttUser": "test",
"mqttPass": "test",
"scenario": "1",
- "pushingbox_id": "",
+ "pushingbox_id": "v7C133E426B0C69E",
"web_login": "admin",
"web_pass": "admin"
}
\ No newline at end of file
diff --git a/data/configs/analog.c.txt b/data/configs/analog.c.txt
index 36cacea3..e6f7b16f 100644
--- a/data/configs/analog.c.txt
+++ b/data/configs/analog.c.txt
@@ -1,5 +1,5 @@
analog 0 Аналоговый#вход,#% Датчики progress-round 310 620 1 100 1
-logging analog 5 100 slow Аналоговый#вход Датчики 2
+logging analog 5 100 fast Аналоговый#вход Датчики 2
//если датчик углекислого газа выдает напряжение от 1 вольта до 2 вольт, то значит
//значение чтения аналогового входа будут примерно равным
diff --git a/data/configs/dallas.c.txt b/data/configs/dallas.c.txt
index 99906390..7ac6c3d1 100644
--- a/data/configs/dallas.c.txt
+++ b/data/configs/dallas.c.txt
@@ -1,5 +1,5 @@
dallas 2 Водонагреватель,#t°C Датчики any-data 1
-logging dallas 1 100 slow Температура Датчики 2
+logging dallas 1 100 fast Температура Датчики 2
//2 - номер пина датчика
//варианты отображения: any-data, progress-round, progress-line, fill-gauge
\ No newline at end of file
diff --git a/data/configs/dht11.c.txt b/data/configs/dht11.c.txt
index f23ed6e0..7efec51b 100644
--- a/data/configs/dht11.c.txt
+++ b/data/configs/dht11.c.txt
@@ -3,8 +3,8 @@ dhtH DHT11 2 Влажность#DHT,#% Датчики any-data 2
dhtComfort Степень#комфорта: Датчики 3
dhtPerception Восприятие: Датчики 4
dhtDewpoint Точка#росы: Датчики 5
-logging dhtT 5 50 slow Температура Датчики 6
-logging dhtH 5 50 slow Влажность Датчики 7
+logging dhtT 5 50 fast Температура Датчики 6
+logging dhtH 5 50 fast Влажность Датчики 7
//2 - номер пина датчика
//варианты отображения: any-data, progress-round, progress-line, fill-gauge
\ No newline at end of file
diff --git a/data/configs/dht22.c.txt b/data/configs/dht22.c.txt
index f239ae0f..d38fa8cc 100644
--- a/data/configs/dht22.c.txt
+++ b/data/configs/dht22.c.txt
@@ -3,8 +3,8 @@ dhtH DHT22 2 Влажность#DHT,#% Датчики any-data 2
dhtComfort Степень#комфорта: Датчики 3
dhtPerception Восприятие: Датчики 4
dhtDewpoint Точка#росы: Датчики 5
-logging dhtT 5 50 slow Температура Датчики 6
-logging dhtH 5 50 slow Влажность Датчики 7
+logging dhtT 5 50 fast Температура Датчики 6
+logging dhtH 5 50 fast Влажность Датчики 7
//2 - номер пина датчика
//варианты отображения: any-data, progress-round, progress-line, fill-gauge
\ No newline at end of file
diff --git a/data/configs/firmware.c.txt b/data/configs/firmware.c.txt
index d473d648..ba13d5b1 100644
--- a/data/configs/firmware.c.txt
+++ b/data/configs/firmware.c.txt
@@ -4,9 +4,9 @@ button 3 14 Кухня Реле 0 3
pwm 1 3 Яркость#коредор: Реле 1023 4
pwm 2 4 Яркость#ванная: Реле 510 5
analog 0 Аналоговый#вход Датчики fill-gauge 1 1023 1 1023 6
-logging analog 1 100 slow Аналоговый#вход Датчики 7
+logging analog 1 100 fast Аналоговый#вход Датчики 7
-//Это демо конфигурация. В ней показано как связать кнопки c мощью сценариев
+//Это демо конфигурация. В ней показано как связать кнопки c помощью сценариев
//Кнопка номер 1 связана с кнопкой 2, 3 и с pwm 2
//Так же продемонстрированна система логгирования данных строкой logging
//1 - это интервал между точками в минутах, 100 это количество точек
diff --git a/data/configs/level.c.txt b/data/configs/level.c.txt
index 28f10296..6669d8ab 100644
--- a/data/configs/level.c.txt
+++ b/data/configs/level.c.txt
@@ -3,7 +3,7 @@ inputDigit digit1 При#скольки#выключить? Датчики 95 2
inputDigit digit2 При#скольки#включить? Датчики 10 3
button 1 5 Насос Датчики 0 4
button 2 line1,line2, Автоматический#режим Датчики 1 5
-logging level 1 100 slow Вода#в#баке Датчики 6
+logging level 1 100 fast Вода#в#баке Датчики 6
//125 - это расстояние от датчика до дна бака в сантиметрах
//20 - это расстояние от датчика до поверхности воды когда бак полный в сантиметрах
diff --git a/data/configs/termostat.c.txt b/data/configs/termostat.c.txt
index 0ab8525d..b5e18f64 100644
--- a/data/configs/termostat.c.txt
+++ b/data/configs/termostat.c.txt
@@ -1,5 +1,5 @@
dallas 2 Водонагреватель,#t°C Термостат any-data 1
-logging dallas 5 100 slow Температура Термостат 2
+logging dallas 5 100 fast Температура Термостат 2
inputDigit digit1 При#скольки#выключить? Термостат 40 3
inputDigit digit2 При#скольки#включить? Термостат 20 4
button 1 5 Нагреватель Термостат 0 5
diff --git a/data/configuration.json b/data/configuration.json
index c4a132ce..d337b323 100644
--- a/data/configuration.json
+++ b/data/configuration.json
@@ -32,7 +32,7 @@
"class": "btn btn-warning btn-lg",
"style": "display:inline",
"title": {
- "#": "Выбирите то, во что Вы хотите превратить ESP ",
+ "#": "Выбирите то, во что Вы хотите превратить это устройство ",
"/preset?arg=1": "1.Вкл. выкл. локального реле",
"/preset?arg=2": "2.Вкл. выкл. локального реле в определенное время",
"/preset?arg=3": "3.Вкл. выкл. локального реле на определенный период времени",
diff --git a/data/dev.json b/data/dev.json
index dc1ad578..17e428cb 100644
--- a/data/dev.json
+++ b/data/dev.json
@@ -52,6 +52,23 @@
"class": "alert alert-warning",
"title": "После нажатия на кнопку 'Переформировать список устройств' ждите примерно минуту, а затем обновите страницу и список появится вновь"
},
+ {
+ "type": "h3",
+ "title": "Имя этого устройства:"
+ },
+ {
+ "type": "input",
+ "title": "Имя устройства",
+ "name":"dev_name",
+ "state": "{{name}}",
+ "pattern": "[A-Za-z0-9]{6,12}"
+ },
+ {
+ "type": "button",
+ "title": "Сохранить",
+ "action": "name?arg=[[dev_name]]",
+ "class": "btn btn-block btn-success"
+ },
{
"type": "hr"
},
diff --git a/data/firmware.c.txt b/data/firmware.c.txt
index d473d648..ba13d5b1 100644
--- a/data/firmware.c.txt
+++ b/data/firmware.c.txt
@@ -4,9 +4,9 @@ button 3 14 Кухня Реле 0 3
pwm 1 3 Яркость#коредор: Реле 1023 4
pwm 2 4 Яркость#ванная: Реле 510 5
analog 0 Аналоговый#вход Датчики fill-gauge 1 1023 1 1023 6
-logging analog 1 100 slow Аналоговый#вход Датчики 7
+logging analog 1 100 fast Аналоговый#вход Датчики 7
-//Это демо конфигурация. В ней показано как связать кнопки c мощью сценариев
+//Это демо конфигурация. В ней показано как связать кнопки c помощью сценариев
//Кнопка номер 1 связана с кнопкой 2, 3 и с pwm 2
//Так же продемонстрированна система логгирования данных строкой logging
//1 - это интервал между точками в минутах, 100 это количество точек
diff --git a/data/index.json b/data/index.json
index 573b5155..64fd07ba 100644
--- a/data/index.json
+++ b/data/index.json
@@ -29,7 +29,7 @@
},
{
"type": "h4",
- "title": "SPIFFS version: 2.3.2"
+ "title": "SPIFFS version: 2.3.3"
},
{
"type": "hr"
diff --git a/data/mqtt.json b/data/mqtt.json
index da2a8476..1941798b 100644
--- a/data/mqtt.json
+++ b/data/mqtt.json
@@ -9,6 +9,11 @@
"title": "{{name}}",
"class": "alert-warning"
},
+ {
+ "type": "text",
+ "class": "alert alert-warning",
+ "title": "Обратите внимание что поле prefix может состоять только из одного слова и одного разделителя: /your_prefix, вариант вида: /your_prefix1/your_prefix2 работать не будет. После изменения поля prefix необходимо перезагрузить устройство"
+ },
{
"type": "h4",
"title": "Server name:"
@@ -68,7 +73,7 @@
{
"type": "text",
"class": "alert alert-warning",
- "title": "Прежде чем нажимать на кнопку 'Отправить настройки MQTT' сохрание их, если Вы их меняли. Настройки получат и перезапишут все устройства в локальной сети"
+ "title": "Прежде чем нажимать на кнопку 'Отправить настройки MQTT' сохрание их, если Вы их меняли. Настройки получат и перезапишут все устройства в локальной сети"
},
{
"type": "button",
diff --git a/data/setup.json b/data/setup.json
index 7425c4d9..50f0260b 100644
--- a/data/setup.json
+++ b/data/setup.json
@@ -28,7 +28,7 @@
"title": "Имя устройства",
"name":"dev_name",
"state": "{{name}}",
- "pattern": "[0-9a-zA-Zа-яА-Я.\\- ]{1,20}"
+ "pattern": "[A-Za-z0-9]{6,12}"
},
{
"type": "button",
diff --git a/data_excess/.exclude.files b/data_excess/.exclude.files
new file mode 100644
index 00000000..955397fa
--- /dev/null
+++ b/data_excess/.exclude.files
@@ -0,0 +1,2 @@
+/*.js.gz
+/.exclude.files
diff --git a/date_excess/ace.js.gz b/data_excess/ace.js.gz
similarity index 100%
rename from date_excess/ace.js.gz
rename to data_excess/ace.js.gz
diff --git a/date_excess/config-all.json b/data_excess/config-all.json
similarity index 100%
rename from date_excess/config-all.json
rename to data_excess/config-all.json
diff --git a/date_excess/edit.htm.gz b/data_excess/edit.htm.gz
similarity index 100%
rename from date_excess/edit.htm.gz
rename to data_excess/edit.htm.gz
diff --git a/date_excess/favicon.ico b/data_excess/favicon.ico
similarity index 100%
rename from date_excess/favicon.ico
rename to data_excess/favicon.ico
diff --git a/date_excess/mode-html.js.gz b/data_excess/mode-html.js.gz
similarity index 100%
rename from date_excess/mode-html.js.gz
rename to data_excess/mode-html.js.gz
diff --git a/date_excess/page.htm.gz b/data_excess/page.htm.gz
similarity index 100%
rename from date_excess/page.htm.gz
rename to data_excess/page.htm.gz
diff --git a/data/robots.txt b/data_excess/robots.txt
similarity index 100%
rename from data/robots.txt
rename to data_excess/robots.txt
diff --git a/date_excess/worker-html.js.gz b/data_excess/worker-html.js.gz
similarity index 100%
rename from date_excess/worker-html.js.gz
rename to data_excess/worker-html.js.gz
diff --git a/data_for_edit_for_esp32_ace.js.gz/ace.js.gz b/data_for_edit_for_esp32_ace.js.gz/ace.js.gz
new file mode 100644
index 00000000..7b175c1c
Binary files /dev/null and b/data_for_edit_for_esp32_ace.js.gz/ace.js.gz differ
diff --git a/date_excess/config-my.json b/date_excess/config-my.json
deleted file mode 100644
index 9ce5891e..00000000
--- a/date_excess/config-my.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "name": "IoTmanager",
- "chipID": "",
- "ssidAP": "WiFi",
- "passwordAP": "",
- "ssid": "rise",
- "password": "hostel3333",
- "timezone": 2,
- "mqttServer": "mqtt.ioty.ru",
- "mqttPort": 1883,
- "mqttPrefix": "/rise",
- "mqttUser": "test",
- "mqttPass": "test",
- "scenario": "1",
- "pushingbox_id": "",
- "web_login": "admin",
- "web_pass": "admin"
-}
\ No newline at end of file
diff --git a/push_pushingbox.ino b/push_pushingbox.ino
index 331f4eb7..d517d5f1 100644
--- a/push_pushingbox.ino
+++ b/push_pushingbox.ino
@@ -25,10 +25,10 @@ void pushControl() {
Serial.println("- starting client");
- WiFiClient client;
+ WiFiClient client_push;
Serial.println("- connecting to pushing server: " + String(logServer));
- if (client.connect(logServer, 80)) {
+ if (client_push.connect(logServer, 80)) {
Serial.println("- succesfully connected");
String postStr = "devid=";
@@ -44,15 +44,15 @@ void pushControl() {
Serial.println("- sending data...");
- client.print("POST /pushingbox HTTP/1.1\n");
- client.print("Host: api.pushingbox.com\n");
- client.print("Connection: close\n");
- client.print("Content-Type: application/x-www-form-urlencoded\n");
- client.print("Content-Length: ");
- client.print(postStr.length());
- client.print("\n\n");
- client.print(postStr);
+ client_push.print("POST /pushingbox HTTP/1.1\n");
+ client_push.print("Host: api.pushingbox.com\n");
+ client_push.print("Connection: close\n");
+ client_push.print("Content-Type: application/x-www-form-urlencoded\n");
+ client_push.print("Content-Length: ");
+ client_push.print(postStr.length());
+ client_push.print("\n\n");
+ client_push.print(postStr);
}
- client.stop();
+ client_push.stop();
Serial.println("- stopping the client");
}
diff --git a/set.h b/set.h
index 11fb4619..04c3de73 100644
--- a/set.h
+++ b/set.h
@@ -1,5 +1,5 @@
//===============FIRMWARE SETTINGS=====================================
-String firmware_version = "2.3.2";
+String firmware_version = "2.3.3";
boolean mb_4_of_memory = true;
//#define OTA_enable
//#define MDNS_enable
@@ -151,3 +151,4 @@ IPAddress udp_multicastIP (239, 255, 255, 255);
#endif
String received_ip;
String received_udp_line;
+int udp_period;
diff --git a/udp.ino b/udp.ino
index 2294c995..bab01d27 100644
--- a/udp.ino
+++ b/udp.ino
@@ -34,11 +34,14 @@ void UDP_init() {
#endif
handleUdp_esp32();
-
- ts.add(UDP, 30000, [&](void*) {
+
+ randomSeed(micros());
+ udp_period = random(20000, 40000);
+
+ ts.add(UDP, udp_period, [&](void*) {
if (WiFi.status() == WL_CONNECTED) {
if (!udp_busy) {
- String line_to_send = chipID + ";" + jsonRead(configSetup, "name");
+ String line_to_send = "iotm;" + chipID + ";" + jsonRead(configSetup, "name");
#ifdef ESP8266
Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());
Udp.write(line_to_send.c_str());
@@ -66,7 +69,14 @@ void handleUdp() {
udp_incomingPacket[len] = 0;
}
received_udp_line = String(udp_incomingPacket);
- udp_data_parse = true;
+
+ if (received_udp_line.indexOf("iotm;") >= 0) {
+ udp_data_parse = true;
+ }
+ if (received_udp_line.indexOf("mqttServer") >= 0) {
+ udp_data_parse = true;
+ }
+
}
}
#endif
@@ -78,7 +88,14 @@ void handleUdp_esp32() {
udp.onPacket([](AsyncUDPPacket packet) {
received_udp_line = (char*)packet.data();
received_ip = packet.remoteIP().toString();
- udp_data_parse = true;
+
+ if (received_udp_line.indexOf("iotm;") >= 0) {
+ udp_data_parse = true;
+ }
+ if (received_udp_line.indexOf("mqttServer") >= 0) {
+ udp_data_parse = true;
+ }
+
});
}
#endif
@@ -90,7 +107,7 @@ void do_udp_data_parse() {
Serial.print("[UDP=>] " + received_ip);
Serial.print(" ");
Serial.println(received_udp_line);
- if (received_udp_line.indexOf("mqttServer") > 0) {
+ if (received_udp_line.indexOf("mqttServer") >= 0) {
jsonWriteStr(configSetup, "mqttServer", jsonRead(received_udp_line, "mqttServer"));
jsonWriteInt(configSetup, "mqttPort", jsonReadtoInt(received_udp_line, "mqttPort"));
jsonWriteStr(configSetup, "mqttPrefix", jsonRead(received_udp_line, "mqttPrefix"));
@@ -99,8 +116,9 @@ void do_udp_data_parse() {
saveConfig();
Serial.println("[V] new mqtt setting received from udp and saved");
mqtt_connection = true;
- } else {
- add_dev_in_list("dev.csv", selectFromMarkerToMarker(received_udp_line, ";", 0), selectFromMarkerToMarker(received_udp_line, ";", 1), received_ip);
+ }
+ if (received_udp_line.indexOf("iotm;") >= 0) {
+ add_dev_in_list("dev.csv", selectFromMarkerToMarker(received_udp_line, ";", 1), selectFromMarkerToMarker(received_udp_line, ";", 2), received_ip);
}
}
}