diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 65469d13..00000000
--- a/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-.pio
-.vscode/.browse.c_cpp.db*
-.vscode/c_cpp_properties.json
-.vscode/launch.json
-.vscode/ipch
-lib/libraies-master
-
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
deleted file mode 100644
index e80666bf..00000000
--- a/.vscode/extensions.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- // See http://go.microsoft.com/fwlink/?LinkId=827846
- // for the documentation about the extensions.json format
- "recommendations": [
- "platformio.platformio-ide"
- ]
-}
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index f8f7d0eb..00000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2021 Dmitry Borisenko
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/README.md b/README.md
deleted file mode 100644
index 99208207..00000000
--- a/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# IoTManager
-Это модульная система беспроводной автоматизации на базе ESP32/ESP8266 микроконтроллеров и приложения IoT Manager.
-Телеграм канал обсуждения приложения и системы автоматизации https://t.me/IoTmanager
-# [Инструкция](https://github.com/IoTManagerProject/IoTManager/wiki)
-
-
diff --git a/bin/esp8266_1mb/firmware.bin b/bin/esp8266_1mb/firmware.bin
deleted file mode 100644
index 817f8ff3..00000000
Binary files a/bin/esp8266_1mb/firmware.bin and /dev/null differ
diff --git a/bin/esp8266_1mb/spiffs.bin b/bin/esp8266_1mb/spiffs.bin
deleted file mode 100644
index 8cbb8b67..00000000
Binary files a/bin/esp8266_1mb/spiffs.bin and /dev/null differ
diff --git a/bin/esp8266_mysensors_4mb/firmware.bin b/bin/esp8266_mysensors_4mb/firmware.bin
deleted file mode 100644
index 9ce4258a..00000000
Binary files a/bin/esp8266_mysensors_4mb/firmware.bin and /dev/null differ
diff --git a/bin/esp8266_mysensors_4mb/littlefs.bin b/bin/esp8266_mysensors_4mb/littlefs.bin
deleted file mode 100644
index 910c9f95..00000000
Binary files a/bin/esp8266_mysensors_4mb/littlefs.bin and /dev/null differ
diff --git a/data_esp/config.json b/data_esp/config.json
deleted file mode 100644
index 88b2d187..00000000
--- a/data_esp/config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "IoTmanager",
- "chipID": "",
- "apssid": "IoTmanager",
- "appass": "",
- "routerssid": "XChangeWIFI",
- "routerpass": "XCh@WIFI",
- "timezone": 1,
- "ntp": "pool.ntp.org",
- "mqttServer": "91.204.228.124",
- "mqttPort": 1883,
- "mqttPrefix": "/iotTest3",
- "mqttUser": "rise",
- "mqttPass": "23ri22se32",
- "mqttServer2": "M2.WQTT.RU",
- "mqttPort2": 8021,
- "mqttPrefix2": "/iotTest3",
- "mqttUser2": "rise",
- "mqttPass2": "hostel3333",
- "scen": 1,
- "telegramApi": "1416711569:AAEI0j83GmXqwzb_gnK1B0Am0gDwZoJt5xo",
- "telegonof": 0,
- "teleginput": 0,
- "autos": 1,
- "weblogin": "admin",
- "webpass": "admin",
- "MqttIn": 0,
- "MqttOut": 0,
- "blink": 1,
- "oneWirePin": 2,
- "serverip": "http://206.189.49.244",
- "uart": 0,
- "uartS": 9600,
- "uartTX": 12,
- "uartRX": 13,
- "grafmax": 0
-}
\ No newline at end of file
diff --git a/data_esp/css/build.css.gz b/data_esp/css/build.css.gz
deleted file mode 100644
index 138a767b..00000000
Binary files a/data_esp/css/build.css.gz and /dev/null differ
diff --git a/data_esp/dev_conf.txt b/data_esp/dev_conf.txt
deleted file mode 100644
index e69de29b..00000000
diff --git a/data_esp/edit.htm.gz b/data_esp/edit.htm.gz
deleted file mode 100644
index 5786121f..00000000
Binary files a/data_esp/edit.htm.gz and /dev/null differ
diff --git a/data_esp/favicon.ico b/data_esp/favicon.ico
deleted file mode 100644
index 50d908fa..00000000
Binary files a/data_esp/favicon.ico and /dev/null differ
diff --git a/data_esp/index.htm.gz b/data_esp/index.htm.gz
deleted file mode 100644
index 073ff4ab..00000000
Binary files a/data_esp/index.htm.gz and /dev/null differ
diff --git a/data_esp/index.json.gz b/data_esp/index.json.gz
deleted file mode 100644
index 25eebb26..00000000
Binary files a/data_esp/index.json.gz and /dev/null differ
diff --git a/data_esp/items/items.txt b/data_esp/items/items.txt
deleted file mode 100644
index b75f01f0..00000000
--- a/data_esp/items/items.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-0;button-out;btnid;toggleBtn;Кнопки;Освещение;order;gpio*
-0;button-out;btnid;toggleBtn;Кнопки;Освещение;order;gpio;inv[1]*
-0;button-out;btnid;toggleBtn;Кнопки;Освещение;order*
-0;button-in;btnid;toggleBtn;Кнопки;Освещение;order;gpio;db[20]*
-0;pwm-out;pwmid;range;Ползунки;Яркость;order;gpio*
-0;input-value;dgtid;inputDigit;Ввод;Введите#цифру;order*
-0;input-value;tmid;inputTime;Ввод;Введите#время;order*
-0;output-value;txtid;anydata;Вывод;Сигнализация;order*
-0;analog-adc;adcid;fillgauge;Сенсоры;Аналоговый;order;pin[0];map[0,1024,0,100];c[1];int[10]*
-0;dallas-temp;tmpid;anydataTemp;Сенсоры;Температура;order;pin[2];index[0];int[10]*
-0;ultrasonic-cm;cmid;anydata;Сенсоры;Расстояние;order;pin[12,13];map[0,500,0,100];c[1];int[10]*
-0;dht;tmpid;anydataTemp;Сенсоры;Температура;1;c[1]
-0;dht;humid;anydataHum;Сенсоры;Влажность;2;c[1];pin[2];type[dht11];int[10]*
-0;dht;tmpid;anydataTemp;Сенсоры;Температура;1;c[1]
-0;dht;humid;anydataHum;Сенсоры;Влажность;2;c[1];pin[2];type[dht22];int[10]*
-0;bme280;tmpid;anydataTemp;Сенсоры;Температура;1;c[1]
-0;bme280;humid;anydataHum;Сенсоры;Влажность;2;c[1]
-0;bme280;prsid;anydataPress;Сенсоры;Давление;3;c[1];addr[0x76];int[10]*
-0;bmp280;tmpid;anydataTemp;Сенсоры;Температура;1;c[1]
-0;bmp280;prsid;anydataPress;Сенсоры;Давление;3;c[1];addr[0x76];int[10]*
-0;pzem;Vltid;anydataVlt;Сенсоры;Напряжение;1;c[1];k[0]
-0;pzem;Ampid;anydataAmp;Сенсоры;Сила#тока;2;c[1];k[0]
-0;pzem;Wttid;anydataWtt;Сенсоры;Мощность;3;c[1];k[0]
-0;pzem;Whrid;anydataWhr;Сенсоры;Энергия;4;c[1];k[0]
-0;pzem;Htzid;anydataHtz;Сенсоры;Частота;5;c[1];k[0];addr[0xF8];int[10]*
-0;ccs811;ppmid;anydataPpm;Сенсоры;Содержание#CO2;1;c[1]
-0;ccs811;ppbid;anydataPpb;Сенсоры;Содержание#орг#соед;2;c[1];addr[0x76];int[10]*
-0;impuls-out;impid;na;na;na;order;gpio*
-0;impuls-in;impid;anydata;Сенсоры;Количество#импульсов;order;pin[0];c[1];k[0]*
-0;count-down;cntid;anydata;Таймер;Обратный#отчет;order*
-0;output-value;txtid;anydata;Вывод;Температура;order*
-0;logging;crtid;chart;Графики;История;order;val[any];int[60];cnt[100]*
-0;logging;crtid;chart3;Графики;История;order;val[any];int[23:30];cnt[100];st[0]*
-0;uptime;uptid;anydataTime;Системные;%name%#uptime;order;int[60]*
\ No newline at end of file
diff --git a/data_esp/js/build.chart.js.gz b/data_esp/js/build.chart.js.gz
deleted file mode 100644
index 654707fd..00000000
Binary files a/data_esp/js/build.chart.js.gz and /dev/null differ
diff --git a/data_esp/js/function.js.gz b/data_esp/js/function.js.gz
deleted file mode 100644
index 87c9dd01..00000000
Binary files a/data_esp/js/function.js.gz and /dev/null differ
diff --git a/data_esp/lang/lang.ru.json b/data_esp/lang/lang.ru.json
deleted file mode 100644
index 2c089bcb..00000000
--- a/data_esp/lang/lang.ru.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "SetDevConf": "Конфигурация устройства",
- "SetDevPreset": "Выберите из списка подходящий пресет кофигурации",
-
- "ButSave":"Сохранить",
- "ButMainPage":"Главная",
-
-
- "SetUDPList": "Список других устройств в сети:",
- "SetUDPWarn1": "После нажатия на кнопку переформировать список устройств ждите примерно минуту, а затем обновите страницу и список появится вновь",
-
- "SetUDPUpdateList":"Переформировать список устройств",
- "SetUDPUpdatePage":"Обновить страницу",
- "SetUDPNameOfDev":"Имя этого устройства:",
- "SetUDPDateExchange":"Включить обмен данными между устройствами",
- "SetUDPWarn2":"Если обмен данными включен, то устройства будут обмениваться широковещательными пакетами udp для формирования списка устройств и для осуществления посылки настроек mqtt. Данный обмен создает дополнительную нагрузку на wifi сеть.",
-
- "SetWiFiNameOfDev":"Имя устройства:",
- "SetWiFiRouterConnect":"Подключение к WiFi роутеру:",
- "SetWiFiAccessPoint":"Точка доступа:",
- "SetWiFiWeb":"Логин и пароль web interface:",
- "SetWiFiTimeZone":"Временная зона:",
- "SetWiFiNTP":"Сервер NTP:",
- "SetWiFiWarn1":"Имя устройства должно состоять из английских букв и иметь длинну от 6 до 12 символов",
- "SetWiFiWarn2":"После того как вы введете логин пароль от вашего wifi роутера необходимо нажать кнопку сохранить, а затем обязательно нажать кнопку перезагрузить устройство внизу этой страницы",
- "SetWiFiWarn3":"Устройство постоянно сканирует сеть на наличие wifi. Если роутер отключен, то устройство автоматически перейдет в режим точки доступа. Когда wifi появится устройство автоматически подключится к роутеру снова, и выключит точку доступа",
- "SetWiFiWarn4":"После изменения поля NTP сервер необходимо перезагрузить устройство",
- "SetWiFiWarn5":"Светодиод статуса подключения показывает четыре состояния подключения:
1. мигает редко - идет подключение к wifi
2. мигает часто - идет подключение к серверу mqtt
3. горит постоянно - модуль в режиме точки доступа,
4. не горит - модуль подключен к wifi и к mqtt.
Светодиод подключен к gpio2. Если галочка стоит - то использовать этот пин нельзя",
-
- "SetMQTTServerName":"Имя сервера:",
- "SetMQTTPort":"Номер порта:",
- "SetMQTTPrefix":"Префикс:",
- "SetMQTTUserName":"Имя пользователя:",
- "SetMQTTPassword":"Пароль:",
-
- "SetMQTTSendSettings":"Отправить настройки MQTT с этого устройства на все остальные",
- "SetMQTTWarn1":"Обратите внимание что поле префикс может состоять только из одного слова и одного разделителя: /prefix, вариант вида: /prefix1/prefix2 работать не будет. После изменения поля prefix необходимо перезагрузить устройство",
- "SetMQTTWarn2":"Прежде чем нажимать на кнопку Отправить настройки MQTT сохрание их, если Вы их меняли. Настройки получат и перезапишут все устройства в локальной сети"
-}
\ No newline at end of file
diff --git a/data_esp/presets/presets.c.txt b/data_esp/presets/presets.c.txt
deleted file mode 100644
index b8944e5a..00000000
--- a/data_esp/presets/presets.c.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-0;dallas-temp;t1;anydataTemp;Термостат;Температура;1;pin[2];index[0];int[10]
-0;logging;log1;chart;Термостат;История;2;val[t1];int[60];cnt[100]
-0;input-value;tUp1;inputDigitTemp;Термостат;Верхний#порог;3
-0;input-value;tLow1;inputDigitTemp;Термостат;Нижний#порог;4
-0;button-out;btn1;toggleBtn;Термостат;Нагрев;5;pin[12]*
-0;dallas-temp;t2;anydataTemp;Главная;Температура;1;pin[2];index[0];int[10]
-0;logging;log2;chart;Главная;История;2;val[t2];int[10];cnt[100]
-0;input-value;threshold;inputDigitTemp;Главная;Заданная#температура;3
-0;button-out;heater2;toggleBtn;Главная;Нагреватель;7;pin[5]
-0;input-value;time21;inputTimeClock;Расписание;Утренний#период;8
-0;input-value;threshold1;inputDigitTemp;Расписание;Температура;9
-0;input-value;time22;inputTimeClock;Расписание;Дневной#период;10
-0;input-value;threshold2;inputDigitTemp;Расписание;Температура;11
-0;input-value;time23;inputTimeClock;Расписание;Вечерний#период;12
-0;input-value;threshold3;inputDigitTemp;Расписание;Температура;13
-0;input-value;time24;inputTimeClock;Расписание;Ночной#период;14
-0;input-value;threshold4;inputDigitTemp;Расписание;Температура;15*
-0;dht;t3;anydataTemp;Теплица;Температура;1;c[1]
-0;dht;h3;anydataHum;Теплица;Влажность;2;c[1];pin[2];type[dht11];int[10]
-0;logging;log3;chart;Теплица;История;3;val[h3];int[60];cnt[100]
-0;input-value;hUp3;inputDigit;Теплица;Верхний#порог;4
-0;input-value;hLow3;inputDigit;Теплица;Нижний#порог;5
-0;button-out;btn3;toggleBtn;Теплица;Полив;6;pin[12]*
-0;button-out;btn41;toggleBtn;Реле;Реле1;1;pin[12]
-0;input-value;time41;inputTimeClock;Реле;Введите#время#включения;2
-0;button-out;btn42;toggleBtn;Реле;Реле2;3;pin[13]
-0;input-value;time42;inputTimeClock;Реле;Введите#время#выключения;4*
-0;button-out;btn51;toggleBtn;Сценарии;Выключить#все;1
-0;button-out;btn52;toggleBtn;Сценарии;Гостинная;2;pin[12]
-0;button-out;btn53;toggleBtn;Сценарии;Спальня;3;pin[13]
-0;button-out;btn54;toggleBtn;Сценарии;Прихожая;4;pin[14]
-0;pwm-out;pwm51;range;Сценарии;Яркость;5;pin[15]
-0;pwm-out;pwm52;range;Сценарии;Яркость;6;pin[16]
-0;output-value;txt5;anydata;Сценарии;Статус;7*
-0;button-out;btn6;toggleBtn;Таймер;Освещение;1;pin[12]
-0;count-down;cnt6;anydata;Таймер;Обратный#отчет;2
-0;input-value;sec6;inputDigit;Таймер;Введите#цифру;3*
-0;button-out;start;toggleBtn;Цикл;Запустить#цикл;1
-0;count-down;cnt71;anydata;Цикл;Осталось#секунд;3
-0;input-value;sec71;inputDigit;Цикл;Период#включения;4
-0;count-down;cnt72;anydata;Цикл;Осталось#секунд;5
-0;input-value;sec72;inputDigit;Цикл;Период#выключения;6
-0;button-out;btn7;toggleBtn;Цикл;Реле;7;pin[12]*
-0;output-value;txt81;anydataAlarm;Сигнализация;Движение:;1
-0;output-value;txt82;anydataTime;Сигнализация;Время:;2
-0;button-in;sens8;na;na;na;3;pin[0];db[20]
-0;button-out;rst8;toggleBtn;Сигнализация;Сбросить;4
-0;button-out;on8;toggleBtn;Сигнализация;Включить;5*
-0;button-in;sens9;na;na;na;1;pin[0];db[20]
-0;button-out;btn9;toggleBtn;Освещение;Освещение;2;pin[13]
-0;count-down;cnt9;anydata;Освещение;Обратный#отчет;3
-0;input-value;sec9;inputDigit;Освещение;Период#включения;4*
-0;button-out;btn10;toggleBtn;Кнопки;Освещение;1;pin[13]
-0;button-in;sw10;na;na;na;2;pin[0];db[20]*
\ No newline at end of file
diff --git a/data_esp/presets/presets.s.txt b/data_esp/presets/presets.s.txt
deleted file mode 100644
index 481ac0a9..00000000
--- a/data_esp/presets/presets.s.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-t1 > tUp1
-btn1 0
-telegram msg1 нагрев#выключен
-end
-t1 < tLow1
-btn1 1
-telegram msg1 нагрев#включен
-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
-btn3 0
-telegram msg3 полив#выключен
-end
-h3 < hLow3
-btn3 1
-telegram msg3 полив#включен
-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
-pwm51 > 900 && pwm52 > 900
-btn52 0
-btn53 0
-btn54 0
-end*
-btn6 = 1
-cnt6 sec6
-end
-cnt6 = 0
-btn6 0
-end*
-start = 1
-cnt71 sec71
-btn7 1
-end
-cnt71 = 0
-btn7 0
-cnt72 sec72
-end
-cnt72 = 0
-btn7 1
-cnt71 sec71
-end
-start = 0
-cnt71 0
-cnt72 0
-end*
-sens8 = 1 && on8b = 1
-txt81 обнаружено
-txt82 %date%
-telegram often Обнаружено#движение
-end
-rst8 = 1
-txt81 не#обнаружено
-txt82 %date%
-rst8 0
-end*
-sens9 = 1
-btn9 1
-cnt9 sec9
-end
-cnt9 = 0
-btn9 0
-end*
-sw10 = 1
-btn10 change
-end*
\ No newline at end of file
diff --git a/data_esp/s.conf.csv b/data_esp/s.conf.csv
deleted file mode 100644
index 40b35ae1..00000000
--- a/data_esp/s.conf.csv
+++ /dev/null
@@ -1 +0,0 @@
-Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета
\ No newline at end of file
diff --git a/data_esp/s.scen.txt b/data_esp/s.scen.txt
deleted file mode 100644
index ab0c0141..00000000
--- a/data_esp/s.scen.txt
+++ /dev/null
@@ -1 +0,0 @@
-//
\ No newline at end of file
diff --git a/data_esp/set.developer.json.gz b/data_esp/set.developer.json.gz
deleted file mode 100644
index baa9834e..00000000
Binary files a/data_esp/set.developer.json.gz and /dev/null differ
diff --git a/data_esp/set.device.json.gz b/data_esp/set.device.json.gz
deleted file mode 100644
index 87d9244b..00000000
Binary files a/data_esp/set.device.json.gz and /dev/null differ
diff --git a/data_esp/set.manual.json.gz b/data_esp/set.manual.json.gz
deleted file mode 100644
index 17584676..00000000
Binary files a/data_esp/set.manual.json.gz and /dev/null differ
diff --git a/data_esp/set.mqtt.json.gz b/data_esp/set.mqtt.json.gz
deleted file mode 100644
index 7e48784f..00000000
Binary files a/data_esp/set.mqtt.json.gz and /dev/null differ
diff --git a/data_esp/set.telegram.json.gz b/data_esp/set.telegram.json.gz
deleted file mode 100644
index e8810e9b..00000000
Binary files a/data_esp/set.telegram.json.gz and /dev/null differ
diff --git a/data_esp/set.udp.json.gz b/data_esp/set.udp.json.gz
deleted file mode 100644
index 6091765c..00000000
Binary files a/data_esp/set.udp.json.gz and /dev/null differ
diff --git a/data_esp/set.utilities.json.gz b/data_esp/set.utilities.json.gz
deleted file mode 100644
index 5356db03..00000000
Binary files a/data_esp/set.utilities.json.gz and /dev/null differ
diff --git a/data_esp/set.wifi.json.gz b/data_esp/set.wifi.json.gz
deleted file mode 100644
index d5cab6bf..00000000
Binary files a/data_esp/set.wifi.json.gz and /dev/null differ
diff --git a/data_esp/widgets.json b/data_esp/widgets.json
deleted file mode 100644
index acf59ff9..00000000
--- a/data_esp/widgets.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "undef": "Ошибка",
- "toggleBtn": "Кнопка переключатель",
- "range": "Ползунок",
- "inputDate": "Окно ввода даты",
- "inputTime": "Окно ввода времени 1",
- "inputTimeClock": "Окно ввода времени 2",
- "inputDigit": "Окно ввода цифры",
- "inputDigitTemp": "Окно ввода температуры",
- "inputText": "Окно ввода текста",
- "select": "Выпадающий список",
- "chart": "График без точек",
- "chart2": "График с точками",
- "chart3": "График дневного расхода (столбики)",
- "chart4": "График дневного расхода (плавный)",
- "fillgauge": "Бочка",
- "progress-line": "Линия",
- "progress-round": "Круг",
- "anydata": "Текст",
- "anydataHum": "Влажность (%)",
- "anydataPress": "Давление (mm)",
- "anydataTemp": "Температура (°С)",
- "anydataPpb": "Части на миллиард (ppb)",
- "anydataPpm": "Части на миллион (ppm)",
- "anydataVlt": "Напряжение (Vlt)",
- "anydataAmp": "Сила тока (Amp)",
- "anydataWtt": "Мощность (Wtt)",
- "anydataWhr": "Энергия (Whr)",
- "anydataHtz": "Частота (Htz)",
- "anydataTime": "Манометр",
- "alarm": "Тревожное сообщение 1",
- "anydataAlarm": "Тревожное сообщение 2",
- "na": "Без виджета"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/alarm.json b/data_esp/widgets/alarm.json
deleted file mode 100644
index e0e636c3..00000000
--- a/data_esp/widgets/alarm.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "widget": "anydata",
- "icon": "body",
- "color": "red",
- "descrColor": "red"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/anydata.json b/data_esp/widgets/anydata.json
deleted file mode 100644
index 4157b9c9..00000000
--- a/data_esp/widgets/anydata.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "",
- "icon": ""
-}
\ No newline at end of file
diff --git a/data_esp/widgets/anydataAlarm.json b/data_esp/widgets/anydataAlarm.json
deleted file mode 100644
index d793d350..00000000
--- a/data_esp/widgets/anydataAlarm.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "widget": "anydata",
- "after": "",
- "color":"red",
- "icon": "walk"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/anydataAmp.json b/data_esp/widgets/anydataAmp.json
deleted file mode 100644
index 0cc40403..00000000
--- a/data_esp/widgets/anydataAmp.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "Amp",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/anydataHtz.json b/data_esp/widgets/anydataHtz.json
deleted file mode 100644
index 4836a81a..00000000
--- a/data_esp/widgets/anydataHtz.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "Htz",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/anydataHum.json b/data_esp/widgets/anydataHum.json
deleted file mode 100644
index ebc5b5af..00000000
--- a/data_esp/widgets/anydataHum.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "%",
- "icon": "water"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/anydataPpb.json b/data_esp/widgets/anydataPpb.json
deleted file mode 100644
index 037e77d3..00000000
--- a/data_esp/widgets/anydataPpb.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "ppb",
- "icon": "body"
- }
\ No newline at end of file
diff --git a/data_esp/widgets/anydataPpm.json b/data_esp/widgets/anydataPpm.json
deleted file mode 100644
index e4d134e7..00000000
--- a/data_esp/widgets/anydataPpm.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "ppm",
- "icon": "body"
- }
\ No newline at end of file
diff --git a/data_esp/widgets/anydataPress.json b/data_esp/widgets/anydataPress.json
deleted file mode 100644
index e67af2c8..00000000
--- a/data_esp/widgets/anydataPress.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "mm",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/anydataTemp.json b/data_esp/widgets/anydataTemp.json
deleted file mode 100644
index 112da222..00000000
--- a/data_esp/widgets/anydataTemp.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "°С",
- "icon": "thermometer"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/anydataTime.json b/data_esp/widgets/anydataTime.json
deleted file mode 100644
index 821c4dab..00000000
--- a/data_esp/widgets/anydataTime.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/anydataVlt.json b/data_esp/widgets/anydataVlt.json
deleted file mode 100644
index f2a10747..00000000
--- a/data_esp/widgets/anydataVlt.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "Vlt",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/anydataWhr.json b/data_esp/widgets/anydataWhr.json
deleted file mode 100644
index e523bedd..00000000
--- a/data_esp/widgets/anydataWhr.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "Whr",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/anydataWtt.json b/data_esp/widgets/anydataWtt.json
deleted file mode 100644
index c1211050..00000000
--- a/data_esp/widgets/anydataWtt.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "Wtt",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/btn.json b/data_esp/widgets/btn.json
deleted file mode 100644
index 67dcc0d3..00000000
--- a/data_esp/widgets/btn.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "widget": "btn",
- "size": "large",
- "color": "green",
- "send": "test"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/chart.json b/data_esp/widgets/chart.json
deleted file mode 100644
index 878ce0e4..00000000
--- a/data_esp/widgets/chart.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "chart",
- "dateFormat": "HH:mm",
- "pointRadius": 0
-}
\ No newline at end of file
diff --git a/data_esp/widgets/chart2.json b/data_esp/widgets/chart2.json
deleted file mode 100644
index 9ecc61e3..00000000
--- a/data_esp/widgets/chart2.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "widget": "chart",
- "dateFormat": "HH:mm"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/chart3.json b/data_esp/widgets/chart3.json
deleted file mode 100644
index e2783cea..00000000
--- a/data_esp/widgets/chart3.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "chart",
- "dateFormat": "DD.MM.YYYY",
- "type":"bar"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/chart4.json b/data_esp/widgets/chart4.json
deleted file mode 100644
index 11d05d24..00000000
--- a/data_esp/widgets/chart4.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "widget": "chart",
- "dateFormat": "DD.MM.YYYY"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/fillgauge.json b/data_esp/widgets/fillgauge.json
deleted file mode 100644
index 34315ea8..00000000
--- a/data_esp/widgets/fillgauge.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "widget": "fillgauge",
- "circleColor": "#00FFFF",
- "textColor": "#FFFFFF",
- "waveTextColor": "#000000",
- "waveColor": "#00FFFF"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/inputDate.json b/data_esp/widgets/inputDate.json
deleted file mode 100644
index ecc3113d..00000000
--- a/data_esp/widgets/inputDate.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "widget" : "input",
- "size" : "small",
- "color" : "orange",
- "type" : "date"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/inputDigit.json b/data_esp/widgets/inputDigit.json
deleted file mode 100644
index 20196c6a..00000000
--- a/data_esp/widgets/inputDigit.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget" : "input",
- "color" : "blue",
- "type" : "number"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/inputDigitTemp.json b/data_esp/widgets/inputDigitTemp.json
deleted file mode 100644
index 28f19081..00000000
--- a/data_esp/widgets/inputDigitTemp.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "widget" : "input",
- "color" : "green",
- "type" : "number",
- "size" : "small",
- "icon": "thermometer"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/inputText.json b/data_esp/widgets/inputText.json
deleted file mode 100644
index 3484d53b..00000000
--- a/data_esp/widgets/inputText.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "widget" : "input",
- "size" : "small",
- "color" : "orange",
- "type" : "text"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/inputTime.json b/data_esp/widgets/inputTime.json
deleted file mode 100644
index e39942a4..00000000
--- a/data_esp/widgets/inputTime.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget" : "input",
- "color" : "blue",
- "type" : "time"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/inputTimeClock.json b/data_esp/widgets/inputTimeClock.json
deleted file mode 100644
index ab3186f8..00000000
--- a/data_esp/widgets/inputTimeClock.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "widget" : "input",
- "color" : "orange",
- "type" : "time",
- "size" : "small",
- "icon": "alarm-outline"
-}
\ No newline at end of file
diff --git a/data_esp/widgets/progress-line.json b/data_esp/widgets/progress-line.json
deleted file mode 100644
index b2a95529..00000000
--- a/data_esp/widgets/progress-line.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "widget": "progress-line",
- "icon": "sunny",
- "descrColor": "",
- "color": "",
- "max": "100",
- "background": "",
- "stroke": "10",
- "disabled": "",
- "before": "",
- "after": ""
-}
\ No newline at end of file
diff --git a/data_esp/widgets/progress-round.json b/data_esp/widgets/progress-round.json
deleted file mode 100644
index bf3ddae5..00000000
--- a/data_esp/widgets/progress-round.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "widget": "progress-round",
- "descrColor": "",
- "max": "100",
- "stroke": "20",
- "color": "#45ccce",
- "background": "#777",
- "before": "",
- "semicircle": "1",
- "after": ""
-}
\ No newline at end of file
diff --git a/data_esp/widgets/range.json b/data_esp/widgets/range.json
deleted file mode 100644
index 4d1e0ff3..00000000
--- a/data_esp/widgets/range.json
+++ /dev/null
@@ -1,9 +0,0 @@
- {
- "widget" : "range",
- "descrColor": "red",
- "after" : "%",
- "k" : 0.0977,
- "min" : 0,
- "max" : 100,
- "debounce": 500
-}
\ No newline at end of file
diff --git a/data_esp/widgets/select.json b/data_esp/widgets/select.json
deleted file mode 100644
index bad018fd..00000000
--- a/data_esp/widgets/select.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "widget": "select",
- "options": [
- "Выключен",
- "Включен"
- ],
- "status": 0
-}
\ No newline at end of file
diff --git a/data_esp/widgets/toggleBtn.json b/data_esp/widgets/toggleBtn.json
deleted file mode 100644
index 4e9eed5e..00000000
--- a/data_esp/widgets/toggleBtn.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "toggle",
- "icon": "",
- "iconOff": ""
-}
\ No newline at end of file
diff --git a/data_esp/widgets/toggleSunMoon.json b/data_esp/widgets/toggleSunMoon.json
deleted file mode 100644
index 5501aa75..00000000
--- a/data_esp/widgets/toggleSunMoon.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "toggle",
- "icon": "sunny",
- "iconOff": "moon"
-}
\ No newline at end of file
diff --git a/data_ms/config.json b/data_ms/config.json
deleted file mode 100644
index c9b7441c..00000000
--- a/data_ms/config.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "IoTmanager",
- "chipID": "",
- "apssid": "IoTmanager",
- "appass": "",
- "routerssid": "rise2",
- "routerpass": "hostel3333",
- "timezone": 1,
- "ntp": "pool.ntp.org",
- "mqttServer": "91.204.228.124",
- "mqttPort": 1883,
- "mqttPrefix": "/iotTest4",
- "mqttUser": "rise",
- "mqttPass": "23ri22se32",
- "mqttServer2": "",
- "mqttPort2": 0,
- "mqttPrefix2": "",
- "mqttUser2": "",
- "mqttPass2": "",
- "scen": "1",
- "telegramApi": "1416711569:AAEI0j83GmXqwzb_gnK1B0Am0gDwZoJt5xo",
- "telegonof": "0",
- "teleginput": "0",
- "autos": "1",
- "weblogin": "admin",
- "webpass": "admin",
- "MqttIn": "0",
- "MqttOut": "0",
- "blink": "0",
- "oneWirePin": "2",
- "serverip": "http://206.189.49.244",
- "uart": "0",
- "uartS": "9600",
- "uartTX": "12",
- "uartRX": "13",
- "grafmax": "0",
- "gateAuto": "0"
-}
\ No newline at end of file
diff --git a/data_ms/css/build.css.gz b/data_ms/css/build.css.gz
deleted file mode 100644
index 138a767b..00000000
Binary files a/data_ms/css/build.css.gz and /dev/null differ
diff --git a/data_ms/dev_conf.txt b/data_ms/dev_conf.txt
deleted file mode 100644
index e69de29b..00000000
diff --git a/data_ms/edit.htm.gz b/data_ms/edit.htm.gz
deleted file mode 100644
index 5786121f..00000000
Binary files a/data_ms/edit.htm.gz and /dev/null differ
diff --git a/data_ms/favicon.ico b/data_ms/favicon.ico
deleted file mode 100644
index 50d908fa..00000000
Binary files a/data_ms/favicon.ico and /dev/null differ
diff --git a/data_ms/index.htm.gz b/data_ms/index.htm.gz
deleted file mode 100644
index 073ff4ab..00000000
Binary files a/data_ms/index.htm.gz and /dev/null differ
diff --git a/data_ms/index.json.gz b/data_ms/index.json.gz
deleted file mode 100644
index 25eebb26..00000000
Binary files a/data_ms/index.json.gz and /dev/null differ
diff --git a/data_ms/items/items.txt b/data_ms/items/items.txt
deleted file mode 100644
index 2a853275..00000000
--- a/data_ms/items/items.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-0;button-out;btnid;toggleBtn;Кнопки;Освещение;order*
-0;button-out;100-0;toggleBtn;Кнопки;Освещение;order;type[ms]*
-0;input;dgtid;inputDigit;Ввод;Введите#цифру;order*
-0;input;tmid;inputTime;Ввод;Введите#время;order*
-0;output;txtid;anydata;Вывод;Сигнализация;order*
-0;count-down;cntid;anydata;Таймер;Обратный#отчет;order*
-0;sensor-node;100-0;anydataTemp;MySensors;Температура;order;tm1[30];tm2[60];c[1];k[0]*
-0;logging;crtid;chart;Графики;История;order;val[any];int[60];cnt[100]*
-0;logging;crtid;chart3;Графики;История;order;val[any];int[23:30];cnt[100];st[0]*
-0;uptime;uptid;anydataTime;Системные;%name%#uptime;order;int[60]*
\ No newline at end of file
diff --git a/data_ms/items/itemsAuto.txt b/data_ms/items/itemsAuto.txt
deleted file mode 100644
index 22092348..00000000
--- a/data_ms/items/itemsAuto.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-0;sensor-node;id;file;MySensors;descr;order;tm1[30];tm2[60];c[1];k[0]*
-0;button-out;id;toggleBtn;Кнопки;descr;order;type[ms]*
\ No newline at end of file
diff --git a/data_ms/js/build.chart.js.gz b/data_ms/js/build.chart.js.gz
deleted file mode 100644
index 654707fd..00000000
Binary files a/data_ms/js/build.chart.js.gz and /dev/null differ
diff --git a/data_ms/js/function.js.gz b/data_ms/js/function.js.gz
deleted file mode 100644
index 87c9dd01..00000000
Binary files a/data_ms/js/function.js.gz and /dev/null differ
diff --git a/data_ms/lang/lang.ru.json b/data_ms/lang/lang.ru.json
deleted file mode 100644
index 2c089bcb..00000000
--- a/data_ms/lang/lang.ru.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "SetDevConf": "Конфигурация устройства",
- "SetDevPreset": "Выберите из списка подходящий пресет кофигурации",
-
- "ButSave":"Сохранить",
- "ButMainPage":"Главная",
-
-
- "SetUDPList": "Список других устройств в сети:",
- "SetUDPWarn1": "После нажатия на кнопку переформировать список устройств ждите примерно минуту, а затем обновите страницу и список появится вновь",
-
- "SetUDPUpdateList":"Переформировать список устройств",
- "SetUDPUpdatePage":"Обновить страницу",
- "SetUDPNameOfDev":"Имя этого устройства:",
- "SetUDPDateExchange":"Включить обмен данными между устройствами",
- "SetUDPWarn2":"Если обмен данными включен, то устройства будут обмениваться широковещательными пакетами udp для формирования списка устройств и для осуществления посылки настроек mqtt. Данный обмен создает дополнительную нагрузку на wifi сеть.",
-
- "SetWiFiNameOfDev":"Имя устройства:",
- "SetWiFiRouterConnect":"Подключение к WiFi роутеру:",
- "SetWiFiAccessPoint":"Точка доступа:",
- "SetWiFiWeb":"Логин и пароль web interface:",
- "SetWiFiTimeZone":"Временная зона:",
- "SetWiFiNTP":"Сервер NTP:",
- "SetWiFiWarn1":"Имя устройства должно состоять из английских букв и иметь длинну от 6 до 12 символов",
- "SetWiFiWarn2":"После того как вы введете логин пароль от вашего wifi роутера необходимо нажать кнопку сохранить, а затем обязательно нажать кнопку перезагрузить устройство внизу этой страницы",
- "SetWiFiWarn3":"Устройство постоянно сканирует сеть на наличие wifi. Если роутер отключен, то устройство автоматически перейдет в режим точки доступа. Когда wifi появится устройство автоматически подключится к роутеру снова, и выключит точку доступа",
- "SetWiFiWarn4":"После изменения поля NTP сервер необходимо перезагрузить устройство",
- "SetWiFiWarn5":"Светодиод статуса подключения показывает четыре состояния подключения:
1. мигает редко - идет подключение к wifi
2. мигает часто - идет подключение к серверу mqtt
3. горит постоянно - модуль в режиме точки доступа,
4. не горит - модуль подключен к wifi и к mqtt.
Светодиод подключен к gpio2. Если галочка стоит - то использовать этот пин нельзя",
-
- "SetMQTTServerName":"Имя сервера:",
- "SetMQTTPort":"Номер порта:",
- "SetMQTTPrefix":"Префикс:",
- "SetMQTTUserName":"Имя пользователя:",
- "SetMQTTPassword":"Пароль:",
-
- "SetMQTTSendSettings":"Отправить настройки MQTT с этого устройства на все остальные",
- "SetMQTTWarn1":"Обратите внимание что поле префикс может состоять только из одного слова и одного разделителя: /prefix, вариант вида: /prefix1/prefix2 работать не будет. После изменения поля prefix необходимо перезагрузить устройство",
- "SetMQTTWarn2":"Прежде чем нажимать на кнопку Отправить настройки MQTT сохрание их, если Вы их меняли. Настройки получат и перезапишут все устройства в локальной сети"
-}
\ No newline at end of file
diff --git a/data_ms/presets/presets.c.txt b/data_ms/presets/presets.c.txt
deleted file mode 100644
index c26c03b7..00000000
--- a/data_ms/presets/presets.c.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-0;output;100-0;anydataTemp;MySensors;Температура;order
-0;output;100-1;anydataPress;MySensors;Давление;order
-0;output;100-2;anydataHum;MySensors;Влажность;order
-0;input;dgt;inputDigit;MySensors;Введите#цифру;order*
\ No newline at end of file
diff --git a/data_ms/presets/presets.s.txt b/data_ms/presets/presets.s.txt
deleted file mode 100644
index cccfdfca..00000000
--- a/data_ms/presets/presets.s.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-100-0 > dgt
-telegram Гостинная Повышение#температуры
-end
-100-0 < dgt
-telegram Гостинная Понижение#температуры
-end*
\ No newline at end of file
diff --git a/data_ms/s.conf.csv b/data_ms/s.conf.csv
deleted file mode 100644
index 40b35ae1..00000000
--- a/data_ms/s.conf.csv
+++ /dev/null
@@ -1 +0,0 @@
-Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета
\ No newline at end of file
diff --git a/data_ms/s.scen.txt b/data_ms/s.scen.txt
deleted file mode 100644
index ab0c0141..00000000
--- a/data_ms/s.scen.txt
+++ /dev/null
@@ -1 +0,0 @@
-//
\ No newline at end of file
diff --git a/data_ms/set.developer.json.gz b/data_ms/set.developer.json.gz
deleted file mode 100644
index baa9834e..00000000
Binary files a/data_ms/set.developer.json.gz and /dev/null differ
diff --git a/data_ms/set.device.json.gz b/data_ms/set.device.json.gz
deleted file mode 100644
index e0bb935d..00000000
Binary files a/data_ms/set.device.json.gz and /dev/null differ
diff --git a/data_ms/set.manual.json.gz b/data_ms/set.manual.json.gz
deleted file mode 100644
index 17584676..00000000
Binary files a/data_ms/set.manual.json.gz and /dev/null differ
diff --git a/data_ms/set.mqtt.json.gz b/data_ms/set.mqtt.json.gz
deleted file mode 100644
index f6c1c7c4..00000000
Binary files a/data_ms/set.mqtt.json.gz and /dev/null differ
diff --git a/data_ms/set.telegram.json.gz b/data_ms/set.telegram.json.gz
deleted file mode 100644
index e8810e9b..00000000
Binary files a/data_ms/set.telegram.json.gz and /dev/null differ
diff --git a/data_ms/set.udp.json.gz b/data_ms/set.udp.json.gz
deleted file mode 100644
index 6091765c..00000000
Binary files a/data_ms/set.udp.json.gz and /dev/null differ
diff --git a/data_ms/set.utilities.json.gz b/data_ms/set.utilities.json.gz
deleted file mode 100644
index 5356db03..00000000
Binary files a/data_ms/set.utilities.json.gz and /dev/null differ
diff --git a/data_ms/set.wifi.json.gz b/data_ms/set.wifi.json.gz
deleted file mode 100644
index d5cab6bf..00000000
Binary files a/data_ms/set.wifi.json.gz and /dev/null differ
diff --git a/data_ms/widgets.json b/data_ms/widgets.json
deleted file mode 100644
index 8b9190e1..00000000
--- a/data_ms/widgets.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "toggleBtn": "Кнопка переключатель",
- "range": "Ползунок",
- "inputDate": "Окно ввода даты",
- "inputTime": "Окно ввода времени 1",
- "inputTimeClock": "Окно ввода времени 2",
- "inputDigit": "Окно ввода цифры",
- "inputDigitTemp": "Окно ввода температуры",
- "inputText": "Окно ввода текста",
- "select": "Выпадающий список",
- "chart": "График без точек",
- "chart2": "График с точками",
- "chart3": "График дневного расхода (столбики)",
- "chart4": "График дневного расхода (плавный)",
- "fillgauge": "Бочка",
- "progress-line": "Линия",
- "progress-round": "Круг",
- "anydata": "Текст",
- "anydataHum": "Влажность (%)",
- "anydataPress": "Давление (mm)",
- "anydataTemp": "Температура (°С)",
- "anydataPpb": "Части на миллиард (ppb)",
- "anydataPpm": "Части на миллион (ppm)",
- "anydataVlt": "Напряжение (Vlt)",
- "anydataAmp": "Сила тока (Amp)",
- "anydataWtt": "Мощность (Wtt)",
- "anydataWhr": "Энергия (Whr)",
- "anydataHtz": "Частота (Htz)",
- "anydataTime": "Манометр",
- "alarm": "Тревожное сообщение 1",
- "anydataAlarm": "Тревожное сообщение 2",
- "na": "Без виджета"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/alarm.json b/data_ms/widgets/alarm.json
deleted file mode 100644
index e0e636c3..00000000
--- a/data_ms/widgets/alarm.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "widget": "anydata",
- "icon": "body",
- "color": "red",
- "descrColor": "red"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/anydata.json b/data_ms/widgets/anydata.json
deleted file mode 100644
index 4157b9c9..00000000
--- a/data_ms/widgets/anydata.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "",
- "icon": ""
-}
\ No newline at end of file
diff --git a/data_ms/widgets/anydataAlarm.json b/data_ms/widgets/anydataAlarm.json
deleted file mode 100644
index d793d350..00000000
--- a/data_ms/widgets/anydataAlarm.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "widget": "anydata",
- "after": "",
- "color":"red",
- "icon": "walk"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/anydataAmp.json b/data_ms/widgets/anydataAmp.json
deleted file mode 100644
index 0cc40403..00000000
--- a/data_ms/widgets/anydataAmp.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "Amp",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/anydataHtz.json b/data_ms/widgets/anydataHtz.json
deleted file mode 100644
index 4836a81a..00000000
--- a/data_ms/widgets/anydataHtz.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "Htz",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/anydataHum.json b/data_ms/widgets/anydataHum.json
deleted file mode 100644
index ebc5b5af..00000000
--- a/data_ms/widgets/anydataHum.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "%",
- "icon": "water"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/anydataPpb.json b/data_ms/widgets/anydataPpb.json
deleted file mode 100644
index 037e77d3..00000000
--- a/data_ms/widgets/anydataPpb.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "ppb",
- "icon": "body"
- }
\ No newline at end of file
diff --git a/data_ms/widgets/anydataPpm.json b/data_ms/widgets/anydataPpm.json
deleted file mode 100644
index e4d134e7..00000000
--- a/data_ms/widgets/anydataPpm.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "ppm",
- "icon": "body"
- }
\ No newline at end of file
diff --git a/data_ms/widgets/anydataPress.json b/data_ms/widgets/anydataPress.json
deleted file mode 100644
index e67af2c8..00000000
--- a/data_ms/widgets/anydataPress.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "mm",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/anydataTemp.json b/data_ms/widgets/anydataTemp.json
deleted file mode 100644
index 112da222..00000000
--- a/data_ms/widgets/anydataTemp.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "°С",
- "icon": "thermometer"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/anydataTime.json b/data_ms/widgets/anydataTime.json
deleted file mode 100644
index 821c4dab..00000000
--- a/data_ms/widgets/anydataTime.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/anydataVlt.json b/data_ms/widgets/anydataVlt.json
deleted file mode 100644
index f2a10747..00000000
--- a/data_ms/widgets/anydataVlt.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "Vlt",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/anydataWhr.json b/data_ms/widgets/anydataWhr.json
deleted file mode 100644
index e523bedd..00000000
--- a/data_ms/widgets/anydataWhr.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "Whr",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/anydataWtt.json b/data_ms/widgets/anydataWtt.json
deleted file mode 100644
index c1211050..00000000
--- a/data_ms/widgets/anydataWtt.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "anydata",
- "after": "Wtt",
- "icon": "speedometer"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/btn.json b/data_ms/widgets/btn.json
deleted file mode 100644
index 67dcc0d3..00000000
--- a/data_ms/widgets/btn.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "widget": "btn",
- "size": "large",
- "color": "green",
- "send": "test"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/chart.json b/data_ms/widgets/chart.json
deleted file mode 100644
index 878ce0e4..00000000
--- a/data_ms/widgets/chart.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "chart",
- "dateFormat": "HH:mm",
- "pointRadius": 0
-}
\ No newline at end of file
diff --git a/data_ms/widgets/chart2.json b/data_ms/widgets/chart2.json
deleted file mode 100644
index 9ecc61e3..00000000
--- a/data_ms/widgets/chart2.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "widget": "chart",
- "dateFormat": "HH:mm"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/chart3.json b/data_ms/widgets/chart3.json
deleted file mode 100644
index e2783cea..00000000
--- a/data_ms/widgets/chart3.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "chart",
- "dateFormat": "DD.MM.YYYY",
- "type":"bar"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/chart4.json b/data_ms/widgets/chart4.json
deleted file mode 100644
index 11d05d24..00000000
--- a/data_ms/widgets/chart4.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "widget": "chart",
- "dateFormat": "DD.MM.YYYY"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/fillgauge.json b/data_ms/widgets/fillgauge.json
deleted file mode 100644
index 34315ea8..00000000
--- a/data_ms/widgets/fillgauge.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "widget": "fillgauge",
- "circleColor": "#00FFFF",
- "textColor": "#FFFFFF",
- "waveTextColor": "#000000",
- "waveColor": "#00FFFF"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/inputDate.json b/data_ms/widgets/inputDate.json
deleted file mode 100644
index ecc3113d..00000000
--- a/data_ms/widgets/inputDate.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "widget" : "input",
- "size" : "small",
- "color" : "orange",
- "type" : "date"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/inputDigit.json b/data_ms/widgets/inputDigit.json
deleted file mode 100644
index 20196c6a..00000000
--- a/data_ms/widgets/inputDigit.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget" : "input",
- "color" : "blue",
- "type" : "number"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/inputDigitTemp.json b/data_ms/widgets/inputDigitTemp.json
deleted file mode 100644
index 28f19081..00000000
--- a/data_ms/widgets/inputDigitTemp.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "widget" : "input",
- "color" : "green",
- "type" : "number",
- "size" : "small",
- "icon": "thermometer"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/inputText.json b/data_ms/widgets/inputText.json
deleted file mode 100644
index 3484d53b..00000000
--- a/data_ms/widgets/inputText.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "widget" : "input",
- "size" : "small",
- "color" : "orange",
- "type" : "text"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/inputTime.json b/data_ms/widgets/inputTime.json
deleted file mode 100644
index e39942a4..00000000
--- a/data_ms/widgets/inputTime.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget" : "input",
- "color" : "blue",
- "type" : "time"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/inputTimeClock.json b/data_ms/widgets/inputTimeClock.json
deleted file mode 100644
index ab3186f8..00000000
--- a/data_ms/widgets/inputTimeClock.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "widget" : "input",
- "color" : "orange",
- "type" : "time",
- "size" : "small",
- "icon": "alarm-outline"
-}
\ No newline at end of file
diff --git a/data_ms/widgets/progress-line.json b/data_ms/widgets/progress-line.json
deleted file mode 100644
index b2a95529..00000000
--- a/data_ms/widgets/progress-line.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "widget": "progress-line",
- "icon": "sunny",
- "descrColor": "",
- "color": "",
- "max": "100",
- "background": "",
- "stroke": "10",
- "disabled": "",
- "before": "",
- "after": ""
-}
\ No newline at end of file
diff --git a/data_ms/widgets/progress-round.json b/data_ms/widgets/progress-round.json
deleted file mode 100644
index bf3ddae5..00000000
--- a/data_ms/widgets/progress-round.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "widget": "progress-round",
- "descrColor": "",
- "max": "100",
- "stroke": "20",
- "color": "#45ccce",
- "background": "#777",
- "before": "",
- "semicircle": "1",
- "after": ""
-}
\ No newline at end of file
diff --git a/data_ms/widgets/range.json b/data_ms/widgets/range.json
deleted file mode 100644
index 4d1e0ff3..00000000
--- a/data_ms/widgets/range.json
+++ /dev/null
@@ -1,9 +0,0 @@
- {
- "widget" : "range",
- "descrColor": "red",
- "after" : "%",
- "k" : 0.0977,
- "min" : 0,
- "max" : 100,
- "debounce": 500
-}
\ No newline at end of file
diff --git a/data_ms/widgets/select.json b/data_ms/widgets/select.json
deleted file mode 100644
index bad018fd..00000000
--- a/data_ms/widgets/select.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "widget": "select",
- "options": [
- "Выключен",
- "Включен"
- ],
- "status": 0
-}
\ No newline at end of file
diff --git a/data_ms/widgets/toggleBtn.json b/data_ms/widgets/toggleBtn.json
deleted file mode 100644
index 4e9eed5e..00000000
--- a/data_ms/widgets/toggleBtn.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "toggle",
- "icon": "",
- "iconOff": ""
-}
\ No newline at end of file
diff --git a/data_ms/widgets/toggleSunMoon.json b/data_ms/widgets/toggleSunMoon.json
deleted file mode 100644
index 5501aa75..00000000
--- a/data_ms/widgets/toggleSunMoon.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "widget": "toggle",
- "icon": "sunny",
- "iconOff": "moon"
-}
\ No newline at end of file
diff --git a/data_svelte/build/bundle.css b/data_svelte/build/bundle.css
deleted file mode 100644
index 5c5c667a..00000000
--- a/data_svelte/build/bundle.css
+++ /dev/null
@@ -1,14 +0,0 @@
-*,::before,::after{box-sizing:border-box}html{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,
- -apple-system, /* Firefox supports this but not yet `system-ui` */
- 'Segoe UI',
- Roboto,
- Helvetica,
- Arial,
- sans-serif,
- 'Apple Color Emoji',
- 'Segoe UI Emoji'}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,
- SFMono-Regular,
- Consolas,
- 'Liberation Mono',
- Menlo,
- monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}button,[type='button']{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset{margin:0;padding:0}ol,ul{list-style:none;margin:0;padding:0}html{font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";line-height:1.5}body{font-family:inherit;line-height:inherit}*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}pre,code,kbd,samp{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}*,::before,::after{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.cards-grid{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));justify-items:center;gap:1rem}@media(min-width: 640px){.cards-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1024px){.cards-grid{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media(min-width: 1280px){.cards-grid{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media(min-width: 1536px){.cards-grid{grid-template-columns:repeat(3, minmax(0, 1fr))}}.cards-grid-inline{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));justify-items:center}.card{width:100%;border-radius:0.5rem;--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity));padding:0.5rem;--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}@media(min-width: 640px){.card{padding:0.5rem}}@media(min-width: 768px){.card{padding:0.5rem}}@media(min-width: 1024px){.card{padding:0.5rem;--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}}@media(min-width: 1280px){.card{padding-left:2rem;padding-right:2rem;padding-top:1rem;padding-bottom:1rem}}@media(min-width: 1536px){.card{padding-left:2rem;padding-right:2rem;padding-top:1rem;padding-bottom:1rem}}.card-header{padding-bottom:1rem;text-align:center;font-size:1.125rem;line-height:1.75rem;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.card-items-psn{margin-bottom:1rem;display:flex;height:2rem;align-items:center}.widget-descr-width{width:66.666667%}.widget-descr-style{padding-right:1rem;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.widget-width{display:flex;width:33.333333%;justify-content:flex-end}.widget-input{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;align-content:center;border-radius:0.25rem;border-width:2px;--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(229, 231, 235, var(--tw-bg-opacity))}.widget-input:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.widget-input{padding-top:0.25rem;padding-bottom:0.25rem;padding-right:1rem;text-align:right;line-height:1.25;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.widget-input:focus{outline:2px solid transparent;outline-offset:2px}.json-input{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;align-content:center;border-radius:0.25rem;border-width:2px;--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.json-input:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.json-input{--tw-bg-opacity:1;background-color:rgba(229, 231, 235, var(--tw-bg-opacity))}.json-input:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.json-input{padding-top:0.25rem;padding-bottom:0.25rem;padding-right:1rem;line-height:1.25;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.json-input:focus{outline:2px solid transparent;outline-offset:2px}.widget-anydata-style{text-align:center;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.table-head-element{width:25%;overflow-wrap:break-word;border-width:1px;--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity));text-align:center;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.table-body-element{width:25%;overflow-wrap:break-word;border-width:1px;--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity));text-align:center}.table-input{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;align-content:center;border-width:2px;--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.table-input:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.table-input{--tw-bg-opacity:1;background-color:rgba(243, 244, 246, var(--tw-bg-opacity))}.table-input:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.table-input{text-align:center;line-height:1.25;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.table-input:focus{outline:2px solid transparent;outline-offset:2px}.long-button{margin-top:1rem;display:flex;height:2rem;width:100%;align-content:center;justify-content:center;overflow-wrap:break-word;border-radius:0.25rem;border-width:1px;--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(219, 234, 254, var(--tw-bg-opacity))}.long-button:hover{--tw-bg-opacity:1;background-color:rgba(191, 219, 254, var(--tw-bg-opacity))}.long-button{font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.top-1{top:0.25rem}.left-1{left:0.25rem}.m-0{margin:0px}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.w-4{width:1rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-1\/4{width:25%}.w-full{width:100%}.table-fixed{table-layout:fixed}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@-webkit-keyframes ping{75%,100%{transform:scale(2);opacity:0}}@keyframes ping{75%,100%{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}@keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.content-center{align-content:center}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-4{gap:1rem}.break-words{overflow-wrap:break-word}.rounded{border-radius:0.25rem}.rounded-lg{border-radius:0.5rem}.rounded-full{border-radius:9999px}.border-2{border-width:2px}.border{border-width:1px}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity))}.border-red-500{--tw-border-opacity:1;border-color:rgba(239, 68, 68, var(--tw-border-opacity))}.focus\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(243, 244, 246, var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229, 231, 235, var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgba(75, 85, 99, var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgba(254, 226, 226, var(--tw-bg-opacity))}.bg-red-400{--tw-bg-opacity:1;background-color:rgba(248, 113, 113, var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity:1;background-color:rgba(209, 250, 229, var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgba(219, 234, 254, var(--tw-bg-opacity))}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgba(99, 102, 241, var(--tw-bg-opacity))}.hover\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgba(191, 219, 254, var(--tw-bg-opacity))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgba(67, 56, 202, var(--tw-bg-opacity))}.focus\:bg-white:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-cover{background-size:cover}.p-2{padding:0.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.py-1{padding-top:0.25rem;padding-bottom:0.25rem}.py-2{padding-top:0.5rem;padding-bottom:0.5rem}.pt-8{padding-top:2rem}.pr-4{padding-right:1rem}.text-center{text-align:center}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-semibold{font-weight:600}.font-bold{font-weight:700}.leading-tight{line-height:1.25}.text-black{--tw-text-opacity:1;color:rgba(0, 0, 0, var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgba(239, 68, 68, var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgba(16, 185, 129, var(--tw-text-opacity))}*,::before,::after{--tw-shadow:0 0 #0000}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}*,::before,::after{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)}.focus\:ring-indigo-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(129, 140, 248, var(--tw-ring-opacity))}.transition{transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}#menu__toggle{opacity:0}#menu__toggle:checked~.menu__btn>span{transform:rotate(45deg)}#menu__toggle:checked~.menu__btn>span::before{top:0;transform:rotate(0)}#menu__toggle:checked~.menu__btn>span::after{top:0;transform:rotate(90deg)}#menu__toggle:checked~.menu__box{visibility:visible;left:0}#menu__toggle:checked~.menu__main{margin-left:150px;transition-duration:0.25s}.menu__btn{display:flex;align-items:center;position:fixed;z-index:1;top:10px;left:20px;width:20px;height:20px;cursor:pointer}.menu__btn>span,.menu__btn>span::before,.menu__btn>span::after{display:block;position:absolute;width:100%;height:2px;background-color:#616161;transition-duration:0.25s}.menu__btn>span::before{content:"";top:-8px}.menu__btn>span::after{content:"";top:8px}.menu__box{display:block;position:fixed;visibility:hidden;top:0;left:-100%;width:150px;height:100%;margin:0;padding:80px 0;list-style:none;background-color:#eceff1;box-shadow:1px 0px 6px rgba(0, 0, 0, 0.2);transition-duration:0.25s}.menu__item{display:block;padding:12px 24px;color:rgba(51, 51, 51, 0.788);font-family:"Roboto", sans-serif;font-size:15px;font-weight:600;text-decoration:none;transition-duration:0.25s}.menu__item:hover{background-color:#cfd8dc}.upper__bar{background-color:rgba(51, 51, 51, 0.144);height:70px;position:fixed;z-index:-1;top:0px;left:0;width:100%;margin:0;padding:0;box-shadow:1px 0px 3px rgba(0, 0, 0, 0.2)}input[type="date"]::-webkit-calendar-picker-indicator{margin-left:5px;margin-right:-8px}input[type="time"]::-webkit-calendar-picker-indicator{margin-left:5px;margin-right:-8px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{margin-left:7px;margin-right:-6px;width:30px;height:30px;opacity:1}input:checked~.dot{transform:translateX(100%)}@media(min-width: 640px){.sm\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.sm\:p-2{padding:0.5rem}}@media(min-width: 768px){.md\:p-2{padding:0.5rem}}@media(min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.lg\:p-2{padding:0.5rem}}@media(min-width: 1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.xl\:px-8{padding-left:2rem;padding-right:2rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}}@media(min-width: 1536px){.\32xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.\32xl\:px-8{padding-left:2rem;padding-right:2rem}.\32xl\:py-4{padding-top:1rem;padding-bottom:1rem}}
\ No newline at end of file
diff --git a/data_svelte/build/bundle.js b/data_svelte/build/bundle.js
deleted file mode 100644
index d9f1c682..00000000
--- a/data_svelte/build/bundle.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var app=function(){"use strict";function t(){}function e(t){return t()}function n(){return Object.create(null)}function r(t){t.forEach(e)}function s(t){return"function"==typeof t}function o(t,e){return t!=t?e==e:t!==e||t&&"object"==typeof t||"function"==typeof t}function a(e,n,r){e.$$.on_destroy.push(function(e,...n){if(null==e)return t;const r=e.subscribe(...n);return r.unsubscribe?()=>r.unsubscribe():r}(n,r))}function i(t,e,n,r){if(t){const s=l(t,e,n,r);return t[0](s)}}function l(t,e,n,r){return t[1]&&r?function(t,e){for(const n in e)t[n]=e[n];return t}(n.ctx.slice(),t[1](r(e))):n.ctx}function c(t,e,n,r){if(t[2]&&r){const s=t[2](r(n));if(void 0===e.dirty)return s;if("object"==typeof s){const t=[],n=Math.max(e.dirty.length,s.length);for(let r=0;r32){const e=[],n=t.ctx.length/32;for(let t=0;tt.removeEventListener(e,n,r)}function v(t,e,n){null==n?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function _(t){return""===t?null:+t}function k(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function S(t,e){t.value=null==e?"":e}function E(t,e){for(let n=0;n{Y.delete(t),r&&(n&&t.d(1),r())})),t.o(e)}}function U(t,e,n){const r=t.$$.props[e];void 0!==r&&(t.$$.bound[r]=n,n(t.$$.ctx[r]))}function V(t){t&&t.c()}function tt(t,n,o,a){const{fragment:i,on_mount:l,on_destroy:c,after_update:u}=t.$$;i&&i.m(n,o),a||I((()=>{const n=l.map(e).filter(s);c?c.push(...n):r(n),t.$$.on_mount=[]})),u.forEach(I)}function et(t,e){const n=t.$$;null!==n.fragment&&(r(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function nt(e,s,o,a,i,l,c,u=[-1]){const d=P;N(e);const p=e.$$={fragment:null,ctx:null,props:l,update:t,not_equal:i,bound:n(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(s.context||(d?d.$$.context:[])),callbacks:n(),dirty:u,skip_bound:!1,root:s.target||d.$$.root};c&&c(p.root);let f=!1;if(p.ctx=o?o(e,s.props||{},((t,n,...r)=>{const s=r.length?r[0]:n;return p.ctx&&i(p.ctx[t],p.ctx[t]=s)&&(!p.skip_bound&&p.bound[t]&&p.bound[t](s),f&&function(t,e){-1===t.$$.dirty[0]&&(T.push(t),R(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}$set(t){var e;this.$$set&&(e=t,0!==Object.keys(e).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}const st=[];function ot(e,n=t){let r;const s=new Set;function a(t){if(o(e,t)&&(e=t,r)){const t=!st.length;for(const t of s)t[1](),st.push(t,e);if(t){for(let t=0;t{s.delete(l),0===s.size&&(r(),r=null)}}}}function at(t,e=!1){return(t=t.slice(t.startsWith("/#")?2:0,t.endsWith("/*")?-2:void 0)).startsWith("/")||(t="/"+t),"/"===t&&(t=""),e&&!t.endsWith("/")&&(t+="/"),t}function it(t,e,n){if(""===n)return t;if("/"===n[0])return n;let r=t=>t.split("/").filter((t=>""!==t)),s=r(t);return"/"+(e?r(e):[]).map(((t,e)=>s[e])).join("/")+"/"+n}function lt(t,e,n,r){let s=[e,"data-"+e].reduce(((e,r)=>{let s=t.getAttribute(r);return n&&t.removeAttribute(r),null===s?e:s}),!1);return!r&&""===s||(s||r||!1)}function ct(t){let e=t.split("&").map((t=>t.split("="))).reduce(((t,e)=>{let n=e[0];if(!n)return t;let r=!(e.length>1)||e[e.length-1];return"string"==typeof r&&r.includes(",")&&(r=r.split(",")),void 0===t[n]?t[n]=[r]:t[n].push(r),t}),{});return Object.entries(e).reduce(((t,e)=>(t[e[0]]=e[1].length>1?e[1]:e[1][0],t)),{})}var ut,dt,pt={HISTORY:1,HASH:2,MEMORY:3,OFF:4,run:function(t,e,n,r){return 1===t?e&&e():2===t?n&&n():r&&r()},getDeafault:function(){return window&&"srcdoc"!==window.location.pathname?1:3}},ft=function(){let t,e=pt.getDeafault(),n=n=>t&&t(gt(e));function r(t){t&&(e=t),window.onhashchange=window.onpopstate=dt=null,e!==pt.OFF&&pt.run(e,(t=>window.onpopstate=n),(t=>window.onhashchange=n))&&n()}return{mode:t=>r(t),get:t=>gt(e),go(t,r){(function(t,e,n){let r=t=>history[n?"replaceState":"pushState"]({},"",t);pt.run(t,(t=>r(e)),(t=>r(`#${e}`)),(t=>dt=e))})(e,t,r),n()},start(e){t=e,r()},stop(){t=null,r(pt.OFF)}}}();function gt(t){let e=ut,n=ut=pt.run(t,(t=>window.location.pathname+window.location.search),(t=>String(window.location.hash.slice(1)||"/")),(t=>dt||"/")),r=n.match(/^([^?#]+)(?:\?([^#]+))?(?:\#(.+))?$/);return{url:n,from:e,path:r[1]||"",query:ct(r[2]||""),hash:r[3]||""}}function mt(t){let e=H("tinro");e&&(e.exact||e.fallback)&&function(t){throw new Error("[Tinro] "+t)}(`${t.fallback?"":``} can't be inside ${e.fallback?"":` with exact path`}`);let n=t.fallback?"fallbacks":"childs",r=ot({}),s={router:{},exact:!1,pattern:null,meta:{},parent:e,fallback:t.fallback,redirect:!1,firstmatch:!1,breadcrumb:null,matched:!1,childs:new Set,activeChilds:new Set,fallbacks:new Set,update(t){s.exact=!t.path.endsWith("/*"),s.pattern=at(`${s.parent&&s.parent.pattern||""}${t.path}`),s.redirect=t.redirect,s.firstmatch=t.firstmatch,s.breadcrumb=t.breadcrumb,s.match()},register:()=>{if(s.parent)return s.parent[n].add(s),()=>{s.parent[n].delete(s),s.router.un&&s.router.un()}},show:()=>{t.onShow(),!s.fallback&&s.parent&&s.parent.activeChilds.add(s)},hide:()=>{t.onHide(),!s.fallback&&s.parent&&s.parent.activeChilds.delete(s)},match:async()=>{s.matched=!1;let{path:e,url:n,from:o,query:a}=s.router,i=function(t,e){t=at(t,!0),e=at(e,!0);let n=[],r={},s=!0,o=t.split("/").map((t=>t.startsWith(":")?(n.push(t.slice(1)),"([^\\/]+)"):t)).join("\\/"),a=e.match(new RegExp(`^${o}$`));return a||(s=!1,a=e.match(new RegExp(`^${o}`))),a?(n.forEach(((t,e)=>r[t]=a[e+1])),{exact:s,params:r,part:a[0].slice(0,-1)}):null}(s.pattern,e);if(!s.fallback&&i&&s.redirect&&(!s.exact||s.exact&&i.exact)){await z();let t=it(e,s.parent&&s.parent.pattern,s.redirect);return $t.goto(t,!0)}if(s.meta=i&&{from:o,url:n,query:a,match:i.part,pattern:s.pattern,breadcrumbs:s.parent&&s.parent.meta&&s.parent.meta.breadcrumbs.slice()||[],params:i.params,subscribe:r.subscribe},s.breadcrumb&&s.meta&&s.meta.breadcrumbs.push({name:s.breadcrumb,path:i.part}),r.set(s.meta),!i||s.fallback||!(!s.exact||s.exact&&i.exact)||s.parent&&s.parent.firstmatch&&s.parent.matched?s.hide():(t.onMeta(s.meta),s.parent&&(s.parent.matched=!0),s.show()),await z(),i&&!s.fallback&&(s.childs.size>0&&0==s.activeChilds.size||0==s.childs.size&&s.fallbacks.size>0)){let t=s;for(;0==t.fallbacks.size;)if(t=t.parent,!t)return;t&&t.fallbacks.forEach((t=>{if(t.redirect){let e=it("/",t.parent&&t.parent.pattern,t.redirect);$t.goto(e,!0)}else t.show()}))}}};return o="tinro",a=s,O().$$.context.set(o,a),A((()=>s.register())),s.router.un=$t.subscribe((t=>{s.router.path=t.path,s.router.url=t.url,s.router.query=t.query,s.router.from=t.from,null!==s.pattern&&s.match()})),s;var o,a}function ht(){return H("tinro").meta}var $t=function(){let{subscribe:t}=ot(ft.get(),(t=>{ft.start(t);let e=function(t){let e=e=>{let n=e.target.closest("a[href]"),r=n&<(n,"target",!1,"_self"),s=n&<(n,"tinro-ignore"),o=e.ctrlKey||e.metaKey||e.altKey||e.shiftKey;if("_self"==r&&!s&&!o&&n){let r=n.getAttribute("href").replace(/^\/#/,"");/^\/\/|^[a-zA-Z]+:/.test(r)||(e.preventDefault(),t(r.startsWith("/")?r:n.href.replace(window.location.origin,"")))}};return addEventListener("click",e),()=>removeEventListener("click",e)}(ft.go);return()=>{ft.stop(),e()}}));return{subscribe:t,goto:ft.go,params:bt,meta:ht,useHashNavigation:t=>ft.mode(t?pt.HASH:pt.HISTORY),mode:{hash:()=>ft.mode(pt.HASH),history:()=>ft.mode(pt.HISTORY),memory:()=>ft.mode(pt.MEMORY)}}}();function bt(){return H("tinro").meta.params}const wt=t=>({params:2&t,meta:4&t}),yt=t=>({params:t[1],meta:t[2]});function xt(t){let e;const n=t[9].default,r=i(n,t,t[8],yt);return{c(){r&&r.c()},m(t,n){r&&r.m(t,n),e=!0},p(t,s){r&&r.p&&(!e||262&s)&&u(r,n,t,t[8],e?c(n,t[8],s,wt):d(t[8]),yt)},i(t){e||(X(r,t),e=!0)},o(t){G(r,t),e=!1},d(t){r&&r.d(t)}}}function vt(t){let e,n,r=t[0]&&xt(t);return{c(){r&&r.c(),e=y()},m(t,s){r&&r.m(t,s),f(t,e,s),n=!0},p(t,[n]){t[0]?r?(r.p(t,n),1&n&&X(r,1)):(r=xt(t),r.c(),X(r,1),r.m(e.parentNode,e)):r&&(Z(),G(r,1,1,(()=>{r=null})),Q())},i(t){n||(X(r),n=!0)},o(t){G(r),n=!1},d(t){r&&r.d(t),t&&g(e)}}}function _t(t,e,n){let{$$slots:r={},$$scope:s}=e,{path:o="/*"}=e,{fallback:a=!1}=e,{redirect:i=!1}=e,{firstmatch:l=!1}=e,{breadcrumb:c=null}=e,u=!1,d={},p={};const f=mt({fallback:a,onShow(){n(0,u=!0)},onHide(){n(0,u=!1)},onMeta(t){n(2,p=t),n(1,d=p.params)}});return t.$$set=t=>{"path"in t&&n(3,o=t.path),"fallback"in t&&n(4,a=t.fallback),"redirect"in t&&n(5,i=t.redirect),"firstmatch"in t&&n(6,l=t.firstmatch),"breadcrumb"in t&&n(7,c=t.breadcrumb),"$$scope"in t&&n(8,s=t.$$scope)},t.$$.update=()=>{232&t.$$.dirty&&f.update({path:o,redirect:i,firstmatch:l,breadcrumb:c})},[u,d,p,o,a,i,l,c,s,r]}class kt extends rt{constructor(t){super(),nt(this,t,_t,vt,o,{path:3,fallback:4,redirect:5,firstmatch:6,breadcrumb:7})}}function St(t){let e,n,r,s,o;const a=t[2].default,l=i(a,t,t[1],null);return{c(){e=h("div"),n=h("h1"),r=b(t[0]),s=w(),l&&l.c(),v(n,"class","card-header"),v(e,"class","card")},m(t,a){f(t,e,a),p(e,n),p(n,r),p(e,s),l&&l.m(e,null),o=!0},p(t,[e]){(!o||1&e)&&k(r,t[0]),l&&l.p&&(!o||2&e)&&u(l,a,t,t[1],o?c(a,t[1],e,null):d(t[1]),null)},i(t){o||(X(l,t),o=!0)},o(t){G(l,t),o=!1},d(t){t&&g(e),l&&l.d(t)}}}function Et(t,e,n){let{$$slots:r={},$$scope:s}=e,{title:o}=e;return t.$$set=t=>{"title"in t&&n(0,o=t.title),"$$scope"in t&&n(1,s=t.$$scope)},[o,s,r]}class Pt extends rt{constructor(t){super(),nt(this,t,Et,St,o,{title:0})}}function Nt(t){let e,n,s,o;return{c(){e=h("input"),v(e,"class",n=1==t[0].send?"widget-input border-red-500":"widget-input focus:border-indigo-500"),v(e,"step","0.1"),v(e,"type","number")},m(n,r){f(n,e,r),S(e,t[0].status),s||(o=[x(e,"change",t[2]),x(e,"input",t[3])],s=!0)},p(t,r){1&r&&n!==(n=1==t[0].send?"widget-input border-red-500":"widget-input focus:border-indigo-500")&&v(e,"class",n),1&r&&_(e.value)!==t[0].status&&S(e,t[0].status)},d(t){t&&g(e),s=!1,r(o)}}}function Ot(t){let e,n,s,o;return{c(){e=h("input"),v(e,"class",n=1==t[0].send?"widget-input border-red-500":"widget-input focus:border-indigo-500"),v(e,"type","text")},m(n,r){f(n,e,r),S(e,t[0].status),s||(o=[x(e,"change",t[4]),x(e,"input",t[5])],s=!0)},p(t,r){1&r&&n!==(n=1==t[0].send?"widget-input border-red-500":"widget-input focus:border-indigo-500")&&v(e,"class",n),1&r&&e.value!==t[0].status&&S(e,t[0].status)},d(t){t&&g(e),s=!1,r(o)}}}function At(t){let e,n,s,o;return{c(){e=h("input"),v(e,"class",n=1==t[0].send?"widget-input border-red-500":"widget-input focus:border-indigo-500"),v(e,"type","date")},m(n,r){f(n,e,r),S(e,t[0].status),s||(o=[x(e,"change",t[6]),x(e,"input",t[7])],s=!0)},p(t,r){1&r&&n!==(n=1==t[0].send?"widget-input border-red-500":"widget-input focus:border-indigo-500")&&v(e,"class",n),1&r&&S(e,t[0].status)},d(t){t&&g(e),s=!1,r(o)}}}function Ht(t){let e,n,s,o;return{c(){e=h("input"),v(e,"class",n=1==t[0].send?"widget-input border-red-500":"widget-input focus:border-indigo-500"),v(e,"type","time")},m(n,r){f(n,e,r),S(e,t[0].status),s||(o=[x(e,"change",t[8]),x(e,"input",t[9])],s=!0)},p(t,r){1&r&&n!==(n=1==t[0].send?"widget-input border-red-500":"widget-input focus:border-indigo-500")&&v(e,"class",n),1&r&&S(e,t[0].status)},d(t){t&&g(e),s=!1,r(o)}}}function Tt(e){let n,r,s,o,a,i,l,c,u,d=(e[0].descr?e[0].descr:"")+"",m="number"==e[0].type&&Nt(e),$="text"==e[0].type&&Ot(e),y="date"==e[0].type&&At(e),x="time"==e[0].type&&Ht(e);return{c(){n=h("div"),r=h("div"),s=h("label"),o=b(d),a=w(),i=h("div"),m&&m.c(),l=w(),$&&$.c(),c=w(),y&&y.c(),u=w(),x&&x.c(),v(s,"class","widget-descr-style"),v(r,"class","widget-descr-width"),v(i,"class","widget-width"),v(n,"class","card-items-psn")},m(t,e){f(t,n,e),p(n,r),p(r,s),p(s,o),p(n,a),p(n,i),m&&m.m(i,null),p(i,l),$&&$.m(i,null),p(i,c),y&&y.m(i,null),p(i,u),x&&x.m(i,null)},p(t,[e]){1&e&&d!==(d=(t[0].descr?t[0].descr:"")+"")&&k(o,d),"number"==t[0].type?m?m.p(t,e):(m=Nt(t),m.c(),m.m(i,l)):m&&(m.d(1),m=null),"text"==t[0].type?$?$.p(t,e):($=Ot(t),$.c(),$.m(i,c)):$&&($.d(1),$=null),"date"==t[0].type?y?y.p(t,e):(y=At(t),y.c(),y.m(i,u)):y&&(y.d(1),y=null),"time"==t[0].type?x?x.p(t,e):(x=Ht(t),x.c(),x.m(i,null)):x&&(x.d(1),x=null)},i:t,o:t,d(t){t&&g(n),m&&m.d(),$&&$.d(),y&&y.d(),x&&x.d()}}}function Ct(t,e,n){let{widget:r}=e,{wsPushProp:s=((t,e,n)=>{})}=e;return t.$$set=t=>{"widget"in t&&n(0,r=t.widget),"wsPushProp"in t&&n(1,s=t.wsPushProp)},[r,s,()=>(n(0,r.send=!0,r),s(r.ws,r.topic,r.status)),function(){r.status=_(this.value),n(0,r)},()=>(n(0,r.send=!0,r),s(r.ws,r.topic,r.status)),function(){r.status=this.value,n(0,r)},()=>(n(0,r.send=!0,r),s(r.ws,r.topic,r.status)),function(){r.status=this.value,n(0,r)},()=>(n(0,r.send=!0,r),s(r.ws,r.topic,r.status)),function(){r.status=this.value,n(0,r)}]}class Lt extends rt{constructor(t){super(),nt(this,t,Ct,Tt,o,{widget:0,wsPushProp:1})}}function Mt(e){let n,s,o,a,i,l,c,u,d,m,$,y,_,E,P,N,O,A,H=(e[0].descr?e[0].descr:"")+"";return{c(){n=h("div"),s=h("div"),o=h("label"),a=b(H),i=w(),l=h("div"),c=h("label"),u=h("div"),d=h("input"),$=w(),y=h("div"),_=w(),E=h("div"),v(o,"class","widget-descr-style"),v(s,"class","widget-descr-width"),v(d,"id",m=e[0].topic),v(d,"type","checkbox"),v(d,"class","sr-only"),v(y,"class","block bg-gray-600 w-10 h-6 rounded-full"),v(E,"class",P="dot "+(1==e[0].send?"bg-red-400":"bg-white")+" absolute left-1 top-1 w-4 h-4 rounded-full transition"),v(u,"class","relative"),v(c,"for",N=e[0].topic),v(c,"class","items-center cursor-pointer"),v(l,"class","widget-width"),v(n,"class","card-items-psn")},m(t,r){f(t,n,r),p(n,s),p(s,o),p(o,a),p(n,i),p(n,l),p(l,c),p(c,u),p(u,d),S(d,e[0].status),p(u,$),p(u,y),p(u,_),p(u,E),O||(A=[x(d,"change",e[2]),x(d,"change",e[3])],O=!0)},p(t,[e]){1&e&&H!==(H=(t[0].descr?t[0].descr:"")+"")&&k(a,H),1&e&&m!==(m=t[0].topic)&&v(d,"id",m),1&e&&S(d,t[0].status),1&e&&P!==(P="dot "+(1==t[0].send?"bg-red-400":"bg-white")+" absolute left-1 top-1 w-4 h-4 rounded-full transition")&&v(E,"class",P),1&e&&N!==(N=t[0].topic)&&v(c,"for",N)},i:t,o:t,d(t){t&&g(n),O=!1,r(A)}}}function jt(t,e,n){let{widget:r}=e,{wsPushProp:s=((t,e,n)=>{})}=e;return t.$$set=t=>{"widget"in t&&n(0,r=t.widget),"wsPushProp"in t&&n(1,s=t.wsPushProp)},[r,s,()=>(n(0,r.send=!0,r),s(r.ws,r.topic,r.status)),function(){r.status=this.value,n(0,r)}]}class qt extends rt{constructor(t){super(),nt(this,t,jt,Mt,o,{widget:0,wsPushProp:1})}}function Rt(e){let n,r,s,o,a,i,l,c,u,d,m,$,y=(e[0].descr?e[0].descr:"")+"",x=(e[0].status?e[0].status:"")+"",_=(e[0].after?e[0].after:"")+"";return{c(){n=h("div"),r=h("div"),s=h("label"),o=b(y),a=w(),i=h("div"),l=h("label"),c=b(x),u=w(),d=h("label"),m=b(" "),$=b(_),v(s,"class","widget-descr-style"),v(r,"class","widget-descr-width"),v(l,"class","widget-anydata-style"),v(d,"class","widget-anydata-style"),v(i,"class","widget-width"),v(n,"class","card-items-psn")},m(t,e){f(t,n,e),p(n,r),p(r,s),p(s,o),p(n,a),p(n,i),p(i,l),p(l,c),p(i,u),p(i,d),p(d,m),p(d,$)},p(t,[e]){1&e&&y!==(y=(t[0].descr?t[0].descr:"")+"")&&k(o,y),1&e&&x!==(x=(t[0].status?t[0].status:"")+"")&&k(c,x),1&e&&_!==(_=(t[0].after?t[0].after:"")+"")&&k($,_)},i:t,o:t,d(t){t&&g(n)}}}function zt(t,e,n){let{widget:r}=e;return t.$$set=t=>{"widget"in t&&n(0,r=t.widget)},[r]}class It extends rt{constructor(t){super(),nt(this,t,zt,Rt,o,{widget:0})}}function Ft(t,e,n){const r=t.slice();return r[45]=e[n],r}function Jt(t,e,n){const r=t.slice();return r[48]=e[n],r[50]=n,r}function Wt(t,e,n){const r=t.slice();return r[51]=e[n],r}function Bt(t,e,n){const r=t.slice();return r[54]=e[n],r[50]=n,r}function Dt(t,e,n){const r=t.slice();return r[56]=e[n],r[57]=e,r[50]=n,r}function Yt(t,e,n){const r=t.slice();return r[45]=e[n],r}function Kt(t){let e,n,r,s,o=t[45].name+"";return{c(){e=h("option"),n=b(o),r=w(),e.__value=s=t[45],e.value=e.__value},m(t,s){f(t,e,s),p(e,n),p(e,r)},p(t,r){64&r[0]&&o!==(o=t[45].name+"")&&k(n,o),64&r[0]&&s!==(s=t[45])&&(e.__value=s,e.value=e.__value)},d(t){t&&g(e)}}}function Zt(t){let e,n,r,s,o="input"===t[56].widget&&Qt(t),a="toggle"===t[56].widget&&Xt(t),i="anydata"===t[56].widget&&Gt(t);return{c(){o&&o.c(),e=w(),a&&a.c(),n=w(),i&&i.c(),r=y()},m(t,l){o&&o.m(t,l),f(t,e,l),a&&a.m(t,l),f(t,n,l),i&&i.m(t,l),f(t,r,l),s=!0},p(t,s){"input"===t[56].widget?o?(o.p(t,s),2&s[0]&&X(o,1)):(o=Qt(t),o.c(),X(o,1),o.m(e.parentNode,e)):o&&(Z(),G(o,1,1,(()=>{o=null})),Q()),"toggle"===t[56].widget?a?(a.p(t,s),2&s[0]&&X(a,1)):(a=Xt(t),a.c(),X(a,1),a.m(n.parentNode,n)):a&&(Z(),G(a,1,1,(()=>{a=null})),Q()),"anydata"===t[56].widget?i?(i.p(t,s),2&s[0]&&X(i,1)):(i=Gt(t),i.c(),X(i,1),i.m(r.parentNode,r)):i&&(Z(),G(i,1,1,(()=>{i=null})),Q())},i(t){s||(X(o),X(a),X(i),s=!0)},o(t){G(o),G(a),G(i),s=!1},d(t){o&&o.d(t),t&&g(e),a&&a.d(t),t&&g(n),i&&i.d(t),t&&g(r)}}}function Qt(t){let e,n,r;function s(e){t[17](e,t[56])}let o={widget:t[56],wsPushProp:t[16]};return void 0!==t[56].status&&(o.value=t[56].status),e=new Lt({props:o}),C.push((()=>U(e,"value",s))),{c(){V(e.$$.fragment)},m(t,n){tt(e,t,n),r=!0},p(r,s){t=r;const o={};2&s[0]&&(o.widget=t[56]),!n&&2&s[0]&&(n=!0,o.value=t[56].status,F((()=>n=!1))),e.$set(o)},i(t){r||(X(e.$$.fragment,t),r=!0)},o(t){G(e.$$.fragment,t),r=!1},d(t){et(e,t)}}}function Xt(t){let e,n,r;function s(e){t[19](e,t[56])}let o={widget:t[56],wsPushProp:t[18]};return void 0!==t[56].status&&(o.value=t[56].status),e=new qt({props:o}),C.push((()=>U(e,"value",s))),{c(){V(e.$$.fragment)},m(t,n){tt(e,t,n),r=!0},p(r,s){t=r;const o={};2&s[0]&&(o.widget=t[56]),!n&&2&s[0]&&(n=!0,o.value=t[56].status,F((()=>n=!1))),e.$set(o)},i(t){r||(X(e.$$.fragment,t),r=!0)},o(t){G(e.$$.fragment,t),r=!1},d(t){et(e,t)}}}function Gt(t){let e,n,r;function s(e){t[20](e,t[56])}let o={widget:t[56]};return void 0!==t[56].status&&(o.value=t[56].status),e=new It({props:o}),C.push((()=>U(e,"value",s))),{c(){V(e.$$.fragment)},m(t,n){tt(e,t,n),r=!0},p(r,s){t=r;const o={};2&s[0]&&(o.widget=t[56]),!n&&2&s[0]&&(n=!0,o.value=t[56].status,F((()=>n=!1))),e.$set(o)},i(t){r||(X(e.$$.fragment,t),r=!0)},o(t){G(e.$$.fragment,t),r=!1},d(t){et(e,t)}}}function Ut(t){let e,n,r=t[56].page===t[54].page&&Zt(t);return{c(){r&&r.c(),e=y()},m(t,s){r&&r.m(t,s),f(t,e,s),n=!0},p(t,n){t[56].page===t[54].page?r?(r.p(t,n),6&n[0]&&X(r,1)):(r=Zt(t),r.c(),X(r,1),r.m(e.parentNode,e)):r&&(Z(),G(r,1,1,(()=>{r=null})),Q())},i(t){n||(X(r),n=!0)},o(t){G(r),n=!1},d(t){r&&r.d(t),t&&g(e)}}}function Vt(t){let e,n,r=t[1],s=[];for(let e=0;eG(s[t],1,1,(()=>{s[t]=null}));return{c(){for(let t=0;tG(a[t],1,1,(()=>{a[t]=null}));return r=new Pt({props:{title:"Редактор JSON",$$slots:{default:[ee]},$$scope:{ctx:t}}}),{c(){e=h("div");for(let t=0;tТип | \n Подтип | \n Id | \n 4 | ',r=w(),s=h("tbody");for(let t=0;tНазвание устройства | \n IP адрес | \n Идентификатор | \n Состояние | ',r=w(),s=h("tbody");for(let t=0;t",P=w(),N=h("ul"),O=h("li"),A=h("a"),A.textContent="Управление",H=w(),T=h("li"),C=h("a"),C.textContent="Конфигуратор",L=w(),M=h("li"),j=h("a"),j.textContent="Подключение",q=w(),R=h("li"),z=h("a"),z.textContent="Утилиты",F=w(),J=h("li"),W=h("a"),W.textContent="Лог",B=w(),D=h("li"),Y=h("a"),Y.textContent="Устройства",K=w(),Z=h("li"),Q=h("a"),Q.textContent="О проекте",U=w(),nt=h("ul"),rt=h("div"),V(st.$$.fragment),ot=w(),V(at.$$.fragment),it=w(),V(lt.$$.fragment),ct=w(),V(ut.$$.fragment),dt=w(),V(pt.$$.fragment),ft=w(),V(gt.$$.fragment),mt=w(),V(ht.$$.fragment),void 0===t[5]&&I((()=>t[14].call(a))),v(o,"class","px-15 py-2"),v(u,"stroke","none"),v(u,"d","M0 0h24v24H0z"),v(d,"d","M7 18a4.6 4.4 0 0 1 0 -9h0a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-12"),v(c,"class",b="h-8 w-8 "+(!0===t[4]?"text-green-500":"text-red-500")),v(c,"width","24"),v(c,"height","24"),v(c,"viewBox","0 0 24 24"),v(c,"stroke-width","2"),v(c,"stroke","currentColor"),v(c,"fill","none"),v(c,"stroke-linecap","round"),v(c,"stroke-linejoin","round"),v(l,"class","px-10 py-1"),v(s,"class","flex justify-end content-center"),v(n,"class","fixed m-0 h-10 w-full bg-gray-100 shadow-md"),v(_,"id","menu__toggle"),v(_,"type","checkbox"),v(S,"class","menu__btn"),v(S,"for","menu__toggle"),v(A,"class","menu__item"),v(A,"href","/"),v(C,"class","menu__item"),v(C,"href","/config"),v(j,"class","menu__item"),v(j,"href","/connection"),v(z,"class","menu__item"),v(z,"href","/utilities"),v(W,"class","menu__item"),v(W,"href","/log"),v(Y,"class","menu__item"),v(Y,"href","/list"),v(Q,"class","menu__item"),v(Q,"href","/about"),v(N,"class","menu__box"),v(rt,"class","bg-cover bg-gray-50 pt-8 px-4"),v(nt,"class","menu__main")},m(r,g){f(r,e,g),p(e,n),p(n,s),p(s,o),p(o,a);for(let t=0;tn(30,r=t))),$t.mode.hash();let s=document.location.hostname,o=!1,i=[],l=[];i=[{widget:"input",type:"date",status:"2021-10-17",page:"Inputs",order:"4",descr:"Switch on boiler date",topic:"/prefix/00000-00004/date1",ws:0},{widget:"input",type:"time",status:"12:00",page:"Inputs",order:"1",descr:"Switch on boiler time",topic:"/prefix/00000-00001/time",ws:0},{widget:"input",type:"number",status:"30.5",after:"°С",page:"Inputs",order:"2",descr:"Boiler temperature",topic:"/prefix/00000-00002/temp",ws:0},{widget:"input",type:"text",status:"Hello",page:"Inputs",order:"3",descr:"Message to be send",topic:"/prefix/00000-00003/text",ws:0},{widget:"toggle",status:0,page:"Toggles",order:"3",descr:"Light in my room",topic:"/prefix/00000-00003/btn1",ws:0},{widget:"toggle",status:0,page:"Toggles",order:"3",descr:"Light in my room",topic:"/prefix/00000-00003/btn2",ws:0},{widget:"toggle",status:0,page:"Toggles",order:"3",descr:"Light in my room",topic:"/prefix/00000-00003/btn3",ws:0},{widget:"anydata",status:30.5,after:"°С",page:"Any data",order:"3",descr:"Temperature",topic:"/prefix/00000-00003/tmp10",ws:0},{widget:"anydata",status:1032,after:"mm",page:"Any data",order:"3",descr:"Pressure",topic:"/prefix/00000-00003/tmp10",ws:0},{widget:"anydata",status:50,after:"%",page:"Any data",order:"3",descr:"Level",topic:"/prefix/00000-00003/tmp10",ws:0},{widget:"anydata",status:"opened",page:"Any data",order:"3",descr:"Status",topic:"/prefix/00000-00003/tmp10",ws:0}];let c,u,d=[],p=[],f=!1,g={},m=[],h=!0,$={},b=[];function w(){let t=0;m.forEach((e=>{e.ws=t,e.status||(x(t),_(t)),t++})),n(6,m),n(4,f=g.status)}function y(t,e){m.forEach((n=>{n.ws===t&&(n.status=e,n.status?console.log("[i]",n.ip,"status online"):console.log("[i]",n.ip,"status offline"))})),n(6,m),n(4,f=g.status)}function x(t){let e=v(t);"error"===e?console.log("[e]","device list wrong"):(p[t]=new WebSocket("ws://"+e+"/ws"),console.log("[i]",e,"started connecting..."))}function v(t){let e="error";return m.forEach((n=>{t===n.ws&&(e=n.ip)})),e}function _(t){if(p[t]){let e=v(t);console.log("[i]",e,"web socket events added"),p[t].addEventListener("open",(function(n){console.log("[i]",e,"completed connecting"),y(t,!0),T()})),p[t].addEventListener("message",(function(t){let e=t.data.toString();console.log("[i]","data:",e),e.includes("[log]")?(e=e.replace("[log]",""),N(e)):e.includes("[config]")&&(console.log("[i]","config data:",e),e=e.replace("[config]",""),e=JSON.parse(e),d.push(e),n(3,d))})),p[t].addEventListener("close",(n=>{console.log("[e]",e,"connection closed"),y(t,!1)})),p[t].addEventListener("error",(function(n){console.log("[e]",e,"connection error"),y(t,!1)}))}else console.log("[e]","socket not exist")}function k(t,e,n){let r=e+" "+n;console.log("[i]","send to ws msg:",r),E(t,r)}function S(){setTimeout(S,1e4),console.log("[i]","----timer tick----"),h||m.forEach((t=>{!function(t){let e=!1;return m.forEach((n=>{t===n.ws&&(e=n.status)})),e}(t.ws)?(x(t.ws),_(t.ws)):E(t.ws,"tst")})),h=!1}function E(t,e){p[t]&&1===p[t].readyState?(p[t].send(e),console.log("[i]",v(t),"msg send success",e)):console.log("[e]",v(t),"msg not send",e)}function P(){n(2,l=[]);Array.from(new Set(Array.from(i,(({page:t})=>t)))).forEach((function(t,e,r){n(2,l=[...l,JSON.parse(JSON.stringify({page:t}))])})),l.sort((function(t,e){return t.pagee.page?1:0}))}m=[{name:"Устройство 1",id:"987654321",ip:"192.168.88.235",status:!1}],$t.subscribe((function(){n(3,d=[]),u=r.path.toString(),console.log("[i]","user on page:",u),T()}));const N=t=>{b.length>Number(10)&&n(8,b=b.slice(0));const e=(new Date).getTime();n(8,b=[...b,{time:e,msg:t}]),b.sort((function(t,e){return t.time>e.time?-1:t.time{console.log("[i]","mounted"),w(),S(),n(4,f=g.status),O(),P()}));return[o,i,l,d,f,g,m,$,b,k,function(){n(1,i=JSON.parse(document.getElementById("text1").value)),P()},O,H,t=>{try{t=JSON.stringify(JSON.parse(t),null,4)}catch(e){return t}return t=(t=t.replace(/&/g,"&").replace(//g,">")).replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g,(function(t){return t}))},function(){g=function(t){const e=t.querySelector(":checked")||t.options[0];return e&&e.__value}(this),n(5,g),n(6,m)},()=>O(),(t,e,n)=>k(t,e,n),function(e,r){t.$$.not_equal(r.status,e)&&(r.status=e,n(1,i))},(t,e,n)=>k(t,e,n),function(e,r){t.$$.not_equal(r.status,e)&&(r.status=e,n(1,i))},function(e,r){t.$$.not_equal(r.status,e)&&(r.status=e,n(1,i))},()=>function(t,e,n){console.log("[i]","request for edit file");var r=new XMLHttpRequest,s=new FormData;s.append("data",new Blob([e],{type:"text/json"}),"/"+n),r.open("POST","http://"+t+"/edit"),r.onload=function(){},r.send(s)}("192.168.88.235","data data data data","file.json"),function(){$.name=this.value,n(7,$)},function(){$.ip=this.value,n(7,$)},function(){$.id=this.value,n(7,$)},()=>(n(0,o=!o),H())]}return new class extends rt{constructor(t){super(),nt(this,t,me,ge,o,{},null,[-1,-1])}}({target:document.body,props:{name:"world"}})}();
-//# sourceMappingURL=bundle.js.map
diff --git a/data_svelte/config.json b/data_svelte/config.json
deleted file mode 100644
index cc6024be..00000000
--- a/data_svelte/config.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "IoTmanager",
- "chipID": "",
- "apssid": "IoTmanager",
- "appass": "",
- "routerssid": "rise",
- "routerpass": "hostel3333",
- "timezone": 1,
- "ntp": "pool.ntp.org",
- "mqttServer": "M2.WQTT.RU",
- "mqttPort": 8021,
- "mqttPrefix": "/iotTest3",
- "mqttUser": "rise",
- "mqttPass": "hostel3333",
- "mqttServer2": "",
- "mqttPort2": 0,
- "mqttPrefix2": "",
- "mqttUser2": "",
- "mqttPass2": "",
- "scen": 1,
- "telegramApi": "1416711569:AAEI0j83GmXqwzb_gnK1B0Am0gDwZoJt5xo",
- "telegonof": 0,
- "teleginput": 0,
- "autos": 1,
- "weblogin": "admin",
- "webpass": "admin",
- "MqttIn": 0,
- "MqttOut": 0,
- "blink": 0,
- "oneWirePin": 2,
- "serverip": "http://206.189.49.244",
- "uart": 0,
- "uartS": 9600,
- "uartTX": 12,
- "uartRX": 13,
- "grafmax": 0
-}
\ No newline at end of file
diff --git a/data_svelte/favicon.png b/data_svelte/favicon.png
deleted file mode 100644
index 7e6f5eb5..00000000
Binary files a/data_svelte/favicon.png and /dev/null differ
diff --git a/data_svelte/index.html b/data_svelte/index.html
deleted file mode 100644
index a9c8fd65..00000000
--- a/data_svelte/index.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
- Svelte app
-
-
-
-
-
-
-
-
-
-
diff --git a/data_svelte/lile.json b/data_svelte/lile.json
deleted file mode 100644
index 5f0dfdf2..00000000
--- a/data_svelte/lile.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "type": "binary",
- "subtype": "button-out",
- "id": "btn1",
- "gpio": 1,
- "inv": false
-}
\ No newline at end of file
diff --git a/data_svelte/setup.json b/data_svelte/setup.json
deleted file mode 100644
index efa38a10..00000000
--- a/data_svelte/setup.json
+++ /dev/null
@@ -1,559 +0,0 @@
-[
- {
- "type": "binary",
- "subtype": "button-out",
- "id": "btn1",
- "gpio": 1,
- "inv": false
- },
- {
- "type": "sensor1",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp1",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor2",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor3",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor4",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor5",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor6",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor7",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor8",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor9",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor10",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor11",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor12",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor13",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor14",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor15",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor16",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor17",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor18",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor19",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor20",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor21",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor22",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor23",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor24",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor25",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor26",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor27",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor28",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor29",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor30",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor31",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor32",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor33",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor34",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor35",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor36",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor37",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor38",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor39",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor40",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor41",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor42",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor43",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor44",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor45",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor46",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor47",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor48",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor49",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor50",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor51",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor52",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor53",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor54",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- },
- {
- "type": "sensor55",
- "subtype": "bme280",
- "units": "temp",
- "id": "tmp2",
- "addr": "0x48",
- "int": 10,
- "c": 1,
- "s": 0
- }
-]
\ No newline at end of file
diff --git a/data_svelte/sync.ffs_db b/data_svelte/sync.ffs_db
deleted file mode 100644
index cd5cdf88..00000000
Binary files a/data_svelte/sync.ffs_db and /dev/null differ
diff --git a/doc/calculator.xlsx b/doc/calculator.xlsx
deleted file mode 100644
index dc077bcd..00000000
Binary files a/doc/calculator.xlsx and /dev/null differ
diff --git a/doc/eagle.txt b/doc/eagle.txt
deleted file mode 100644
index 8a590610..00000000
--- a/doc/eagle.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-eagle.flash.512k0.ld 512K (no SPIFFS)
-eagle.flash.512k64.ld 512K (64K SPIFFS)
-eagle.flash.512k128.ld 512K (128K SPIFFS)
-eagle.flash.1m0.ld 1M (no SPIFFS)
-eagle.flash.1m64.ld 1M (64K SPIFFS)
-eagle.flash.1m128.ld 1M (128K SPIFFS)
-eagle.flash.1m144.ld 1M (144K SPIFFS)
-eagle.flash.1m160.ld 1M (160K SPIFFS)
-eagle.flash.1m192.ld 1M (192K SPIFFS)
-eagle.flash.1m256.ld 1M (256K SPIFFS)
-eagle.flash.1m512.ld 1M (512K SPIFFS)
-eagle.flash.2m.ld 2M (1M SPIFFS)
-eagle.flash.4m1m.ld 4M (1M SPIFFS)
-eagle.flash.4m2m.ld 4M (2M SPIFFS)
-eagle.flash.4m.ld 4M (3M SPIFFS)
-eagle.flash.8m.ld 8M (7M SPIFFS)
-eagle.flash.16m.ld 16M (15M SPIFFS)
-
-# Name, Type, SubType, Offset, Size, Flags
-nvs, data, nvs, 0x9000, 0x5000,
-otadata, data, ota, 0xe000, 0x2000,
-app0, app, ota_0, 0x10000, 0x1F0000,
-app1, app, ota_1, 0x200000, 0x1F0000,
-spiffs, data, spiffs, 0x3F0000,0x10000,
\ No newline at end of file
diff --git a/doc/orders.xlsm b/doc/orders.xlsm
deleted file mode 100644
index d86f040e..00000000
Binary files a/doc/orders.xlsm and /dev/null differ
diff --git a/doc/pictures/001 iot manager.jpeg b/doc/pictures/001 iot manager.jpeg
deleted file mode 100644
index 39914774..00000000
Binary files a/doc/pictures/001 iot manager.jpeg and /dev/null differ
diff --git a/doc/pictures/002 iot manager.jpeg b/doc/pictures/002 iot manager.jpeg
deleted file mode 100644
index 80b9d67c..00000000
Binary files a/doc/pictures/002 iot manager.jpeg and /dev/null differ
diff --git a/doc/pictures/003 iot manager.jpeg b/doc/pictures/003 iot manager.jpeg
deleted file mode 100644
index 3f23d111..00000000
Binary files a/doc/pictures/003 iot manager.jpeg and /dev/null differ
diff --git a/doc/pictures/007 iot manager.jpg b/doc/pictures/007 iot manager.jpg
deleted file mode 100644
index 2178d634..00000000
Binary files a/doc/pictures/007 iot manager.jpg and /dev/null differ
diff --git a/doc/pictures/008 flash.jpg b/doc/pictures/008 flash.jpg
deleted file mode 100644
index 65be639f..00000000
Binary files a/doc/pictures/008 flash.jpg and /dev/null differ
diff --git a/doc/pictures/009 flash.jpg b/doc/pictures/009 flash.jpg
deleted file mode 100644
index 14341646..00000000
Binary files a/doc/pictures/009 flash.jpg and /dev/null differ
diff --git a/doc/pictures/010 flash.jpg b/doc/pictures/010 flash.jpg
deleted file mode 100644
index c26de4bc..00000000
Binary files a/doc/pictures/010 flash.jpg and /dev/null differ
diff --git a/doc/pictures/011 flash.jpg b/doc/pictures/011 flash.jpg
deleted file mode 100644
index 7329b0c0..00000000
Binary files a/doc/pictures/011 flash.jpg and /dev/null differ
diff --git a/doc/pictures/012 wifi.jpg b/doc/pictures/012 wifi.jpg
deleted file mode 100644
index 13c4c9d3..00000000
Binary files a/doc/pictures/012 wifi.jpg and /dev/null differ
diff --git a/doc/pictures/013 wifi.jpg b/doc/pictures/013 wifi.jpg
deleted file mode 100644
index c2938a8a..00000000
Binary files a/doc/pictures/013 wifi.jpg and /dev/null differ
diff --git a/doc/pictures/014 wifi.jpg b/doc/pictures/014 wifi.jpg
deleted file mode 100644
index 411b7a4d..00000000
Binary files a/doc/pictures/014 wifi.jpg and /dev/null differ
diff --git a/doc/pictures/015 wifi.jpg b/doc/pictures/015 wifi.jpg
deleted file mode 100644
index 394d00d7..00000000
Binary files a/doc/pictures/015 wifi.jpg and /dev/null differ
diff --git a/doc/pictures/016 wifi.jpg b/doc/pictures/016 wifi.jpg
deleted file mode 100644
index 4369c37f..00000000
Binary files a/doc/pictures/016 wifi.jpg and /dev/null differ
diff --git a/doc/pictures/017.jpg b/doc/pictures/017.jpg
deleted file mode 100644
index 68b210e2..00000000
Binary files a/doc/pictures/017.jpg and /dev/null differ
diff --git a/doc/pictures/018.jpg b/doc/pictures/018.jpg
deleted file mode 100644
index e8c0cc93..00000000
Binary files a/doc/pictures/018.jpg and /dev/null differ
diff --git a/doc/pictures/019.jpg b/doc/pictures/019.jpg
deleted file mode 100644
index 5667ee58..00000000
Binary files a/doc/pictures/019.jpg and /dev/null differ
diff --git a/doc/pictures/020.jpg b/doc/pictures/020.jpg
deleted file mode 100644
index 13fc001e..00000000
Binary files a/doc/pictures/020.jpg and /dev/null differ
diff --git a/include/BufferExecute.h b/include/BufferExecute.h
deleted file mode 100644
index 2398bdb6..00000000
--- a/include/BufferExecute.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#pragma once
-#include
-
-extern void loopCmdAdd(const String& cmdStr);
-extern void fileCmdExecute(const String& filename);
-extern void csvCmdExecute(String& cmdStr);
-extern void spaceCmdExecute(String& cmdStr);
-extern void loopCmdExecute();
-extern void addKey(String& key, String& keyNumberTable, int number);
-extern int getKeyNum(String& key, String& keyNumberTable);
-
-extern void buttonIn();
-extern void buttonInSet();
-
-
-
-
-
-
-
diff --git a/include/Bus.h b/include/Bus.h
deleted file mode 100644
index 11edd50b..00000000
--- a/include/Bus.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-#include
-void busInit();
-String i2c_scan();
\ No newline at end of file
diff --git a/include/Class/CallBackTest.h b/include/Class/CallBackTest.h
deleted file mode 100644
index 6632bfe0..00000000
--- a/include/Class/CallBackTest.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#pragma once
-#include
-#include
-#include
-
-// Декларируем тип - сигнатуру метода , который мы готовы принять в данном случае это
-// должен быть метод без результата и без параметров.
-// Новый тип мы называем AsynсActionCb - хотя можешь назвать вообще как нравиться а что значит callBack
-
-typedef std::function AsyncActionCb; //метод без результата и параметров
-typedef std::function AsyncParamActionCb; //метод без результата и параметров
-
-class CallBackTest {
- private:
- long count;
- AsyncActionCb _cb;
- AsyncParamActionCb _pcb;
-
-
- public:
- CallBackTest();
- void loop();
- void setCallback(AsyncActionCb cb);
- void setCallback(AsyncParamActionCb pcb);
-};
-//extern CallBackTest* CB;
\ No newline at end of file
diff --git a/include/Class/LineParsing.h b/include/Class/LineParsing.h
deleted file mode 100644
index ff8a3965..00000000
--- a/include/Class/LineParsing.h
+++ /dev/null
@@ -1,291 +0,0 @@
-#pragma once
-
-#include
-
-#include "Global.h"
-#include "ItemsList.h"
-#include "Utils/JsonUtils.h"
-
-class LineParsing {
- protected:
- String _key;
- String _file;
- String _page;
- String _descr;
- String _order;
- String _addr;
- String _reg;
- String _pin;
- String _map;
- String _c;
- String _k;
- String _inv;
- String _state;
- String _db;
- String _type;
- String _int;
- String _cnt;
- String _val;
- String _index;
- String _tm1;
- String _tm2;
-
- int pinErrors;
-
- public:
- LineParsing() :
-
- _key{""},
- _file{""},
- _page{""},
- _descr{""},
- _order{""},
- _addr{""},
- _reg{""},
- _pin{""},
- _map{""},
- _c{""},
- _k{""},
- _inv{""},
- _state{""},
- _db{""},
- _type{""},
- _int{""},
- _cnt{""},
- _val{""},
- _index{""},
- _tm1{""},
- _tm2{""},
-
- pinErrors{0}
-
- {};
-
- void update() {
- //String order = sCmd.order();
- //SerialPrint("I","module","create '" + order + "'");
- for (int i = 1; i < 12; i++) {
- if (i == 1) _key = sCmd.next();
- if (i == 2) _file = sCmd.next();
- if (i == 3) _page = sCmd.next();
- if (i == 4) _descr = sCmd.next();
- if (i == 5) _order = sCmd.next();
- }
-
- for (int i = 1; i < 10; i++) {
- String arg = sCmd.next();
- if (arg != "") {
- if (arg.indexOf("pin[") != -1) {
- _pin = extractInner(arg);
- }
- if (arg.indexOf("inv[") != -1) {
- _inv = extractInner(arg);
- }
- if (arg.indexOf("st[") != -1) {
- _state = extractInner(arg);
- }
- if (arg.indexOf("db[") != -1) {
- _db = extractInner(arg);
- }
- if (arg.indexOf("map[") != -1) {
- _map = extractInner(arg);
- }
- if (arg.indexOf("c[") != -1) {
- _c = extractInner(arg);
- }
- if (arg.indexOf("k[") != -1) {
- _k = extractInner(arg);
- }
- if (arg.indexOf("type[") != -1) {
- _type = extractInner(arg);
- }
- if (arg.indexOf("addr[") != -1) {
- _addr = extractInner(arg);
- }
- if (arg.indexOf("reg[") != -1) {
- _reg = extractInner(arg);
- }
- if (arg.indexOf("int[") != -1) {
- _int = extractInner(arg);
- }
- if (arg.indexOf("cnt[") != -1) {
- _cnt = extractInner(arg);
- }
- if (arg.indexOf("val[") != -1) {
- _val = extractInner(arg);
- }
- if (arg.indexOf("index[") != -1) {
- _index = extractInner(arg);
- }
- if (arg.indexOf("tm1[") != -1) {
- _tm1 = extractInner(arg);
- }
- if (arg.indexOf("tm2[") != -1) {
- _tm2 = extractInner(arg);
- }
- }
- }
-
- if (_pin != "") {
- if (_pin.indexOf(",") == -1) {
- if (!isPinExist(_pin.toInt()) || !isDigitStr(_pin)) {
- pinErrors++;
- _pin = "";
- }
- } else {
- String pin1 = selectToMarker(_pin, ",");
- String pin2 = deleteBeforeDelimiter(_pin, ",");
- if (!isPinExist(pin1.toInt()) || !isDigitStr(pin1) || !isPinExist(pin2.toInt()) || !isDigitStr(pin2)) {
- pinErrors++;
- _pin = "";
- }
- }
- }
-
- _page.replace("#", " ");
- _descr.replace("#", " ");
- _descr.replace("%ver%", String(FIRMWARE_VERSION));
- _descr.replace("%name%", jsonReadStr(configSetupJson, F("name")));
-
- createWidget(_descr, _page, _order, _file, _key);
- }
-
- String gkey() {
- return _key;
- }
- String gfile() {
- return _file;
- }
- String gpage() {
- return _page;
- }
- String gdescr() {
- return _descr;
- }
- String gorder() {
- return _order;
- }
- String gpin() {
- return _pin;
- }
- String ginv() {
- return _inv;
- }
- String gstate() {
- return _state;
- }
- String gmap() {
- return _map;
- }
- String gc() {
- return _c;
- }
- String gk() {
- return _k;
- }
- String gtype() {
- return _type;
- }
- String gaddr() {
- return _addr;
- }
- String gregaddr() {
- return _reg;
- }
- String gint() {
- return _int;
- }
- String gcnt() {
- return _cnt;
- }
- String gval() {
- return _val;
- }
- String gindex() {
- return _index;
- }
- String gtm1() {
- return _tm1;
- }
- String gtm2() {
- return _tm2;
- }
-
- int getPinErrors() {
- return pinErrors;
- }
-
- void clearErrors() {
- pinErrors = 0;
- }
-
- void clear() {
- _key = "";
- _file = "";
- _page = "";
- _descr = "";
- _order = "";
- _addr = "";
- _reg = "";
- _pin = "";
- _map = "";
- _c = "";
- _k = "";
- _inv = "";
- _state = "";
- _db = "";
- _type = "";
- _int = "";
- _cnt = "";
- _val = "";
- _index = "";
- }
-
- String extractInnerDigit(String str) {
- int p1 = str.indexOf("[");
- int p2 = str.indexOf("]");
- return str.substring(p1 + 1, p2);
- }
-
- void createWidget(String descr, String page, String order, String filename, String topic) {
- if (filename != "na") {
- String buf = "{}";
- if (!loadWidget(filename, buf)) {
- return;
- }
- if (_cnt != "") {
- if (filename.indexOf("chart") != -1) jsonWriteStr(buf, "maxCount", _cnt);
- }
-
-#ifdef GATE_MODE
- jsonWriteStr(buf, "info", " ");
-#endif
-
- jsonWriteStr(buf, "page", page);
- jsonWriteStr(buf, "order", order);
- jsonWriteStr(buf, "descr", descr);
- jsonWriteStr(buf, "topic", prex + "/" + topic);
-
-#ifdef LAYOUT_IN_RAM
- all_widgets += widget + "\r\n";
-#else
- addFileLn("layout.txt", buf);
-#endif
- }
- }
-
- bool loadWidget(const String& filename, String& buf) {
- buf = readFile(getWidgetFile(filename), 2048);
- bool res = !(buf == "Failed" || buf == "Large");
- if (!res) {
- SerialPrint("E","module","on load" + filename);
- }
- return res;
- }
-
- const String getWidgetFile(const String& name) {
- return "/widgets/" + name + ".json";
- }
-};
-
-extern LineParsing myLineParsing;
diff --git a/include/Class/NotAsync.h b/include/Class/NotAsync.h
deleted file mode 100644
index 1d5278cc..00000000
--- a/include/Class/NotAsync.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#pragma once
-#include
-#include
-
-#include
-
-typedef std::function NotAsyncCb;
-
-struct NotAsyncItem {
- bool test;
- NotAsyncCb cb;
- void* cb_arg;
- volatile bool is_used = false;
-};
-
-class NotAsync {
- private:
- uint8_t size;
- uint8_t task = 0;
- NotAsyncItem* items = NULL;
- void handle(NotAsyncCb f, void* arg);
-
- public:
- NotAsync(uint8_t size);
- ~NotAsync();
-
- void add(uint8_t i, NotAsyncCb, void* arg);
- void make(uint8_t task);
- void loop();
-};
-
-extern NotAsync* myNotAsyncActions;
\ No newline at end of file
diff --git a/include/Class/ScenarioClass3.h b/include/Class/ScenarioClass3.h
deleted file mode 100644
index 177fcdce..00000000
--- a/include/Class/ScenarioClass3.h
+++ /dev/null
@@ -1,257 +0,0 @@
-#pragma once
-#include
-
-#include "Cmd.h"
-#include "Global.h"
-
-class Scenario {
- public:
- void loop2() {
- if (!jsonReadBool(configSetupJson, "scen")) {
- return;
- }
- String allBlocks = scenario;
- allBlocks += "\n";
-
- String incommingEvent = selectToMarker(eventBuf, ",");
-
- String incommingEventKey = selectToMarker(incommingEvent, " ");
- String incommingEventValue = selectToMarkerLast(incommingEvent, " ");
-
- while (allBlocks.length()) {
- String oneBlock = selectToMarker(allBlocks, "end\n");
- String condition = selectToMarker(oneBlock, "\n");
-
- //логическое и
- if (condition.indexOf("&&") != -1) {
- condition = condition += " && ";
-
- //посчитаем количество условий
- int conditionCnt = itemsCount2(condition, "&&") - 1;
-
- //создадим и заполним динамический массив
- bool *arr = new bool[conditionCnt];
- for (int i = 0; i < conditionCnt; i++) {
- arr[i] = false;
- }
-
- //есть ли входящее событие хотя бы в одном из условий и удавлетварено ли оно?
- int evenInConditionNum = -1;
- for (int i = 0; i < conditionCnt; i++) {
- String buf = selectFromMarkerToMarker(condition, " && ", i);
- if (isScenarioNeedToDo(buf, incommingEventKey, incommingEventValue, 1)) {
- arr[i] = true;
- evenInConditionNum = i;
- }
- }
-
- //если да то проверяем остальные условия по json
- if (evenInConditionNum >= 0) {
- for (int i = 0; i < conditionCnt; i++) {
- String buf = selectFromMarkerToMarker(condition, " && ", i);
- if (i != evenInConditionNum) {
- if (isScenarioNeedToDoJson(buf)) {
- arr[i] = true;
- }
- }
- }
- }
-
- //все элементы массива должны быть true
- bool result = true;
- for (int i = 0; i < conditionCnt; i++) {
- if (!arr[i]) {
- result = false;
- }
- }
-
- delete[] arr;
-
- if (result) {
- oneBlock = deleteBeforeDelimiter(oneBlock, "\n");
- oneBlock.replace("end", "");
-
- //SerialPrint("I", "Event done", incommingEvent);
- SerialPrint("I", F("Scenario"), F("All conditions are matched"));
- spaceCmdExecute(oneBlock);
- }
-
- //логическое или
- } else if (condition.indexOf("||") != -1) {
- condition = condition += " || ";
-
- //посчитаем количество условий
- int conditionCnt = itemsCount2(condition, "||") - 1;
-
- //создадим и заполним динамический массив
- bool *arr = new bool[conditionCnt];
- for (int i = 0; i < conditionCnt; i++) {
- arr[i] = false;
- }
-
- //есть ли входящее событие хотя бы в одном из условий и удавлетварено ли оно?
- int evenInConditionNum = -1;
- for (int i = 0; i < conditionCnt; i++) {
- String buf = selectFromMarkerToMarker(condition, " || ", i);
- if (isScenarioNeedToDo(buf, incommingEventKey, incommingEventValue, 1)) {
- arr[i] = true;
- evenInConditionNum = i;
- }
- }
-
- //если да то проверяем остальные условия по json
- if (evenInConditionNum >= 0) {
- for (int i = 0; i < conditionCnt; i++) {
- String buf = selectFromMarkerToMarker(condition, " || ", i);
- if (i != evenInConditionNum) {
- if (isScenarioNeedToDoJson(buf)) {
- arr[i] = true;
- }
- }
- }
- }
-
- //хотя бы один элемент массива должн быть true
- bool result = false;
- for (int i = 0; i < conditionCnt; i++) {
- if (arr[i]) {
- result = true;
- }
- }
-
- delete[] arr;
-
- if (result) {
- oneBlock = deleteBeforeDelimiter(oneBlock, "\n");
- oneBlock.replace("end", "");
-
- //SerialPrint("I", "Event done", incommingEvent);
- SerialPrint("I", F("Scenario"), F("One of all condition are matched"));
- spaceCmdExecute(oneBlock);
- }
-
- //если гистерезис
- } else if (condition.indexOf("+-") != -1) {
- if (isScenarioNeedToDo(condition, incommingEventKey, incommingEventValue, 2)) {
- oneBlock = deleteBeforeDelimiter(oneBlock, "\n");
- oneBlock.replace("end", "");
-
- //SerialPrint("I", "Event done", incommingEvent);
- SerialPrint("I", F("Scenario"), "Condition are matched: " + condition);
- spaceCmdExecute(oneBlock);
- }
-
- //остальные случаи
- } else {
- if (isScenarioNeedToDo(condition, incommingEventKey, incommingEventValue, 1)) {
- oneBlock = deleteBeforeDelimiter(oneBlock, "\n");
- oneBlock.replace("end", "");
-
- //SerialPrint("I", "Event done", incommingEvent);
- SerialPrint("I", F("Scenario"), "Condition are matched: " + condition);
- spaceCmdExecute(oneBlock);
- }
- }
- allBlocks = deleteBeforeDelimiter(allBlocks, "end\n");
- }
- eventBuf = deleteBeforeDelimiter(eventBuf, ",");
- }
-
- private:
- bool isScenarioNeedToDo(String &condition, String &incommingEventKey, String &incommingEventValue, int type) {
- bool res = false;
- String setEventKey = selectFromMarkerToMarker(condition, " ", 0);
- if (isEventExist(incommingEventKey, setEventKey)) {
- String setEventSign;
- String setEventValue;
- if (type == 1) preCalculation(condition, setEventSign, setEventValue);
- if (type == 2) preCalculationGisteresis(condition, setEventSign, setEventValue);
- if (isConditionMatch(setEventSign, incommingEventValue, setEventValue)) {
- res = true;
- }
- }
- return res;
- }
-
- bool isScenarioNeedToDoJson(String &condition) {
- bool res = false;
- String setEventKey = selectFromMarkerToMarker(condition, " ", 0);
- String setEventSign;
- String setEventValue;
- preCalculation(condition, setEventSign, setEventValue);
- String jsonValue = getValue(setEventKey);
- if (isConditionMatch(setEventSign, jsonValue, setEventValue)) {
- res = true;
- }
- return res;
- }
-
- //bool isScenarioNeedToDoJson2(String &condition, String &incommingEventKey, String &incommingEventValue) {
- // bool res = false;
- // String setEventKey = selectFromMarkerToMarker(condition, " ", 0);
- // if (isEventExist(incommingEventKey, setEventKey)) {
- // String setEventSign;
- // String setEventValue;
- // preCalculation(condition, setEventSign, setEventValue);
- // if (isConditionMatch(setEventSign, incommingEventValue, setEventValue)) {
- // res = true;
- // }
- // }
- // return res;
- //}
-
- void preCalculation(String &condition, String &setEventSign, String &setEventValue) {
- setEventSign = selectFromMarkerToMarker(condition, " ", 1);
- setEventValue = selectFromMarkerToMarker(condition, " ", 2);
- if (!isDigitDotCommaStr(setEventValue)) {
- setEventValue = getValue(setEventValue);
- }
- }
-
- void preCalculationGisteresis(String &condition, String &setEventSign, String &setEventValue) {
- setEventSign = selectFromMarkerToMarker(condition, " ", 1);
- setEventValue = selectFromMarkerToMarker(condition, " ", 2);
- if (!isDigitDotCommaStr(setEventValue)) {
- String setEventValueName = selectToMarker(setEventValue, "+-");
- String gisteresisValue = selectToMarkerLast(setEventValue, "+-");
- gisteresisValue.replace("+-", "");
- String value = getValue(setEventValueName);
- String upValue = String(value.toFloat() + gisteresisValue.toFloat());
- String lowValue = String(value.toFloat() - gisteresisValue.toFloat());
- if (setEventSign == ">") {
- setEventValue = upValue;
- } else if (setEventSign == "<") {
- setEventValue = lowValue;
- }
- }
- }
-
- bool isEventExist(String &incommingEventKey, String &setEventKey) {
- bool res = false;
- if (incommingEventKey == setEventKey) {
- res = true;
- }
- return res;
- }
-
- bool isConditionMatch(String &setEventSign, String &incommingEventValue, String &setEventValue) {
- boolean flag = false;
- if (setEventSign == "=") {
- flag = incommingEventValue == setEventValue;
- } else if (setEventSign == "!=") {
- flag = incommingEventValue != setEventValue;
- } else if (setEventSign == "<") {
- flag = incommingEventValue.toFloat() < setEventValue.toFloat();
- } else if (setEventSign == ">") {
- flag = incommingEventValue.toFloat() > setEventValue.toFloat();
- } else if (setEventSign == ">=") {
- flag = incommingEventValue.toFloat() >= setEventValue.toFloat();
- } else if (setEventSign == "<=") {
- flag = incommingEventValue.toFloat() <= setEventValue.toFloat();
- }
- return flag;
- }
-};
-
-extern Scenario *myScenario;
-extern void streamEventUDP(String event);
\ No newline at end of file
diff --git a/include/Class/TCircularBuffer.h b/include/Class/TCircularBuffer.h
deleted file mode 100644
index 33cdb81a..00000000
--- a/include/Class/TCircularBuffer.h
+++ /dev/null
@@ -1,107 +0,0 @@
-#pragma once
-
-#include
-
-template
-
-class TCircularBuffer {
- public:
- TCircularBuffer() : _head{0}, _tail{0}, _full{false} {}
-
- ~TCircularBuffer() {}
-
- void reset() {
- _head = _tail = _full = 0;
- }
-
- bool empty() const {
- return _head == _tail && !_full;
- }
-
- bool full() const {
- return _full;
- }
-
- /**
- * Get the number of elements currently stored in the circular_buffer.
- */
- size_t size() const {
- size_t res = 0;
- if (!_full) {
- if (_head < _tail)
- res = BUFFER_SIZE + _head - _tail;
- else
- res = _head - _tail;
- } else {
- res = BUFFER_SIZE;
- }
- return res;
- }
-
- /** Push the transaction to the buffer. This overwrites the buffer if it's full.
- * Загрузить данные в буфер
- * @param data item to be pushed to the buffer.
- */
- void push(const T &item) {
- if (_full) {
- _tail++;
- if (_tail == BUFFER_SIZE)
- _tail = 0;
- }
- _pool[_head++] = item;
- if (_head == BUFFER_SIZE)
- _head = 0;
- if (_head == _tail)
- _full = true;
- }
-
- /** Pop from the buffer.
- * Забрать данные из буфера
- * @param data item to store the data to be popped from the buffer.
- * @return True if data popped.
- */
- bool pop(T &item) {
- bool res = false;
- if (!empty()) {
- item = _pool[_tail++];
- if (_tail == BUFFER_SIZE) _tail = 0;
- _full = false;
- res = true;
- }
- return res;
- }
-
- bool pop_back(T &item) {
- bool res = false;
- if (!empty()) {
- item = _pool[--_head];
- _full = false;
- res = true;
- }
- return res;
- }
-
- /** Peek into circular buffer without popping.
- *
- * @param data item to be peeked from the buffer.
- * @return True if the buffer is not empty and data contains a transaction, false otherwise.
- */
- bool peek(T &item) const {
- bool res = false;
- if (!empty()) {
- item = _pool[_tail];
-
- res = true;
- }
- return res;
- }
-
- private:
- T _pool[BUFFER_SIZE];
- size_t _head;
- size_t _tail;
- bool _full;
-};
-
-extern TCircularBuffer *myTCircularBuffer;
-extern TCircularBuffer *myWsBuffer;
diff --git a/include/Clock.h b/include/Clock.h
deleted file mode 100644
index cd7038af..00000000
--- a/include/Clock.h
+++ /dev/null
@@ -1,178 +0,0 @@
-#pragma once
-
-#include "Clock.h"
-#include "Global.h"
-#include "Utils/TimeUtils.h"
-#include "Utils\SerialPrint.h"
-
-extern void clockInit();
-
-#ifdef ESP8266
-#include "sntp.h"
-#endif
-
-
-
-class Clock {
- private:
- Time_t _time_local;
- Time_t _time_utc;
- unsigned long _uptime;
- unsigned long _unixtime;
- int _timezone;
- String _ntp;
- bool _hasSynced;
- bool _configured;
-
- public:
- Clock() : _uptime{0}, _timezone{0}, _ntp{""}, _hasSynced{false}, _configured{false} {};
-
- void loop() {
- unsigned long passed = millis_since(_uptime);
- if (passed < ONE_SECOND_ms) {
- return;
- }
- _uptime += passed;
-
- // world time
- time_t now = getSystemTime();
- time_t estimated = _unixtime + (passed / ONE_SECOND_ms);
- double drift = difftime(now, estimated);
- if (drift > 1) {
- // Обработать ситуации c дрифтом времени на значительные величины
- }
-
- _unixtime = now;
-
- breakEpochToTime(_unixtime, _time_utc);
-
- breakEpochToTime(_unixtime + getOffsetInSeconds(_timezone), _time_local);
- }
-
- bool hasSync() {
- if (!_hasSynced) {
- startSync();
- }
- return _hasSynced;
- }
-
- void setNtpPool(String ntp) {
- if (!_ntp.equals(ntp)) {
- _ntp = ntp;
- _configured = false;
- }
- }
-
- void setTimezone(int timezone) {
- if (_timezone != timezone) {
- _timezone = timezone;
- _configured = false;
- }
- }
-
- void startSync() {
- if (!_configured) {
- SerialPrint("I", "NTP", "sync to: " + _ntp + " timezone: " + String(_timezone));
- setupSntp();
- _configured = true;
- return;
- }
- _hasSynced = hasTimeSynced();
- if (_hasSynced) {
- SerialPrint("I", "NTP", "synced " + getDateDotFormated() + " " + getTime());
- } else {
- SerialPrint("E", "NTP", F("failed to obtain time"));
- }
- }
-
- void setupSntp() {
-#ifdef ESP8266
- sntp_setservername(0, _ntp.c_str());
- sntp_setservername(1, "ru.pool.ntp.org");
- sntp_setservername(2, "pool.ntp.org");
- sntp_stop();
- sntp_set_timezone(0);
- sntp_init();
-#else
- configTime(0, 0, _ntp.c_str(), "ru.pool.ntp.org", "pool.ntp.org");
-#endif
- }
-
- bool hasTimeSynced() const {
- return _unixtime > MIN_DATETIME;
- }
-
- time_t getSystemTime() const {
- timeval tv{0, 0};
- timezone tz = timezone{0, 0};
- time_t epoch = 0;
- if (gettimeofday(&tv, &tz) != -1) {
- epoch = tv.tv_sec;
- }
- return epoch;
- }
-
- const String getTimeUnix() {
- return String(_unixtime);
- }
-
- /*
- * Локальное время "дд.ММ.гг"
- */
- const String getDateDotFormated() {
- char buf[32];
- sprintf(buf, "%02d.%02d.%02d", _time_local.day_of_month, _time_local.month, _time_local.year);
- return String(buf);
- }
-
- /*
- * Локальное дата время "дд.ММ.гг чч.мм.cc"
- */
- const String getDateTimeDotFormated() {
- char buf[32];
- sprintf(buf, "%02d.%02d.%02d %02d:%02d:%02d", _time_local.day_of_month, _time_local.month, _time_local.year, _time_local.hour, _time_local.minute, _time_local.second);
- return String(buf);
- }
-
- /*
- * Локальное дата время "дд.ММ.гг чч.мм.cc"
- */
- const String getDateTimeDotFormated(Time_t timeNow) {
- char buf[32];
- sprintf(buf, "%02d.%02d.%02d %02d:%02d:%02d", timeNow.day_of_month, timeNow.month, timeNow.year, timeNow.hour, timeNow.minute, timeNow.second);
- return String(buf);
- }
-
-
- /*
- * Локальное время "чч:мм:cc"
- */
- const String getTime() {
- char buf[32];
- sprintf(buf, "%02d:%02d:%02d", _time_local.hour, _time_local.minute, _time_local.second);
- return String(buf);
- }
-
- const String getTimeJson() {
- char buf[32];
- sprintf(buf, "%02d-%02d-%02d", _time_local.hour, _time_local.minute, _time_local.second);
- return String(buf);
- }
-
- /*
- * Локальное время "чч:мм"
- */
- const String getTimeWOsec() {
- char buf[32];
- sprintf(buf, "%02d:%02d", _time_local.hour, _time_local.minute);
- return String(buf);
- }
-
- /*
- * Время с момента запуска "чч:мм:cc" далее "дд чч:мм"
- */
- const String getUptime() {
- return prettyMillis(_uptime);
- }
-};
-extern Clock* timeNow;
\ No newline at end of file
diff --git a/include/Cmd.h b/include/Cmd.h
deleted file mode 100644
index f19f54d1..00000000
--- a/include/Cmd.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#pragma once
-
-#include
-
-extern void cmd_init();
-
-
-//extern void levelPr();
-//extern void ultrasonicCm();
-//extern void ultrasonic_reading();
-
-extern void analog_reading1();
-extern void analog_reading2();
-extern void dallas_reading();
-extern void dhtT_reading();
-
-//extern void dallas();
-
-extern void bmp280T();
-extern void bmp280P();
-extern void bmp280T_reading();
-extern void bmp280P_reading();
-
-extern void bme280T();
-extern void bme280P();
-extern void bme280H();
-extern void bme280A();
-
-extern void bme280T_reading();
-extern void bme280P_reading();
-extern void bme280H_reading();
-extern void bme280A_reading();
-
-//extern void dhtT();
-//extern void dhtH();
-//extern void dhtP();
-//extern void dhtC();
-//extern void dhtD();
-//extern void dhtH_reading();
-//extern void dhtP_reading();
-//extern void dhtC_reading();
-//extern void dhtD_reading();
-
-extern void timeInit();
-extern void stepper();
-extern void stepperSet();
-extern void servo_();
-extern void servoSet();
-extern void serialBegin();
-extern void serialWrite();
-extern void logging();
-
-extern void button();
-extern void timeSet();
-
-extern void mqttOrderSend();
-extern void httpOrderSend();
-extern void firmwareVersion();
-extern void firmwareUpdate();
-extern void loadScenario();
-
-extern void fileCmdExecute(const String& filename);
-extern void csvCmdExecute(String& cmdStr);
-extern void spaceCmdExecute(String& cmdStr);
\ No newline at end of file
diff --git a/include/Consts.h b/include/Consts.h
deleted file mode 100644
index 7cd34240..00000000
--- a/include/Consts.h
+++ /dev/null
@@ -1,161 +0,0 @@
-#pragma once
-
-#define FIRMWARE_VERSION 400
-
-#define svelte
-
-#ifdef esp8266_4mb
-#define FIRMWARE_NAME "esp8266_4mb"
-#define USE_LITTLEFS true
-#define USE_OTA true
-#define LED_PIN 2
-#define ESP_MODE
-#endif
-
-#ifdef esp8266_1mb
-#define FIRMWARE_NAME "esp8266_1mb"
-#define USE_LITTLEFS true
-#define USE_OTA false
-#define LED_PIN 2
-#define ESP_MODE
-#endif
-
-#ifdef esp32_4mb
-#define FIRMWARE_NAME "esp32_4mb"
-#define USE_LITTLEFS false
-#define USE_OTA true
-#define LED_PIN 22
-#define ESP_MODE
-#endif
-
-#ifdef esp8266_mysensors_4mb
-#define FIRMWARE_NAME "esp8266_mysensors_4mb"
-#define USE_LITTLEFS true
-#define USE_OTA true
-#define LED_PIN 2
-#define GATE_MODE
-#define MYSENSORS
-#endif
-
-#ifdef esp32_mysensors_4mb
-#define FIRMWARE_NAME "esp32_mysensors_4mb"
-#define USE_LITTLEFS false
-#define USE_OTA true
-#define LED_PIN 22
-#define GATE_MODE
-#define MYSENSORS
-#endif
-
-#define JSON_BUFFER_SIZE 4096
-#define NUM_BUTTONS 6
-#define MQTT_RECONNECT_INTERVAL 20000
-#define CHANGE_BROKER_AFTER 5
-#define TELEMETRY_UPDATE_INTERVAL_MIN 60
-#define DEVICE_CONFIG_FILE "s.conf.csv"
-#define DEVICE_SCENARIO_FILE "s.scen.txt"
-//#define OTA_UPDATES_ENABLED
-//#define MDNS_ENABLED
-#define WEBSOCKET_ENABLED
-//#define LAYOUT_IN_RAM
-//#define UDP_ENABLED
-//#define SSDP_ENABLED
-
-#ifdef ESP_MODE
-#define EnableButtonIn
-#define EnableButtonOut
-#define EnableCountDown
-#define EnableImpulsOut
-#define EnableInput
-#define EnableLogging
-#define EnableOutput
-#define EnablePwmOut
-#define EnableSensorAnalog
-#define EnableSensorBme280
-#define EnableSensorBmp280
-#define EnableSensorCcs811
-#define EnableSensorDallas
-#define EnableSensorDht
-#define EnableSensorPzem
-#define EnableSensorUltrasonic
-#define EnableSensorUptime
-#define EnableTelegram
-#define EnableUart
-#endif
-
-#ifdef GATE_MODE
-#define EnableSensorNode
-#define EnableButtonOut
-#define EnableCountDown
-#define EnableInput
-#define EnableLogging
-#define EnableOutput
-#define EnableSensorUptime
-#define EnableTelegram
-#define EnableUart
-#endif
-
-//================================================================================================================================================================
-
-enum TimerTask_t { WIFI_SCAN,
- WIFI_MQTT_CONNECTION_CHECK,
- TIME,
- TIME_SYNC,
- STATISTICS,
- UPTIME,
- UDP,
- SYGNAL,
- TIMES,
- MYTEST };
-
-enum NotAsyncActions {
- do_ZERO,
- do_UPGRADE,
- do_GETLASTVERSION,
- do_BUSSCAN,
- do_MQTTPARAMSCHANGED,
- do_deviceInit,
- do_delChoosingItems,
- do_addItem,
- do_addPreset,
- do_sendScenUDP,
- do_sendScenMQTT,
- do_webSocketSendSetup,
- do_LAST,
-};
-
-enum LedStatus_t {
- LED_OFF,
- LED_ON,
- LED_SLOW,
- LED_FAST
-};
-
-enum ConfigType_t {
- CT_CONFIG,
- CT_SCENARIO
-};
-
-// history
-// 07.11.2020 (SSDP OFF, UDP OFF)
-// RAM: [===== ] 46.8% (used 38376 bytes from 81920 bytes)
-// Flash: [===== ] 54.2% (used 566004 bytes from 1044464 bytes)
-
-// 13.11.2020 (SSDP OFF, UDP OFF)
-// RAM: [===== ] 46.6% (used 38208 bytes from 81920 bytes)
-// Flash: [===== ] 54.2% (used 566388 bytes from 1044464 bytes)
-
-// 15.11.2020 (SSDP OFF, UDP OFF)
-// RAM: [===== ] 46.1% (used 37780 bytes from 81920 bytes)
-// Flash: [===== ] 54.3% (used 566656 bytes from 1044464 bytes)
-
-// 17.11.2020 (SSDP OFF, UDP OFF)
-// RAM: [===== ] 45.7% (used 37476 bytes from 81920 bytes)
-// Flash: [===== ] 54.5% (used 569296 bytes from 1044464 bytes)
-
-// RAM: [===== ] 45.6% (used 37336 bytes from 81920 bytes)
-// Flash: [====== ] 55.3% (used 577396 bytes from 1044464 bytes)
-
-// eventBuf - буфер событий которые проверяются в сценариях,
-//и если событие удовлетворяет какому нибудь условию то выполняются указанные команды
-
-// orderBuf - буфер команд которые выполняются сейчас же
diff --git a/include/ESP32.h b/include/ESP32.h
deleted file mode 100644
index b144a096..00000000
--- a/include/ESP32.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#pragma once
-
-#ifdef ESP32
-// don't change order
-#include "WiFi.h"
-//
-
-#include "ESPAsyncWebServer.h"
-#include "SPIFFSEditor.h"
-// don't change order
-#include
-#include
-#include
-#include
-
-//
-#include
-
-
-#ifdef MDNS_ENABLED
-#include
-#endif
-
-extern AsyncUDP udp;
-
-#endif
\ No newline at end of file
diff --git a/include/ESP8266.h b/include/ESP8266.h
deleted file mode 100644
index 315a2045..00000000
--- a/include/ESP8266.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#pragma once
-
-#ifdef ESP8266
-//#include
-#include
-#include "ESPAsyncTCP.h"
-#include "ESPAsyncWebServer.h"
-#include
-#include
-#include
-#include
-#ifdef MDNS_ENABLED
-#include
-#endif
-
-extern WiFiUDP udp;
-
-#endif
\ No newline at end of file
diff --git a/include/FSEditor.h b/include/FSEditor.h
deleted file mode 100644
index 4fcdef02..00000000
--- a/include/FSEditor.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#pragma once
-
-#include
-#include "FileSystem.h"
-
-class FSEditor : public AsyncWebHandler {
- private:
- fs::FS _fs;
- String _username;
- String _password;
- bool _authenticated;
- uint32_t _startTime;
-
- private:
- void getDirList(const String& path, String& output);
-
- public:
-#ifdef ESP32
- FSEditor(const fs::FS& fs, const String& username = String(), const String& password = String());
-#else
- FSEditor(const String& username = String(), const String& password = String(), const fs::FS& fs = FileFS);
-#endif
- virtual bool canHandle(AsyncWebServerRequest* request) override final;
- virtual void handleRequest(AsyncWebServerRequest* request) override final;
- virtual void handleUpload(AsyncWebServerRequest* request, const String& filename, size_t index, uint8_t* data, size_t len, bool final) override final;
- virtual bool isRequestHandlerTrivial() override final {
- return false;
- }
-};
\ No newline at end of file
diff --git a/include/FileSystem.h b/include/FileSystem.h
deleted file mode 100644
index ae31147e..00000000
--- a/include/FileSystem.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-
-#include "Consts.h"
-
-#define FILE_READ "r"
-#define FILE_WRITE "w"
-#define FILE_APPEND "a"
-
-#include
-
-#ifdef ESP32
-#include
-extern FS* filesystem;
-#define FileFS SPIFFS
-#define FS_NAME "SPIFFS"
-#endif
-
-#ifdef ESP8266
-#if USE_LITTLEFS
-#include "LittleFS.h"
-extern FS LittleFS;
-using littlefs_impl::LittleFSConfig;
-extern FS* filesystem;
-#define FileFS LittleFS
-#define FS_NAME "LittleFS"
-#else
-extern FS* filesystem;
-#define FileFS SPIFFS
-#define FS_NAME "SPIFFS"
-#endif
-#endif
-
-extern void getFSInfo();
-#ifdef ESP8266
-extern bool getInfo(FSInfo& info);
-#endif
\ No newline at end of file
diff --git a/include/Global.h b/include/Global.h
deleted file mode 100644
index a9b3cfaf..00000000
--- a/include/Global.h
+++ /dev/null
@@ -1,160 +0,0 @@
-#pragma once
-//===================Libraries===================================================================================================================================================
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "CTBot.h"
-#include "Clock.h"
-#include "Consts.h"
-#include "ESP32.h"
-#include "ESP8266.h"
-#include "GyverFilters.h"
-#include "MqttClient.h"
-#include "Upgrade.h"
-#include "Utils/FileUtils.h"
-#include "Utils/JsonUtils.h"
-#include "Utils/SerialPrint.h"
-#include "Utils/StringUtils.h"
-#include "Utils/SysUtils.h"
-#include "Utils/WiFiUtils.h"
-
-#ifdef WEBSOCKET_ENABLED
-extern AsyncWebSocket ws;
-extern AsyncEventSource events;
-#endif
-
-extern TickerScheduler ts;
-extern WiFiClient espClient;
-extern PubSubClient mqtt;
-extern StringCommand sCmd;
-extern AsyncWebServer server;
-
-// Global vars
-extern boolean just_load;
-extern boolean telegramInitBeen;
-extern boolean savedFromWeb;
-extern boolean wsSetupFlag;
-
-// Json
-extern String configSetupJson; //все настройки
-extern String configLiveJson; //все данные с датчиков (связан с mqtt)
-extern String configStoreJson; //все данные которые должны сохраняться
-extern String configOptionJson; //для трансфера
-extern String telegramMsgJson;
-extern String getValue(String& key);
-
-// Mqtt
-extern String mqttServer;
-extern int mqttPort;
-extern String mqttPrefix;
-extern String mqttUser;
-extern String mqttPass;
-
-extern String mqttRootDevice;
-extern String chipId;
-extern String prex;
-extern String all_widgets;
-extern String scenario;
-
-extern int mqttConnectAttempts;
-extern bool changeBroker;
-extern int currentBroker;
-
-// web sockets
-extern int wsAttempts;
-//extern char* wsBufChar;
-
-// orders and events
-extern String orderBuf;
-extern String wsBuf;
-extern String eventBuf;
-extern String mysensorBuf;
-extern String itemsFile;
-extern String itemsLine;
-
-// key lists and numbers
-//=========================================
-extern String impuls_KeyList;
-extern int impuls_EnterCounter;
-//=========================================
-extern String buttonOut_KeyList;
-extern int buttonOut_EnterCounter;
-//=========================================
-extern String input_KeyList;
-extern int input_EnterCounter;
-//=========================================
-extern String output_KeyList;
-extern int output_EnterCounter;
-//=========================================
-extern String pwmOut_KeyList;
-extern int pwmOut_EnterCounter;
-//=========================================
-extern String countDown_KeyList;
-extern int countDown_EnterCounter;
-//=========================================
-extern String logging_KeyList;
-extern int logging_EnterCounter;
-//=========================================
-
-extern String itemName;
-extern String presetName;
-
-extern int scenario_line_status[40];
-extern int lastVersion;
-
-// Main
-extern void setChipId();
-extern void saveConfig();
-extern void setConfigParam(const char* param, const String& value);
-
-extern String getURL(const String& urls);
-extern void do_fscheck();
-extern void doBusScan();
-extern void servo_();
-
-extern void setLedStatus(LedStatus_t);
-
-// Scenario
-extern void eventGen2(String eventName, String eventValue);
-extern String add_set(String param_name);
-
-// Timers
-extern void Timer_countdown_init();
-extern void timerStart_();
-extern void addTimer(String number, String time);
-extern void timerStop_();
-extern void delTimer(String number);
-extern int readTimer(int number);
-
-extern void upgradeInit();
-
-// widget
-extern void createWidgetByType(String widget_name, String page_name, String page_number, String file, String topic);
-extern void createWidgetParam(String widget_name, String page_name, String page_number, String file, String topic, String name1, String param1, String name2, String param2, String name3, String param3);
-extern void createWidget(String widget_name, String page_name, String page_number, String type, String topik);
-extern void createChart(String widget_name, String page_name, String page_number, String file, String topic, String maxCount);
-
-// PushingBox
-extern void pushControl();
-
-// UDP
-// extern void udpInit();
-// extern void do_udp_data_parse();
-// extern void do_mqtt_send_settings_to_udp();
-
-extern void do_update();
-
-// Init
-extern void uptime_init();
-
-// Web
-extern void web_init();
-
-// Upgrade
-extern String serverIP;
diff --git a/include/Init.h b/include/Init.h
deleted file mode 100644
index 40cc5e74..00000000
--- a/include/Init.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#pragma once
-
-extern void loadConfig();
-extern void espInit();
-extern void statistics_init();
-extern void loadScenario();
-extern void deviceInit();
-extern void prsets_init();
-extern void handle_uptime();
-extern void handle_statistics();
-extern void clearVectors();
\ No newline at end of file
diff --git a/include/ItemsList.h b/include/ItemsList.h
deleted file mode 100644
index a92da52f..00000000
--- a/include/ItemsList.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-#include
-#include "Global.h"
-
-extern void itemsListInit();
-extern void addItem2(int num);
-extern void addItemAuto(int num, String key, String widget, String descr);
-extern bool isItemAdded(String key);
-extern void addPreset(String name);
-extern void addPreset2(int num);
-extern void delChoosingItems();
-extern void addPreset2(int num);
-extern void delChoosingItemsByNum(int num);
-extern void delAllItems();
-extern uint8_t getNewElementNumber(String file);
-extern uint8_t getFreePinAll();
-extern bool isPinExist(unsigned int num);
-extern uint8_t getFreePinAnalog();
diff --git a/include/Macro.h b/include/Macro.h
deleted file mode 100644
index bf1fe7ce..00000000
--- a/include/Macro.h
+++ /dev/null
@@ -1,9 +0,0 @@
-//#pragma once
-//#define ST(A) #A
-//#define STR(A) ST(A)
-//
-//#ifdef esp32_4mb
-//#pragma message STR(esp32_4mb)
-//#endif
-
-//Serial.println(STR(esp32_4mb));
\ No newline at end of file
diff --git a/include/MqttClient.h b/include/MqttClient.h
deleted file mode 100644
index ff4416fc..00000000
--- a/include/MqttClient.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#pragma once
-
-#include
-
-void mqttInit();
-void selectBroker();
-void getMqttData1();
-void getMqttData2();
-bool isSecondBrokerSet();
-boolean mqttConnect();
-void mqttReconnect();
-void mqttLoop();
-void mqttSubscribe();
-
-boolean publish(const String& topic, const String& data);
-boolean publishData(const String& topic, const String& data);
-boolean publishChart(const String& topic, const String& data);
-boolean publishControl(String id, String topic, String state);
-boolean publishChart_test(const String& topic, const String& data);
-boolean publishStatus(const String& topic, const String& data);
-boolean publishEvent(const String& topic, const String& data);
-boolean publishInfo(const String& topic, const String& data);
-boolean publishAnyJsonKey(const String& topic, const String& key, const String& data);
-
-void publishWidgets();
-void publishState();
-
-void mqttCallback(char* topic, uint8_t* payload, size_t length);
-const String getStateStr();
diff --git a/include/MqttDiscovery.h b/include/MqttDiscovery.h
deleted file mode 100644
index 282b26fc..00000000
--- a/include/MqttDiscovery.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#pragma once
-
-#include "Utils/SysUtils.h"
-
-namespace Discovery {
-
-
-}
\ No newline at end of file
diff --git a/include/MySensorsDataParse.h b/include/MySensorsDataParse.h
deleted file mode 100644
index 56dca7ad..00000000
--- a/include/MySensorsDataParse.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "Consts.h"
-#ifdef MYSENSORS
-#pragma once
-#include "Global.h"
-extern void loopMySensorsExecute();
-extern void sensorType(int index, int &num, String &widget, String &descr);
-extern void test(char* inputString);
-#endif
\ No newline at end of file
diff --git a/include/MySensorsDataRead.h b/include/MySensorsDataRead.h
deleted file mode 100644
index 97579da1..00000000
--- a/include/MySensorsDataRead.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "Consts.h"
-#include "Global.h"
-#ifdef MYSENSORS
-//#define MY_DEBUG
-#define MY_RADIO_RF24
-#define MY_RF24_PA_LEVEL RF24_PA_HIGH //RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
-//#define MY_ENCRYPTION_SIMPLE_PASSWD "XpenBam"
-//#define MY_RF24_DATARATE RF24_2MBPS
-#define MY_GATEWAY_SERIAL
-#include "MySensors.h"
-extern void receive(const MyMessage &message);
-extern String parseToString(const MyMessage &message);
-#endif
-
diff --git a/include/RemoteOrdersUdp.h b/include/RemoteOrdersUdp.h
deleted file mode 100644
index 1500c55e..00000000
--- a/include/RemoteOrdersUdp.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#pragma once
-#ifdef ESP8266
-#include "ESPAsyncUDP.h"
-extern AsyncUDP asyncUdp;
-extern void asyncUdpInit();
-extern String uint8tToString(uint8_t* data, size_t len);
-extern bool udpPacketValidation(String& data);
-extern void udpPacketParse(String& data);
-#endif
\ No newline at end of file
diff --git a/include/SSDP.h b/include/SSDP.h
deleted file mode 100644
index 353b193c..00000000
--- a/include/SSDP.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#pragma once
-
-#include
-
-#include "Consts.h"
-
-#ifdef SSDP_ENABLED
-void SsdpInit();
-#endif
\ No newline at end of file
diff --git a/include/Sensors.h b/include/Sensors.h
deleted file mode 100644
index 45dcbb04..00000000
--- a/include/Sensors.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-
diff --git a/include/Servo/Servos.h b/include/Servo/Servos.h
deleted file mode 100644
index db53c01e..00000000
--- a/include/Servo/Servos.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#pragma once
-
-#include
-#ifdef ESP8266
-#include
-#else
-#include
-#endif
-
-struct Servo_t {
- uint8_t num;
- uint8_t pin;
- Servo* obj;
- Servo_t(uint8_t num, uint8_t pin) : num{num}, pin{pin}, obj{nullptr} {};
-};
-
-class Servos {
- public:
- Servos();
- Servo* get(uint8_t num);
- Servo* create(uint8_t num, uint8_t pin);
-
- size_t count();
-
- private:
- std::vector _items;
-};
-
-extern Servos myServo;
\ No newline at end of file
diff --git a/include/SetupESP.h b/include/SetupESP.h
deleted file mode 100644
index 22fff364..00000000
--- a/include/SetupESP.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#pragma once
-
-#include
-#include
-#include
-#include
-
-#include "LittleFS.h"
-#include "Utils/FileUtils.h"
-#include "Utils/StringUtils.h"
-
-extern void setupESP();
\ No newline at end of file
diff --git a/include/SoftUART.h b/include/SoftUART.h
deleted file mode 100644
index fb9d64fc..00000000
--- a/include/SoftUART.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#pragma once
-#include "Consts.h"
-#ifdef EnableUart
-#include "SoftwareSerial.h"
-
-#ifdef ESP8266
-#include
-extern SoftwareSerial* myUART;
-#else
-#include
-extern HardwareSerial* myUART;
-#endif
-
-
-extern void uartInit();
-extern void uartHandle();
-extern void parse(String& incStr);
-#endif
\ No newline at end of file
diff --git a/include/Strings_.h b/include/Strings_.h
deleted file mode 100644
index 21865168..00000000
--- a/include/Strings_.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#pragma once
-
-//Strings
-// #include
-#include
-
-#include
-#include
-
-class char_array {
- private:
- char *p_stringarray; //initial input array
- char *p_inputstring; //holds actual length data
- //char **pp_database_string; //allocate data database.cpp
- int stringsize; //holds array size to allocate memory
- int charinput; //holds array input size
-
- public:
- inline char_array(); //inline so other functions can call on it
- inline ~char_array();
- inline void getinput(char *&); //retrieves user input
- inline void grabline(char *&); //retrieve line with whitespace included NOT COMPLETE, may not need
- inline int sortline(char **&, char *&); //sorts line into an array of strings and returns number of separate strings
- inline int arraysize(); //returns size of string array
- inline void printinput(); //print input string
- inline void changedefaultsize(); //change default input size NOT COMPLETE
-};
-
-inline char_array::char_array() //constructor
-{
- stringsize = 0;
- charinput = 64;
- p_stringarray = new char[charinput];
-}
-
-inline char_array::~char_array() //destructor
-{
- delete[] p_inputstring;
- delete[] p_stringarray;
-}
-
-inline void char_array::getinput(char *&p_stringin) {
- stringsize = 0;
-
- scanf("%63s", p_stringarray); //get input string
-
- while (p_stringarray[stringsize] != 0) //finding out the size of string array
- {
- stringsize++;
- }
- stringsize++;
-
- p_inputstring = new char[stringsize]; //reallocate memory block and set array inside
- for (int i = 0; i < stringsize; i++) {
- p_inputstring[i] = p_stringarray[i];
- }
-
- p_inputstring[stringsize - 1] = '\x00';
-
- p_stringin = new char[stringsize]; //set pp_stringin
-
- p_stringin = p_inputstring;
-}
-
-inline void char_array::grabline(char *&p_stringin) {
- stringsize = 0;
- std::cin.getline(p_stringarray, charinput);
- while (p_stringarray[stringsize] != 0) {
- stringsize++;
- }
- stringsize++;
- p_inputstring = new char[stringsize];
-
- for (int i = 0; i < stringsize; i++) {
- p_inputstring[i] = p_stringarray[i];
- }
-
- p_stringin = new char[stringsize];
- p_stringin = p_inputstring;
-}
-
-inline int char_array::sortline(char **&pp_stringin, char *&p_string) {
- int position = 0; //position in string
- int charcount = 1; //how many characters there are
- int wordnum; //which word is being processed
- int wordcount = 1; //number of words in string
- int bookmark = 0; //holds last known position
-
- while (p_string[position] == ' ') {
- position++;
- }
-
- wordnum = position; //borrow wordnum to hold position value
- while (p_string[position] != '\x00') //find total inputted string word length
- {
- if ((p_string[position] == ' ') && ((p_string[position + 1] != ' ') || (p_string[position + 1] != '\x00'))) {
- wordcount++;
- }
- position++;
- }
- position = wordnum; //set position to original value
- for (wordnum = 0; wordnum < wordcount; wordnum++) {
- charcount = 1;
- while (p_string[position] == ' ') {
- position++;
- }
- while ((p_string[position] != ' ') && (p_string[position] != '\x00')) {
- position++;
- charcount++;
- }
- pp_stringin[wordnum] = new char[charcount];
-
- for (int i = 0; i < charcount; i++) {
- pp_stringin[wordnum][i] = p_string[i + bookmark];
- }
- pp_stringin[wordnum][charcount - 1] = '\x00';
- bookmark = position + 1;
- }
-
- return wordcount;
-}
-
-inline int char_array::arraysize() {
- if (stringsize != 0) {
- return stringsize;
- } else {
- printf("Array size is set at 0\n");
- return 0;
- }
-}
-
-inline void char_array::printinput() {
- printf("%s", p_inputstring);
-}
-
-inline void char_array::changedefaultsize() {
- printf("Input new default input string size: ");
- scanf("%i", charinput);
-}
diff --git a/include/Telegram.h b/include/Telegram.h
deleted file mode 100644
index 62700cfe..00000000
--- a/include/Telegram.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#pragma once
-#include "Consts.h"
-#ifdef EnableTelegram
-#include "Global.h"
-
-extern void sendTelegramMsg();
-extern void telegramInit();
-extern void handleTelegram();
-extern bool isEnableTelegramd();
-extern bool isTelegramInputOn();
-extern void telegramMsgParse(String msg);
-extern String returnListOfParams();
-#endif
\ No newline at end of file
diff --git a/include/Tests.h b/include/Tests.h
deleted file mode 100644
index 94006e7f..00000000
--- a/include/Tests.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-
-extern void testsPerform();
-extern void testLoop();
\ No newline at end of file
diff --git a/include/Upgrade.h b/include/Upgrade.h
deleted file mode 100644
index b02adb12..00000000
--- a/include/Upgrade.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#pragma once
-
-#include
-
-extern void upgradeInit();
-extern void getLastVersion();
-extern void upgrade_firmware(int type);
-extern bool upgradeFS();
-extern bool upgradeBuild();
-extern void restartEsp();
\ No newline at end of file
diff --git a/include/Utils/FileHelper.h b/include/Utils/FileHelper.h
deleted file mode 100644
index b5ba764c..00000000
--- a/include/Utils/FileHelper.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#pragma once
-#include
-
-#include "FileSystem.h"
-
-class FileHelper {
- public:
- FileHelper(const String filename);
- /*
- * Проверить существование
- */
- void exists();
- /*
- * Удалить файл
- */
- void remove();
- /*
- * Открыть файл установить позицию @position
- */
- File seek(size_t position = 0);
-
- /*
- * Чтение строки с содержащей @substr
- */
- String readFileString(const String substr);
-
- /*
- * Добовление строки @str в файл
- */
- String appendStr(const String str);
-
- /*
- * Запись строки
- */
- String writeStr(const String);
-
- /*
- * Чтение в строку
- */
- String readStr(size_t);
-
- /*
- * Размер в байтах
- */
- size_t getSize();
-};
\ No newline at end of file
diff --git a/include/Utils/FileUtils.h b/include/Utils/FileUtils.h
deleted file mode 100644
index 1a45bb73..00000000
--- a/include/Utils/FileUtils.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#pragma once
-#include
-
-#include "Consts.h"
-#include "FileSystem.h"
-
-/*
- * Инициализация ФС
- */
-bool fileSystemInit();
-
-/*
- * Удалить файл
- */
-void removeFile(const String& filename);
-
-/*
- * Открыть файл на позиции
- */
-File seekFile(const String& filename, size_t position = 0);
-
-/*
- * Чтение строки из файла
- * возвращает стоку из файла в которой есть искомое слово found
- */
-const String readFileString(const String& filename, const String& to_find);
-
-/*
- * Добовление строки в файл
- */
-const String addFileLn(const String& filename, const String& str);
-
-/*
- * Добовление строки в файл
- */
-const String addFile(const String& filename, const String& str);
-
-/*
- * Запись строки в файл
- */
-const String writeFile(const String& filename, const String& str);
-
-/*
- * Чтение файла в строку
- */
-const String readFile(const String& filename, size_t max_size);
-
-/*
- * Посчитать
- */
-size_t countLines(const String filename);
-
-/*
- * Размер файла
- */
-size_t getFileSize(const String filename);
-
-bool copyFile(const String& src, const String& dst, bool overwrite = true);
-
-const String getFSSizeInfo();
-
-const String getConfigFile(uint8_t preset, ConfigType_t type);
-
-bool cutFile(const String& src, const String& dst);
diff --git a/include/Utils/JsonUtils.h b/include/Utils/JsonUtils.h
deleted file mode 100644
index cbcf38d1..00000000
--- a/include/Utils/JsonUtils.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once
-
-#include
-
-String jsonReadStr(String& json, String name);
-int jsonReadInt(String& json, String name);
-boolean jsonReadBool(String& json, String name);
-
-String jsonWriteStr(String& json, String name, String value);
-String jsonWriteInt(String& json, String name, int value);
-String jsonWriteFloat(String& json, String name, float value);
-String jsonWriteBool(String& json, String name, boolean value);
-
-bool jsonRead(String& json, String key, String& value);
-bool jsonRead(String& json, String key, bool& value);
-bool jsonRead(String& json, String key, int& value);
-
-bool jsonWriteStr_(String& json, String name, String value);
-bool jsonWriteBool_(String& json, String name, bool value);
-bool jsonWriteInt_(String& json, String name, int value);
-bool jsonWriteFloat_(String& json, String name, float value);
-
-void saveConfig();
-void saveStore();
\ No newline at end of file
diff --git a/include/Utils/SerialPrint.h b/include/Utils/SerialPrint.h
deleted file mode 100644
index f0d2d79c..00000000
--- a/include/Utils/SerialPrint.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-#include
-void SerialPrint(String errorLevel, String module, String msg);
\ No newline at end of file
diff --git a/include/Utils/StringUtils.h b/include/Utils/StringUtils.h
deleted file mode 100644
index 618fbac9..00000000
--- a/include/Utils/StringUtils.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-
-#include
-
-uint8_t hexStringToUint8(String hex);
-
-uint16_t hexStringToUint16(String hex);
-
-String selectToMarkerLast(String str, String found);
-
-String selectToMarker(String str, String found);
-
-String extractInner(String str);
-
-String deleteAfterDelimiter(String str, String found);
-
-String deleteBeforeDelimiter(String str, String found);
-
-String deleteBeforeDelimiterTo(String str, String found);
-
-String deleteToMarkerLast(String str, String found);
-
-String selectFromMarkerToMarker(String str, String found, int number);
-
-size_t itemsCount2(String str, const String& separator);
-
-char* stringToChar(String& str);
-
-size_t itemsCount(String& str, const char* delim);
-
-boolean isDigitStr(const String& str);
-
-boolean isDigitDotCommaStr(const String& str);
-
-String prettyBytes(size_t size);
-
diff --git a/include/Utils/SysUtils.h b/include/Utils/SysUtils.h
deleted file mode 100644
index de03e287..00000000
--- a/include/Utils/SysUtils.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-#include
-#include "Global.h"
-
-uint32_t ESP_getChipId();
-
-const String getChipId();
-
-void setLedStatus(LedStatus_t status);
-
-const String getUniqueId(const String& name);
-
-const String printMemoryStatus();
-
-const String getHeapStats();
-
-const String getMacAddress();
-
-void setChipId();
diff --git a/include/Utils/TimeUtils.h b/include/Utils/TimeUtils.h
deleted file mode 100644
index 8b4c0739..00000000
--- a/include/Utils/TimeUtils.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#pragma once
-
-#include
-
-#include "Consts.h"
-
-#define ONE_MINUTE_s 60
-#define ONE_HOUR_m 60
-#define ONE_HOUR_s 60 * ONE_MINUTE_s
-#define LEAP_YEAR(Y) (((1970 + Y) > 0) && !((1970 + Y) % 4) && (((1970 + Y) % 100) || !((1970 + Y) % 400)))
-#define MIN_DATETIME 1575158400
-#define ONE_SECOND_ms 1000
-
-/*
-* Время (мс) прошедщее с @since
-*/
-unsigned long millis_since(unsigned long sinse);
-
-/*
-* Интерввал времени (мс) между @start и @finish
-*/
-unsigned long millis_passed(unsigned long start, unsigned long finish);
-
-/*
-* Форматиронное время интервала (мс)
-* "чч:мм:cc",
-* "дд чч:мм", если > 24 часов
-*/
-const String prettyMillis(unsigned long time_ms = millis());
-
-/*
-* Форматиронное время интервала (c)
-* "чч:мм:cc",
-* "дд чч:мм", если > 24 часов
-*/
-const String prettySeconds(unsigned long time_s);
-
-/*
-* Тайм зона в секундах
-*/
-int getOffsetInSeconds(int timezone);
-
-/*
-* Тайм зона в минутах
-*/
-int getOffsetInMinutes(int timezone);
-
-/*
-* Разбивает время на составляющие
-*/
-
-struct Time_t {
- uint8_t second;
- uint8_t minute;
- uint8_t hour;
- uint8_t day_of_week;
- uint8_t day_of_month;
- uint8_t month;
- uint16_t day_of_year;
- uint16_t year;
- unsigned long days;
- unsigned long valid;
-};
-
-void breakEpochToTime(unsigned long epoch, Time_t& tm);
-
-
-
-void timeInit();
\ No newline at end of file
diff --git a/include/Utils/Timings.h b/include/Utils/Timings.h
deleted file mode 100644
index c992eeee..00000000
--- a/include/Utils/Timings.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#include
-
-enum Timings_t { MT_ONE,
- MT_TWO,
- NUM_TIMINGS };
-
-struct Timing {
- unsigned long _total_mu;
- unsigned long _min_mu;
- unsigned long _max_mu;
-
- Timing() : _total_mu{0}, _min_mu{999999}, _max_mu{0} {};
-
- void reset() {
- _total_mu = 0;
- _min_mu = 999999;
- _max_mu = 0;
- }
-
- void add(unsigned long time_mu) {
- if (time_mu == 0) return;
-
- _total_mu += time_mu;
-
- if (_min_mu > time_mu) {
- _min_mu = time_mu;
- }
-
- if (_max_mu < time_mu) {
- _max_mu = time_mu;
- }
- }
-};
-
-static const char* module_name[NUM_TIMINGS] = {"strings", "boolean"};
-
-struct Timings {
- Timing mu[NUM_TIMINGS];
-
- unsigned long _counter;
- unsigned long _start;
- unsigned long long _total;
-
- Timings() : _counter{0}, _start{0} {};
-
- void add(size_t module, unsigned long now = micros()) {
- unsigned long time = now - _start;
- _total += time;
- mu[module].add(time);
- _start = now;
- }
-
- void count() {
- _counter++;
- _start = micros();
- }
-
- void print() {
- if (!_counter) {
- return;
- };
- Serial.printf("lp/ms: %llu ", _counter / _total);
- for (size_t i = 0; i < NUM_TIMINGS; i++) {
- Serial.printf("%s: %.2f%% ", module_name[i], ((float)mu[i]._total_mu / _total) * 100);
- mu[i].reset();
- }
- Serial.println();
- _counter = 0;
- _total = 0;
- };
-};
\ No newline at end of file
diff --git a/include/Utils/WebUtils.h b/include/Utils/WebUtils.h
deleted file mode 100644
index 2d88ed83..00000000
--- a/include/Utils/WebUtils.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#pragma once
-#include
-
-#include "WebServer.h"
-
-extern String getURL(const String& urls);
-extern const String getMethodName(AsyncWebServerRequest* request);
-extern const String getRequestInfo(AsyncWebServerRequest* request);
diff --git a/include/Utils/WiFiUtils.h b/include/Utils/WiFiUtils.h
deleted file mode 100644
index 7a634009..00000000
--- a/include/Utils/WiFiUtils.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#pragma once
-
-#include "Global.h"
-
-boolean isNetworkActive();
-
-void routerConnect();
-
-bool startAPMode();
-
-boolean RouterFind(String ssid);
-
-uint8_t RSSIquality();
-
-extern void wifiSignalInit();
-
diff --git a/include/Utils/statUtils.h b/include/Utils/statUtils.h
deleted file mode 100644
index c01e0bb8..00000000
--- a/include/Utils/statUtils.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#pragma once
-#include
-#include "Global.h"
-
-extern void initSt();
-extern String updateDevicePsn(String lat, String lon, String accur, String geo);
-extern String updateDeviceStatus();
-extern String addNewDevice();
-
-extern void decide();
-extern void getPsn();
-
-extern String getUptimeTotal();
-extern uint8_t getNextNumber(String file);
-extern uint8_t getCurrentNumber(String file);
-
-//extern int plusOneHour();
-//extern void eeWriteInt(int pos, int val);
-//extern int eeGetInt(int pos);
-//extern void updateDeviceList();
-//extern void saveId(String file, int id);
-//extern int getId(String file);
\ No newline at end of file
diff --git a/include/Web.h b/include/Web.h
deleted file mode 100644
index a80a08d2..00000000
--- a/include/Web.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#pragma once
-#include "Arduino.h"
-
-
-void web_init();
-void setConfigParam(const char* param, const String& value);
diff --git a/include/WebServer.h b/include/WebServer.h
deleted file mode 100644
index 64c0bcef..00000000
--- a/include/WebServer.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#pragma once
-
-#include "Global.h"
-
-extern void initOta();
-extern void initMDNS();
-
-extern void HttpServerinitWS();
-extern void HttpServerinit();
-
-//===========web sockets==============================
-extern void sendEspSetupToWS();
\ No newline at end of file
diff --git a/include/WebSocket.h b/include/WebSocket.h
deleted file mode 100644
index 2016caaf..00000000
--- a/include/WebSocket.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#pragma once
-#include "Class/TCircularBuffer.h"
-#include "Global.h"
-void wsInit();
-void wsPublishData(String topic, String data);
-
-// void wsSendSetup();
-// void wsSendSetupBuffer();
-//
-// void sendDataWs();
-// void loopWsExecute();
diff --git a/include/items/ButtonInClass.h b/include/items/ButtonInClass.h
deleted file mode 100644
index 8adab9cc..00000000
--- a/include/items/ButtonInClass.h
+++ /dev/null
@@ -1,65 +0,0 @@
-
-#ifdef EnableButtonIn
-#pragma once
-#include
-#include
-#include "Class/LineParsing.h"
-#include "Global.h"
-
-extern boolean but[NUM_BUTTONS];
-extern Bounce* buttons;
-
-class ButtonInClass : public LineParsing {
- protected:
- int numberEntering = 0;
- int state = _state.toInt();
-
- public:
- ButtonInClass() : LineParsing(){};
-
- void init() {
- if (_pin != "") {
- int number = numberEntering++;
- buttons[number].attach(_pin.toInt());
- buttons[number].interval(_db.toInt());
- but[number] = true;
- jsonWriteStr(configOptionJson, "switch_num_" + String(number), _key);
- }
- }
-
- void loop() {
- static uint8_t switch_number = 1;
- if (but[switch_number]) {
- buttons[switch_number].update();
- if (buttons[switch_number].fell()) {
- String key = jsonReadStr(configOptionJson, "switch_num_" + String(switch_number));
- state = 1;
- switchChangeVirtual(key, String(state));
- }
- if (buttons[switch_number].rose()) {
- String key = jsonReadStr(configOptionJson, "switch_num_" + String(switch_number));
- state = 0;
- switchChangeVirtual(key, String(state));
- }
- }
- switch_number++;
- if (switch_number == NUM_BUTTONS) {
- switch_number = 0;
- }
- }
-
- void switchStateSetDefault() {
- if (_state != "") {
- switchChangeVirtual(_key, _state);
- }
- }
-
- void switchChangeVirtual(String key, String state) {
- eventGen2(key, state);
- jsonWriteInt(configLiveJson, key, state.toInt());
- publishStatus(key, state);
- }
-};
-
-extern ButtonInClass myButtonIn;
-#endif
\ No newline at end of file
diff --git a/include/items/test.h b/include/items/test.h
deleted file mode 100644
index 7ede8430..00000000
--- a/include/items/test.h
+++ /dev/null
@@ -1,34 +0,0 @@
-//#include "Arduino.h"
-//#include "Global.h"
-//
-//class SensorImpulsIn;
-//
-//typedef std::vector MySensorImpulsInVector;
-//
-//struct paramsImpulsIn {
-// String key;
-// unsigned int pin;
-// float c;
-// float k;
-//};
-//
-//class SensorImpulsIn {
-// public:
-// SensorImpulsIn(const paramsImpulsIn& paramsImpuls);
-// //~SensorImpulsIn();
-//
-// //void begin(int interruptPin);
-// void classInterruptHandler(void);
-//
-// void setCallback(void (*userDefinedCallback)(const int)) {
-// localPointerToCallback = userDefinedCallback;
-// }
-//
-// private:
-// void (*localPointerToCallback)(const int);
-// paramsImpulsIn _paramsImpuls;
-//};
-//
-//extern MySensorImpulsInVector* mySensorImpulsIn;
-//
-//extern void impulsInSensor();
\ No newline at end of file
diff --git a/include/items/vButtonOut.h b/include/items/vButtonOut.h
deleted file mode 100644
index ecfacfcc..00000000
--- a/include/items/vButtonOut.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifdef EnableButtonOut
-#pragma once
-#include
-
-#include "Global.h"
-
-class ButtonOut;
-
-typedef std::vector MyButtonOutVector;
-
-class ButtonOut {
- public:
- ButtonOut(String pin, boolean inv, String key, String type);
-
- ~ButtonOut();
-
- void execute(String state);
-
- private:
- String _pin;
- boolean _inv;
- String _key;
- String _type;
-};
-
-extern MyButtonOutVector* myButtonOut;
-
-extern void buttonOut();
-extern void buttonOutExecute();
-#endif
\ No newline at end of file
diff --git a/include/items/vCountDown.h b/include/items/vCountDown.h
deleted file mode 100644
index 35fd6c8a..00000000
--- a/include/items/vCountDown.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifdef EnableCountDown
-#pragma once
-
-#include
-
-#include "Global.h"
-
-class CountDownClass;
-
-typedef std::vector MyCountDownVector;
-
-class CountDownClass {
- public:
- CountDownClass(String key);
- ~CountDownClass();
-
- void loop();
- void execute(unsigned int countDownPeriod);
-
- private:
- unsigned long _countDownPeriod = 0;
- bool _start = false;
- String _key;
-
- unsigned long prevMillis;
- unsigned long difference;
- int sec;
-};
-
-extern MyCountDownVector* myCountDown;
-
-extern void countDown();
-extern void countDownExecute();
-#endif
\ No newline at end of file
diff --git a/include/items/vImpulsOut.h b/include/items/vImpulsOut.h
deleted file mode 100644
index 885371ce..00000000
--- a/include/items/vImpulsOut.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifdef EnableImpulsOut
-#pragma once
-#include
-#include "Global.h"
-
-class ImpulsOutClass;
-
-typedef std::vector MyImpulsOutVector;
-
-class ImpulsOutClass {
- public:
- ImpulsOutClass(unsigned int impulsPin);
- ~ImpulsOutClass();
-
- void loop();
- void execute(unsigned long impulsPeriod, unsigned int impulsCount);
-
- private:
- unsigned long currentMillis;
- unsigned long prevMillis;
- unsigned long difference;
- unsigned long _impulsPeriod = 0;
- unsigned int _impulsCount = 0;
- unsigned int _impulsCountBuf = 0;
- unsigned int _impulsPin = 0;
-
-};
-
-extern MyImpulsOutVector* myImpulsOut;
-
-extern void impuls();
-extern void impulsExecute();
-#endif
diff --git a/include/items/vInput.h b/include/items/vInput.h
deleted file mode 100644
index 69e0bbe1..00000000
--- a/include/items/vInput.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifdef EnableInput
-#pragma once
-#include
-
-#include "Consts.h"
-#include "Global.h"
-
-class Input;
-
-typedef std::vector MyInputVector;
-
-class Input {
- public:
- Input(String key, String widget);
- ~Input();
-
- void execute(String value);
-
- private:
- String _key;
-};
-
-extern MyInputVector* myInput;
-
-extern void inputValue();
-extern void inputExecute();
-#endif
diff --git a/include/items/vLogging.h b/include/items/vLogging.h
deleted file mode 100644
index c1e5ad26..00000000
--- a/include/items/vLogging.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifdef EnableLogging
-#pragma once
-#include "Consts.h"
-#include
-
-#include "Global.h"
-
-class LoggingClass;
-
-typedef std::vector MyLoggingVector;
-
-class LoggingClass {
- public:
-
- LoggingClass(String interval, unsigned int maxPoints, String loggingValueKey, String key, String startState, bool savedFromWeb);
- ~LoggingClass();
-
- void loop();
- void execute(String keyOrValue);
-
- private:
-
- unsigned long currentMillis;
- unsigned long prevMillis;
- unsigned long difference;
- String _interval;
- unsigned int _intervalSec;
- unsigned int _type = 0;
- unsigned int _maxPoints;
- String _loggingValueKey;
- String _key;
-
-
-};
-
-extern MyLoggingVector* myLogging;
-
-extern void logging();
-extern void loggingExecute();
-extern void choose_log_date_and_send();
-extern void sendLogData(String file, String topic);
-extern void sendLogData2(String file, String topic);
-extern void cleanLogAndData();
-#endif
diff --git a/include/items/vOutput.h b/include/items/vOutput.h
deleted file mode 100644
index 76ae2d62..00000000
--- a/include/items/vOutput.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifdef EnableOutput
-#pragma once
-#include
-
-#include "Global.h"
-
-class Output;
-
-typedef std::vector