mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-27 06:32:19 +03:00
full change of constuction
This commit is contained in:
29
data/items/items.txt
Normal file
29
data/items/items.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
1;0;button-out;id;toggle;Кнопки;Освещение;order;pin
|
||||
2;0;button-out;id;toggle;Кнопки;Освещение;order;pin;inv[1]
|
||||
3;0;button-out;id;toggle;Кнопки;Освещение;order
|
||||
4;0;button-in;id;toggle;Кнопки;Освещение;order;pin;db[20]
|
||||
5;0;pwm-out;id;range;Ползунки;Яркость;order;pin
|
||||
6;0;inoutput;id;inputDigit;Ввод;Введите#цифру;order
|
||||
7;0;inoutput;id;inputTime;Ввод;Введите#время;order
|
||||
8;0;inoutput;id;anydata;Вывод;Сигнализация;order
|
||||
9;0;analog-adc;id;fillgauge;Сенсоры;Аналоговый;order;gol;map[0,1024,0,100];c[1]
|
||||
10;0;dallas-temp;id;anydataTemp;Сенсоры;Температура;order;sal;index[0];int[10]
|
||||
11;0;ultrasonic-cm;id;anydata;Сенсоры;Расстояние;order;cin;map[0,500,0,100];c[1];int[10]
|
||||
12;0;dht-hum;id;anydataHum;Сенсоры;Влажность;order;thd;type[dht11];c[1]
|
||||
13;0;dht-temp;id;anydataTemp;Сенсоры;Температура;order;thd;type[dht11];c[1]
|
||||
14;0;dht-hum;id;anydataHum;Сенсоры;Влажность;order;thd;type[dht22];c[1]
|
||||
15;0;dht-temp;id;anydataTemp;Сенсоры;Температура;order;thd;type[dht22];c[1]
|
||||
16;0;bme280-temp;id;anydataTemp;Сенсоры;Температура;order;addr[0x76];c[1]
|
||||
17;0;bme280-hum;id;anydataHum;Сенсоры;Влажность;order;addr[0x76];c[1]
|
||||
18;0;bme280-press;id;anydataPress;Сенсоры;Давление;order;addr[0x76];c[1]
|
||||
19;0;bmp280-press;id;anydataPress;Сенсоры;Давление;order;addr[0x76];c[1]
|
||||
20;0;bmp280-temp;id;anydataTemp;Сенсоры;Температура;order;addr[0x76];c[1]
|
||||
21;0;impuls-out;id;na;na;na;order;pin
|
||||
22;0;count-down;id;anydata;Таймер;Обратный#отчет;order
|
||||
23;0;modbus;id;anydata;Modbus;Регистр;order;addr[1];reg[0];c[1]
|
||||
24;0;button-out;id;toggle;Кнопки;Освещение;order;type[UART]
|
||||
25;0;inoutput;id;anydata;Вывод;Вывод#uart;order
|
||||
26;0;logging;id;chart;Графики;История;order;val[any];int[60];cnt[100]
|
||||
27;0;uptime;id;anydataTime;Системные;%name%#uptime;order
|
||||
|
||||
|
||||
46
data/presets/presets.c.txt
Normal file
46
data/presets/presets.c.txt
Normal file
@@ -0,0 +1,46 @@
|
||||
0;dallas-temp;t1;anydataTemp;Термостат1;Температура;1;pin[2];index[0];int[10]
|
||||
0;logging;log1;chart;Термостат1;История;2;val[t1];int[60];cnt[100]
|
||||
0;inoutput;tUp1;inputDigit;Термостат1;Верхний#порог;3
|
||||
0;inoutput;tLow1;inputDigit;Термостат1;Нижний#порог;4
|
||||
0;button-out;btn1;toggle;Термостат1;Нагрев;5;pin[12]*
|
||||
0;dallas-temp;t2;anydataTemp;Термостат2;Температура;1;pin[2];index[0];int[60]
|
||||
0;logging;log2;chart;Термостат2;История;2;val[t2];int[10];cnt[100]
|
||||
0;inoutput;threshold;inputDigitTemp;Термостат2;Заданная#температура;3
|
||||
0;button-out;heater2;toggle;Термостат2;Нагреватель;7;pin[12]
|
||||
0;inoutput;time21;inputTimeClock;Расписание2;Утренний#период;8
|
||||
0;inoutput;threshold1;inputDigitTemp;Расписание2;Температура;9
|
||||
0;inoutput;time22;inputTimeClock;Расписание2;Дневной#период;10
|
||||
0;inoutput;threshold2;inputDigitTemp;Расписание2;Температура;11
|
||||
0;inoutput;time23;inputTimeClock;Расписание2;Вечерний#период;12
|
||||
0;inoutput;threshold3;inputDigitTemp;Расписание2;Температура;13
|
||||
0;inoutput;time24;inputTimeClock;Расписание2;Ночной#период;14
|
||||
0;inoutput;threshold4;inputDigitTemp;Расписание2;Температура;15*
|
||||
0;dht-hum;h3;anydataHum;Теплица3;Влажность;1;pin[2];type[dht11];c[1]
|
||||
0;logging;log3;chart;Теплица3;История;2;val[hum];int[60];cnt[100]
|
||||
0;inoutput;hUp3;inputDigit;Теплица3;Верхний#порог;3
|
||||
0;inoutput;hLow3;inputDigit;Теплица3;Нижний#порог;4
|
||||
0;button-out;hUp3;toggle;Теплица3;Полив;5;pin[12]*
|
||||
0;button-out;btn41;toggle;Реле4;Освещение;1;pin[12]
|
||||
0;button-out;btn42;toggle;Реле4;Освещение;2;pin[13]
|
||||
0;inoutput;time41;inputTime;Реле4;Введите#время#включения;3
|
||||
0;inoutput;time42;inputTime;Реле4;Введите#время#выключения;4*
|
||||
0;button-out;btn51;toggle;Свет5;Выключить#все;1
|
||||
0;button-out;btn52;toggle;Свет5;Гостинная;2;pin[12]
|
||||
0;button-out;btn53;toggle;Свет5;Спальня;3;pin[13]
|
||||
0;button-out;btn54;toggle;Свет5;Прихожая;4;pin[14]
|
||||
0;pwm-out;pwm51;range;Свет5;Яркость;5;pin[15]
|
||||
0;pwm-out;pwm52;range;Свет5;Яркость;6;pin[16]
|
||||
0;inoutput;txt5;anydata;Свет5;Статус;7*
|
||||
0;button-out;button;toggle;Таймер;Освещение;1;pin[12]
|
||||
0;count-down;count;anydata;Таймер;Обратный#отчет;2
|
||||
0;inoutput;input;inputDigit;Таймер;Введите#цифру;3*
|
||||
0;inoutput;text;anydataAlarm;Сигнализация;Движение:;1
|
||||
0;inoutput;time;anydataTime;Сигнализация;Время:;2
|
||||
0;button-in;sensor;na;na;na;3;pin[0];db[20]
|
||||
0;button-out;reset;toggle;Сигнализация;Сбросить;4*
|
||||
0;button-in;sensor;na;na;na;1;pin[0];db[20]
|
||||
0;button-out;light;toggle;Освещение;Освещение;2;pin[13]
|
||||
0;count-down;count;anydata;Освещение;Обратный#отчет;3
|
||||
0;inoutput;period;inputDigit;Освещение;Период#включения;4*
|
||||
0;button-out;light;toggle;Кнопки;Освещение;1;pin[13]
|
||||
0;button-in;switch;na;na;na;2;pin[0];db[20]*
|
||||
84
data/presets/presets.s.txt
Normal file
84
data/presets/presets.s.txt
Normal file
@@ -0,0 +1,84 @@
|
||||
t1 > tUp1
|
||||
btn1 0
|
||||
telegram нагрев#выключен 1
|
||||
end
|
||||
t1 < tLow1
|
||||
btn1 1
|
||||
telegram нагрев#включен 1
|
||||
end*
|
||||
t2 > threshold+-2
|
||||
heater2 0
|
||||
end
|
||||
t2 < threshold+-2
|
||||
heater2 1
|
||||
end
|
||||
timenow = time21
|
||||
threshold threshold1
|
||||
end
|
||||
timenow = time22
|
||||
threshold threshold2
|
||||
end
|
||||
timenow = time23
|
||||
threshold threshold3
|
||||
end
|
||||
timenow = time24
|
||||
threshold threshold4
|
||||
end*
|
||||
h3 > hUp3
|
||||
hUp3 0
|
||||
telegram полив#выключен 1
|
||||
end
|
||||
h3 < hLow3
|
||||
hUp3 1
|
||||
telegram полив#включен 1
|
||||
end*
|
||||
timenow = time41
|
||||
btn41 1
|
||||
btn42 0
|
||||
end
|
||||
timenow = time42
|
||||
btn41 0
|
||||
btn42 1
|
||||
end*
|
||||
btn51 = 1
|
||||
btn52 1
|
||||
btn53 1
|
||||
btn54 1
|
||||
pwm51 200
|
||||
pwm52 800
|
||||
txt5 включено
|
||||
end
|
||||
btn51 = 0
|
||||
btn52 0
|
||||
btn53 0
|
||||
btn54 0
|
||||
pwm51 800
|
||||
pwm52 200
|
||||
txt5 выключено
|
||||
end*
|
||||
button = 1
|
||||
count input
|
||||
end
|
||||
count = 0
|
||||
button 0
|
||||
end*
|
||||
sensor = 1
|
||||
text обнаружено
|
||||
time %date%
|
||||
telegram text обнаружено#движение 1
|
||||
end
|
||||
reset = 1
|
||||
text не#обнаружено
|
||||
time %date%
|
||||
reset 0
|
||||
end*
|
||||
sensor = 1
|
||||
light 1
|
||||
count period
|
||||
end
|
||||
count = 0
|
||||
light 0
|
||||
end*
|
||||
switch = 1
|
||||
light change
|
||||
end*
|
||||
@@ -70,33 +70,33 @@
|
||||
"style": "display:inline",
|
||||
"title": {
|
||||
"#": "Выберите элемент из списка<span class=\"caret\"></span>",
|
||||
"/set?addItem=button-out.pin": "1.Кнопка управляющая пином",
|
||||
"/set?addItem=button-out.inv": "2.Кнопка управляющая пином (с инверсией)",
|
||||
"/set?addItem=button-out.npin": "3.Кнопка виртуальная (не привязанная к пину, для использования в сценариях)",
|
||||
"/set?addItem=button-in": "4.Кнопка физическая, чтение состояния пина (подключается провдами к устройству)",
|
||||
"/set?addItem=pwm-out": "3.Широтно импульсная модуляция pwm",
|
||||
"/set?addItem=input-digit": "5.Окно ввода цифровых значений",
|
||||
"/set?addItem=input-time": "6.Окно ввода времени",
|
||||
"/set?addItem=output-text": "7.Окно вывода любого текста, предупреждения, цифры",
|
||||
"/set?addItem=analog-adc": "8.Датчик аналоговый, чтение аналогового входа",
|
||||
"/set?addItem=dallas-temp": "9.Датчик температуры ds18b20",
|
||||
"/set?addItem=ultrasonic-cm": "10.Датчик расстояния ультрозвуковой JSN-SR04T, HC-SR04, HY-SRF05",
|
||||
"/set?addItem=dht11-temp": "11.Датчик температуры DHT11",
|
||||
"/set?addItem=dht11-hum": "12.Датчик влажности DHT11",
|
||||
"/set?addItem=dht22-temp": "13.Датчик температуры DHT22, DHT33, DHT44, AM2302, RHT03",
|
||||
"/set?addItem=dht22-hum": "14.Датчик влажности DHT22, DHT33, DHT44, AM2302, RHT03",
|
||||
"/set?addItem=bme280-temp": "15.Датчик температуры bme280",
|
||||
"/set?addItem=bme280-hum": "16.Датчик влажности bme280",
|
||||
"/set?addItem=bme280-press": "17.Датчик давления bme280",
|
||||
"/set?addItem=bmp280-temp": "18.Датчик температуры bmp280",
|
||||
"/set?addItem=bmp280-press": "19.Датчик давления bmp280",
|
||||
"/set?addItem=impuls-out": "20.Создать импульсы через заданный промежуток времени (управление шд)",
|
||||
"/set?addItem=count-down": "21.Таймер обратного отчета",
|
||||
"/set?addItem=modbus": "22.Прочитать регистр modbus устройства",
|
||||
"/set?addItem=uart-button": "23.UART кнопка (шлет свое состояние в UART)",
|
||||
"/set?addItem=uart-widget": "24.UART виджет (позволяет вывести полученные данные в любой виджет)",
|
||||
"/set?addItem=logging": "a.Логгирование и вывод в график любой величины",
|
||||
"/set?addItem=uptime": "b.Отобразить время работы устройства"
|
||||
"/set?addItem=1-btn": "1.Кнопка управляющая пином",
|
||||
"/set?addItem=2-btn": "2.Кнопка управляющая пином (с инверсией)",
|
||||
"/set?addItem=3-btn": "3.Кнопка виртуальная (не привязанная к пину, для использования в сценариях)",
|
||||
"/set?addItem=4-btn": "4.Кнопка физическая, чтение состояния пина (подключается провдами к устройству)",
|
||||
"/set?addItem=5-pwm": "5.Широтно импульсная модуляция pwm",
|
||||
"/set?addItem=6-dgt": "6.Окно ввода цифровых значений",
|
||||
"/set?addItem=7-tm": "7.Окно ввода времени",
|
||||
"/set?addItem=8-txt": "8.Окно вывода любого текста, предупреждения, цифры",
|
||||
"/set?addItem=9-adc": "9.Датчик аналоговый, чтение аналогового входа",
|
||||
"/set?addItem=10-tmp": "10.Датчик температуры ds18b20",
|
||||
"/set?addItem=11-rng": "11.Датчик расстояния ультрозвуковой JSN-SR04T, HC-SR04, HY-SRF05",
|
||||
"/set?addItem=12-tmp": "12.Датчик температуры DHT11",
|
||||
"/set?addItem=13-hmd": "13.Датчик влажности DHT11",
|
||||
"/set?addItem=14-tmp": "14.Датчик температуры DHT22, DHT33, DHT44, AM2302, RHT03",
|
||||
"/set?addItem=15-hmd": "15.Датчик влажности DHT22, DHT33, DHT44, AM2302, RHT03",
|
||||
"/set?addItem=16-tmp": "16.Датчик температуры bme280",
|
||||
"/set?addItem=17-hmd": "17.Датчик влажности bme280",
|
||||
"/set?addItem=18-ps": "18.Датчик давления bme280",
|
||||
"/set?addItem=19-tmp": "19.Датчик температуры bmp280",
|
||||
"/set?addItem=20-ps": "20.Датчик давления bmp280",
|
||||
"/set?addItem=21-ips": "21.Создать импульсы через заданный промежуток времени (управление шд)",
|
||||
"/set?addItem=22-cnt": "22.Таймер обратного отчета",
|
||||
"/set?addItem=23-mb": "23.Прочитать регистр modbus устройства",
|
||||
"/set?addItem=24-btn": "24.UART кнопка (шлет свое состояние в UART)",
|
||||
"/set?addItem=25-txt": "25.UART виджет (позволяет вывести полученные данные в любой виджет)",
|
||||
"/set?addItem=26-log": "26.Логгирование и вывод в график любой величины",
|
||||
"/set?addItem=27-ut": "27.Отобразить время работы устройства"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -106,15 +106,15 @@
|
||||
"style": "display:inline",
|
||||
"title": {
|
||||
"#": "Выберите пресет из списка<span class=\"caret\"></span>",
|
||||
"/set?addPreset=1.c": "1.Термостат на основе ds18b20 с оповещением в телеграм",
|
||||
"/set?addPreset=2.c": "2.Гистерезис термостат на основе ds18b20 с суточным расписанием",
|
||||
"/set?addPreset=3.c": "3.Контроль влажности на основе DHT с оповещением в телеграм",
|
||||
"/set?addPreset=4.c": "4.Включение выключение реле в заданное время",
|
||||
"/set?addPreset=5.c": "5.Выключить все (пример работы сценариев)",
|
||||
"/set?addPreset=6.c": "6.Включить кнопку на определенное время (пример работы таймера обратного отчета)",
|
||||
"/set?addPreset=7.c": "7.Охранный датчик движения",
|
||||
"/set?addPreset=8.c": "8.Датчик движения включающий свет с настраиваемой задержкой",
|
||||
"/set?addPreset=9.c": "9.Управление светом с помощью выключателя и приложения"
|
||||
"/set?addPreset=1": "1.Термостат на основе ds18b20 с оповещением в телеграм",
|
||||
"/set?addPreset=2": "2.Гистерезис термостат на основе ds18b20 с суточным расписанием",
|
||||
"/set?addPreset=3": "3.Контроль влажности на основе DHT с оповещением в телеграм",
|
||||
"/set?addPreset=4": "4.Включение выключение реле в заданное время",
|
||||
"/set?addPreset=5": "5.Выключить все (пример работы сценариев)",
|
||||
"/set?addPreset=6": "6.Включить кнопку на определенное время (пример работы таймера обратного отчета)",
|
||||
"/set?addPreset=7": "7.Охранный датчик движения",
|
||||
"/set?addPreset=8": "8.Датчик движения включающий свет с настраиваемой задержкой",
|
||||
"/set?addPreset=9": "9.Управление светом с помощью выключателя и приложения"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -3,18 +3,6 @@
|
||||
//===========Firmware=============================================================================================================================================
|
||||
#define FIRMWARE_VERSION 272
|
||||
#define FLASH_SIZE_1MB true
|
||||
#ifdef ESP8266
|
||||
#ifdef FLASH_SIZE_1MB
|
||||
#define FIRMWARE_NAME "esp8266-1mb"
|
||||
#else
|
||||
#define FIRMWARE_NAME "esp8266"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#ifdef ESP32
|
||||
#define FIRMWARE_NAME "esp32"
|
||||
#endif
|
||||
|
||||
//===========FileSystem==============================================================================================================================================
|
||||
#define littlefs_on
|
||||
//==================================================================================================================================================================
|
||||
@@ -46,7 +34,17 @@
|
||||
#define uartEnable
|
||||
|
||||
|
||||
#ifdef ESP8266
|
||||
#ifdef FLASH_SIZE_1MB
|
||||
#define FIRMWARE_NAME "esp8266-1mb"
|
||||
#else
|
||||
#define FIRMWARE_NAME "esp8266"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef ESP32
|
||||
#define FIRMWARE_NAME "esp32"
|
||||
#endif
|
||||
|
||||
//================================================================================================================================================================
|
||||
enum TimerTask_t { WIFI_SCAN,
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
#include "Global.h"
|
||||
|
||||
extern void itemsListInit();
|
||||
extern void addItem2(String param);
|
||||
extern void addItem(String name);
|
||||
extern void addPreset(String name);
|
||||
extern void addPreset2(int num);
|
||||
extern void delChoosingItems();
|
||||
extern void delAllItems();
|
||||
extern uint8_t getNewElementNumber(String file);
|
||||
|
||||
@@ -18,63 +18,96 @@ void itemsListInit() {
|
||||
delChoosingItems();
|
||||
},
|
||||
nullptr);
|
||||
|
||||
|
||||
|
||||
SerialPrint("I", F("Items"), F("Items Init"));
|
||||
}
|
||||
|
||||
void addItem(String name) {
|
||||
void addItem2(String param) {
|
||||
int num = selectToMarker(param, "-").toInt();
|
||||
File configFile = LittleFS.open("/items/items.txt", "r");
|
||||
if (!configFile) {
|
||||
return;
|
||||
}
|
||||
configFile.seek(0, SeekSet);
|
||||
String seachingLine;
|
||||
|
||||
String item = readFile("items/" + name + ".txt", 1024);
|
||||
|
||||
name = selectToMarker(name, "-");
|
||||
while (configFile.position() != configFile.size()) {
|
||||
String item = configFile.readStringUntil('\n');
|
||||
int tmpNum = selectToMarker(item, ";").toInt();
|
||||
if (tmpNum == num) {
|
||||
seachingLine = item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
configFile.close();
|
||||
|
||||
String name = deleteBeforeDelimiter(param, "-");
|
||||
randomSeed(micros());
|
||||
unsigned int num = random(0, 1000);
|
||||
unsigned int rnd = random(0, 1000);
|
||||
seachingLine.replace("id", name + String(rnd));
|
||||
seachingLine.replace("order", String(getNewElementNumber("order.txt")));
|
||||
|
||||
item.replace("id", name + String(num));
|
||||
item.replace("order", String(getNewElementNumber("order.txt")));
|
||||
|
||||
if (item.indexOf("pin") != -1) { //all cases (random pins from available)
|
||||
item.replace("pin", "pin[" + String(getFreePinAll()) + "]");
|
||||
}
|
||||
else if (item.indexOf("gol") != -1) { //analog
|
||||
item.replace("gol", "pin[" + String(getFreePinAnalog()) + "]");
|
||||
}
|
||||
else if (item.indexOf("cin") != -1) { //ultrasonic
|
||||
item.replace("cin", "pin[" + String(getFreePinAll()) + "," + String(getFreePinAll()) + "]");
|
||||
}
|
||||
else if (item.indexOf("sal") != -1) { //dallas
|
||||
item.replace("sal", "pin[2]");
|
||||
}
|
||||
else if (item.indexOf("thd") != -1) { //dht11/22
|
||||
item.replace("thd", "pin[2]");
|
||||
if (seachingLine.indexOf("pin") != -1) {
|
||||
seachingLine.replace("pin", "pin[" + String(getFreePinAll()) + "]");
|
||||
}
|
||||
|
||||
item.replace("\r\n", "");
|
||||
item.replace("\r", "");
|
||||
item.replace("\n", "");
|
||||
|
||||
addFile(DEVICE_CONFIG_FILE, "\n" + item);
|
||||
Serial.println(item);
|
||||
seachingLine = deleteBeforeDelimiter(seachingLine, ";");
|
||||
seachingLine.replace("\r\n", "");
|
||||
seachingLine.replace("\r", "");
|
||||
seachingLine.replace("\n", "");
|
||||
addFile(DEVICE_CONFIG_FILE, "\n" + seachingLine);
|
||||
Serial.println(seachingLine);
|
||||
}
|
||||
|
||||
void addPreset(String name) {
|
||||
String preset = readFile("presets/" + name + ".txt", 4048);
|
||||
addFile(DEVICE_CONFIG_FILE, "\n" + preset);
|
||||
Serial.println(preset);
|
||||
|
||||
name.replace(".c", ".s");
|
||||
void addPreset2(int num) {
|
||||
File configFile = LittleFS.open("/presets/presets.c.txt", "r");
|
||||
if (!configFile) {
|
||||
return;
|
||||
}
|
||||
configFile.seek(0, SeekSet);
|
||||
String config;
|
||||
int i1 = 0;
|
||||
while (configFile.position() != configFile.size()) {
|
||||
i1++;
|
||||
String item = configFile.readStringUntil('*');
|
||||
if (i1 == num) {
|
||||
if (i1 == 1) {
|
||||
config = "\n" + item;
|
||||
}
|
||||
else {
|
||||
config = item;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
configFile.close();
|
||||
addFile(DEVICE_CONFIG_FILE, config);
|
||||
|
||||
String scenario = readFile("presets/" + name + ".txt", 4048);
|
||||
|
||||
removeFile(DEVICE_SCENARIO_FILE);
|
||||
|
||||
addFile(DEVICE_SCENARIO_FILE, scenario);
|
||||
loadScenario();
|
||||
Serial.println(scenario);
|
||||
File scenFile = LittleFS.open("/presets/presets.s.txt", "r");
|
||||
if (!scenFile) {
|
||||
return;
|
||||
}
|
||||
scenFile.seek(0, SeekSet);
|
||||
String scen;
|
||||
int i2 = 0;
|
||||
while (scenFile.position() != scenFile.size()) {
|
||||
i2++;
|
||||
String item = scenFile.readStringUntil('*');
|
||||
if (i2 == num) {
|
||||
scen = item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
scenFile.close();
|
||||
if (readFile(String(DEVICE_SCENARIO_FILE), 2048) == "//") {
|
||||
removeFile(DEVICE_SCENARIO_FILE);
|
||||
}
|
||||
addFile(DEVICE_SCENARIO_FILE, scen);
|
||||
}
|
||||
|
||||
|
||||
void delAllItems() {
|
||||
removeFile(DEVICE_CONFIG_FILE);
|
||||
addFile(DEVICE_CONFIG_FILE, String(firstLine));
|
||||
|
||||
@@ -20,12 +20,12 @@ void web_init() {
|
||||
server.on("/set", HTTP_GET, [](AsyncWebServerRequest* request) {
|
||||
//==============================set.device.json====================================================================================================
|
||||
if (request->hasArg("addItem")) {
|
||||
addItem(request->getParam("addItem")->value());
|
||||
addItem2(request->getParam("addItem")->value());
|
||||
request->redirect("/?set.device");
|
||||
}
|
||||
|
||||
if (request->hasArg("addPreset")) {
|
||||
addPreset(request->getParam("addPreset")->value());
|
||||
addPreset2(request->getParam("addPreset")->value().toInt());
|
||||
jsonWriteStr(configSetupJson, "warning1", F("<div style='margin-top:10px;margin-bottom:10px;'><font color='black'><p style='border: 1px solid #DCDCDC; border-radius: 3px; background-color: #ffc7c7; padding: 10px;'>Требуется перезагрузка</p></font></div>"));
|
||||
request->redirect("/?set.device");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user