36 KiB
LightHub: Описание модулей и компонентов
Полное инженерное описание всех основных модулей LightHub с примерами конфигурации и протоколами управления. Предназначено для разработчиков, интеграторов и системных инженеров.
Содержание
Выходные модули
out_Multivent — Многоканальный кондиционер/вентиляция
Описание
Модуль управления многозональными системами кондиционирования воздуха и центральной вентиляции.
Основные функции:
- Управление центральной установкой (компрессор, вентилятор)
- Независимое регулирование температуры для каждой зоны/комнаты
- PID-контроллеры для стабилизации микроклимата
- Автоматическая балансировка воздушного потока между зонами
- Каскадное управление задвижками и затворами
Тип в JSON
[18, {zones_and_settings}]
Рабочая форма: [[18, 5], {зоны}] (itemArg должен быть объектом, иначе «VENT: config failed»).
Формат конфигурации
"vac": [
[18, 5],
{
"": {
"val": {"emit": "home/ac/temp"},
"mode": {"emit": "home/ac/mode"}
},
"bedroom": {
"fan": {"emit": "home/bedroom/fan"},
"cmd": {"emit": "home/bedroom/cmd"},
"out": {"emit": "home/bedroom/out"},
"V": 40,
"pid": [1.0, 0.05, 0.02, 5.0],
"set": {"emit": "home/bedroom/setpoint"},
"val": {"emit": "home/bedroom/temp"}
}
}
]
Ключ "" — AC-узел (центральная установка). Ключ «supress» пишется с одной «s».
Ключевые параметры
| Параметр | Тип | Описание |
|---|---|---|
V |
int | Номинальный объём воздуха (м³/ч) |
pid |
массив ≥3 | [kP, kI, kD, dT] (ключи строчные), dT — деф 5 |
AlarmTime |
float | Таймаут аларма (с), деф 120 |
AlarmValue |
float | Значение при аларме, деф 0 |
set |
float | Требуемая температура |
val |
float | Текущая температура |
fan |
int (0-255) | Открытие вентилятора |
cmd |
int | Команда (коды см. ниже) |
out |
int (0-255) | Выход задвижки |
Режимы команд (коды itemCmd)
| Команда | Код |
|---|---|
| ON | 1 |
| OFF | 2 |
| REST | 3 |
| TOGGLE | 4 |
| HALT | 5 |
| XON | 6 |
| XOFF | 7 |
| AUTO | 0xE (14) |
| FAN_ONLY | 0xF (15) |
| HIGH | 0x10 (16) |
| MEDIUM | 0x11 (17) |
| LOW | 0x12 (18) |
| HEAT | 0x14 (20) |
| COOL | 0x15 (21) |
| DRY | 0x16 (22) |
Примеры
Полное описание с примерами: multivent_module_description.md
out_AC — Управление кондиционером
Описание
Управление одиночным кондиционером через проприетарный UART-протокол Haier (9600, кадры 13 байт — команда / 37 байт — ответ). НЕ Modbus.
Основные функции:
- Управление режимом (HEAT, COOL, FAN_ONLY, DRY, AUTO)
- Управление скоростью вентилятора (LOW, MEDIUM, HIGH, OFF или число)
- Управление температурой
- Поддержка качания жалюзей (SWING)
- Блокировка пульта
- Режим QUIET (тихий режим)
Тип в JSON
[10, portNum(0-3)]
Опционально — emit-объект (arg[1]) с ключами fan, set, cmd, temp.
Формат конфигурации
"air_conditioner": [
10,
[
0,
{
"set": {"emit": "home/ac/setpoint"},
"fan": {"emit": "home/ac/fan_speed"},
"cmd": {"emit": "home/ac/mode"},
"temp": {"emit": "home/ac/temp"}
}
]
]
Параметры управления
| Параметр | Значение | Описание |
|---|---|---|
portNum |
0-3 | Номер UART-порта (0 = основной Serial) |
/set |
16-40 | Установка температуры |
/fan |
LOW/MEDIUM/HIGH/OFF или число | Скорость вентилятора |
/cmd |
AUTO/HEAT/COOL/FAN_ONLY/DRY | Текстовые режимы (payload команды) |
/mode |
число (B_MODE) | Режим |
/lock |
ON/OFF | Блокировка пульта |
/swing |
ON/OFF | Качание жалюзей |
/quiet |
ON/OFF | Тихий режим (legacy «queit» принимается; статус публикуется в /quiet) |
/raw |
- | Сырой кадр протокола |
out_PID — PID-регулятор
Описание
Универсальный PID-контроллер для стабилизации любых процессов (температура, влажность, давление и т.д.).
Основные функции:
- Независимое PID-регулирование с тремя коэффициентами
- Регулируемый период сэмплирования
- Будильник при выходе за пределы диапазона
- Защита от интегральной раскрутки
Тип в JSON
[13, [[kP, kI, kD, dT, alarmTO, alarmVal, outMin, outMax]], outputExecObj, cascadeExecObj], setpoint
Формат конфигурации
"temperature_controller": [
13,
[
[1.0, 0.05, 0.02, 5, 600000, 0, 0, 255],
{"emit": "heating/power"},
{"emit": "cascade/out"}
],
21.5
]
Параметры
| Параметр | Тип | Описание |
|---|---|---|
kP |
float | Пропорциональный коэффициент (деф 1.0) |
kI |
float | Интегральный коэффициент (деф 0.0) |
kD |
float | Дифференциальный коэффициент (деф 0.0) |
dT |
float | Период сэмплирования (сек), деф 5 |
alarmTO |
int | Таймаут (деф 600*1000 мс) |
alarmVal |
float | Принудительное значение выхода при аларме |
outMin |
float | Мин. выход, деф 0 |
outMax |
float | Макс. выход, деф 255 |
Вход регулятора — /val, setpoint задаётся как 3-й элемент item (начальное значение). Диапазоны kP/kI/kD/dT кодом не валидируются. Допускается и массив из 6 элементов: [kP, kI, kD, dT, alarmTO, alarmVal].
out_Relay — Электромагнитное реле
Описание
Управление электромагнитными реле через цифровой выход микроконтроллера.
Основные функции:
- Включение/отключение нагрузки
- Поддержка инвертированной логики
- Управление периодом переключения
Тип в JSON
RELAY: [6, pin, val, cmd]
RELAYX: [16, [pin, period_сек], val, cmd]
Формат конфигурации
"pump_relay": [6, 33]
Параметры
| Параметр | Тип | Описание |
|---|---|---|
pin |
int | Номер GPIO-пина; инверсия логики — отрицательный пин |
period |
int | Только RELAYX: период срабатывания (секунды, в коде умножается на 1000), деф 5000 мс |
Управление
Отправить: home/pump_relay
Значение: 0 (OFF) или 1 (ON)
out_PWM — Широтно-импульсная модуляция
Описание
Управление PWM для регулирования яркости светодиодов, скорости двигателей, интенсивности нагрузок.
Основные функции:
- Регулирование от 0% до 100%
- Поддержка RGB-управления (в base-классе colorChannel)
- Число пинов (1-5) определяет режим: CH_PWM / RGB / RGBW / RGBWW
Тип в JSON
[3, [pin0, pin1, ...]]
Частота из конфигурации не читается.
Формат конфигурации
"led_brightness": [
3,
[5]
]
Управление
Отправить: home/led/brightness
Значение: 0-255 (0=0%, 255=100%)
out_DMX — DMX512 управление светом
Описание
Управление световыми приборами по протоколу DMX512 (театральное и архитектурное освещение).
Основные функции:
- Поддержка до 512 каналов
- Управление цветом и интенсивностью
- Синхронизированное обновление
Тип в JSON
[0, [addr1, addr2, ...]]
Список адресов DMX-каналов (1-5); объекта {settings} нет.
Формат конфигурации
"stage_lighting": [
0,
[1, 2, 3, 4]
]
Управление
Отправить: home/lighting/color
Значение: {"r":255, "g":128, "b":0}
out_Motor — Управление двигателем
Описание
Управление моторами с обратной связью по положению (рольставни, жалюзи, шторы).
Основные функции:
- Управление направлением (вверх/вниз)
- Обратная связь по положению
- Защита от перегрузки по времени
- Плавное позиционирование
Тип в JSON
[12, [pinUp, pinDown, pinFeedback, fbOpen, fbClosed, maxOnTime_ms]]
Формат конфигурации
"roller_blind": [
12,
[
32,
33,
34,
0,
1023,
10000
]
]
Параметры
| Параметр | Тип | Описание |
|---|---|---|
pinUp |
int | GPIO для движения вверх (инверсия — отрицательный пин) |
pinDown |
int | GPIO для движения вниз |
pinFeedback |
int | GPIO обратной связи (аналоговый) |
fbOpen |
int | Значение обратной связи (открыто) |
fbClosed |
int | Значение обратной связи (закрыто) |
maxOnTime_ms |
int | Макс. время работы (мс), деф 10000 |
Команды
Позиционное управление: цель — значение 0-255. ON → движение к заданной позиции, OFF/HALT → 0. Команд UP/DOWN/STOP нет.
out_Elevator — Управление лифтом
Описание
Управление лифтом через UART или интерфейс вызова. Синхронизация между контроллерами через сетевой мост.
Основные функции:
- Управление вызовом лифта
- Передача команды на нужный этаж
- Контроль состояния лифта
- Дублирование по UART
Тип в JSON
[19, {"serial": "8N1", "baud": 19200, "log": ...}]
Реализован (компилируется с ELEVATOR_ENABLE). itemArg — объект. Порты фиксированные (MODULE_UATRBRIDGE_UARTA/B).
Формат конфигурации
"elevator": [
19,
{
"serial": "8N1",
"baud": 19200,
"log": true
}
]
Параметры
| Параметр | Значение | Описание |
|---|---|---|
serial |
"8N1" | Параметры кадра (строка, деф "8N1") |
baud |
19200 | Скорость UART (деф 19200) |
log |
bool | Логирование |
out_Humidifier — Управление увлажнителем
Описание
Управление промышленным ультразвуковым или парогенерирующим увлажнителем с контролем давления и защитой от отказов.
Основные функции:
- Контроль давления в баке
- Управление электромагнитными клапанами
- Защита от перепада давления
- Автоматическая очистка (FLUSH)
- Состояния готовности и отказа
Тип в JSON
[21, [[pumpPin, flushPin, pressurePin, maxPumpTime, idleTime, capacity, minLevel, startLevel], {зоны-краны}, motorCmdExecObj, faultCmdExecObj]]
Формат конфигурации
"mist_humidifier": [
21,
[
[25, 26, 35, 300, 60000, 50, 10, 20],
{
"gate1": 27
}
]
]
Константы (не настраиваются из конфигурации): MIN_OPERATION_PRESSURE = 400, MAX_OPERATION_PRESSURE = 600, FLUSH_TIMEOUT = 125000 мс.
Состояния
| Состояние | Код | Описание |
|---|---|---|
| H_UNKNOWN | 0 | Неизвестное |
| H_READY | 1 | Готов к работе |
| H_PREPARE_FOR_START | 2 | Подготовка к пуску |
| H_PREPARE_VALVES | 3 | Подготовка клапанов |
| H_MOTOR_ON | 4 | Мотор работает |
| H_OPERATE | 5 | В режиме увлажнения |
| H_MOTOR_PAUSE | 6 | Пауза мотора |
| H_MOTOR_OFF | 7 | Мотор выключен |
| H_FLUSH | 8 | Промывка системы |
| H_IDLE | 9 | Ожидание |
| H_MOTOR_OFF_OK | 10 | Мотор выключен (окончательно) |
| H_FAULT_PRESSURE | -1 | Ошибка давления |
| H_FAULT_PRESSURE_KEEP | -2 | Давление не удерживается |
| H_FAULT_OVERPRESSURE | -3 | Перепад давления |
| H_FAULT_MOTOR_OFF | -4 | Ошибка: мотор не выключился |
out_Counter — Автосуммирующий счётчик
Описание
Периодический автосуммированный счётчик: каждые period секунд к значению прибавляется impulse (контроль расхода воды, газа или подсчёт событий). Не является счётчиком GPIO-импульсов.
Основные функции:
- Периодическое прибавление импульса
- Накопление значений
Тип в JSON
[20, [impulse, periodSec], val]
Формат конфигурации
"water_meter": [
20,
[0.02, 60]
]
Параметры
| Параметр | Тип | Описание |
|---|---|---|
impulse |
float | Значение, прибавляемое за период (arg[0]) |
periodSec |
int | Период суммирования (секунды, arg[1]) |
out_SPILed — Управление светодиодами
Описание
Управление адресуемыми RGB-светодиодами (WS2812, APA102) через SPI или GPIO.
Основные функции:
- Независимое управление каждым светодиодом
- RGB-цветовая палитра
- Эффектов/анимаций нет — только установка цвета/вкл-выкл по диапазону светодиодов
Тип в JSON
[11, [data_pin, numLeds, ledsType]]
Объект {settings} не читается.
Формат конфигурации
"led_strip": [
11,
[
13,
43
]
]
Параметры
| Параметр | Тип | Описание |
|---|---|---|
data_pin |
int | GPIO пин (данные) |
numLeds |
int | Количество светодиодов, деф 43 |
ledsType |
int | Код NeoPixel (NEO_BRG+NEO_KHZ800 и т.п.) |
Управление
Отправить: home/leds/color
Значение: {"r":255, "g":0, "b":128}
Отправить: home/leds/brightness
Значение: 0-255
out_Mercury — Счётчик Меркурий
Описание
Управление и опрос электросчётчиков серии Меркурий через UART Modbus RTU.
Основные функции:
- Чтение энергопотребления (активная/реактивная)
- Контроль связи и состояния счётчика
- Тарифные (пиковое/полупиковое/ночное) данные НЕ читаются — только M_NOW
Тип в JSON
[22, [addr, baud, serialParam, accessLevel, password, pollingInterval_ms]]
Формат конфигурации
"electricity_meter": [
22,
[
1,
9600,
"8N1",
2,
"123456",
10000
]
]
Параметры
| Параметр | Значение | Описание |
|---|---|---|
addr |
int | Адрес Modbus |
baud |
9600 | Скорость UART (деф 9600) |
serialParam |
"8N1" | Формат кадра (строка) |
accessLevel |
int | Уровень доступа |
password |
string(6) или массив 6 цифр | Пароль |
pollingInterval_ms |
мс | Интервал опроса (деф 10000) |
Публикуемые топики
/voltage/A, /voltage/B, /voltage/C - Напряжения по фазам
/current/A, /current/B, /current/C - Токи по фазам
/angles/A, /angles/B, /angles/C - Углы по фазам
/counters/Active - Активная энергия
/counters/Reactive - Реактивная энергия
/power/A, /power/B, /power/C - Мощности по фазам
/cosf/... - Коэффициенты мощности
out_Sprinkler — Система полива
Описание
Модуль управления многозональной системой автоматического полива с независимым управлением каждой зоной, таймерами и мониторингом.
Основные функции:
- Управление несколькими зонами полива независимо
- Установка длительности полива для каждой зоны
- Таймеры и расписания для автоматизации
- Мониторинг прогресса выполнения
- Поддержка ручного управления и автоматических режимов
- Контроль состояния клапанов и электромагнитных выключателей
Тип в JSON
[23, {конфиг}]
Корневой объект "": vIn, rDren, rPump, wMax, wMin, fbDren, fbPump, wCtr, onFault(execObj); зоны — pin.
Формат конфигурации
"irrigation_system": [
23,
{
"": {
"vIn": 5,
"rDren": 6,
"rPump": 7,
"wMax": 8,
"wMin": 9,
"fbDren": 10,
"fbPump": 11,
"wCtr": 12,
"onFault": {"emit": "sprinkler/fault"}
},
"north_zone": {
"pin": 21
},
"south_zone": {
"pin": 22
},
"drip_zone": {
"pin": 23
}
}
]
Зона описывается ключом pin; ключи cmd/val/set/@active создаются автоматически. Ключей enabled/time/progress/cycle нет.
Компоненты системы
| Компонент | Выход/Вход | Назначение |
|---|---|---|
| Бак полива | wMax, wMin | Поплавки макс/мин уровня воды |
| Основной насос | rPump, fbPump | Реле включения, датчик тока |
| Клапаны зон | pin (для каждой зоны) | Оптореле открытия клапана |
| Клапан налива | vIn | Оптореле подачи воды из водопровода |
| Дренажный насос | rDren, fbDren | Реле включения, датчик тока |
| Водосчётчик | wCtr (опционально) | Счётчик объёма воды |
Параметры конфигурации
| Параметр | Тип | Описание |
|---|---|---|
vIn |
int | GPIO клапана налива из водопровода |
wMax |
int | GPIO поплавка максимума в баке |
wMin |
int | GPIO поплавка минимума в баке |
rDren |
int | GPIO реле дренажного насоса |
fbDren |
int | GPIO датчика дренажного насоса |
rPump |
int | GPIO реле основного насоса полива |
fbPump |
int | GPIO датчика основного насоса |
wCtr |
int | GPIO счётчика воды (опционально) |
Параметры зоны полива
| Параметр | Тип | Описание |
|---|---|---|
pin |
int | GPIO клапана зоны |
cmd/val/set/@active создаются автоматически. set = требуемый объём полива или время (сек), 0 = неограниченно.
Состояния системы налива
| Состояние | Код | Описание |
|---|---|---|
SP_UNKNOWN |
0 | Неизвестное состояние |
SP_OFF |
1 | Система выключена |
SP_DREN_ON |
2 | Дренажный насос включен |
SP_DREN_OPERATE |
3 | Дренажный насос работает |
SP_DREN_EMPTY |
4 | Дренажный колодец пуст |
SP_VIN |
5 | Наполнение из водопровода |
SP_FULL |
6 | Бак наполнен |
SP_DRYING |
7 | Осушение системы |
SP_FAULT_VIN |
-1 | Ошибка: бак не наполнился из водопровода |
SP_FAULT_DREN |
-2 | Ошибка: бак не наполнился из дренажа |
MQTT топики управления
Управление циклом полива (команды)
root/name/sprinkler/cmd ← ON # Запустить цикл полива
root/name/sprinkler/cmd ← OFF # Остановить цикл полива
root/name/sprinkler/cmd ← DRY # Режим осушения системы
root/name/sprinkler/cmd ← RESET # Сбросить счётчики всех зон
XON/XOFF/FREEZE/UNFREEZE через /cmd не обрабатываются. FREEZE — через /val < 0.
Управление конкретной зоной (например, "north")
root/name/sprinkler/north/cmd ← ON # Включить полив зоны
root/name/sprinkler/north/cmd ← OFF # Выключить полив зоны
root/name/sprinkler/north/set ← 60 # Требуемый объём/время полива (секунды или единицы счётчика)
Режимы системы (установка в /ctrl)
root/name/sprinkler/ctrl ← ENABLE # Разрешить полив
root/name/sprinkler/ctrl ← DISABLE # Запретить полив (например, после дождя)
root/name/sprinkler/ctrl ← FREEZE # Полная блокировка на зиму
root/name/sprinkler/ctrl ← UNFREEZE # Снять блокировку зимы
Автоматическая блокировка по температуре
root/name/sprinkler/val ← -1 # При температуре < 0 система автоматически переходит в FREEZE
MQTT топики мониторинга (статус)
root/s_out/sprinkler/$state # Состояние системы налива воды (SP_*)
root/s_out/sprinkler/$fault # Код ошибки (если есть)
root/s_out/sprinkler/$wMax # ON/OFF - бак полный (поплавок макс)
root/s_out/sprinkler/$wMin # ON/OFF - бак пуст (поплавок мин)
root/s_out/sprinkler/$rPump # ON/OFF - реле основного насоса включено
root/s_out/sprinkler/$fbPump # ON/OFF - основной насос работает (датчик тока)
root/s_out/sprinkler/$rDren # ON/OFF - реле дренажного насоса включено
root/s_out/sprinkler/$fbDren # ON/OFF - дренажный насос работает (датчик тока)
root/s_out/sprinkler/$rVIN # ON/OFF - клапан налива из водопровода открыт
root/s_out/sprinkler/set # Текущее значение счётчика воды
root/s_out/sprinkler/north/$state # ON/OFF - зона поливается в настоящее время
root/s_out/sprinkler/north/cmd # ON/OFF - состояние команды включения зоны
root/s_out/sprinkler/north/set # Требуемый объём/время полива
root/s_out/sprinkler/north/val # Текущий выполненный объём/время полива зоны
root/s_out/sprinkler/south/$state # ON/OFF - зона поливается
root/s_out/sprinkler/south/cmd # ON/OFF - состояние команды
root/s_out/sprinkler/south/set # Требуемый объём/время
root/s_out/sprinkler/south/val # Выполненный объём/время
# Аналогично для остальных зон (например, "trees", "outlets" и т.д.)
Особенности
| Особенность | Описание |
|---|---|
| Динамическое управление | Все параметры можно изменять через MQTT в реальном времени |
| Восстановление состояния | Значения set и val восстанавливаются из топиков s_out при перезагрузке |
| Водяная розетка | Зона с set=0 работает неограниченно (используется для розеток с шлангом) |
| Приоритет дренажа | Система сначала пытается наполнить бак из дренажного колодца, затем из водопровода |
| Автозащита от мороза | Значение /val < 0 автоматически активирует режим FREEZE |
| Двухступенчатая блокировка | DISABLE блокирует команды, FREEZE полностью заморозит систему |
out_UARTBridge — UART мост
Описание
Создание прозрачного двунаправленного моста между двумя UART портами с сохранением данных и логированием.
Основные функции:
- Прозрачная маршрутизация UART↔UART
- Буферизация пакетов (MAX_PDU = 64 байт)
- Логирование трафика
- Одна скорость на оба порта. Порты фиксированные: Serial1/Serial2
Тип в JSON
[15, {"serial": "8N1", "baud": 9600, "ip": ..., "port": ..., "hd": ..., "log": ..., "bond": ...}]
Формат конфигурации
"uart_gateway": [
15,
{
"serial": "8N1",
"baud": 9600
}
]
Параметры
| Параметр | Тип | Описание |
|---|---|---|
serial |
string | Формат кадра (8N1, 8E1, 8O1) |
baud |
int | Скорость UART (одна на оба порта) |
ip |
string | IP (мост через сеть) |
port |
int | Порт |
hd |
- | Опциональный ключ конфигурации |
log |
bool | Логирование |
bond |
- | Опциональный ключ конфигурации |
Входные модули
in_CCS811_HDC1080 — Датчик качества воздуха
Описание
Комбинированный датчик для измерения качества воздуха с использованием:
- HDC1080 — датчик температуры и влажности (I2C)
- CCS811 — датчик CO₂ и TVOC (I2C)
Основные функции:
- Измерение температуры (-40...125°C)
- Измерение влажности (0-100%)
- Измерение eCO₂ (400-8192 ppm)
- Измерение TVOC (0-1187 ppb)
- Температурная компенсация
Тип в JSON
Это ДВА ВХОДА: IN_CCS811 (T=5) и IN_HDC1080 (T=6), конфигурируются как объекты входов в секции "in".
Формат конфигурации
"in": {
"10": {
"T": 5,
"emit": "home/sensors/air"
},
"20": {
"T": 6,
"emit": "home/sensors/room"
}
}
Адреса I2C захардкожены (CCS811 — 0x5A, HDC1080 — 0x40) и не настраиваются. Смещений и pollInterval в конфигурации нет.
Выводимые параметры
| Параметр | Единица | Диапазон | Описание |
|---|---|---|---|
temperature |
°C | -40...125 | Температура воздуха |
humidity |
% | 0...100 | Относительная влажность |
eCO2 |
ppm | 400...8192 | Эквивалентный CO₂ |
TVOC |
ppb | 0...1187 | Летучие органические соединения |
Адреса I2C
| Устройство | Адрес | Описание |
|---|---|---|
| CCS811 | 0x5A | По умолчанию (WAK на GND) |
| CCS811 | 0x5B | Альтернативный (WAK на VDD) |
| HDC1080 | 0x40 | Всегда фиксирован |
MQTT маршрутизация
Публикуется: /T, /H, /CO2, /TVOC, /base.
{
"temp": {"emit": "home/sensors/air/temperature"},
"hum": {"emit": "home/sensors/air/humidity"},
"co2": {"emit": "home/sensors/air/co2"},
"tvoc": {"emit": "home/sensors/air/tvoc"}
}
Примеры использования
Мониторинг качества воздуха (CCS811) и температуры/влажности (HDC1080)
"in": {
"10": {
"T": 5,
"emit": "home/sensors/living_room/air"
},
"20": {
"T": 6,
"emit": "sensors/hvac/inlet"
}
}
Сводная таблица типов модулей
| Модуль | Тип | Назначение | Управление |
|---|---|---|---|
| out_Multivent | 18 | Многоканальный кондиционер | PID + MQTT |
| out_AC | 10 | Одиночный кондиционер | Проприетарный UART (Haier) |
| out_PID | 13 | PID-регулятор | MQTT |
| out_Relay | 6 | Электромагнитное реле | GPIO |
| out_PWM | 3 | ШИМ-управление | GPIO-PWM |
| out_DMX | 0 | DMX512 освещение | DMX512 |
| out_Motor | 12 | Управление двигателем | GPIO-пары |
| out_Elevator | 19 | Управление лифтом | UART |
| out_Humidifier | 21 | Управление увлажнителем | GPIO + датчики |
| out_Counter | 20 | Автосуммирующий счётчик | MQTT |
| out_SPILed | 11 | Адресуемые светодиоды | SPI/GPIO |
| out_Mercury | 22 | Электросчётчик | Modbus RTU |
| out_Sprinkler | 23 | Система полива | GPIO + MQTT |
| out_UARTBridge | 15 | UART-мост | UART↔UART |
| in_CCS811_HDC1080 | входы T=5 (CCS811) / T=6 (HDC1080) | Качество воздуха | I2C |
Общие принципы конфигурации
1. Подключение MQTT
Все параметры с полем emit автоматически публикуются в MQTT:
"parameter": {
"emit": "home/device/parameter"
}
2. Управление из MQTT
Отправка значения:
mqtt publish home/device/parameter 128
3. Использование массивов
Для нескольких параметров:
[
{"emit": "topic1"},
{"emit": "topic2"},
{"emit": "topic3"}
]
4. Служебные параметры
@V(null) — не публиковать значения@S(null) — не публиковать при сохранении@C— служебное, не использовать
Диагностика проблем
Модуль не инициализируется
Проверить:
- Конфигурация JSON синтаксически корректна
- GPIO-пины не конфликтуют
- I2C/UART устройства подключены
- Библиотеки установлены
Нет связи с устройством
- Проверить скорость UART (baud)
- Проверить подключение TX/RX
- Проверить адрес Modbus/I2C
- Посмотреть лог сообщений
Неустойчивые значения PID
- Снизить Kp (коэффициент пропорциональности)
- Увеличить dT (период сэмплирования)
- Добавить Kd (демпфирование)
Версия документа: 1.0
Дата: 2026-01-21
Статус: Утверждено