114 Commits
275 ... ver3

Author SHA1 Message Date
Dmitry Borisenko
069ba9ae9f версия 306 добавлено блокирование многократного повторения события в сценарии - * 2022-02-03 23:33:39 +01:00
IoT Manager
810f3ca061 Merge pull request #123 from biveraxe/ver3
Исправление опечатки и новая функция в песочнице
2022-02-01 12:10:14 +01:00
dd8d173a94 Merge branch 'IoTManagerProject:ver3' into ver3 2022-02-01 09:03:00 +03:00
43a8614d8c Поправляем опечатку в items.txt для MS: input -> input-value 2022-02-01 09:02:24 +03:00
bfabd3965f Добавление в песочницу возможность атлавливать команды из сценариев 2022-02-01 09:01:07 +03:00
Dmitry Borisenko
adbe794edd добавил возможность работы многофакторных условий меж esp 2022-01-25 17:18:51 +01:00
Dmitry Borisenko
c7b649db07 Merge pull request #116 from biveraxe/ver3
Добавление LCD2004 в MySensors
2022-01-14 19:14:09 +01:00
51b137b3cc Merge branch 'IoTManagerProject:ver3' into ver3 2022-01-14 21:59:06 +05:00
8f33afec8c Наводим порядок с библиотеками для LCD2004 для MySensors 2022-01-14 21:15:26 +05:00
cc115c701b Добавляем поддержку LCD2004 в MySensors 2022-01-14 20:54:13 +05:00
Dmitry Borisenko
bc765cf3a6 version 305 2022-01-14 15:31:55 +01:00
IoT Manager
4f36adb407 Merge pull request #115 from biveraxe/ver3
Добавление TM1637
2022-01-14 15:27:55 +01:00
f135840ec4 Добавляем весь основной функционал для TM1637 2022-01-13 21:32:29 +03:00
f928766de5 Убераем лишний параметр index из интерфейса для TM1637 2022-01-13 21:05:06 +03:00
c87854b2ce Интегрируем дисплэй TM1637 в ядро 2022-01-12 19:01:15 +03:00
0a2c86ccbf Обновляем FS для новых пунктов меню для TM1637 2022-01-12 18:58:41 +03:00
2d8de37ee7 Обновляем FS для новых пунктов меню для TM1637 2022-01-12 18:24:46 +03:00
2b1cac904b Добавляем файлы модуля Display TM1637 в систему на базе уже существующего LCD 2022-01-12 18:02:43 +03:00
Dmitry Borisenko
e2b0f0e71e Merge pull request #114 from biveraxe/ver3
Поддержка LCD 2004 и 1602
2022-01-12 13:11:06 +01:00
56c0ec14fa Merge branch 'ver3' of https://github.com/biveraxe/IoTManager into ver3 2022-01-12 11:06:40 +03:00
a4e3b9d868 Merge branch 'IoTManagerProject:ver3' into ver3 2022-01-12 11:06:28 +03:00
5a029fb159 Добавляем возмодность изменить заголовок и содержимое выводимой информации 2022-01-12 11:05:56 +03:00
e979711372 Добавляем поддержку управления lCD2004 из сценария 2022-01-12 10:51:28 +03:00
46a87ebe26 Исключаем поддержку параллельного подключения LCD2004 и наводим порядок с библиотеками. 2022-01-12 10:00:19 +03:00
Dmitry Borisenko
68c9741226 добавил таймер 2022-01-12 00:26:33 +01:00
3787959f52 Merge branch 'ver3' of https://github.com/biveraxe/IoTManager into ver3 2022-01-11 15:33:36 +03:00
bcd6f06e5e Merge branch 'IoTManagerProject:ver3' into ver3 2022-01-11 15:33:15 +03:00
Dmitry Borisenko
bf9acf4c63 добавили возможность вывода любой величины в телеграм 2022-01-11 12:30:13 +01:00
Dmitry Borisenko
3fab2241aa исправил баг с шаговыми двигателями 2022-01-11 11:27:24 +01:00
3f1fbf647a Увеличиваем время между попытками установить соединение до брокера. На esp32 время ожидания доходило до 20 сек при таком же интервале переподключения. 2022-01-08 08:32:23 +03:00
ea53d5ccf1 Merge branch 'IoTManagerProject:ver3' into ver3 2022-01-05 23:41:51 +03:00
1abe6b20bc Отключаем версию LCD из песочницы 2022-01-05 23:40:17 +03:00
c2010c4979 Добавляем в параметр ip[] до 15 пинов 2022-01-05 23:39:04 +03:00
044867ca00 Дописываем интеграцию LCD 2022-01-05 23:38:32 +03:00
9f733a1535 Интегрируем LCD2004 в ядро 2022-01-05 18:01:20 +03:00
d78907d854 Добавляем необходимые файлы и первые записи в интервейс для экрана LCD2004 2022-01-05 17:49:33 +03:00
Dmitry Borisenko
b2b70a0d9d Merge pull request #113 from biveraxe/ver3
Дорабатываем механизм работы со временем в сценариях
2022-01-05 14:44:33 +01:00
3dcbd3dafb Добавляем возможность сравнения не только с константами, но и со значениями из переменных в рамках сценария 2022-01-05 16:26:53 +03:00
Dmitry Borisenko
c6d45f5d9a .. 2021-12-26 19:08:06 +01:00
Dmitry Borisenko
f477d5838b добавил датчик co2 2021-12-26 19:07:01 +01:00
Dmitry Borisenko
9b535f04aa исправил баг с датчиками 2021-12-26 18:52:48 +01:00
IoT Manager
eb22c713c0 Merge pull request #110 from biveraxe/ver3
Работаем со временем в сценариях и температурой сразу на нескольких линиях
2021-12-26 18:39:34 +01:00
4d36db0755 Merge branch 'ver3' of https://github.com/biveraxe/IoTManager into ver3 2021-12-21 15:40:48 +03:00
7e92d57d4d Исправляем ошибки в логике работы сценария связанной с проверкой времени 2021-12-21 15:40:23 +03:00
203ceafb19 Исправляем ошибку в модуле далласа, возникающую при использовании нескольких шин для разных датчиков. 2021-12-20 09:42:07 +03:00
8509de3efa Merge branch 'IoTManagerProject:ver3' into ver3 2021-12-20 01:51:19 +03:00
Dmitry Borisenko
66f21a5001 Merge pull request #106 from DmitryBorisenko33/ver3
добавил BH1750
2021-12-19 22:56:01 +01:00
Dmitry Borisenko
e9032365b4 добавил BH1750 2021-12-19 22:52:26 +01:00
Dmitry Borisenko
f39b16f787 Merge pull request #105 from DmitryBorisenko33/ver3
добавил название параметра
2021-12-19 22:37:45 +01:00
Dmitry Borisenko
fd09ec9d6b добавил название параметра 2021-12-19 22:36:52 +01:00
cfa8fc4212 Merge branch 'IoTManagerProject:ver3' into ver3 2021-12-20 00:36:33 +03:00
Dmitry Borisenko
9ce2cea94a Merge pull request #104 from DmitryBorisenko33/ver3
добавил LCD
2021-12-19 22:21:05 +01:00
Dmitry Borisenko
b0e06707bd добавил LCD 2021-12-19 22:19:35 +01:00
Dmitry Borisenko
cf7599e367 Merge pull request #103 from DmitryBorisenko33/ver3
Merge pull request #1 from IoTManagerProject/ver3
2021-12-19 21:26:50 +01:00
da7393e32a Merge branch 'ver3' of https://github.com/biveraxe/IoTManager into ver3 2021-12-19 23:09:20 +03:00
87191fa81b Дописываем логику работы с переменной timenow в сценариях. Теперь доступны выражения вида "timenow > 22:48 && timenow < 23:55 && btn = 1" 2021-12-19 23:08:14 +03:00
Dmitry Borisenko
5b87cedd78 Merge pull request #1 from IoTManagerProject/ver3
fix
2021-12-15 21:09:54 +01:00
Dmitry Borisenko
5e24d7aec0 Merge pull request #99 from DmitryBorisenko33/ver3
добавил AHTX0 HDC1080
2021-12-15 21:08:34 +01:00
Dmitry Borisenko
a4fe4f6c1a добавил AHTX0 HDC1080 2021-12-15 21:06:53 +01:00
Dmitry Borisenko
3d93141e2c Merge pull request #98 from avaksru/ver3
lunix fix
2021-12-15 21:04:21 +01:00
avaksru
e9d3750e1b linux fix 2 2021-12-15 18:40:32 +03:00
avaksru
03b347b630 lunix fix 2021-12-15 17:20:44 +03:00
Dmitry Borisenko
3fc86fb173 Merge pull request #97 from DmitryBorisenko33/ver3
Возможность добавлять любой сенсор
2021-12-15 00:24:59 +01:00
Dmitry Borisenko
9dde5942f0 test 2021-12-15 00:23:01 +01:00
Dmitry Borisenko
3bb13de0a9 Merge branch 'IoTManagerProject:ver3' into ver3 2021-12-15 00:20:04 +01:00
Dmitry Borisenko
f5b5bd78ec 304 2021-12-14 23:56:30 +01:00
Dmitry Borisenko
b68fa1b0f6 финальная версия с сенсором 2021-12-14 23:55:17 +01:00
Dmitry Borisenko
1529da443b wifi 2021-12-14 23:22:30 +01:00
Dmitry Borisenko
8984a8d143 кастомный сенсор 2021-12-14 23:20:14 +01:00
Dmitry Borisenko
93a6a24254 новый сенсор 2021-12-14 23:08:35 +01:00
Dmitry Borisenko
d2a375dc9e добавил шаблон любого сенсора 2021-12-14 23:05:42 +01:00
IoT Manager
acf9e2bd5d Merge pull request #96 from biveraxe/ver3
Исправляем ошибку чтения температуры для Dallas на ESP32 и добавляем адресацию
2021-12-14 17:55:52 +01:00
4a946ff3eb Исправляем ошибку чтения температуры для Dallas на ESP32 и добавляем возможность указать для каждого датчика Dallas Ds18b20 свой адрес на шине. 2021-12-14 17:02:42 +03:00
Dmitry Borisenko
9c1604e9cc Merge pull request #95 from DmitryBorisenko33/ver3
fixed preset
2021-12-14 13:55:33 +01:00
Dmitry Borisenko
bc8f683c79 fixed preset 2021-12-14 13:53:11 +01:00
Dmitry Borisenko
65c1449cde 304 2021-12-13 23:51:04 +01:00
Dmitry Borisenko
1a88298fd4 esp32 compiling version 2021-12-13 23:35:29 +01:00
Dmitry Borisenko
fbb5ba7e64 partitions 2021-12-13 23:23:12 +01:00
Dmitry Borisenko
ca9444bbd9 add castom partition for esp32 2021-12-13 22:43:53 +01:00
IoT Manager
e9f36e7d20 Merge pull request #94 from avaksru/ver3
add weekday, IP, ESP_NAME
2021-12-13 21:03:57 +01:00
avaksru
32350ddaf1 webUI 2021-12-13 16:40:44 +03:00
avaksru
d083fbf9cf websocket & function 2021-12-13 16:26:43 +03:00
avaksru
e46a6247f9 del 2021-12-13 10:03:27 +03:00
avaksru
b125986fb3 telegram add weekday, IP, ESP_NAME, date 2021-12-13 09:59:43 +03:00
avaksru
a020c09928 add weekday, IP, ESP_NAME 2021-12-13 09:43:10 +03:00
Dmitry Borisenko
7c423ddea6 test 2021-12-07 19:51:46 +01:00
Dmitry Borisenko
f28bafa277 Исправил косяк со слетающим config json 2021-12-07 05:58:06 +01:00
Dmitry Borisenko
35923eca7d merge pr 2021-12-07 05:16:19 +01:00
Dmitry Borisenko
495488a52f Merge pull request #93 from biveraxe/biveraddons
Увеличиваем макимальное количество возможных кнопок до 8 для ESP32
2021-12-07 05:06:31 +01:00
96b80dfd28 Увеличиваем макимальное количество возможных кнопок до 8 для ESP32 2021-12-04 23:50:49 +03:00
Dmitry Borisenko
b8f2cb2716 версия 303 2021-12-03 21:41:17 +01:00
Dmitry Borisenko
bb5eed987e Merge pull request #92 from biveraxe/biveraddons
Добавки от Biver
2021-12-03 21:33:16 +01:00
2b1ab1df50 Исправляем ошибку в алгоритме чтения директории. openNextFile() возвращает файл. 2021-12-03 11:18:48 +03:00
f668b5783e Удаляем мусор от касперского 7 строка и добавляем возможность редактировать CSV в веб-редакторе в файле edit.htm 2021-12-03 11:04:55 +03:00
70d2926f55 Добавляем пункт 25.Датчик температуры, влажности SHT2x, HTU2x and Si70xx 2021-12-03 10:51:10 +03:00
f1c573b882 Добавляем пункт 25.Датчик температуры, влажности SHT2x, HTU2x and Si70xx 2021-12-03 10:34:25 +03:00
de2075664b Интегрируем датчик SHT20 в основные фалы проекта кроме set.device.json 2021-12-03 10:30:56 +03:00
55ee70849f Добавляем библиотеку SHT2x к проекту 2021-12-03 10:05:44 +03:00
725cf26d41 Добавляем файлы для нового сенсора SHT20 2021-12-03 10:03:20 +03:00
7e5b611c23 Добавляем использование всех пинов на ESP32 в качестве кнопки путем явного указания режима порта. 2021-12-03 09:52:45 +03:00
Dmitry Borisenko
b6c5f50123 302 2021-10-06 05:56:01 +08:00
Dmitry Borisenko
b077d31e83 test 2021-10-05 20:52:13 +00:00
Dmitry Borisenko
5ff0e8a5c1 302 2021-10-05 19:42:17 +08:00
Dmitry Borisenko
3f5d7e8b6e fixed versions 2021-10-05 19:26:09 +08:00
Dmitry Borisenko
421f3fcb9a recovery 2021-10-05 19:21:52 +08:00
Dmitry Borisenko
74c31e30ea delete 2021-10-05 19:19:14 +08:00
IoTManagerProject
60a292a2f5 Merge pull request #78 from IoTManagerProject/beta
Beta
2021-01-07 01:21:39 +01:00
Dmitry Borisenko
cbf0d372c9 278 Исправлена ошибка логгирования на esp01 и esp32 2021-01-06 04:42:23 +01:00
Dmitry Borisenko
e1b96cd287 277 исправил баг с уз дальномером 2021-01-06 03:26:55 +01:00
IoTManagerProject
0b5d7236aa Merge pull request #77 from IoTManagerProject/beta
Исправил баг с обновлением по воздуху
2021-01-05 17:07:21 +01:00
Dmitry Borisenko
bce8723ecf Исправил баг с обновлением по воздуху 2021-01-05 16:53:22 +01:00
Dmitry Borisenko
b7fcedb6c3 Merge pull request #76 from IoTManagerProject/beta
Beta
2021-01-05 15:11:51 +01:00
Dmitry Borisenko
54cb92d2bb esp32 adc bug 2021-01-05 14:57:01 +01:00
Dmitry Borisenko
6902d57be2 Исправил Uptime и ccs811 2021-01-05 12:17:48 +01:00
262 changed files with 5518 additions and 2135 deletions

5
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,5 @@
{
"files.associations": {
"array": "cpp"
}
}

21
LICENSE Normal file
View File

@@ -0,0 +1,21 @@
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.

Binary file not shown.

BIN
bin/esp8266_1mb/spiffs.bin Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,27 +0,0 @@
0;button-out;btnid;toggle;Кнопки;Освещение;order;gpio*
0;button-out;btnid;toggle;Кнопки;Освещение;order;gpio;inv[1]*
0;button-out;btnid;toggle;Кнопки;Освещение;order*
0;button-in;btnid;toggle;Кнопки;Освещение;order;gpio;db[20]*
0;pwm-out;pwmid;range;Ползунки;Яркость;order;gpio*
0;inoutput;dgtid;inputDigit;Ввод;Введите#цифру;order*
0;inoutput;tmid;inputTime;Ввод;Введите#время;order*
0;inoutput;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;ccs811;ppmid;anydataPpm;Сенсоры;Содержание#CO2;1;c[1]
0;ccs811;ppbid;anydataPpb;Сенсоры;Содержание#орг#соед;2;c[1];int[10]*
0;impuls-out;impid;na;na;na;order;gpio*
0;count-down;cntid;anydata;Таймер;Обратный#отчет;order*
0;inoutput;txtid;anydata;Вывод;Вывод#uart;order*
0;logging;crtid;chart;Графики;История;order;val[any];int[60];cnt[100]*
0;uptime;uptid;anydataTime;Системные;%name%#uptime;order;int[60]*

Binary file not shown.

View File

@@ -1,47 +0,0 @@
0;dallas-temp;t1;anydataTemp;Термостат1;Температура;1;pin[2];index[0];int[10]
0;logging;log1;chart;Термостат1;История;2;val[t1];int[60];cnt[100]
0;inoutput;tUp1;inputDigit;Термостат1;Верхний#порог;3
0;inoutput;tLow1;inputDigit;Термостат1;Нижний#порог;4
0;button-out;btn1;toggle;Термостат1;Нагрев;5;pin[12]*
0;dallas-temp;t2;anydataTemp;Термостат2;Температура;1;pin[2];index[0];int[10]
0;logging;log2;chart;Термостат2;История;2;val[t2];int[10];cnt[100]
0;inoutput;threshold;inputDigitTemp;Термостат2;Заданная#температура;3
0;button-out;heater2;toggle;Термостат2;Нагреватель;7;pin[5]
0;inoutput;time21;inputTimeClock;Расписание2;Утренний#период;8
0;inoutput;threshold1;inputDigitTemp;Расписание2;Температура;9
0;inoutput;time22;inputTimeClock;Расписание2;Дневной#период;10
0;inoutput;threshold2;inputDigitTemp;Расписание2;Температура;11
0;inoutput;time23;inputTimeClock;Расписание2;Вечерний#период;12
0;inoutput;threshold3;inputDigitTemp;Расписание2;Температура;13
0;inoutput;time24;inputTimeClock;Расписание2;Ночной#период;14
0;inoutput;threshold4;inputDigitTemp;Расписание2;Температура;15*
0;dht;t3;anydataTemp;Теплица3;Температура;1;c[1]
0;dht;h3;anydataHum;Теплица3;Влажность;2;c[1];pin[2];type[dht11];int[10]
0;logging;log3;chart;Теплица3;История;3;val[h3];int[60];cnt[100]
0;inoutput;hUp3;inputDigit;Теплица3;Верхний#порог;4
0;inoutput;hLow3;inputDigit;Теплица3;Нижний#порог;5
0;button-out;hUp3;toggle;Теплица3;Полив;6;pin[12]*
0;button-out;btn41;toggle;Реле4;Освещение;1;pin[12]
0;button-out;btn42;toggle;Реле4;Освещение;2;pin[13]
0;inoutput;time41;inputTime;Реле4;Введите#время#включения;3
0;inoutput;time42;inputTime;Реле4;Введите#время#выключения;4*
0;button-out;btn51;toggle;Свет5;Выключить#все;1
0;button-out;btn52;toggle;Свет5;Гостинная;2;pin[12]
0;button-out;btn53;toggle;Свет5;Спальня;3;pin[13]
0;button-out;btn54;toggle;Свет5;Прихожая;4;pin[14]
0;pwm-out;pwm51;range;Свет5;Яркость;5;pin[15]
0;pwm-out;pwm52;range;Свет5;Яркость;6;pin[16]
0;inoutput;txt5;anydata;Свет5;Статус;7*
0;button-out;button;toggle;Таймер;Освещение;1;pin[12]
0;count-down;count;anydata;Таймер;Обратный#отчет;2
0;inoutput;input;inputDigit;Таймер;Введите#цифру;3*
0;inoutput;text;anydataAlarm;Сигнализация;Движение:;1
0;inoutput;time;anydataTime;Сигнализация;Время:;2
0;button-in;sensor;na;na;na;3;pin[0];db[20]
0;button-out;reset;toggle;Сигнализация;Сбросить;4*
0;button-in;sensor;na;na;na;1;pin[0];db[20]
0;button-out;light;toggle;Освещение;Освещение;2;pin[13]
0;count-down;count;anydata;Освещение;Обратный#отчет;3
0;inoutput;period;inputDigit;Освещение;Период#включения;4*
0;button-out;light;toggle;Кнопки;Освещение;1;pin[13]
0;button-in;switch;na;na;na;2;pin[0];db[20]*

View File

@@ -1 +0,0 @@
Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета
1 Удалить Тип элемента Id Виджет Имя вкладки Имя виджета Позиция виджета

View File

@@ -1 +0,0 @@
//

Binary file not shown.

View File

@@ -1,5 +0,0 @@
{
"widget": "anydata",
"after": "°С",
"icon": "thermometer"
}

37
data_esp/config.json Normal file
View File

@@ -0,0 +1,37 @@
{
"name": "IoTmanager",
"chipID": "",
"apssid": "IoTmanager",
"appass": "",
"routerssid": "rise",
"routerpass": "hostel3333",
"timezone": 3,
"ntp": "pool.ntp.org",
"mqttServer": "live-control.ru",
"mqttPort": 1883,
"mqttPrefix": "/IotManager",
"mqttUser": "IotManager:guest",
"mqttPass": "guest",
"mqttServer2": "",
"mqttPort2": 0,
"mqttPrefix2": "",
"mqttUser2": "",
"mqttPass2": "",
"scen": "1",
"telegramApi": "",
"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"
}

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -0,0 +1,63 @@
html, body {
position: relative;
width: 100%;
height: 100%;
}
body {
color: #333;
margin: 0;
padding: 8px;
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}
a {
color: rgb(0,100,200);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:visited {
color: rgb(0,80,160);
}
label {
display: block;
}
input, button, select, textarea {
font-family: inherit;
font-size: inherit;
-webkit-padding: 0.4em 0;
padding: 0.4em;
margin: 0 0 0.5em 0;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 2px;
}
input:disabled {
color: #ccc;
}
button {
color: #333;
background-color: #f4f4f4;
outline: none;
}
button:disabled {
color: #999;
}
button:not(:disabled):active {
background-color: #ddd;
}
button:focus {
border-color: #666;
}

View File

@@ -0,0 +1,104 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>LiveControl v 0.3.2</title>
<link rel="icon" type="image/png" href="/favicon.ico" />
<link rel="stylesheet" href="/dashboard/global.css" />
<link rel="stylesheet" href="/dashboard/build/bundle.css" />
<script defer src="/dashboard/build/bundle.js" onload="loadPage()"></script>
<script>
function get_cookie ( cookie_name ){
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
if (get_cookie("darktheme") == "true"){
var myColor = "#1d3040";
document.write('\
<style>\
body{\
background-color: '+myColor+';\
}\
</style>\
');
}
function loadPage() {
document.getElementById("status").style.display = "none";
}
</script>
<style>
.rotate-shadows {
width: 220px;
height: 220px;
margin:0 auto;
position: relative;
}
.rotate-shadows:after,
.rotate-shadows:before {
content: "";
border-radius: 150%;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
transform-origin: center center;
}
.rotate-shadows:before {
box-shadow: inset 0 20px 0 rgba(0, 250, 250, 0.2),
inset 20px 0 0 rgba(0, 200, 200, 0.2),
inset 0 -20px 0 rgba(0, 150, 200, 0.2),
inset -20px 0 0 rgba(0, 200, 250, 0.2);
animation: rotate-before 9s -0.5s linear infinite;
}
.rotate-shadows:after {
box-shadow: inset 0 20px 0 rgba(250, 250, 0, 0.2),
inset 20px 0 0 rgba(250, 200, 0, 0.2),
inset 0 -20px 0 rgba(250, 150, 0, 0.2),
inset -20px 0 0 rgba(250, 100, 0, 0.2);
animation: rotate-after 9s -0.5s linear infinite;
}
@keyframes rotate-after {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
}
100% {
transform: rotateZ(360deg) scaleX(1) scaleY(1);
}
}
@keyframes rotate-before {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
}
100% {
transform: rotateZ(-360deg) scaleX(1) scaleY(1);
}
}
</style>
</head>
<body>
<p><div id="status" class="rotate-shadows"></div></p>
</body>
</html>

BIN
data_esp/edit.htm.gz Normal file

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
data_esp/index.json.gz Normal file

Binary file not shown.

43
data_esp/items/items.txt Normal file
View File

@@ -0,0 +1,43 @@
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]*
0;sht20;tmpid;anydataTemp;Сенсоры;Температура;1;c[1]
0;sht20;humid;anydataHum;Сенсоры;Влажность;2;c[1];int[50]*
0;sensor;anyid;anydata;Сенсоры;Параметр;1;c[1];int[10];type[HDC1080_temp];addr[0x76]
0;sensor;anyid;anydata;Сенсоры;Параметр;1;c[1];int[10];type[HDC1080_hum];addr[0x76]*
0;sensor;anyid;anydata;Сенсоры;Параметр;1;c[1];int[10];type[AHTX0_temp];addr[0x76]
0;sensor;anyid;anydata;Сенсоры;Параметр;1;c[1];int[10];type[AHTX0_hum];addr[0x76]*
0;LCD2004;lcdid;na;na;IP;1;addr[0x27];k[16,2];int[10];c[0,0];val[ip]*
0;TM1637;dispid;na;na;f;1;pin[12,13];int[10];c[4];k[0];val[1234]*
0;sensor;anyid;anydata;Сенсоры;Параметр;1;c[1];int[10];type[type1];addr[0x76]*

BIN
data_esp/js/function.js.gz Normal file

Binary file not shown.

View File

@@ -0,0 +1,54 @@
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]*

View File

@@ -1,10 +1,10 @@
t1 > tUp1
btn1 0
telegram Гостинная нагрев#выключен
telegram msg1 нагрев#выключен
end
t1 < tLow1
btn1 1
telegram Гостинная нагрев#включен
telegram msg1 нагрев#включен
end*
t2 > threshold+-2
heater2 0
@@ -25,12 +25,12 @@ timenow = time24
threshold threshold4
end*
h3 > hUp3
hUp3 0
telegram Теплица полив#выключен
btn3 0
telegram msg3 полив#выключен
end
h3 < hLow3
hUp3 1
telegram Теплица полив#включен
btn3 1
telegram msg3 полив#включен
end*
timenow = time41
btn41 1
@@ -55,30 +55,51 @@ btn54 0
pwm51 800
pwm52 200
txt5 выключено
end*
button = 1
count input
end
count = 0
button 0
pwm51 > 900 && pwm52 > 900
btn52 0
btn53 0
btn54 0
end*
sensor = 1
text обнаружено
time %date%
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 && on8 = 1
txt81 обнаружено
txt82 %date%
telegram often Обнаружено#движение
end
reset = 1
text не#обнаружено
time %date%
reset 0
rst8 = 1
txt81 не#обнаружено
txt82 %date%
rst8 0
end*
sensor = 1
light 1
count period
sens9 = 1
btn9 1
cnt9 sec9
end
count = 0
light 0
cnt9 = 0
btn9 0
end*
switch = 1
light change
sw10 = 1
btn10 change
end*

5
data_esp/s.conf.csv Normal file
View File

@@ -0,0 +1,5 @@
Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета
0;uptime;upt;anydataTime;IoTManager;%name%#uptime;8;int[60]
0;output-value;ip;anydata;IoTManager;IP;9
0;output-value;time;anydata;IoTManager;Время#на#устройстве;10
0;output-value;weekday;anydata;IoTManager;День#недели#на#устройстве ;11
1 Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета
2 0;uptime;upt;anydataTime;IoTManager;%name%#uptime;8;int[60]
3 0;output-value;ip;anydata;IoTManager;IP;9
4 0;output-value;time;anydata;IoTManager;Время#на#устройстве;10
5 0;output-value;weekday;anydata;IoTManager;День#недели#на#устройстве ;11

5
data_esp/s.scen.txt Normal file
View File

@@ -0,0 +1,5 @@
timenow > 0
weekday %weekday%
ip %IP%
time %date%
end

BIN
data_esp/set.device.json.gz Normal file

Binary file not shown.

BIN
data_esp/set.mqtt.json.gz Normal file

Binary file not shown.

View File

@@ -0,0 +1 @@
.letter.svelte-1ls9om6{color:grey;font-size:60%;padding-left:0px;opacity:0.5}table.svelte-1ls9om6{margin:0px;background-color:#fafafa;line-height:1}td.svelte-1ls9om6{text-align:left;padding-left:1px}input[type="text"].svelte-1ls9om6{width:100%;padding:10px;border:1;box-shadow:0 0 15px 10px rgba(0, 0, 0, 0.06);border-radius:1px}.letter1.svelte-1ls9om6{color:grey;font-size:80%;padding-left:20px}.letter2.svelte-1ls9om6{text-align:left;padding-left:0px}select.svelte-1ls9om6{padding:10px;border-radius:10px;padding-left:20px;height:40px;font-size:13px}input[type="password"].svelte-1ls9om6{width:100%;padding:10px;border:1;box-shadow:0 0 15px 10px rgba(0, 0, 0, 0.06);border-radius:1px}input.svelte-1ls9om6:required:invalid:not(:placeholder-shown){border-color:crimson}.red.svelte-1ls9om6{border-color:crimson}progress.svelte-1ls9om6{height:4px}textarea.svelte-1ls9om6{width:100%}button.svelte-1ls9om6{height:30px;border-radius:4px;line-height:0}body.light-mode{background-color:white}body.dark-mode{background-color:#1d3040;color:#bfc2c7}body.dark-mode textarea.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode input.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode select.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode button.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode div.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode span.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}.Shutter.svelte-1ls9om6{background-color:hsl(200, 16%, 96%);color:blak;padding:10px;border-radius:5px}body.dark-mode .Shutter.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7;padding:10px;border-radius:5px}body.dark-mode table.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode .letter1.svelte-1ls9om6{color:#bfc2c7}body.dark-mode .letter2.svelte-1ls9om6{color:#bfc2c7}body.dark-mode b.svelte-1ls9om6{color:#bfc2c7}body.dark-mode button.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}h5.svelte-1ls9om6{display:inline}.box.svelte-hp9es9{width:93%;border:1px solid #aaa;border-radius:10px;box-shadow:10px 10px 8px rgba(0, 0, 0, 0.1);padding:1em;margin:0 0 1em 0}.tooltip.svelte-1vepdvs{border:1px solid #ddd;box-shadow:1px 1px 1px #ddd;background:rgb(185, 238, 241);border-radius:4px;padding:4px;position:absolute;color:black}.modal-background.svelte-10j5cq5{position:fixed;top:0;left:0;width:100%;height:100%;background:gray;opacity:0.8}.modal.svelte-10j5cq5{position:absolute;left:50%;top:50%;width:calc(100vw - 4em);max-width:32em;max-height:calc(100vh - 4em);overflow:auto;transform:translate(-50%, -50%);padding:1em;border-radius:0.2em;background:white}button.svelte-10j5cq5{display:block}.rotate-shadows.svelte-tks6xu{width:220px;height:220px;position:relative}.rotate-shadows.svelte-tks6xu:after,.rotate-shadows.svelte-tks6xu:before{content:"";border-radius:150%;position:absolute;top:0;left:0;width:100%;height:100%;transform-origin:center center}.rotate-shadows.svelte-tks6xu:before{box-shadow:inset 0 20px 0 rgba(0, 250, 250, 0.2), inset 20px 0 0 rgba(0, 200, 200, 0.2), inset 0 -20px 0 rgba(0, 150, 200, 0.2), inset -20px 0 0 rgba(0, 200, 250, 0.2);animation:svelte-tks6xu-rotate-before 9s -0.5s linear infinite}.rotate-shadows.svelte-tks6xu:after{box-shadow:inset 0 20px 0 rgba(250, 250, 0, 0.2), inset 20px 0 0 rgba(250, 200, 0, 0.2), inset 0 -20px 0 rgba(250, 150, 0, 0.2), inset -20px 0 0 rgba(250, 100, 0, 0.2);animation:svelte-tks6xu-rotate-after 9s -0.5s linear infinite}@keyframes svelte-tks6xu-rotate-after{0%{transform:rotateZ(0deg) scaleX(1) scaleY(1)}50%{transform:rotateZ(180deg) scaleX(0.82) scaleY(0.95)}100%{transform:rotateZ(360deg) scaleX(1) scaleY(1)}}@keyframes svelte-tks6xu-rotate-before{0%{transform:rotateZ(0deg) scaleX(1) scaleY(1)}50%{transform:rotateZ(-180deg) scaleX(0.95) scaleY(0.85)}100%{transform:rotateZ(-360deg) scaleX(1) scaleY(1)}}

Binary file not shown.

63
data_esp/setup/global.css Normal file
View File

@@ -0,0 +1,63 @@
html, body {
position: relative;
width: 100%;
height: 100%;
}
body {
color: #333;
margin: 0;
padding: 8px;
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}
a {
color: rgb(0,100,200);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:visited {
color: rgb(0,80,160);
}
label {
display: block;
}
input, button, select, textarea {
font-family: inherit;
font-size: inherit;
-webkit-padding: 0.4em 0;
padding: 0.4em;
margin: 0 0 0.5em 0;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 2px;
}
input:disabled {
color: #ccc;
}
button {
color: #333;
background-color: #f4f4f4;
outline: none;
}
button:disabled {
color: #999;
}
button:not(:disabled):active {
background-color: #ddd;
}
button:focus {
border-color: #666;
}

103
data_esp/setup/index.html Normal file
View File

@@ -0,0 +1,103 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>IotManager v 0.3.2</title>
<link rel="icon" type="image/png" href="/favicon.ico" />
<link rel="stylesheet" href="/setup/global.css" />
<link rel="stylesheet" href="/setup/build/bundle.css?0.3" />
<script defer src="/setup/build/bundle.js?0.3" onload="loadPage()"></script>
<script>
function get_cookie ( cookie_name ){
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
if (get_cookie("darktheme") == "true"){
var myColor = "#1d3040";
document.write('\
<style>\
body{\
background-color: '+myColor+';\
}\
</style>\
');
}
function loadPage() {
document.getElementById("status").style.display = "none";
}
</script>
<style>
.rotate-shadows {
width: 220px;
height: 220px;
margin:0 auto;
position: relative;
}
.rotate-shadows:after,
.rotate-shadows:before {
content: "";
border-radius: 150%;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
transform-origin: center center;
}
.rotate-shadows:before {
box-shadow: inset 0 20px 0 rgba(0, 250, 250, 0.2),
inset 20px 0 0 rgba(0, 200, 200, 0.2),
inset 0 -20px 0 rgba(0, 150, 200, 0.2),
inset -20px 0 0 rgba(0, 200, 250, 0.2);
animation: rotate-before 9s -0.5s linear infinite;
}
.rotate-shadows:after {
box-shadow: inset 0 20px 0 rgba(250, 250, 0, 0.2),
inset 20px 0 0 rgba(250, 200, 0, 0.2),
inset 0 -20px 0 rgba(250, 150, 0, 0.2),
inset -20px 0 0 rgba(250, 100, 0, 0.2);
animation: rotate-after 9s -0.5s linear infinite;
}
@keyframes rotate-after {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
}
100% {
transform: rotateZ(360deg) scaleX(1) scaleY(1);
}
}
@keyframes rotate-before {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
}
100% {
transform: rotateZ(-360deg) scaleX(1) scaleY(1);
}
}
</style>
</head>
<body>
<p><div id="status" class="rotate-shadows"></div></p>
</body>
</html>

BIN
data_esp/setup/progress.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

35
data_esp/widgets.json Normal file
View File

@@ -0,0 +1,35 @@
{
"undef": "Ошибка",
"toggleBtn": "Переключатель",
"btn": "Кнопка",
"select": "Кнопка переключатель",
"range": "Ползунок",
"inputDate": "Окно ввода даты",
"inputTime": "Окно ввода времени 1",
"inputTimeClock": "Окно ввода времени 2",
"inputDigit": "Окно ввода цифры",
"inputDigitTemp": "Окно ввода температуры",
"inputText": "Окно ввода текста",
"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": "Без виджета"
}

View File

@@ -1,5 +1,5 @@
{
"widget": "anydata",
"after": "",
"after": "Amp",
"icon": "speedometer"
}
}

View File

@@ -0,0 +1,5 @@
{
"widget": "anydata",
"after": "Htz",
"icon": "speedometer"
}

View File

@@ -0,0 +1,6 @@
{
"widget": "anydata",
"after": "%",
"icon": "water",
"color": "#88AADF"
}

View File

@@ -0,0 +1,16 @@
{
"widget": "anydata",
"after": "°С",
"icon": "thermometer",
"font": "OCR A Std",
"color": [
{ "level": -20, "value": "#0000CC" },
{ "level": -10, "value": "#0000CC" },
{ "level": 0, "value": "#0000CC" },
{ "level": 12, "value": "#3366FF" },
{ "level": 16, "value": "#33CCFF" },
{ "level": 18, "value": "#009933" },
{ "level": 30, "value": "#FF9900" },
{ "level": 40, "value": "red" }
]
}

View File

@@ -0,0 +1,5 @@
{
"widget": "anydata",
"after": "",
"icon": "speedometer"
}

View File

@@ -0,0 +1,5 @@
{
"widget": "anydata",
"after": "Vlt",
"icon": "speedometer"
}

View File

@@ -0,0 +1,5 @@
{
"widget": "anydata",
"after": "Whr",
"icon": "speedometer"
}

View File

@@ -0,0 +1,5 @@
{
"widget": "anydata",
"after": "Wtt",
"icon": "speedometer"
}

View File

@@ -0,0 +1,5 @@
{
"widget": "chart",
"dateFormat": "DD.MM.YYYY",
"type":"bar"
}

View File

@@ -0,0 +1,4 @@
{
"widget": "chart",
"dateFormat": "DD.MM.YYYY"
}

37
data_ms/config.json Normal file
View File

@@ -0,0 +1,37 @@
{
"name": "IoTmanager",
"chipID": "",
"apssid": "IoTmanager",
"appass": "",
"routerssid": "Mikro",
"routerpass": "4455667788",
"timezone": 3,
"ntp": "pool.ntp.org",
"mqttServer": "live-control.ru",
"mqttPort": 1883,
"mqttPrefix": "/IotManager",
"mqttUser": "IotManager:guest",
"mqttPass": "guest",
"mqttServer2": "",
"mqttPort2": 0,
"mqttPrefix2": "",
"mqttUser2": "",
"mqttPass2": "",
"scen": "1",
"telegramApi": "",
"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"
}

BIN
data_ms/css/build.css.gz Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -0,0 +1,63 @@
html, body {
position: relative;
width: 100%;
height: 100%;
}
body {
color: #333;
margin: 0;
padding: 8px;
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}
a {
color: rgb(0,100,200);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:visited {
color: rgb(0,80,160);
}
label {
display: block;
}
input, button, select, textarea {
font-family: inherit;
font-size: inherit;
-webkit-padding: 0.4em 0;
padding: 0.4em;
margin: 0 0 0.5em 0;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 2px;
}
input:disabled {
color: #ccc;
}
button {
color: #333;
background-color: #f4f4f4;
outline: none;
}
button:disabled {
color: #999;
}
button:not(:disabled):active {
background-color: #ddd;
}
button:focus {
border-color: #666;
}

View File

@@ -0,0 +1,104 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>LiveControl v 0.3.2</title>
<link rel="icon" type="image/png" href="/favicon.ico" />
<link rel="stylesheet" href="/dashboard/global.css" />
<link rel="stylesheet" href="/dashboard/build/bundle.css" />
<script defer src="/dashboard/build/bundle.js" onload="loadPage()"></script>
<script>
function get_cookie ( cookie_name ){
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
if (get_cookie("darktheme") == "true"){
var myColor = "#1d3040";
document.write('\
<style>\
body{\
background-color: '+myColor+';\
}\
</style>\
');
}
function loadPage() {
document.getElementById("status").style.display = "none";
}
</script>
<style>
.rotate-shadows {
width: 220px;
height: 220px;
margin:0 auto;
position: relative;
}
.rotate-shadows:after,
.rotate-shadows:before {
content: "";
border-radius: 150%;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
transform-origin: center center;
}
.rotate-shadows:before {
box-shadow: inset 0 20px 0 rgba(0, 250, 250, 0.2),
inset 20px 0 0 rgba(0, 200, 200, 0.2),
inset 0 -20px 0 rgba(0, 150, 200, 0.2),
inset -20px 0 0 rgba(0, 200, 250, 0.2);
animation: rotate-before 9s -0.5s linear infinite;
}
.rotate-shadows:after {
box-shadow: inset 0 20px 0 rgba(250, 250, 0, 0.2),
inset 20px 0 0 rgba(250, 200, 0, 0.2),
inset 0 -20px 0 rgba(250, 150, 0, 0.2),
inset -20px 0 0 rgba(250, 100, 0, 0.2);
animation: rotate-after 9s -0.5s linear infinite;
}
@keyframes rotate-after {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
}
100% {
transform: rotateZ(360deg) scaleX(1) scaleY(1);
}
}
@keyframes rotate-before {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
}
100% {
transform: rotateZ(-360deg) scaleX(1) scaleY(1);
}
}
</style>
</head>
<body>
<p><div id="status" class="rotate-shadows"></div></p>
</body>
</html>

0
data_ms/dev_conf.txt Normal file
View File

BIN
data_ms/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
data_ms/index.htm.gz Normal file

Binary file not shown.

BIN
data_ms/index.json.gz Normal file

Binary file not shown.

11
data_ms/items/items.txt Normal file
View File

@@ -0,0 +1,11 @@
0;button-out;btnid;toggleBtn;Кнопки;Освещение;order*
0;button-out;100-0;toggleBtn;Кнопки;Освещение;order;type[ms]*
0;input-value;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]*
0;LCD2004;lcdid;anydata;Вывод;IP;1;addr[0x27];k[20,4];int[10];c[0,0];val[ip]*

View File

@@ -0,0 +1,2 @@
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]*

Binary file not shown.

BIN
data_ms/js/function.js.gz Normal file

Binary file not shown.

39
data_ms/lang/lang.ru.json Normal file
View File

@@ -0,0 +1,39 @@
{
"SetDevConf": "Конфигурация устройства",
"SetDevPreset": "Выберите из списка подходящий пресет кофигурации",
"ButSave":"Сохранить",
"ButMainPage":"Главная",
"SetUDPList": "Список других устройств в сети:",
"SetUDPWarn1": "После нажатия на кнопку <b>переформировать список устройств</b> ждите примерно минуту, а затем обновите страницу и список появится вновь",
"SetUDPUpdateList":"Переформировать список устройств",
"SetUDPUpdatePage":"Обновить страницу",
"SetUDPNameOfDev":"Имя этого устройства:",
"SetUDPDateExchange":"Включить обмен данными между устройствами",
"SetUDPWarn2":"Если обмен данными включен, то устройства будут обмениваться широковещательными пакетами udp для формирования списка устройств и для осуществления посылки настроек mqtt. Данный обмен создает дополнительную нагрузку на wifi сеть.",
"SetWiFiNameOfDev":"Имя устройства:",
"SetWiFiRouterConnect":"Подключение к WiFi роутеру:",
"SetWiFiAccessPoint":"Точка доступа:",
"SetWiFiWeb":"Логин и пароль web interface:",
"SetWiFiTimeZone":"Временная зона:",
"SetWiFiNTP":"Сервер NTP:",
"SetWiFiWarn1":"Имя устройства должно состоять из английских букв и иметь длинну от 6 до 12 символов",
"SetWiFiWarn2":"После того как вы введете логин пароль от вашего wifi роутера необходимо нажать кнопку сохранить, а затем обязательно нажать кнопку <b>перезагрузить устройство</b> внизу этой страницы",
"SetWiFiWarn3":"Устройство постоянно сканирует сеть на наличие wifi. Если роутер отключен, то устройство автоматически перейдет в режим точки доступа. Когда wifi появится устройство автоматически подключится к роутеру снова, и выключит точку доступа",
"SetWiFiWarn4":"После изменения поля <b>NTP сервер</b> необходимо перезагрузить устройство",
"SetWiFiWarn5":"Светодиод статуса подключения показывает четыре состояния подключения: <br><b>1. мигает редко</b> - идет подключение к wifi <br><b>2. мигает часто</b> - идет подключение к серверу mqtt <br><b>3. горит постоянно</b> - модуль в режиме точки доступа, <br><b>4. не горит</b> - модуль подключен к wifi и к mqtt. <br>Светодиод подключен к gpio2. Если галочка стоит - то использовать этот пин нельзя",
"SetMQTTServerName":"Имя сервера:",
"SetMQTTPort":"Номер порта:",
"SetMQTTPrefix":"Префикс:",
"SetMQTTUserName":"Имя пользователя:",
"SetMQTTPassword":"Пароль:",
"SetMQTTSendSettings":"Отправить настройки MQTT с этого устройства на все остальные",
"SetMQTTWarn1":"Обратите внимание что поле префикс может состоять только из одного слова и одного разделителя: <b>/prefix</b>, вариант вида: <b>/prefix1/prefix2</b> работать не будет. После изменения поля prefix необходимо перезагрузить устройство",
"SetMQTTWarn2":"Прежде чем нажимать на кнопку <b>Отправить настройки MQTT</b> сохрание их, если Вы их меняли. Настройки получат и перезапишут все устройства в локальной сети"
}

View File

@@ -0,0 +1,4 @@
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*

View File

@@ -0,0 +1,6 @@
100-0 > dgt
telegram Гостинная Повышение#температуры
end
100-0 < dgt
telegram Гостинная Понижение#температуры
end*

5
data_ms/s.conf.csv Normal file
View File

@@ -0,0 +1,5 @@
Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета
0;uptime;upt;anydataTime;IoTManager;%name%#uptime;8;int[60]
0;output-value;ip;anydata;IoTManager;IP;9
0;output-value;time;anydata;IoTManager;Время#на#устройстве;10
0;output-value;weekday;anydata;IoTManager;День#недели#на#устройстве ;11
1 Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета
2 0;uptime;upt;anydataTime;IoTManager;%name%#uptime;8;int[60]
3 0;output-value;ip;anydata;IoTManager;IP;9
4 0;output-value;time;anydata;IoTManager;Время#на#устройстве;10
5 0;output-value;weekday;anydata;IoTManager;День#недели#на#устройстве ;11

5
data_ms/s.scen.txt Normal file
View File

@@ -0,0 +1,5 @@
timenow > 0
weekday %weekday%
ip %IP%
time %date%
end

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More