mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
cleaning
This commit is contained in:
566
doc/1.txt
566
doc/1.txt
@@ -1,566 +0,0 @@
|
||||
***
|
||||

|
||||
|
||||
## Возможности
|
||||
|
||||
- Объединение различных по типу и назначению устройств: управление, получение данных, и настройка параметров - всё в одном приложении
|
||||
|
||||
- Взаимодействие с устройствами осуществляется через "облачный" сервис с использованием протокола mqtt, позволит контролировать их из любой точки Мира (при наличии доступа в Интернет)
|
||||
|
||||
- Поддержка нескольких профилей и их переключение "на лету", дает возможность объединить устройства в группы
|
||||
|
||||
|
||||
Настройка (после "прошивки") производится через веб-интерфейс, чтобы получить к нему доступ необходимо соединиться с WiFi AP устройства и набрать в адресной строке браузера http://192.168.4.1.
|
||||
Далее выбрать типовой шаблон автоматизации, произвести настройку под свои требования и задачи.
|
||||
Основные разделы интерфейса: конфигурация и сценарии.
|
||||
В окне конфигурации задаются "объекты", "элементы управления" устройства (dashboard) - им устройство будет представлено в приложении компаньоне проекта. В окне сценариев задаются реакции на события и изменения в параметрах работы системы.
|
||||
|
||||
***
|
||||

|
||||
|
||||
## Команды, назначение и применение
|
||||
|
||||
Команды служат для настройки и управления устройством и его взаимодействия
|
||||
|
||||
**`buttonSet 1 1`** Изменит состояние "кнопки" №1, установит его в значение 1
|
||||
|
||||
**`pinSet 13 0`** Установит GPIO 13 состояние 0
|
||||
|
||||
**`pinChange 13`** Состояние GPIO 13 будет изменено на противоположное
|
||||
|
||||
**`pwmSet 1 500`** Настройка pwm №1 будет использовано значение 500
|
||||
|
||||
**`timeSet 1 08-00-00`** Установит для элемента ввода времени - inputTime значение 08:00:00
|
||||
|
||||
**`digitSet 1 56`** Элемент №1 (для цифровых параметров) отобразит число 56
|
||||
|
||||
**`stepperSet 1 100 1`** Шаговый двигатель №1 - вращение 100 "шагов" по часовой стрелке (для движения в обратную сторону используются отрицательные значения параметра)
|
||||
|
||||
**`servoSet 1 180`** Сервопривод №1 принять положение 180°
|
||||
|
||||
**`timerStart 1 60 sec`** Установить для таймера №1 обратный отсчёт в 60 секунд
|
||||
|
||||
**`timerStop 1`** Остановить таймер №1
|
||||
|
||||
**`textSet 1 Привет`** Установить для элемента текстовое поле №1 - "привет"
|
||||
|
||||
**`push Внимание Протечка`** Отправить push-уведомление с темой "внимание" и содержанием "протечка"
|
||||
|
||||
**`firmwareUpdate`** Обновить прошивку устройства "по воздуху"
|
||||
|
||||
**`firmwareVersion Версия прошивки Системные 1`** Узнать версию прошивки устройстве
|
||||
|
||||
## Сценарии
|
||||
|
||||
Элементарный блок в сценарии состоит из набора команд и триггера - условия для их выполнения
|
||||
|
||||
**temp > 60**
|
||||
digitSet 1 60
|
||||
stepperSet 1 100 1
|
||||
textSet 1 Перегрев
|
||||
**end**
|
||||
|
||||
Условие: когда температура превысит 60°
|
||||
Запустит: команда шаговому двигателю, в приложение отправить сообщение и цифровое значение температуры.
|
||||
|
||||
В сценарии может быть несколько блоков, при необходимости из приложения есть возможность "выключать" часть из них.
|
||||
Неактивные блоки сценария будут проигнорированы.
|
||||
|
||||
Для взаимодействия устройств между собой предусмотрены команды mqtt и http
|
||||
|
||||
**temp > 60**
|
||||
mqtt 154348-134 digitSet_1_56
|
||||
mqtt 154348-136 stepperSet _1_100_1
|
||||
http 192.168.1.10 textSet_1_Перегрев
|
||||
**end**
|
||||
|
||||
***
|
||||

|
||||
## 1.1 Объект "кнопка"
|
||||
|
||||
(эти строки мы пишем в "конфигурации устройства")
|
||||
|
||||
### a) кнопка управляющая выходом (пином). Пины нумеруются по системе нумирации gpio для esp контроллеров.
|
||||
|
||||
`button 1 13 кухня освещение 0 1`
|
||||
|
||||
**"button"** это объект создающий кнопку в приложении
|
||||
**"1"** это номер этой кнопки (необходимый для ее аутентификации)
|
||||
**"13"** это номер пина которым будет управлять данная кнопка
|
||||
**"кухня"** это название кнопки в приложении
|
||||
**"освещение"** это название вкладки в приложении на которой появится данная кнопка
|
||||
**"0"** это начальное состояние кнопки при старте модуля (выкд 0, вкл 1)
|
||||
**"1"** это уникальный номер и номер сортировки данной кнопки. Этот номер должен быть уникален для каждого объекта
|
||||
|
||||
|
||||
### б) виртуальная кнопка - кнопка реакцию на которую можно задать в сценариях:
|
||||
|
||||
`button 1 na запустить таймеры 0 1`
|
||||
|
||||
**"button"** это объект создающий кнопку в приложении
|
||||
**"1"** это номер этой кнопки (необходимый для ее аутентификации)
|
||||
**"na"** абривиатура not available означающая что эта кнопка виртуальная и что пин не установлен
|
||||
**"запустить"** это название кнопки в приложении
|
||||
**"таймеры"** это название вкладки в приложении на которой появится данная кнопка
|
||||
**"0"** это начальное состояние кнопки при старте модуля (выкд 0, вкл 1)
|
||||
**"1"** это уникальный номер и номер сортировки данной кнопки. Этот номер должен быть уникален для каждого объекта
|
||||
|
||||
### в) кнопка включающая и выключающая все сценарии:
|
||||
|
||||
`button 1 scenario запустить таймеры 0 1`
|
||||
|
||||
**"button"** это объект создающий кнопку в приложении
|
||||
**"1"** это номер этой кнопки (необходимый для ее аутентификации)
|
||||
**"scenario"** слово означающее что эта кнопка для управления сценариями
|
||||
**"запустить"** это название кнопки в приложении
|
||||
**"таймеры"** это название вкладки в приложении на которой появится данная кнопка
|
||||
**"0"** это начальное состояние кнопки при старте модуля (выкд 0, вкл 1)
|
||||
**"1"** это уникальный номер и номер сортировки данной кнопки. Этот номер должен быть уникален для каждого объекта
|
||||
|
||||
|
||||
### г) кнопка включающая выключающая определенные блоки сценариев:
|
||||
|
||||
`button 1 line1,line3, Включить#отправку#push Оповещение 0 1`
|
||||
|
||||
**"button"** это объект создающий кнопку в приложении
|
||||
**"1"** это номер этой кнопки (необходимый для ее аутентификации)
|
||||
**"line1,line3,"** это блоки сценариев нумирация сверху вниз. Блоком считается выражение от начала до слова end
|
||||
**"Включить#отправку#push"** это название кнопки в приложении
|
||||
**"Оповещение"** это название вкладки в приложении на которой появится данная кнопка
|
||||
**"0"** это начальное состояние кнопки при старте модуля (выкд 0, вкл 1)
|
||||
**"1"** это уникальный номер и номер сортировки данной кнопки. Этот номер должен быть уникален для каждого объекта
|
||||
|
||||
## 1.2 Команды управления объектом "кнопка"
|
||||
|
||||
(эти строки мы пишем в "сценариях")
|
||||
|
||||
### а) Команда включения выключения кнопки по ее номеру
|
||||
|
||||
`buttonSet 1 1`
|
||||
|
||||
**"buttonSet"** команда управления объектом button
|
||||
**"1"** номер кнопки которой будем управлять
|
||||
**"1"** состояние включено, 0 - выключено
|
||||
|
||||
### б) Команда изменения состояния кнопки на противоположное
|
||||
|
||||
`buttonChange 1`
|
||||
|
||||
**"buttonChange"** команда управления объектом button
|
||||
**"1"** номер кнопки которой будем управлять
|
||||
|
||||
## 1.3 Вызов событий объектом "кнопока"
|
||||
|
||||
(эти строки мы пишем в "сценариях")
|
||||
|
||||
объект button может быть равен либо 0 либо 1
|
||||
|
||||
`button1 = 1`
|
||||
`button2 = 0`
|
||||
|
||||
Пример использования:
|
||||
|
||||
`button1 = 1`
|
||||
`buttonSet 2 1`
|
||||
`buttonSet 3 0`
|
||||
`end`
|
||||
|
||||
|
||||
***
|
||||

|
||||
## 2.1 Объект "физическая кнопка"
|
||||
|
||||
`switch 1 0 10`
|
||||
|
||||
**switch** это объект создающий физическую кнопку
|
||||
**1** номер кнопки
|
||||
**0** пин кнопки (при подключении необходим подтягивающий резистор)
|
||||
**10** задержка для избавления от дребезга с мили секундах
|
||||
|
||||
## 2.2 Вызов событий объектом "физическая кнопка"
|
||||
|
||||
`switch1` может быть равна нулю или единицы, ноль - событие отбрасывания кнопки, единица - событие нажатия
|
||||
|
||||
`switch1 = 1`
|
||||
`buttonChange 1`
|
||||
`end`
|
||||
|
||||
|
||||
***
|
||||

|
||||
## 3.1 Объект "широтноимпульсная модуляция"
|
||||
|
||||
`pwm 1 12 яркость освещение 1023 1`
|
||||
|
||||
**"pwm"** это объект создающий управление шим в приложении в виде ползунка
|
||||
**"1"** это номер этого объекта
|
||||
**"12"** это номер пина на котором будет генерироваться шим заданной в приложении величены
|
||||
**"Яркость"** это название кнопки в приложении
|
||||
**"Оповещение"** это название вкладки в приложении на которой появится данная кнопка
|
||||
**"1023"** это начальное значение шим сигнала и ползунка (изменяется от 0 до 1023)
|
||||
**"1"** это уникальный номер и номер сортировки данной кнопки. Этот номер должен быть уникален для каждого объекта
|
||||
|
||||
## 3.2 Команда управления объектом "широтноимпульсная модуляция"
|
||||
|
||||
`pwmSet 1 500`
|
||||
|
||||
**"pwmSet"** команда управления объектом
|
||||
**"1"** номер объекта, которым будем управлять
|
||||
**"500"** значение которое установится после выполнения команды (от 0 до 1023)
|
||||
|
||||
***
|
||||

|
||||
## 4.1 Объект "окно ввода времени"
|
||||
|
||||
`inputTime time1 Во#сколько#включить? Таймеры 20-30-00 1`
|
||||
|
||||
**inputTime** это объект создающий окно ввода в приложении
|
||||
**time1** переменная в которую будет записано время введенное в окно
|
||||
**Во#сколько#включить?** это название окна в приложении
|
||||
**Таймеры** это название вкладки в приложении
|
||||
**20-30-00** начальное значение времени после загрузки устройства
|
||||
**1** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта
|
||||
|
||||
## 4.2 Управление объектом "окно ввода времени"
|
||||
|
||||
`timeSet 1 08-00-00`
|
||||
|
||||
**"timeSet"** команда управления объектом
|
||||
**"1"** номер объекта, которым будем управлять в данном случае окном ввода с `time1`
|
||||
**"08-00-00"** время которое хотим установить
|
||||
|
||||
В окно ввода можно вводить время в приложении но если необходимо изменить время автоматически
|
||||
по какому нибудь событию то можно использовать команду выше - **timeSet**.
|
||||
|
||||
## 4.3 Вызов событий объектом "окно ввода времени"
|
||||
|
||||
`timenow = time1`
|
||||
`buttonSet 1 1`
|
||||
`end`
|
||||
|
||||
`timenow` всегда хранит в себе текущее время, и поэтому исходя из данного сценария кнопка номер 1 включится в то время которое будет введено в окно ввода `time1`
|
||||
|
||||
***
|
||||

|
||||
## 5.1 Объект "окно ввода цифры"
|
||||
|
||||
`inputDigit digit1 Через#сколько#секунд#выключить? Таймеры 5 2`
|
||||
|
||||
**inputDigit** это объект создающий окно ввода в приложении
|
||||
**digit1** переменная в которую будет записана цифра, введенная в окно
|
||||
**Через#сколько#секунд#выключить?** это название окна в приложении
|
||||
**Таймеры** это название вкладки в приложении
|
||||
**5** цифра по умолчанию, после загрузки модуля
|
||||
**2** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта
|
||||
|
||||
## 5.2 Управление объектом "окно ввода цифры":
|
||||
|
||||
`digitSet 1 56`
|
||||
|
||||
**"digitSet"** команда управления объектом
|
||||
**"1"** номер объекта, которым будем управлять в данном случае окном ввода с `digit1`
|
||||
**"56"** цифра которую хотим установить
|
||||
|
||||
В окно ввода можно вводить цифры в приложении, но если необходимо изменить цифру автоматически
|
||||
по какому нибудь событию, то можно использовать команду выше - **digitSet**.
|
||||
|
||||
## 5.3 Вызов событий объектом "окно ввода цифры"
|
||||
|
||||
`dallas > digit1`
|
||||
`buttonSet 1 0`
|
||||
`end`
|
||||
|
||||
`button1 = 1`
|
||||
`timerStart 1 digit1 sec`
|
||||
`end`
|
||||
|
||||
***
|
||||

|
||||
## 6.1 Объект "dallas" (сенсор температуры ds18b20)
|
||||
|
||||
`dallas temp1 2 123456 Водонагреватель,#t°C Термостат any-data 1`
|
||||
|
||||
**dallas** это объект чтения датчика температуры
|
||||
**2** пин датчика температуры
|
||||
**Водонагреватель,#t°C** это название виджета в приложении
|
||||
**Датчики** название вкладки в приложении
|
||||
**any-data** или **progress-round** или **progress-line** три разных варианта виджета отображения
|
||||
**1** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта
|
||||
|
||||
## 6.2 Вызов событий объектом "dallas"
|
||||
|
||||
В сценариях dallas можно сравнивать с переменной окна ввода `digit1` (>,<,>=,<=,=):
|
||||
|
||||
`dallas > digit1`
|
||||
`buttonSet 1 0`
|
||||
`end`
|
||||
|
||||
Или можно сравнивать с постоянной цифрой (>,<,>=,<=,=):
|
||||
|
||||
`dallas > 60`
|
||||
`buttonSet 1 0`
|
||||
`end`
|
||||
|
||||
|
||||
***
|
||||

|
||||
## 7.1 Объект "analog" (аналоговый вход контроллера)
|
||||
|
||||
`analog adc 0 Аналоговый#вход,#% Датчики progress-round 310 620 1 100 1`
|
||||
|
||||
**analog** это объект чтения аналогового входа
|
||||
**adc** это переменная
|
||||
**0** пин аналогового входа (для esp8266 всегда 0, для esp32 пока что не доделал читаться будет всегда пин 34)
|
||||
**Аналоговый#вход,#%** это название виджета в приложении
|
||||
**Датчики** название вкладки в приложении
|
||||
**any-data** или **progress-round** или **progress-line** три разных варианта виджета отображения
|
||||
**310** начальная величина читаемого диапазона
|
||||
**620** конечная величина читаемого диапазона
|
||||
**1** начальная величина выводимого диапазона
|
||||
**100** конечная величина выводимого диапазона
|
||||
**1** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта
|
||||
|
||||
## 7.2 Вызов событий объектом "analog"
|
||||
|
||||
В сценариях analog можно сравнивать с переменной окна ввода `digit1` (>,<,>=,<=,=):
|
||||
|
||||
`analog > digit1`
|
||||
`buttonSet 1 0`
|
||||
`end`
|
||||
|
||||
Или можно сравнивать с постоянной цифрой (>,<,>=,<=,=):
|
||||
|
||||
`analog > 50`
|
||||
`buttonSet 1 0`
|
||||
`end`
|
||||
|
||||
|
||||
***
|
||||

|
||||
## 8.1 Объект "level" (ультразвуковой дальномер JSN-SR04T, HC-SR04, HY-SRF05)
|
||||
|
||||
`level Вода#в#баке,#% Датчики any-data 125 20 1`
|
||||
|
||||
**level** это объект чтения датчика расстояния
|
||||
**Вода#в#баке** это название виджета в приложении
|
||||
**Датчики** название вкладки в приложении
|
||||
**any-data** или **progress-round** или **progress-line** три разных варианта отображения виджета
|
||||
**125** расстояние от датчика до дна бака в сантиметрах
|
||||
**20** расстояние от датчика до поверхности воды, когда бак полный, в сантиметрах
|
||||
**1** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта
|
||||
|
||||
Подключать дальномер нужно:
|
||||
|
||||
| | trig | echo |
|
||||
| :-: | :-: | :-: |
|
||||
| wemos | D5 | D6 |
|
||||
| esp | 14 | 12 |
|
||||
|
||||
## 8.2 Вызов событий объектом "level"
|
||||
|
||||
В сценариях level можно сравнивать с переменной окна ввода `digit1` (>,<,>=,<=,=):
|
||||
|
||||
`level > digit1`
|
||||
`buttonSet 1 0`
|
||||
`end`
|
||||
|
||||
Или можно сравнивать с постоянной цифрой (>,<,>=,<=,=):
|
||||
|
||||
`level > 95`
|
||||
`buttonSet 1 0`
|
||||
`end`
|
||||
|
||||
|
||||
|
||||
***
|
||||

|
||||
## 9.1 Объект "dht" (Сенсоры DHT11, DHT22, DHT33, DHT44, AM2302, RHT03)
|
||||
|
||||
dhtT DHT11 2 Температура#DHT,#t°C Датчики any-data 1
|
||||
dhtH DHT11 2 Влажность#DHT,#% Датчики any-data 2
|
||||
dhtComfort Степень#комфорта: Датчики 3
|
||||
dhtPerception Восприятие: Датчики 4
|
||||
dhtDewpoint Точка#росы: Датчики 5
|
||||
|
||||
**dhtT** или **dhtH** температура или влажность
|
||||
**DHT11** или **DHT22** чтение DHT11 или DHT22, DHT33, DHT44, AM2302, RHT03 соответственно
|
||||
**2** пин датчика
|
||||
**Температура#DHT,#t°C** это название виджета в приложении
|
||||
**Датчики** название вкладки в приложении
|
||||
**any-data** или **progress-round** или **progress-line** три разных варианта отображения виджета
|
||||
**1** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта
|
||||
|
||||
## 9.2 Вызов событий объектом "dhtT" или "dhtH"
|
||||
|
||||
В сценариях "dhtT" или "dhtH" можно сравнивать с переменной окна ввода `digit1` (>,<,>=,<=,=):
|
||||
|
||||
`dhtT > digit1`
|
||||
`buttonSet 1 0`
|
||||
`end`
|
||||
|
||||
`dhtH > digit1`
|
||||
`buttonSet 1 0`
|
||||
`end`
|
||||
|
||||
Или можно сравнивать с постоянной цифрой (>,<,>=,<=,=):
|
||||
|
||||
`dhtT > 50`
|
||||
`buttonSet 1 0`
|
||||
`end`
|
||||
|
||||
`dhtH < 40`
|
||||
`buttonSet 1 0`
|
||||
`end`
|
||||
|
||||
|
||||
***
|
||||

|
||||
## 10.1 Объект "stepper" (Драйвер шагового двигателя A4988)
|
||||
|
||||
stepper 1 12 4
|
||||
stepper 2 13 5
|
||||
|
||||
**stepper** объект создающий шаговый двигатель
|
||||
**1** номер шаговика
|
||||
**12** номер пина количества шагов
|
||||
**4** номер пина направления
|
||||
|
||||
## 10.2 управление объектом "stepper"
|
||||
|
||||
`stepperSet 1 200 1`
|
||||
|
||||
**stepperSet** команда управления шаговым двигателем
|
||||
**1** номер шагового двигателя (их может быть не более двух)
|
||||
**200** количество шагов (обратное направление отрицательное значение параметра)
|
||||
**1** интервал между шагами (мс)
|
||||
|
||||
`button1 = 1`
|
||||
`stepperSet 1 200 1`
|
||||
`end`
|
||||
`button1 = 0`
|
||||
`stepperSet 1 -200 1`
|
||||
`end`
|
||||
|
||||
***
|
||||

|
||||
## 11.1 Объект "обратный таймер"
|
||||
|
||||
Прежде чем читать этот раздел запустите пресет №3 на устройстве.
|
||||
Нажав на кнопку "Выберите во что вы хотите превратить esp"
|
||||
|
||||
Можно использовать цифры из окон ввода:
|
||||
|
||||
`timerStart 1 digit1 sec`
|
||||
|
||||
Можно писать цифры прям в объект:
|
||||
|
||||
`timerStart 1 10 sec`
|
||||
|
||||
Можно установить часы минуты или секунды:
|
||||
|
||||
`timerStart 1 10 sec`
|
||||
`timerStart 1 10 min`
|
||||
`timerStart 1 10 hours`
|
||||
|
||||
Используем это объект в сценариях вот так:
|
||||
|
||||
`button1 = 1`
|
||||
`timerStart 1 digit1 sec`
|
||||
`end`
|
||||
|
||||
Смысл в том что при нажатии на кнопку один запуститься обратный отчет, на величину digit1 секунд. Если напишем например:
|
||||
|
||||
`dallas < 60`
|
||||
`timerStart 1 digit1 sec`
|
||||
`end`
|
||||
|
||||
то такой же отчет запустится когда значение температуры вырастит больше 60 градусов. Таким образом обратный отчет можно запустить реакцией на любое событие. Итак теперь обратный отчет запущен, обратный таймер уменьшается, и нам надо назначить действие на тот момент когда он обнулится. Для этого я придумал выражение: `timer1 = 0`
|
||||
|
||||
Используем его и в общем получаем вот такой сценарий:
|
||||
|
||||
`button1 = 1`
|
||||
`timerStart 1 digit1 sec`
|
||||
`end`
|
||||
`timer1 = 0`
|
||||
`buttonSet 1 0`
|
||||
`end`
|
||||
|
||||
Когда таймер закончит отсчёт, кнопка станет "неактивной". Используйте преет №3, как пример подобного сценария
|
||||
Например:
|
||||
|
||||
`dallas < 60`
|
||||
`buttonSet 1 0`
|
||||
`buttonSet 2 0`
|
||||
`pwmSet 1 1023`
|
||||
`mqtt 2653450020 buttonChange_1`
|
||||
`mqtt 2653450020 pinSet_13_1`
|
||||
`http 192.168.1.32 pinSet_14_1`
|
||||
`end`
|
||||
|
||||
Вот что может произойти на разных устройствах по одному событию повышения температуры...
|
||||
|
||||
|
||||
***
|
||||

|
||||
## 12 Журнал (лог) данных
|
||||
|
||||
|
||||
`logging analog 1 100 slow Аналоговый#вход Датчики 7`
|
||||
|
||||
**logging** объект для логирования
|
||||
**analog** или **dhtT** или **dhtH** какой сенсор будем логировать, можно указать любой
|
||||
**1** период между точками в минутах
|
||||
**100** количество точек (старые точки будут удаляться по мере добавления новых)
|
||||
**slow** или **fast** метод выгрузки графика в приложение, slow - выгружает график по одной точке (меньше расходуется оперативка, лучше использовать для esp8266), fast - выгрузка графика сразу (больше расход оперативки, подходит для esp32)
|
||||
**Аналоговый#вход** название графика в приложении
|
||||
**Датчики** название вкладки в приложении
|
||||
**7** это уникальный номер и номер сортировки. Этот номер должен быть уникален для каждого объекта
|
||||
|
||||
***
|
||||

|
||||
## 13 Взаимодействие устройств между собой
|
||||
|
||||
Устройства могут между собой обмениваться командами. Команды можно отправлять по http или по mqtt.
|
||||
По событию на одном устройстве можно вызвать действие на другом. Например на esp01 стоит датчик температуры, реле стоит на esp02.
|
||||
|
||||
Настройки esp01:
|
||||
|
||||
`dhtT temp 2 dht11 Температура#DHT,#t°C Датчики any-data 1`
|
||||
|
||||
`temp < 40`
|
||||
`http 192.168.10.25 buttonSet_1_1`
|
||||
`end`
|
||||
|
||||
Настройки esp02:
|
||||
|
||||
`button 1 13 Включить#реле Реле 0 1`
|
||||
|
||||
И теперь когда температура датчика на esp01 станет меньше 40 градусов то на esp02 будет отправлена команда на включение кнопки: buttonSet_1_1
|
||||
|
||||
Если вы хотите отправить команду через mqtt то сценарий будет выглядеть следующим образом:
|
||||
|
||||
`temp < 40`
|
||||
`mqtt 12343442-12413131 buttonSet_1_1`
|
||||
`end`
|
||||
|
||||
где `12343442-12413131` id esp02 той на которую отправляем команду. Id можно взять в веб интерфейсе на странице конфигурация устройства. Или в списке устройств в сети.
|
||||
|
||||
Теперь рассмотрим вариант внешнего управления esp с помощью get запросов.
|
||||
|
||||
`http://192.168.88.239/cmd?command=buttonSet%201%201`
|
||||
|
||||
Разберем эту строку. Сама команда в ней выглядит вот так: buttonSet%201%201. `%20` заменяют пробел.
|
||||
|
||||
То есть что бы составить get запрос на изменение например pwm нужно:
|
||||
|
||||
Взять команду `pwmSet 1 500`
|
||||
Заменить в ней пробелы на `%20` получится так: `pwmSet%201%20500`
|
||||
И добавить ее в конец строки `http://192.168.88.239/cmd?command=` где указывается ip адрес устройства
|
||||
|
||||
В итоге получится http://192.168.88.239/cmd?command=pwmSet%201%20500
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
85
doc/2.txt
85
doc/2.txt
@@ -1,85 +0,0 @@
|
||||
# В этой инструкции будет описано как с esp отправлять email и push
|
||||
|
||||
# Часть 1. Привязать email и pushbullet к сайту pushingbox
|
||||
|
||||
### 1. Необходимо перейти на сайт: [pushingbox](https://www.pushingbox.com/)
|
||||
### 2. Войти с помощью google
|
||||

|
||||
### 3. Перейти в мои сервисы и добавить новый сервис
|
||||

|
||||
### 4. Нас интересуют два сервиса email и pushbullet
|
||||

|
||||
### 5. Выбираем сначало сервис для отправки email. В окно `Name of your email configuration` - вводим слово "email". В окно `Email address` - вводим ваш email адрес. жмем submit
|
||||

|
||||
manager_modules_firmware/blob/master/push_instruction/Screenshot_6.png)
|
||||
### 6.1 Привязываем pushbullet. Переходим на сайт [pushbullet.com](https://www.pushbullet.com/)
|
||||
### 6.2 Входим с гуглом или фейсбуком
|
||||
### 6.3 Идем в настройки
|
||||

|
||||
### 6.4 Создаем токен
|
||||

|
||||
### 6.5 Идем опять в сервисы и теперь выбираем сервис pushbullet [pushingbox.com/services](https://www.pushingbox.com/services.php) нажимаем add service
|
||||
### Берем токен, и вставляем его в окно Access token.
|
||||
### Окно Device token (optional) оставляем пустым.
|
||||
### В окно Name of your Pushbullet configuration пишем слово "push".
|
||||

|
||||
|
||||
### 7. Теперь наш email и pushbullet привязаны к pushingbox. Далее можно скачать приложение pushbullet на телефон и войти с гуглом или фейсбуком сответственно с пунктом 6.3 этой инструкции
|
||||

|
||||
|
||||
# Часть 2. Создание сценариев отправки email
|
||||
|
||||
### 8.1. Сценарий для отправки email. Заходим в My Scenarios:
|
||||

|
||||
|
||||
### 8.2 Пишем слово email (это имя сценария отправки email) жмем add:
|
||||

|
||||
### 8.3 Нажимаем add an action
|
||||

|
||||
### 8.4 Выбираем наш email который мы зарегестрировали ранее и нажимаем Add an action with this service
|
||||

|
||||
### 8.5 Делаем все как на скриншоте и жмем submit
|
||||

|
||||
### 8.6 Возвращаемся на мои сценарии
|
||||

|
||||
### 8.7 Вставляем токен в веб интерфейс esp
|
||||

|
||||
|
||||
# Часть 3. Создание сценариев отправки push
|
||||
|
||||
### 9.1. Сценарий для отправки push. Заходим в My Scenarios:
|
||||

|
||||
|
||||
### 9.2 Пишем слово push (это имя сценария отправки email) жмем add:
|
||||

|
||||
### 9.3 Нажимаем add an action
|
||||

|
||||
### 9.4 Выбираем наш pushbullet который мы зарегестрировали ранее и нажимаем Add an action with this service
|
||||

|
||||
### 9.5 Делаем все как на скриншоте и жмем submit
|
||||

|
||||
### 9.6 Возвращаемся на мои сценарии
|
||||

|
||||
### 9.7 Вставляем токен в веб интерфейс esp
|
||||

|
||||
|
||||
# Часть 4. Итог
|
||||
|
||||
При создании такой конфигурации как на картинке:
|
||||
|
||||
`button 1 na Отправить#push Push 0 1`
|
||||
|
||||
|
||||
`button1 = 1`
|
||||
`push внимание кнопка#нажата`
|
||||
`end`
|
||||
|
||||

|
||||
|
||||
Если мы введем токен для email то будут приходить email
|
||||

|
||||
|
||||
Если для push то будут приходить push в pushbullet
|
||||

|
||||
|
||||
Способ описанный в данной инструкции более сложный в настройке но зато очень надежный.
|
||||
32
doc/3.txt
32
doc/3.txt
@@ -1,32 +0,0 @@
|
||||
***
|
||||

|
||||
|
||||
### 1. Скачать архив из [релизов](https://github.com/DmitryBorisenko33/esp32-esp8266_iot-manager_modules_firmware/releases) или из закрепленного сообщения группы телеграм с последней версией прошивки
|
||||
|
||||
***
|
||||

|
||||
|
||||
|
||||
### 2. Для ESP8266 c 4 и больше мб памяти (все сделать как на скриншотах)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
***
|
||||

|
||||
|
||||
### 2. Для ESP8266 c 1 мб памяти (все сделать как на скриншотах)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
***
|
||||

|
||||
|
||||
### 2. Для ESP32 (все сделать как на скриншотах)
|
||||
|
||||

|
||||
|
||||

|
||||
@@ -1,3 +0,0 @@
|
||||
button 1 5 Включить#реле Реле 0 1
|
||||
|
||||
//это простая кнопка номер 1 управляющая пином 5 имеющая начальное состояние 0
|
||||
@@ -1,6 +0,0 @@
|
||||
inputTime time1 Во#сколько#включить? Таймеры 20-30-00 1
|
||||
inputTime time2 Во#сколько#выключить? Таймеры 20-35-00 2
|
||||
button 1 5 Кнопка#(по#таймеру) Таймеры 0 3
|
||||
|
||||
//время в приложение необходимо вводить в строгом формате: ЧЧ-ММ-СС
|
||||
//можно создавать любое количество таймеров, копируя строку inputTime...
|
||||
@@ -1,4 +0,0 @@
|
||||
button 1 5 Вкл#на#время Таймеры 0 1
|
||||
inputDigit digit1 Через#сколько#секунд#выключить? Таймеры 5 2
|
||||
|
||||
//в сценариях можно поменять на sec, min или hours если нужны другие размерности времени
|
||||
@@ -1,3 +0,0 @@
|
||||
button 1 na Включить#все Освещение 0 1
|
||||
|
||||
//при нажатии на эту кнопку пины номер 5 и 13 поведут себя как установленно в сценариях
|
||||
@@ -1,4 +0,0 @@
|
||||
button 1 13 Включить#реле Реле 0 1
|
||||
switch 1 0 10
|
||||
|
||||
//можно управлять реле на пине 13 кнопкой на пине 0 или кнопкой в приложении
|
||||
@@ -1,6 +0,0 @@
|
||||
button 1 5 Включить#все Реле 0 1
|
||||
|
||||
|
||||
//что бы использовать эту конфигурацию на другой esp необходимо активировать пресет
|
||||
//"Вкл. выкл. локального реле", затем в сценарии данного модуля подставить Device ID
|
||||
//того esp, кнопка на этом девайсе будет выключать другие устройства по воздуху
|
||||
@@ -1,6 +0,0 @@
|
||||
switch 1 0 10
|
||||
|
||||
//что бы использовать эту конфигурацию на другой esp необходимо активировать пресет
|
||||
//"Вкл. выкл. локального реле", затем в сценарии данного модуля подставить Device ID
|
||||
//того esp, к данному модулю нужно подключить кнопку к пину 0 и тогда
|
||||
//один девайс будет управлять другим по воздуху
|
||||
@@ -1,6 +0,0 @@
|
||||
pwm 1 3 Яркость#коредор: Реле 1023 1
|
||||
pwm 2 4 Яркость#ванная: Реле 510 2
|
||||
|
||||
//в приложении появятся ползунки, соответствующее значение pwm
|
||||
//будет установленно на пинах 3 и 4
|
||||
//1023 и 510 это начальные значения после загрузки модуля
|
||||
@@ -1,7 +0,0 @@
|
||||
dhtT t 2 dht11 Температура#DHT,#t°C Датчики anydata 1
|
||||
dhtH h 2 dht11 Влажность#DHT,#t°C Датчики anydata 2
|
||||
dhtComfort Степень#комфорта: Датчики 3
|
||||
dhtPerception Восприятие: Датчики 4
|
||||
dhtDewpoint Точка#росы: Датчики 5
|
||||
logging t 1 50 Температура Датчики 6
|
||||
logging h 1 50 Влажность Датчики 7
|
||||
@@ -1,7 +0,0 @@
|
||||
dhtT t 2 dht22 Температура#DHT,#t°C Датчики anydata 1
|
||||
dhtH h 2 dht22 Влажность#DHT,#t°C Датчики anydata 2
|
||||
dhtComfort Степень#комфорта: Датчики 3
|
||||
dhtPerception Восприятие: Датчики 4
|
||||
dhtDewpoint Точка#росы: Датчики 5
|
||||
logging t 1 50 Температура Датчики 6
|
||||
logging h 1 50 Влажность Датчики 7
|
||||
@@ -1,8 +0,0 @@
|
||||
analog adc 0 Аналоговый#вход,#% Датчики progress-round 310 620 1 100 1
|
||||
logging adc 5 100 Аналоговый#вход Датчики 2
|
||||
|
||||
//если датчик углекислого газа выдает напряжение от 1 вольта до 2 вольт, то значит
|
||||
//значение чтения аналогового входа будут примерно равным
|
||||
//при 1 вольте - 310, а при 2 вольтах - 620 (считаем по пропорции)
|
||||
//данная строка переведет диапазон 310-620 в диапазон 1-100 и отобразит в приложении
|
||||
//варианты отображения: anydata, progress-round, progress-line, fillgauge
|
||||
@@ -1,6 +0,0 @@
|
||||
bmp280T temp1 0x76 Температура#bmp280 Датчики anydata 1
|
||||
bmp280P press1 0x76 Давление#bmp280 Датчики anydata 2
|
||||
logging temp1 1 100 Температура Датчики 3
|
||||
logging press1 1 100 Давление Датчики 4
|
||||
|
||||
//Чтение и логгирование датчика bmp280. Датчик подключается к шине i2c (esp8266 - gpio 5, 4)
|
||||
@@ -1,9 +0,0 @@
|
||||
bme280T temp1 0x76 Температура#bmp280 Датчики anydata 1
|
||||
bme280P pres1 0x76 Давление#bmp280 Датчики anydata 2
|
||||
bme280H hum1 0x76 Влажность#bmp280 Датчики anydata 3
|
||||
bme280A altit1 0x76 Высота#bmp280 Датчики anydata 4
|
||||
logging temp1 1 100 Температура Датчики 5
|
||||
logging press1 1 100 Давление Датчики 6
|
||||
logging hum1 1 100 Влажность Датчики 7
|
||||
|
||||
//Чтение и логгирование датчика bme280. Датчик подключается к шине i2c (esp8266 - gpio 5, 4)
|
||||
@@ -1,7 +0,0 @@
|
||||
dallas temp1 2 1 Температура Датчики anydata 1
|
||||
dallas temp2 2 2 Температура Датчики anydata 2
|
||||
logging temp1 1 100 Температура Датчики 3
|
||||
logging temp2 1 100 Температура Датчики 4
|
||||
|
||||
//2 - номер пина датчика
|
||||
//варианты отображения: anydata, progress-round, progress-line, fillgauge
|
||||
@@ -1,12 +0,0 @@
|
||||
dallas 2 Водонагреватель,#t°C Термостат anydata 1
|
||||
logging dallas 5 100 Температура Термостат 2
|
||||
inputDigit digit1 При#скольки#выключить? Термостат 40 3
|
||||
inputDigit digit2 При#скольки#включить? Термостат 20 4
|
||||
button 1 5 Нагреватель Термостат 0 5
|
||||
button 2 line1,line2, Автоматический#режим Термостат 1 6
|
||||
|
||||
//2 - номер пина датчика
|
||||
//5 - номер пина реле
|
||||
//это термостат который будет держать температуру между двумя
|
||||
//установленными в приложении значениями, так же можно выключить
|
||||
//автоматический режим, и тогда нагреватель будет управляться в ручную
|
||||
@@ -1,12 +0,0 @@
|
||||
levelPr p 14 12 Уровень#в#баке,#% Датчики fillgauge 125 25 1
|
||||
ultrasonicCm cm 14 12 Дистанция,#см Датчики anydata 2
|
||||
inputDigit digit1 При#скольки#выключить? Датчики 95 3
|
||||
inputDigit digit2 При#скольки#включить? Датчики 10 4
|
||||
button 1 5 Насос Датчики 0 5
|
||||
logging p 1 100 Вода#в#баке Датчики 6
|
||||
|
||||
//125 - это расстояние от датчика до дна бака в сантиметрах
|
||||
//25 - это расстояние от датчика до поверхности воды когда бак полный в сантиметрах
|
||||
//distancePr - эта строка выводит процент заполнения бака
|
||||
//distanceCm - эта строка выводит расстояние в сантиметрах
|
||||
//варианты отображения: anydata, progress-round, progress-line, fillgauge
|
||||
@@ -1,11 +0,0 @@
|
||||
button 1 5 Прихожая Освещение 0 1
|
||||
inputDigit digit1 Задержка#выключения Освещение 30 2
|
||||
switch 1 0 10
|
||||
|
||||
//0 - номер пина датчика движения
|
||||
//5 - номер пина реле
|
||||
//при срабатывании датчика движения включится реле и обратный таймер на 30 сек
|
||||
//если движение не будет обнаружено повтороно в течении 30 секунд - свет выключится
|
||||
//если движение повторится в течении 30 секунд то таймер продлится опять на 30 сек
|
||||
//свет выключится только в том случае если в комнате все замрет на 30 сек
|
||||
//задержку выключения можно будет настраивать в приложении
|
||||
@@ -1,12 +0,0 @@
|
||||
switch 1 0 20
|
||||
text 1 Вход: Охрана 1
|
||||
textSet 1 не#обнаружено-time
|
||||
button 1 na Сбросить Охрана 0 2
|
||||
button 2 line3, Включить#push Охрана 1 3
|
||||
|
||||
//0 - номер пина датчика
|
||||
//при срабатывании датчика движения устройство пошлет пуш и в приложении будет
|
||||
//написано в текстовом поле, что движение было обнаружено
|
||||
//так же будет зафиксирован момент времени срабатывания датчика
|
||||
//в приложении можно отключать отправку пуш сообщений на тот случай если дома хозяин
|
||||
//перевести датчик снова в режим ожидания движения можно нажав кнопку сброса в приложении
|
||||
@@ -1,17 +0,0 @@
|
||||
stepper 1 12 4
|
||||
stepper 2 13 5
|
||||
button 1 na Открыть#штору#1 Шторы 0 1
|
||||
button 2 na Открыть#штору#2 Шторы 0 2
|
||||
|
||||
//для подключения необходим драйвер шагового двигателя A4988
|
||||
|
||||
//stepper 1 12 4 шаговый двигатель с параметрами: 1 - номер шагового двигателя,
|
||||
//12 - номер пина количества шагов, 4 - номер пина направления
|
||||
|
||||
//stepper 2 13 5 шаговый двигатель с параметрами: 2 - номер шагового двигателя,
|
||||
//13 - номер пина количества шагов, 5 - номер пина направления
|
||||
|
||||
//stepperSet 1 200 5 - прокрутить шаговик номер 1 на 200 шагов по часовой стрелке
|
||||
//с задержкой между шагами 5 милисекунд (чем меньше задержка тем больше скорость)
|
||||
//если поставить -200 то будет вращаться против часовой стрелки
|
||||
//можно подключить не более двух шаговиков
|
||||
@@ -1,17 +0,0 @@
|
||||
servo 1 12 50 Мой#сервопривод Сервоприводы 0 100 0 180 1
|
||||
servo 2 13 50 Мой#сервопривод Сервоприводы 0 100 0 180 2
|
||||
button 1 na Открыть1 Сервоприводы 0 3
|
||||
button 2 na Открыть2 Сервоприводы 0 4
|
||||
|
||||
//Можно создавать не более двух сервоприводов на одном устройстве.
|
||||
//1 - номер привода
|
||||
//12 - номер пина
|
||||
//50 - начальное значение в процентах
|
||||
|
||||
//0 - 100 диапазон ползунка
|
||||
//0 - 180 диапазон угла
|
||||
|
||||
//Представим ситуацию когда есть некая заслонка и при угле в 30 градусов она закрыта,
|
||||
//а при угле в 90 градусов открыта. В этом случае необходимо написать
|
||||
//0 100 30 90 и тогда поставив ползунок в 0 % серва встанет в положение 30 градусов,
|
||||
//а если поставить ползунок в 100 % серва встанет в положение 90 градусов.
|
||||
@@ -1,7 +0,0 @@
|
||||
serialBegin 9600 12 13
|
||||
button 1 na Управляется#из#arduino Serial 0 1
|
||||
button 2 na Отправить#в#arduino Serial 0 2
|
||||
text 1 Текст#из#arduino Serial 3
|
||||
|
||||
//12 13 это пины uart к которым вы можете подключить arduino. Скетч для arduino выложен в группу.
|
||||
//команда serialWrite ard-on отправит в arduino текст ard-on
|
||||
@@ -1,12 +0,0 @@
|
||||
button 1 na Включить#все Реле 0 1
|
||||
button 2 13 Прихожая Реле 0 2
|
||||
button 3 14 Кухня Реле 0 3
|
||||
pwm 1 3 Яркость#коредор: Реле 1023 4
|
||||
pwm 2 4 Яркость#ванная: Реле 510 5
|
||||
analog adc 0 Аналоговый#вход Датчики fillgauge 1 1023 1 1023 6
|
||||
logging adc 1 100 Аналоговый#вход Датчики 7
|
||||
|
||||
//Это демо конфигурация. В ней показано как связать кнопки c помощью сценариев
|
||||
//Кнопка номер 1 связана с кнопкой 2, 3 и с pwm 2
|
||||
//Так же продемонстрированна система логгирования данных строкой logging
|
||||
//1 - это интервал между точками в минутах, 100 это количество точек
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
timenow = time1
|
||||
buttonSet 1 1
|
||||
end
|
||||
timenow = time2
|
||||
buttonSet 1 0
|
||||
end
|
||||
@@ -1,6 +0,0 @@
|
||||
button1 = 1
|
||||
timerStart 1 digit1 sec
|
||||
end
|
||||
timer1 = 0
|
||||
buttonSet 1 0
|
||||
end
|
||||
@@ -1,8 +0,0 @@
|
||||
button1 = 1
|
||||
pinSet 5 1
|
||||
pinSet 13 0
|
||||
end
|
||||
button1 = 0
|
||||
pinSet 5 0
|
||||
pinSet 13 1
|
||||
end
|
||||
@@ -1,3 +0,0 @@
|
||||
switch1 = 1
|
||||
buttonChange 1
|
||||
end
|
||||
@@ -1,8 +0,0 @@
|
||||
button1 = 1
|
||||
mqtt 3233662-1589485 buttonSet_1_1
|
||||
mqtt 2233662-1589486 buttonSet_1_1
|
||||
end
|
||||
button1 = 0
|
||||
mqtt 3233662-1589485 buttonSet_1_0
|
||||
mqtt 2233662-1589486 buttonSet_1_0
|
||||
end
|
||||
@@ -1,4 +0,0 @@
|
||||
switch1 = 1
|
||||
mqtt 3233662-1589485 buttonChange_1
|
||||
mqtt 2233662-1589486 buttonChange_1
|
||||
end
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
dallas > digit1
|
||||
buttonSet 1 0
|
||||
end
|
||||
dallas < digit2
|
||||
buttonSet 1 1
|
||||
end
|
||||
@@ -1,6 +0,0 @@
|
||||
p > digit1
|
||||
buttonSet 1 0
|
||||
end
|
||||
p < digit2
|
||||
buttonSet 1 1
|
||||
end
|
||||
@@ -1,7 +0,0 @@
|
||||
switch1 = 1
|
||||
timerStart 1 digit1 sec
|
||||
buttonSet 1 1
|
||||
end
|
||||
timer1 = 0
|
||||
buttonSet 1 0
|
||||
end
|
||||
@@ -1,10 +0,0 @@
|
||||
switch1 = 1
|
||||
textSet 1 обнаружено#движение-time
|
||||
end
|
||||
button1 = 1
|
||||
textSet 1 не#обнаружено-time
|
||||
buttonSet 1 0
|
||||
end
|
||||
switch1 = 1
|
||||
push Внимание обнаружено#движение!
|
||||
end
|
||||
@@ -1,12 +0,0 @@
|
||||
button1 = 1
|
||||
stepperSet 1 200 1
|
||||
end
|
||||
button1 = 0
|
||||
stepperSet 1 -200 1
|
||||
end
|
||||
button2 = 1
|
||||
stepperSet 2 200 1
|
||||
end
|
||||
button2 = 0
|
||||
stepperSet 2 -200 1
|
||||
end
|
||||
@@ -1,12 +0,0 @@
|
||||
button1 = 1
|
||||
servoSet 1 100
|
||||
end
|
||||
button1 = 0
|
||||
servoSet 1 0
|
||||
end
|
||||
button2 = 1
|
||||
servoSet 2 100
|
||||
end
|
||||
button2 = 0
|
||||
servoSet 2 0
|
||||
end
|
||||
@@ -1,6 +0,0 @@
|
||||
button2 = 1
|
||||
serialWrite ard-11-1
|
||||
end
|
||||
button2 = 0
|
||||
serialWrite ard-11-0
|
||||
end
|
||||
@@ -1,13 +0,0 @@
|
||||
button1 = 1
|
||||
buttonSet 2 1
|
||||
buttonSet 3 1
|
||||
pwmSet 2 1024
|
||||
end
|
||||
button1 = 0
|
||||
buttonSet 2 0
|
||||
buttonSet 3 0
|
||||
pwmSet 2 0
|
||||
end
|
||||
adc > 50
|
||||
buttonSet 2 1
|
||||
end
|
||||
@@ -1 +0,0 @@
|
||||
0;analog-adc;id;fillgauge;Сенсоры;Аналоговый;order;gol;map[0,1024,0,100];c[1]
|
||||
@@ -1 +0,0 @@
|
||||
0;bme280-hum;id;anydataHum;Сенсоры;Влажность;order;addr[0x76];c[1]
|
||||
@@ -1 +0,0 @@
|
||||
0;bme280-press;id;anydataPress;Сенсоры;Давление;order;addr[0x76];c[1]
|
||||
@@ -1 +0,0 @@
|
||||
0;bme280-temp;id;anydataTemp;Сенсоры;Температура;order;addr[0x76];c[1]
|
||||
@@ -1 +0,0 @@
|
||||
0;bmp280-press;id;anydataPress;Сенсоры;Давление;order;addr[0x76];c[1]
|
||||
@@ -1 +0,0 @@
|
||||
0;bmp280-temp;id;anydataTemp;Сенсоры;Температура;order;addr[0x76];c[1]
|
||||
@@ -1 +0,0 @@
|
||||
0;button-in;id;toggle;Кнопки;Освещение;order;pin;db[20]
|
||||
@@ -1 +0,0 @@
|
||||
0;button-out;id;toggle;Кнопки;Освещение;order;pin;inv[1]
|
||||
@@ -1 +0,0 @@
|
||||
0;button-out;id;toggle;Кнопки;Освещение;order
|
||||
@@ -1 +0,0 @@
|
||||
0;button-out;id;toggle;Кнопки;Освещение;order;pin
|
||||
@@ -1 +0,0 @@
|
||||
0;count-down;id;anydata;Таймер;Обратный#отчет;order
|
||||
@@ -1 +0,0 @@
|
||||
0;dallas-temp;id;anydataTemp;Сенсоры;Температура;order;sal;index[0];int[10]
|
||||
@@ -1 +0,0 @@
|
||||
0;dht-hum;id;anydataHum;Сенсоры;Влажность;order;thd;type[dht11];c[1]
|
||||
@@ -1 +0,0 @@
|
||||
0;dht-temp;id;anydataTemp;Сенсоры;Температура;order;thd;type[dht11];c[1]
|
||||
@@ -1 +0,0 @@
|
||||
0;dht-hum;id;anydataHum;Сенсоры;Влажность;order;thd;type[dht22];c[1]
|
||||
@@ -1 +0,0 @@
|
||||
0;dht-temp;id;anydataTemp;Сенсоры;Температура;order;thd;type[dht22];c[1]
|
||||
@@ -1 +0,0 @@
|
||||
0;impuls-out;id;na;na;na;order;pin
|
||||
@@ -1 +0,0 @@
|
||||
0;inoutput;id;inputDigit;Ввод;Введите#цифру;order
|
||||
@@ -1 +0,0 @@
|
||||
0;inoutput;id;inputTime;Ввод;Введите#время;order
|
||||
@@ -1 +0,0 @@
|
||||
0;logging;id;chart;Графики;История;order;val[any];int[60];cnt[100]
|
||||
@@ -1 +0,0 @@
|
||||
0;modbus;id;anydata;Modbus;Регистр;order;addr[1];reg[0];c[1]
|
||||
@@ -1 +0,0 @@
|
||||
0;inoutput;id;anydata;Вывод;Сигнализация;order
|
||||
@@ -1 +0,0 @@
|
||||
0;pwm-out;id;range;Ползунки;Яркость;order;pin
|
||||
@@ -1 +0,0 @@
|
||||
0;button-out;id;toggle;Кнопки;Освещение;order;type[UART]
|
||||
@@ -1 +0,0 @@
|
||||
0;inoutput;id;anydata;Вывод;Вывод#uart;order
|
||||
@@ -1 +0,0 @@
|
||||
0;ultrasonic-cm;id;anydata;Сенсоры;Расстояние;order;cin;map[0,500,0,100];c[1];int[10]
|
||||
@@ -1 +0,0 @@
|
||||
0;uptime;id;anydataTime;Системные;%name%#uptime;order
|
||||
@@ -1,5 +0,0 @@
|
||||
0;dallas-temp;temp;anydataTemp;Термостат;Температура;1;pin[2];index[0];int[10]
|
||||
0;logging;log;chart;Термостат;История;2;val[temp];int[60];cnt[100]
|
||||
0;inoutput;inputU;inputDigit;Термостат;Верхний#порог;3
|
||||
0;inoutput;inputL;inputDigit;Термостат;Нижний#порог;4
|
||||
0;button-out;button;toggle;Термостат;Нагрев;5;pin[12]
|
||||
@@ -1,8 +0,0 @@
|
||||
temp > inputU
|
||||
button 0
|
||||
telegram нагрев#выключен 1
|
||||
end
|
||||
temp < inputL
|
||||
button 1
|
||||
telegram нагрев#включен 1
|
||||
end
|
||||
@@ -1,12 +0,0 @@
|
||||
0;dallas-temp;temp;anydataTemp;Термостат;Температура;1;pin[2];index[0];int[60]
|
||||
0;logging;log;chart;Термостат;История;2;val[temp];int[10];cnt[100]
|
||||
0;inoutput;threshold;inputDigitTemp;Термостат;Заданная#температура;3
|
||||
0;button-out;heater;toggle;Термостат;Нагреватель;7;pin[12]
|
||||
0;inoutput;time1;inputTimeClock;Расписание;Утренний#период;8
|
||||
0;inoutput;threshold1;inputDigitTemp;Расписание;Температура;9
|
||||
0;inoutput;time2;inputTimeClock;Расписание;Дневной#период;10
|
||||
0;inoutput;threshold2;inputDigitTemp;Расписание;Температура;11
|
||||
0;inoutput;time3;inputTimeClock;Расписание;Вечерний#период;12
|
||||
0;inoutput;threshold3;inputDigitTemp;Расписание;Температура;13
|
||||
0;inoutput;time4;inputTimeClock;Расписание;Ночной#период;14
|
||||
0;inoutput;threshold4;inputDigitTemp;Расписание;Температура;15
|
||||
@@ -1,18 +0,0 @@
|
||||
temp > threshold+-2
|
||||
heater 0
|
||||
end
|
||||
temp < threshold+-2
|
||||
heater 1
|
||||
end
|
||||
timenow = time1
|
||||
threshold threshold1
|
||||
end
|
||||
timenow = time2
|
||||
threshold threshold2
|
||||
end
|
||||
timenow = time3
|
||||
threshold threshold3
|
||||
end
|
||||
timenow = time4
|
||||
threshold threshold4
|
||||
end
|
||||
@@ -1,5 +0,0 @@
|
||||
0;dht-hum;hum;anydataHum;Теплица;Влажность;1;pin[2];type[dht11];c[1]
|
||||
0;logging;log;chart;Теплица;История;2;val[hum];int[60];cnt[100]
|
||||
0;inoutput;inputU;inputDigit;Теплица;Верхний#порог;3
|
||||
0;inoutput;inputL;inputDigit;Теплица;Нижний#порог;4
|
||||
0;button-out;button;toggle;Теплица;Полив;5;pin[12]
|
||||
@@ -1,8 +0,0 @@
|
||||
hum > inputU
|
||||
button 0
|
||||
telegram полив#выключен 1
|
||||
end
|
||||
hum < inputL
|
||||
button 1
|
||||
telegram полив#включен 1
|
||||
end
|
||||
@@ -1,4 +0,0 @@
|
||||
0;button-out;button1;toggle;Реле;Освещение;1;pin[12]
|
||||
0;button-out;button2;toggle;Реле;Освещение;2;pin[13]
|
||||
0;inoutput;T1;inputTime;Реле;Введите#время#включения;3
|
||||
0;inoutput;T2;inputTime;Реле;Введите#время#выключения;4
|
||||
@@ -1,8 +0,0 @@
|
||||
timenow = T1
|
||||
button1 1
|
||||
button2 0
|
||||
end
|
||||
timenow = T2
|
||||
button1 0
|
||||
button2 1
|
||||
end
|
||||
@@ -1,7 +0,0 @@
|
||||
0;button-out;button-out-1;toggle;Кнопки;Выключить#все;1
|
||||
0;button-out;button-out-2;toggle;Кнопки;Гостинная;2;pin[12]
|
||||
0;button-out;button-out-3;toggle;Кнопки;Спальня;3;pin[13]
|
||||
0;button-out;button-out-4;toggle;Кнопки;Прихожая;4;pin[14]
|
||||
0;pwm-out;pwm-out-5;range;Кнопки;Яркость;5;pin[15]
|
||||
0;pwm-out;pwm-out-6;range;Кнопки;Яркость;6;pin[16]
|
||||
0;inoutput;output-text-7;anydata;Кнопки;Статус;7
|
||||
@@ -1,16 +0,0 @@
|
||||
button-out-1 = 1
|
||||
button-out-2 1
|
||||
button-out-3 1
|
||||
button-out-4 1
|
||||
pwm-out-5 200
|
||||
pwm-out-6 800
|
||||
output-text-7 включено
|
||||
end
|
||||
button-out-1 = 0
|
||||
button-out-2 0
|
||||
button-out-3 0
|
||||
button-out-4 0
|
||||
pwm-out-5 800
|
||||
pwm-out-6 200
|
||||
output-text-7 выключено
|
||||
end
|
||||
@@ -1,3 +0,0 @@
|
||||
0;button-out;button;toggle;Таймер;Освещение;1;pin[12]
|
||||
0;count-down;count;anydata;Таймер;Обратный#отчет;2
|
||||
0;inoutput;input;inputDigit;Таймер;Введите#цифру;3
|
||||
@@ -1,6 +0,0 @@
|
||||
button = 1
|
||||
count input
|
||||
end
|
||||
count = 0
|
||||
button 0
|
||||
end
|
||||
@@ -1,4 +0,0 @@
|
||||
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
|
||||
@@ -1,10 +0,0 @@
|
||||
sensor = 1
|
||||
text обнаружено
|
||||
time %date%
|
||||
telegram text обнаружено#движение 1
|
||||
end
|
||||
reset = 1
|
||||
text не#обнаружено
|
||||
time %date%
|
||||
reset 0
|
||||
end
|
||||
@@ -1,4 +0,0 @@
|
||||
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
|
||||
@@ -1,7 +0,0 @@
|
||||
sensor = 1
|
||||
light 1
|
||||
count period
|
||||
end
|
||||
count = 0
|
||||
light 0
|
||||
end
|
||||
@@ -1,2 +0,0 @@
|
||||
0;button-out;light;toggle;Кнопки;Освещение;1;pin[13]
|
||||
0;button-in;switch;na;na;na;2;pin[0];db[20]
|
||||
@@ -1,3 +0,0 @@
|
||||
switch = 1
|
||||
light change
|
||||
end
|
||||
Reference in New Issue
Block a user