Опция простого скриптового языка для создания своей логики и математики: управление GPIO, вывод на дисплеи по условиям, отправка http get запросов с параметрами. Редактор скриптов находится непосредственно на самом модуле в веб интерфейсе. Вызов скрипта происходит по указанному интервалу в настройках.
Документация ниже относится к версии Interpreter (v2.2).
Обновление 24.02.2023 - Версия v2.2. Установка системных переменных intvalX через знак равно. Поддержка таймеров, запись переменных во flash и eeprom.
25.02.2023 - добавлена поддержка gpio event.
Внешний вид веб интерфейса редактора скриптов:
17.04.2017 - исправлена работа оператора goto.
01.05.2017 - обновлен список переменных датчиков.
17.11.2018 - доступна 2 версия интерпретатора.
14.08.2020 - упразднена документация по первой версии интерпретатора.
06.02.2021 - глобальное обновление имен переменных. Актуальный список переменных на модуле на вкладке Metrics.
28.08.2021 - добавлена поддержка расширенной работы с математикой и поддержка дробных чисел (только RTOS). Документация ниже.
31.01.2022 - обновление версии Interpreterа до 2.1. Глобальные переменные сейчас везде начинаются с нумерации от 1.
04.03.2022 - переменные состояния gpio и pwm сейчас называются как gpioX и pwmX , где Х - номер gpio или pwm.
24.02.2023 - обновление версии Interpreterа до 2.2. Установка системных переменных intvalX через знак равно. Поддержка таймеров, запись переменных во flash и eeprom.
25.02.2023 - добавлена поддержка gpio event.
gpioset(x,y*) - установка gpio. Пример gpioset(5,1). Не рекомендуется использовать vgpio и d2d номера при частом интервале выполнения скрипта
pwmset(x,y**) - установка уровня ШИМ, где x - номер ШИМ, y - значение ШИМ. Пример pwmset(1,200).
thermoset(x,y**) - управление термостатом, где x - номер термостата, у - установка термостата. Пример в документации термостата.
if (условие*) - условный оператор. Поддерживается сравнение == , != , < , > , >= , <=. Более подробное описание ниже:
endif - обязательный оператор окончания действия оператора if.
end - выход из скрипта.
else - после этого оператора выполняется код если условие if не выполнилось. Обязательное использование совместно с if.
delay(x) - остановка скрипта на указанное количество миллисекунд. На работу модуля не влияет. На время остановки запуск по интервалу не происходит.
beep(x,y) - генерация частоты через опцию beeper, где x - время, y - частота. Подробнее в описание в опции.
goto XXX переход к строке по ссылке XXX. Ссылка ставится в любом месте кода в виде :XXX , без использования delay количество переходов ограничено.
reboot() - перезапуск модуля.
speakline(строка) - воспроизведение MP3 из конструктора фраз. Возможно указать как номер шаблона в виде #1 так и сам шаблон.
mp3cmd(команда,параметр) - управление MP3 UART плеером , все команды в документации на плеер.
valset(x,y*) - установка значения y глобальной переменной x, номер переменой x считается от 1. Устаревшая функция, используйте приравнивание (Пример 16).
valmath(X,Y+Z) - математическое действие, описание ниже. Устаревшая функция, используйте приравнивание (Пример 16).
playwav(путь_до_файла) - проигрывание mp3/wav файла(ESP32).
imageprint(путь_до_файла) - вывод картинки на TFT дисплей(ESP32).
debug(х) - включает или отключает отладку в UART, только для ESP32 и ESP8266RTOS. x - 1 или 0.
httpget(url) - отправить по http строку данных. url - адрес/путь. Подробное описание ниже.
load(имя_файла) - выполняет файл скрипта с диска SD&SPIFFS (ESP32 и ESP8266RTOS), а так же в Linux приложении. Подробное описание ниже.
rgbsend(hex строка) - управление WS2812. Подробности в документации.
rgb16send(hex строка) -управление WS2812. Подробности в документации.
mqttsend(топик,значение) - отправка данных в mqtt. Значение может содержать шаблоны и метрики.
stepper(х,у*) - управление степпером.
irsendraw(hex данные) - отправка raw ИК команд.
irsend(режим,команда) - отправка ИК команды.
sleep(x) - отправка модуля в спящий режим на время х (секунды). Требуется установка опции спящего режима.
Строки, начинающиеся с // считаются комментариями, удобно временно отключать строку скрипта.
* - можно указывать переменные.
** - поддерживается математическое выражение. Должна быть самая актуальная прошивка.
В дополнительных настройках(в шестеренке) доступно изменение максимального размера скрипта, По умолчанию размер установлен в 500 байт(+1 байт окончание строки), максимальный размер определен максимальным значением числа на вкладке debug в строке Len mem config , для ESP8266 конструктора это значение ограничено 4096 байт, для ESP8266 RTOS и ESP32 - 8192. Максимальный размер скрипта так же ограничен возможностями веб сервера.
Обратите внимание, что у уже настроенного модуля изменение параметра размера , если опция NVS2 не включена, повлечет повреждение некоторых настроек у опций!!!
if(условие*) - условный оператор,. Поддерживается сравнение == , != , < , > , >= , <=. Пробелы не допускаются
Условие может содержать несколько сравнений, через оператор ИЛИ , например if(second==0||second==30) - включить или на 0 или на 30 секунде.
И через оператор И, например if(second>=10&&second<=30) -включить, когда секунды больше либо равно 10 и меньше либо равно 30 т.е. включаем когда секунды в диапазоне от 10 до 30.
else - необязательный оператор. После этого оператора выполняется код если условие if не выполнилось.
endif - этим оператором должно заканчиваться секция действий оператора if.
Вариант с else:if(условие) функции, когда условие выполняется else функции, когда условие не выполняется endifВариант без else:
if(условие) функции, когда условие выполнено endif
Поддерживается вложенность операторов до 255 уровней! После endif выполнение скрипта продолжается.
goto внутри if использовать крайне не рекомендуется, допустимо, если это бесконечный цикл с условием, где идет выход из скрипта по оператору end
На модулях ESP32 и ESP8266(RTOS) возможна работа скриптами, находящиеся на дисках SD или SPIFFS. Поддерживается работа с диска и в Linux приложении.
Количество строк в файле не ограничено. Длина строки ограничена 1 кб.
Загрузить скрипт можно командой load(имя файла) только из окна-редактора. Сами скрипты загружать другие файлы не умеют на данный момент. Пример: load(/SPIFFS/loopnext.txt)
После выполнения файла скрипта управление передается обратно скрипту в окне-редакторе, если не задан параметр end.
Доступна отправка метрик на любой сервер используя функцию httpget(url), где url - это полноценный адрес ,можно отправить на любой сервер или на другой модуль esp без авторизации. Поддерживается установка порта через двоеточие. Пробелы и спецсимволы в запросе недопустимы. Поддерживаются текстовые метрики (вида _ХХХ_).
Примеры:
Отправка данных на Thingspeak.com: httpget(api.thingspeak.com/update?key=<ключ>&field1=_BMPT_&field2=_BMPP_&field3=_DHTT1_&field4=_DHTH1_)
Отправка данных на Domoticz: httpget(192.168.1.100:8080/json.htm?param=udevice&type=command&idx=55&nvalue=0&svalue=_BMPT_)
Можно отправлять несколько запросов подряд , в ESP8266 NoOS рекомендуется использовать delay(500) между несколькими запросами.
printw(текст) - вывод текста на главной модуля. Поддерживаются html теги.
printd(номер строки,текст) - вывод на дисплей модуля LCD.
printd(номер строки,номер шрифта,текст) - вывод на дисплей модуля OLED и TFT, добавлен обязательный параметр размер шрифта.
printm(скорость строки, текст) - вывод на LED матрицы.
printn(id,текст) - вывод на Nextion дисплей. Пример: printn(d0,_TIMES_).
printnraw(raw дата) вывод raw данных на Nextion дисплей.
printuart(текст) - вывод строки в uart используя опцию UART bridge.
printmx(x,y,z*) - функция вывода на 7 Сегм MAX7219. x - знакоместо, y - тип вывода(0..3). z - значение.
segsetbr(x) - Управление яркостью 7 Сегм MAX7219.
printmt(z*) - функция вывода на TM1637.
tmsetbr(x) - Управление яркостью TM1637.
printei(z,x,y,текст) - Вывод текста на E-Ink LILYGO T5 V3. Подробнее в документации на дисплей.
В текстовых дисплеях в функциях printw, printd, printm и прочие вместо текста можно указывать номер шаблона в виде #1 конструктора строк или сразу текстовые метрики в виде printw(_DATE_ _TIME_).
В числовых дисплеях (обозначенных звездочкой) используются числовые переменные.
matrixbr(уровень яркости) - установка яркости у LED матриц. 100 - выключает матрицу.
Список текстовых метрик и числовых переменных находится внизу статьи !
sendsms(текст сообщения) - отправка уведомлений через Telegram, ICQ, Email, SMS GSM, SMS.RU, SMSC.RU - все включенные сервисы отправки, можно использовать текстовые шаблоны, если они установлены в прошивке, пример sendsms(#1) или текстовые метрики в виде sendsms(_DATE_ _TIME_)
resetsms() - сброс флага отправки, применяется в противоположном действии условия для защиты от циклической отправки. Смотрите пример 6 в конце статьи.
gpioX - чтение состояния GPIO. До 4.03.22 - gpioget(х)
pwmX - чтение состояния PWM. До 4.03.22 - pwm[x]
Переменные времени: second, minute, hour, mday, month, week, minutesperday (минут в день ), secondsperday (секунд в день).
Список остальных переменных смотрите на вкладке Metrics модуля (для старых прошивок - внизу статьи)
Переменные с датчиков температуры и влажности идут умноженные на 10 или 100 ! Если температуру кажет к примеру 26.4, то сравнивать её нужно как число 264. Не относиться при включенной опции расширенной математики.
В скриптах возможно использовать специализированные глобальные переменные, которые доступны и на чтение и на запись, в эту же переменную производится запись при работе с математикой. Количество глобальных переменных задается в шестеренке , тип переменных int32.
Для работы с математикой используется функция valmath(X,Y+Z) , где X - это номер переменной начиная с 1, Y+Z - это математическое действие. Ограничение: без опции расширенной математики поддерживается только одиночное действие прибавления, вычитания, деления или умножения. Так же поддерживается остаток от деления (%) .*
Для установки переменной используем функцию valset(x,y). считая от 1.*
* - функции устарели.
Для чтения переменной используем intvalX считая от 1.
Для вывода переменных используем макрос _INTVALx_ считая от 1
Тестовые примеры смотрим внизу статьи под номерами 7 и 8.
Обновление от 24.02.23:
Сейчас установка переменной intvalX может задаваться через знак равно, например intval1=5 или intval1=5+dsw1 . Этим упраздняется использование функций valset(x,y) и valmath(X,Y+Z).
Доступно сохранение в переменную intvalfX и intvaleepX - соответственно сохранение во flash и eeprom(опция должна быть включена). Переменные работают только с целыми числами. Установка и чтение переменных аналогично intvalX. Количество переменных задается в шестеренке опции, по умолчанию равно 0(выключено). Сохранение происходит только если значение переменной изменилось.
Тестовые примеры смотрим внизу статьи под номером 16.
Опция доступна только на RTOS прошивках, включая ESP32 и на Linux ! По умолчанию не включена - включается в шестеренке опции !
Опция позволяет использовать сложную и вложенную математику и поддержкой дробных чисел в условии IF. Допустимо писать любые выражения и их комбинации, включая скобки для установки приоритета решения.
Так же дополнительно поддерживаются следующие переменные и функции:
pi - число Пи
e - число E.
x^y - возведение в степень y числа x
map(x,ind,inu,outd,outp) - классическая функция map, пример: map(adc,0,4095,0,3.3) - приведение значения ацп к 3.3в
ceil(x) - округляет x в большую сторону. Пример: valmath(0,ceil(dsw1))
floor(x) - округляют аргумент x до наибольшего целого числа.
abs(x) - модуль числа х
sqrt(x) - квадратный корень числа x
exp(x) - значение экспоненты от x
Триготрометрия:
sin(x) - синус числа х
cos(x) - косинус числа х
tan(x) - тангенс угла x
sinh(x) - гиперболический синус числа х
cosh(x) - гиперболический косинус числа х
tanh(x) - гиперболический тангенс числа x
atan(x) - арктангенс числа x
asin(x) - арксинус числа x
acos(x) - арккосинус числа x
ln(x) - натуральный логарифм от x
log10(x) -десятичный логарифм от x
Глобальные переменные при включенной данной опции работают с дробными числами(до 3 знаков), выводят их везде в данном виде.
Для использования таймеров требуется их включить в шестеренке опции - установить их количество. По умолчанию 0 (выключено). Не стоит ставить большое количество, если их много не требуется - этим вы забираете ресурсы устройства.
Доступные функции:
timer(x,y) - многократный запуск таймера номер x , на время y (секунды).
timerone(x,y) - однократный запуск таймера номер x , на время y (секунды).
timerstop(x) - остановка таймера х.
Если вы хотите перезапустить таймер, то перед вызовом timer() и timerone() требуется остановить этот таймер через timerstop(). Пока таймер запущен, то повторный вызов игнорируется !
Событие вызова таймера происходит через условие if внутри которого указывается событие таймера timereventX , где Х - номер таймера. Условие должно быть в общем цикле скрипта, для точности в 1 секунду требуется устанавливать интервал запуска скрипта так же 1 секунда. Условие события таймера сработает, если время отчета таймера уже вышло.
Примеры использования таймера внизу статьи под номерами 14, 15, 18.
Для использования gpio event требуется их включить в шестеренке опции - установить их количество. По умолчанию 0 (выключено).
Опция позволяет запускать действие только после изменения состояния gpio, а не постоянно как в случае обычном сравнении gpio в условии if.
Доступные функции:
gpioint(x,y,z) - запуск контроля события номер x на gpio y с режимом z, где z может принимать значения any - любое изменение, neg - событие на отрицательное состояние, pos - событие на положительное состояние, none - выключить контроль.
Событие вызова изменения состояния gpio происходит через условие if внутри которого указывается событие gpio gpioeventX . где X - номер события. Условие должно быть в общем цикле и для быстрой реакции требуется установка минимального интервала в 1 секунду или зацикливание через goto.
Примеры использования gpio event внизу статьи под номерами 17, 18, 19.
Лишние пробелы и другие знаки недопустимы. Каждый оператор должен быть в отдельной строке.
Если скрипт уже выполняется, то кнопка Test не работает.
1 - ошибка синтаксиса, например не хватает скобки
2 - ошибка синтаксиса
3 - превышен лимит переходов.
4 - не найдена переменная в условии
5 - ожидаем условие == , != , < , > , >= , <=
6 - не найдена функция (ошибка в названии или не установлена соответствующая опция)
7 - не найдена точка перехода у оператора goto
8 - слишком малое значение delay
9 - ошибка номера шаблона в конструкторе строк в операторах вывода
10 - ошибка в математической функции
11 - нет переменной с указанным номером
12 - попытка деления на ноль
21 - использование операторов else или endif без if
22- невозможно загрузить файл скрипта с диска
23- превышено количество вложений if
24- нумерация переменной изменена, сейчас она считается от 1.
При включенной опции расширенной математики и поддержки дробных чисел в примерах ниже нужно корректировать значения сравнения в условиях.
Описание: простейший термостат с управлением по gpio 14 и индикацией режимов
if(gpio14==0) printw(выключено) else if(dsw1<300) gpioset(16,1) printw(холодно) else gpioset(16,0) printw(горячо) endif endif
Описание: простейшая мигалка GPIO с выводом состояния на главную страницу
:testm printw(Тик) gpioset(16,1) delay(1000) printw(Так) gpioset(16,0) delay(1000) goto testm
Описание: мигалка GPIO посложнее с выводом состояния на главную страницу и выключением через GPIO14
:testm if(gpio14==0) printw(выключено) gpioset(16,0) delay(1000) else printw(Тик) gpioset(16,1) delay(1000) printw(Так) gpioset(16,0) delay(1000) endif goto testm
Описание: вывод поочередно из конструктора строк данных на LCD дисплей. Аналогично можно использовать и для LED матриц.
printd(1,#1) delay(2000) printd(1,#2) delay(2000) printd(1,#3)
Описание: Включает gpio16, если gpio14 включен и температура на ds18b20 ниже 30 градусов.
if(gpio14==1&&dsw1<300) gpioset(16,1) else gpioset(16,0) endif
Описание: мониторинг GPIO 12 и отправки sms и email при появлении единички на GPIO12.
if(gpio12==1) sendsms(Кто-то взломал дверь) else resetsms() endif
Описание: вычисляем среднее значение 3 датчиков тремя действиями. Комменты убрать перед вставкой в редактор !! Пример ниже без использования расширенной математики - с ним все проще: valmath(1,(dsw1+dsw2+dsw3)/3)
valmath(1,dsw1+dsw2) // суммируем в глобальную переменную 1 значение 2 датчиков ds18b20 valmath(1,intval1+dsw3) // прибавляем еще третий датчик ds18b20 к глобальной переменной 1 valmath(1,intval1/3) // делим на 3 глобальную переменную 1 для получения среднего значения, значение деления сохраняем в глобальной переменной 1. printw(_INTVAL1_) // выводим тут через конструктор строк переменную _INTVAL1_ end
Описание: Мигаем раз в 5 секунд светодиодом
valmath(1,secondsperday%5) if(intval1==0) gpioset(19,1) delay(500) gpioset(19,0) endif
Описание: Мигаем светодиодом каждые 10 секунд по 5 раз
valmath(1,secondsperday%10) if(intval1==0) valset(2,0) :testf if(intval2>=5) end endif gpioset(16,1) delay(500) gpioset(16,0) delay(500) valmath(2,intval2+1) goto testf endif
Описание: Простой планировщик по времени включения с 7 по 21 час
if(hour>=7&&hour<21) gpioset(16,1) else gpioset(16,0) endif
Описание: Простой способ включения GPIO на заданное время.
if(gpio16==1) delay(2000) gpioset(16,0) endif
Описание: Сложный способ включения GPIO на заданное время. Не мешает действиям других условий в скрипте. Время задается period*X
if(gpio12==1) valmath(1,intval1+1) if(intval1>Х) gpioset(12,0) endif else valset(1,0) endif
Описание: работа с циклом используя goto с периодом 100мс - delay обязателен.
:testm свой код delay(100) goto testm
Описание: Мигаем светодиодом каждые 10 секунд с включением на 3 секунды используя 2 таймера, один из них работает в однократном запуске.
timer(1,10) if(timerevent1) gpioset(16,1) timerone(2,3) endif if(timerevent2) gpioset(16,0) endif
Описание: Способ включения GPIO на заданное время используя таймер. Не мешает действиям других условий в скрипте. Замена примерам 11 и 12.
if(gpio16==1) timerone(1,2) endif if(timerevent1) gpioset(16,0) endif
Описание: 7 пример по новому используя приравнивание переменной через знак равно. Пример ниже без использования расширенной математики - с ним все проще: intval1=(dsw1+dsw2+dsw3)/3
intval1=dsw1+dsw2 intval1=intval1+dsw3 intval1=intval1/3 printw(_INTVAL1_)
Описание: Использование gpio event. Мониторинг GPIO 16 только при изменении состояния. Отсылка уведомления через Telegram(sms и другое), отправка GET запроса и установка gpio 12.
gpioint(1,16,neg) if(gpioevent1) resetsms() sendsms(кто-то взломал дверь) httpget(192.168.1.42/testget) gpioset(12,1) endif
Описание: Использование gpio event и таймера. Мониторинг GPIO 15(например датчик движения) и включение GPIO 16 на 60 секунд. timerstop() тут сбрасывает отчет и не дает выключить GPIO 16 при постоянном изменении состояния на GPIO 15.
gpioint(1,15,pos) if(gpioevent1) gpioset(16,1) timerstop(1) timerone(1,60) endif if(timerevent1) gpioset(16,0) endif
Описание: Использование gpio event в качестве кнопок для управления GPIO. Пример на 2 кнопки. Реализован цикл через goto с паузой для быстрой реакции. Замена опции gpio key для особых не стандартных случаев.
:loop gpioint(1,16,neg) if(gpioevent1) gpioset(12,2) endif gpioint(2,17,neg) if(gpioevent2) gpioset(14,2) endif delay(100) goto loop
Внимание ! Имена некоторых метрик поменялись с 6.02.21 !! Новые имена можно посмотреть на вкладке Metrics на самом модуле. Там указаны только первый номер на устройстве.
Ниже метрики относятся прошивкам до 6.02.21:
Переменные, содержащие заглавную "X" , "Y" или массивы [x] , [y] обозначают как порядковый номер-число.
Массивы в формате [x][y] нумеруются от нуля ! Пример data1wire[х]: - data1wire[0] - выводит первый датчик
Key | |
---|---|
ds3231t | Температура DS3231 |
adc | Внутренний АЦП (ESP8266) |
ADCdata[x] | Данные с АЦП PCF8591 |
am_h | Влажность с датчика AM2321 |
am_t | Температура с датчика AM2321 |
apdsb | APDS9960 Освещенность синий |
apdsc | APDS9960 Освещенность |
apdsg | APDS9960 Освещенность зеленый |
apdsr | APDS9960 Освещенность красный |
bh_l | Освещенность с датчика BH1750 |
bme_h | Влажность с датчика BME280 |
bme_p | Давление с датчика BME280 |
bme_t | Температура с датчика BME280 |
bmp_p | Давление датчиков BMP180/085 |
bmp_t | Температура датчиков BMP180/085 |
cntXi | Данные с счетчика 60 |
co2data | Датчики CO2 MH-Z1x |
csea | Active Power CSE7766 |
cseap | Apparent Power CSE7766 |
csec | Ток на CSE7766 |
csee | Потребление суммарно CSE7766 |
csef | Power Factor CSE7766 |
csev | Напряжение на CSE7766 |
d2d[x][y] | Данные с Device to Device(D2D) |
data1wire[х] | Температура датчиков DS18B20 |
dht_hХ | Влажность датчиков DHT22 DHT11 |
dht_tХ | Температура датчиков DHT22 DHT11 |
hcsr04 | HC-SR04 |
hdch | Влажность датчика HDC1080 |
hdct | Температура датчика HDC1080 |
hlw_c | HLW8012 (Sonoff POW) Ток |
hlw_v | HLW8012 (Sonoff POW) Напряжение |
hlw_w | HLW8012 (Sonoff POW) Мощность |
hlw_wh | HLW8012 (Sonoff POW) Ватт/ч |
hx711 | Весы HX711 |
ina_a | Ток с датчика INA219 |
ina_v | Напряжение с датчика INA219 |
mb[y][x] | ModBus метрики |
mlxa | Температура окружающая MLX90614 |
mlxo | Температура объекта MLX90614 |
nmval[x] | Принятые данные с датчиков narodmon.ru |
nrfa[x][y] | АПЦ с модулей NRF24 |
nrfb[x][y] | Другие данные с модулей NRF24 |
nrfc[x][y] | Счетчик с модулей NRF24 |
nrfg[x][y] | Состояние GPIO с модулей NRF24 |
nrfh[x][y] | Влажность с модулей NRF24 |
nrft[x][y] | Температура с модулей NRF24 |
pmcn | Ток с устройства Power Monitor |
pmspm10 | PM1.0 |
pmspm100 | PM1.00 |
pmspm25 | PM2.5 |
pmv | Напряжение с устройства Power Monitor |
pwm[x] | Состояние ШИМ |
rtd | MAX31865 Температура |
sht30_h | Влажность с датчика SHT30 |
sht30_t | Температура с датчика SHT30 |
shtc3h | Влажность SHTC3 |
shtc3t | Температура SHTC3 |
sht_h | Влажность с датчика SHT21 |
sht_t | Температура с датчика SHT21 |
tsllux | Данные с TSL2561 |
valget(x) | Переменные Interpreter |
vl53l0x | Расстояние VL53L0X |
vsens[y][x] | Данные с датчиков Virtual SENS |
vw_a[x][y] | АЦП с VirtualWire |
vw_b[x][y] | Один байт с VirtualWire |
vw_c[x][y] | Счетчики с VirtualWire |
vw_h[x][y] | Влажность с VirtualWire |
vw_t[x][y] | Температура с VirtualWire |
<Внимание ! Имена некоторых метрик поменялись с 6.02.21 !! Новые имена можно посмотреть на вкладке Metrics на самом модуле.
Topic | Description |
---|---|
_IP_ | IP адрес устройства |
_MEM_ | Свободное ОЗУ |
_UPTIME_ / _UPTIMES_ | Время работы |
_RSSI_ | Уровень сигнала (нет на старых SDK) |
_TIME_ | Время |
_TIMES_ | Время с секундами |
_WEEK_ | День недели |
_RADIO_ | Имя текущей интернет станции |
_APDSC_ | APDS9960 Освещенность |
_APDSR_ | APDS9960 Освещенность красный |
_APDSG_ | APDS9960 Освещенность зеленый |
_APDSB_ | APDS9960 Освещенность синий |
_TSSETx_ | Установка термостата |
_TSONx_ | Состояние термостата вкл/выкл |
_CCSCO2_ | CO2 датчика CCS811 |
_CCSTVOC_ | TVOC датчика CCS811 |
_LORSxy_ | Метрики LORA |
_RTD_ | MAX31865 Температура |
_HDCT_ | Температура датчика HDC1080 |
_HDCH_ | Влажность датчика HDC1080 |
_PMS10_ | PM1.0 |
_PMS25_ | PM2.5 |
_PMS100_ | PM1.00 |
_VL53L0X_ | Расстояние VL53L0X |
_MByyxx_ | ModBus метрики |
_OWT_ | Температура воздуха OpenWeatherMap |
_OWH_ | Влажность воздуха OpenWeatherMap |
_OWP_ | Давление воздуха OpenWeatherMap |
_OWWIND_ | Скорость ветра OpenWeatherMap |
_OWD_ | Описание погоды OpenWeatherMap |
_OWC_ | Облачность OpenWeatherMap |
_OWF_ | Температура по ощущениям OpenWeatherMap |
_OWR3_ | Количество осадков 3 часа OpenWeatherMap |
_OWR1_ | Количество осадков 1 часа OpenWeatherMap |
_OWV_ | Видимость OpenWeatherMap |
_SUNDW_ | Восход солнца OpenWeatherMap |
_SUNUP_ | Заход солнца OpenWeatherMap |
_SUNDAY_ | Продолжительность дня OpenWeatherMap |
_AS5600_ | Угол AS5600 |
_GPSLAT_ | Широта GPS приемник |
_GPSLON_ | Долгота GPS приемник |
_GPSH_ | Высота GPS приемник |
_GPSS_ | Скорость GPS приемник |
_GPSC_ | Курс GPS приемник |
_GPSN_ | Количество спутиков GPS приемник |
_BTxR_ | BT HUB RSSI |
_BTxT_ | BT HUB Температура |
_BTxL_ | BT HUB Освещенность |
_BTxF_ | BT HUB Плодородие |
_BTxM_ | BT HUB Влажность(почвы) |
_BTxH_ | BT HUB Влажность |
_BTxB_ | BT HUB Заряд батареи |
_GTR_ | Осадки gismeteo.ru |
_GTC_ | Облачность gismeteo.ru |
_GTWIND_ | Ветер gismeteo.ru |
_SHTC3T_ | Температура SHTC3 |
_SHTC3H_ | Влажность SHTC3 |
_D2Dxxyy_ | Данные с Device to Device(D2D) |
_CSEV_ | Напряжение на CSE7766 |
_CSEC_ | Ток на CSE7766 |
_CSEE_ | Потребление суммарно CSE7766 |
_CSEAP_ | Apparent Power CSE7766 |
_CSEA_ | Active Power CSE7766 |
_CSPF_ | Power Factor CSE7766 |
_ADC_ | Внутренний АЦП (ESP8266) |
_IADCx_ | Внутренние АЦП (ESP32) |
_LM_ | Температура с датчика LM75 или DS1621 |
_INAV_ | Напряжение с датчика INA219 |
_INAC_ | Ток с датчика INA219 |
_DHTTx_ | Температура датчиков DHT22 DHT11 |
_DHTHx_ | Влажность датчиков DHT22 DHT11 |
_BMPT_ | Температура датчиков BMP180/085 |
_BMPP_ | Давление датчиков BMP180/085 |
_CNTxI_ | Данные с счетчика 60 |
_BH_ | Освещенность с датчика BH1750 |
_AMT_ | Температура с датчика AM2321 |
_AMH_ | Влажность с датчика AM2321 |
_DSWx_ | Температура датчиков DS18B20 |
_BMET_ | Температура с датчика BME280 |
_BMEH_ | Влажность с датчика BME280 |
_BMEP_ | Давление с датчика BME280 |
_SHTT_ | Температура с датчика SHT21 |
_SHTH_ | Влажность с датчика SHT21 |
_SHT30T_ | Температура с датчика SHT30 |
_SHT30H_ | Влажность с датчика SHT30 |
_HEAT_ | Температура с термопары MAX6675 |
_CVV_ | Напряжение с устройства CC/CV |
_CVC_ | Ток с устройства CC/CV |
_PMV_ | Напряжение с устройства Power Monitor |
_PMC_ | Ток с устройства Power Monitor |
_PMW_ | Мощность с устройства Power Monitor |
_PMWH_ | Расход с устройства Power Monitor |
_RFID_ | Данные с RFID |
_SHT10T_ | Температура SHT1x |
_SHT10H_ | Влажность SHT1x |
_CO2_ | Датчики CO2 MH-Z1x |
_PING_ | ping тест статус |
_VSyx_ | Данные с датчиков Virtual SENS |
_GTT_ | Температура с gismeteo.ru на сегодня |
_GTH_ | Влажность с gismeteo.ru на сегодня |
_GYT_ | Температура с gismeteo.ru на завтра |
_GYH_ | Влажность с gismeteo.ru на завтра |
_GTP_ | Давление с gismeteo.ru на сегодня |
_GYP_ | Давление с gismeteo.ru на завтра |
_GTWIND_ | Скорость и направление ветра gismeteo.ru сегодня |
_GYWIND_ | Скорость и направление ветра gismeteo.ru завтра |
_NMx_ | Принятые данные с датчиков narodmon.ru |
_ADCx_ | Данные с АЦП PCF8591 |
_RTCT_ | Температура DS3231 |
_NRFxCy_ | Счетчик с модулей NRF24 |
_NRFxTy_ | Температура с модулей NRF24 |
_NRFxHy_ | Влажность с модулей NRF24 |
_NRFxAy_ | АПЦ с модулей NRF24 |
_NRFxGy_ | Состояние GPIO с модулей NRF24 |
_NRFxBy_ | Другие данные с модулей NRF24 |
_RSSIGSM_ | RSSI GSM |
_PCFCx_ | Счетчик импульсов PCF8583 |
_PCFCTx_ | Счетчик импульсов PCF8583 на сегодня |
_PCFCYx_ | Счетчик импульсов PCF8583 на вчера |
_RSx_ | Температура с модулей RC датчик |
_RSx_ | Влажность с модулей RC датчик |
_RSx_ | АЦП с модулей RC датчик |
_CNTx_ | Счетчики импульсов. |
_INTx_ | Событие прерывания |
_PWMx_ | Состояние ШИМ |
_GPIOx_ | Состояние GPIO входа |
_DATE_ | Дата. Требуется поддержка календаря |
_VALDESx_ | Глобальные переменные конструктора кода |
_SCALE_ | Весы HX711 |
_MCPA_ | Данные с АЦП MCP3201 |
_ADSx_ | Данные с АЦП ADS1115 |
_VZCO2_ | Датчик VZ-89T CO2 |
_VZTV_ | Датчик VZ-89T tvoc |
_NLxT_ | Температура с датчиков NooLite |
_NLxH_ | Влажность с датчиков NooLite |
_HCSR_ | HC-SR04 |
_TSL_ | Данные с TSL2561 |
_MCMSG_ | Количество сообщений в электронном ящике |
_MCUNS_ | Количество непрочитанных сообщений в электронном ящике |
_UPSI_ | Данные с UPS Монитора. Напряжение на входе. |
_UPSF_ | Данные с UPS Монитора. Напряжение на входе. |
_UPSO_ | Данные с UPS Монитора. Напряжение на выходе. |
_UPSH_ | Данные с UPS Монитора. Частота сети |
_UPST_ | Данные с UPS Монитора. Температура в корпусе |
_UPSB_ | Данные с UPS Монитора. Напряжение батареи. |
_UPSS_ | Данные с UPS Монитора. Нагрузка |
_MLXO_ | Температура объекта MLX90614 |
_MLXA_ | Температура окружающая MLX90614 |
_VALx_ | Переменные Interpreter |
_VWTxy_ | Температура с VirtualWire |
_VWHxy_ | Влажность с VirtualWire |
_VWCxy_ | Счетчики с VirtualWire |
_VWAxy_ | АЦП с VirtualWire |
_VWBxy_ | Один байт с VirtualWire |
_HLWW_ | HLW8012 (Sonoff POW) Мощность |
_HLWV_ | HLW8012 (Sonoff POW) Напряжение |
_HLWC_ | HLW8012 (Sonoff POW) Ток |
_HLWWH_ | HLW8012 (Sonoff POW) Ватт/ч |