fuking bugs fixed!

This commit is contained in:
Dmitry Borisenko
2020-04-22 20:35:50 +02:00
parent 990bd6fb47
commit 696c51b113
33 changed files with 101 additions and 69 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -22,8 +22,8 @@ void initUpgrade() {
if (last_version == firmware_version) {
jsonWriteStr(tmp, "title", "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>Последняя версия прошивки уже установлена.");
jsonWriteStr(tmp, "class", "pop-up");
} else {
jsonWriteStr(tmp, "title", "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>Имеется новая версия прошивки<a href=\"#\" class=\"btn btn-block btn-danger\" onclick=\"send_request(this, '/upgrade');setTimeout(function(){ location.href='/'; }, 90000);html('my-block','<span class=loader></span>Идет обновление прошивки, после обновления страница перезагрузится автоматически...')\">Установить</a>");
} else {
jsonWriteStr(tmp, "title", "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>Имеется новая версия прошивки<a href=\"#\" class=\"btn btn-block btn-danger\" onclick=\"send_request(this, '/upgrade');setTimeout(function(){ location.href='/'; }, 120000);html('my-block','<span class=loader></span>Идет обновление прошивки, после обновления страница перезагрузится автоматически...')\">Установить</a>");
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", "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>Есть новая версия <a href=\"#\" onclick=\"setTimeout(function(){ location.href='/'; }, 5000);}\">Установить?</a>");
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");
}
}

View File

@@ -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"
}

View File

@@ -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 вольт, то значит
//значение чтения аналогового входа будут примерно равным

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 это количество точек

View File

@@ -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 - это расстояние от датчика до поверхности воды когда бак полный в сантиметрах

View File

@@ -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

View File

@@ -32,7 +32,7 @@
"class": "btn btn-warning btn-lg",
"style": "display:inline",
"title": {
"#": "Выбирите то, во что Вы хотите превратить ESP <span class=\"caret\"></span>",
"#": "Выбирите то, во что Вы хотите превратить это устройство <span class=\"caret\"></span>",
"/preset?arg=1": "1.Вкл. выкл. локального реле",
"/preset?arg=2": "2.Вкл. выкл. локального реле в определенное время",
"/preset?arg=3": "3.Вкл. выкл. локального реле на определенный период времени",

View File

@@ -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"
},

View File

@@ -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 это количество точек

View File

@@ -29,7 +29,7 @@
},
{
"type": "h4",
"title": "SPIFFS version: 2.3.2"
"title": "SPIFFS version: 2.3.3"
},
{
"type": "hr"

View File

@@ -9,6 +9,11 @@
"title": "{{name}}",
"class": "alert-warning"
},
{
"type": "text",
"class": "alert alert-warning",
"title": "Обратите внимание что поле prefix может состоять только из одного слова и одного разделителя: <b>/your_prefix</b>, вариант вида: <b>/your_prefix1/your_prefix2</b> работать не будет. После изменения поля prefix необходимо перезагрузить устройство"
},
{
"type": "h4",
"title": "Server name:"
@@ -68,7 +73,7 @@
{
"type": "text",
"class": "alert alert-warning",
"title": "Прежде чем нажимать на кнопку 'Отправить настройки MQTT' сохрание их, если Вы их меняли. Настройки получат и перезапишут все устройства в локальной сети"
"title": "Прежде чем нажимать на кнопку <b>'Отправить настройки MQTT'</b> сохрание их, если Вы их меняли. Настройки получат и перезапишут все устройства в локальной сети"
},
{
"type": "button",

View File

@@ -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",

View File

@@ -0,0 +1,2 @@
/*.js.gz
/.exclude.files

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

View File

@@ -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"
}

View File

@@ -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");
}

3
set.h
View File

@@ -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;

34
udp.ino
View File

@@ -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);
}
}
}