Опция простого скриптового языка для создания своей логики и математики: управление GPIO, вывод на дисплеи по условиям, отправка http get запросов с параметрами. Редактор скриптов находится непосредственно на самом модуле в веб интерфейсе. Вызов скрипта происходит по указанному интервалу в настройках.
Обновление 24.02.2023 - Версия v2.2. Установка системных переменных intvalX через знак равно. Поддержка таймеров, запись переменных во flash и eeprom.
25.02.2023 - добавлена поддержка gpio event.
17.12.2023 - обновление до версии v2.3 - сейчас в if работает вложенная математика и дробные числа. Включать опцию расширенной математики для простой математики сейчас не требуется !
Документация ниже относится к версии Interpreter (v2.3).
До 17.12.2023 значения переменных без использования расширенной математики были умножены на 10, 100 или 1000 в зависимости от количества чисел после запятой.
Внешний вид веб интерфейса редактора скриптов:
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.
17.12.2023 - обновление до версии v2.3 - сейчас в if работает вложенная математика и дробные числа. Включать опцию расширенной математики для простой математики сейчас не требуется !
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(условие*) - условный оператор,. Поддерживается сравнение == , != , < , > , >= , <=. С 17.12.2023 допустима вложенная математика и скобки внутри оператора 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 модуля (для старых прошивок - внизу статьи)
В скриптах возможно использовать специализированные глобальные переменные, которые доступны и на чтение и на запись, в эту же переменную производится запись при работе с математикой. Количество глобальных переменных задается в шестеренке , тип переменных int32.
Для чтения переменной используем 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 ! По умолчанию не включена - включается в шестеренке опции ! Опция актуальна только если требуются функции.
Опция позволяет использовать сложную и вложенную математику. Допустимо писать любые выражения и их комбинации, включая скобки для установки приоритета решения.
Так же дополнительно поддерживаются следующие переменные и функции:
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
Для использования таймеров требуется их включить в шестеренке опции - установить их количество. По умолчанию 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<30.5) 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<30.5) gpioset(16,1) else gpioset(16,0) endif
Описание: мониторинг GPIO 12 и отправки sms и email при появлении единички на GPIO12.
if(gpio12==1) sendsms(Кто-то взломал дверь) else resetsms() endif
if((dsw1+dsw2+dsw3)/3<30.5) gpioset(16,1) else gpioset(16,0) endif
Описание: Мигаем раз в 5 секунд светодиодом
if(secondsperday%5==0)
gpioset(19,1) delay(500) gpioset(19,0) endif
Описание: Мигаем светодиодом каждые 10 секунд по 5 раз
if(secondsperday%10==0)
intval2=0 :testf if(intval2>=5) end endif gpioset(16,1) delay(500) gpioset(16,0) delay(500) intval2=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 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) Ватт/ч |