mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
fuking bugs fixed!
This commit is contained in:
2
Cmd.ino
2
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);
|
||||
|
||||
5
Init.ino
5
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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
20
Upgrade.ino
20
Upgrade.ino
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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 вольт, то значит
|
||||
//значение чтения аналогового входа будут примерно равным
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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 это количество точек
|
||||
|
||||
@@ -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 - это расстояние от датчика до поверхности воды когда бак полный в сантиметрах
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.Вкл. выкл. локального реле на определенный период времени",
|
||||
|
||||
@@ -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"
|
||||
},
|
||||
|
||||
@@ -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 это количество точек
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
},
|
||||
{
|
||||
"type": "h4",
|
||||
"title": "SPIFFS version: 2.3.2"
|
||||
"title": "SPIFFS version: 2.3.3"
|
||||
},
|
||||
{
|
||||
"type": "hr"
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
2
data_excess/.exclude.files
Normal file
2
data_excess/.exclude.files
Normal file
@@ -0,0 +1,2 @@
|
||||
/*.js.gz
|
||||
/.exclude.files
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
BIN
data_for_edit_for_esp32_ace.js.gz/ace.js.gz
Normal file
BIN
data_for_edit_for_esp32_ace.js.gz/ace.js.gz
Normal file
Binary file not shown.
@@ -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"
|
||||
}
|
||||
@@ -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
3
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;
|
||||
|
||||
34
udp.ino
34
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user