mirror of
https://github.com/anklimov/lighthub
synced 2026-10-28 11:15:00 +00:00
docs review
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Аналоговые входы и преобразования map
|
||||
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страницы «аналоговые_входы» и «использование_преобразований_map». Снапшот от 2026-10-02.
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страницы «аналоговые\_входы» и «использование\_преобразований\_map». Снапшот от 2026-10-02.
|
||||
|
||||
## Общая информация
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Двойные, тройные, длительные нажатия
|
||||
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страницы «двойные_тройные_длительные_нажатия» и «несколько_кнопок_на_одном_входе». Снапшот от 2026-10-02.
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страницы «двойные\_тройные\_длительные\_нажатия» и «несколько\_кнопок\_на\_одном\_входе». Снапшот от 2026-10-02.
|
||||
|
||||
Начиная с [этого коммита](https://github.com/anklimov/lighthub/commit/0044b741ac9f6fb8fc4b1ff8388e47c8bb8efd9b) у прошивки появилась возможность отслеживать одинарные, двойные, тройные, долгие нажатия
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
| **5** | `THERMO` | Simple Thermostat | ON/OFF термостат с гистерезисом | `[GPIO_pin, целевая_температура_°C]` |
|
||||
| **6** | `RELAY` | Relay Output | Электромагнитное реле ON/OFF | GPIO пин |
|
||||
| **7** | `GROUP` | Group Channel | Логическая группа каналов для синхронного управления | Массив строк с именами каналов |
|
||||
| **8** | `VCTEMP` | Vacom PID Thermo | Температура из VC-канала Vacom (ссылка на item типа CH_VC) | `[имя_канала_VC]` (строка) |
|
||||
| **8** | `VCTEMP` | Vacom PID Thermo | Температура из VC-канала Vacom (ссылка на item типа CH\_VC) | `[имя_канала_VC]` (строка) |
|
||||
| **9** | `MBUSVC` | Vacom Modbus Motor | Управление мотор-регулятором вентилятора Vacom через Modbus | `[modbus_адрес, "имя_объекта"]` |
|
||||
| **10** | `ACHAIER` | Air Conditioner Haier | Управление кондиционером Haier по проприетарному UART-протоколу (9600) | `[порт_serial(0-3)]` |
|
||||
| **11** | `SPILED` | SPI LED Strip | Управление NeoPixel LED лентой (WS2812B и совместимые, один data-пин) | `[data_pin, numLeds(дефолт 43), ledsType]` |
|
||||
@@ -29,7 +29,7 @@
|
||||
| **16** | `RELAYPWM` | Relay PWM | Медленный PWM через реле для инертных систем | `[GPIO_pin, период_цикла_сек(дефолт 5)]` |
|
||||
| **17** | `DMXRGBWW` | DMX RGBWW | DMX 512 выход RGB + теплый белый + холодный белый (5 каналов) | Номер стартового DMX канала |
|
||||
| **18** | `VENTS` | Multiroom Ventilation | Многозональная вентиляция с каскадным управлением | `[объект_зон]` (без Modbus-адреса) |
|
||||
| **19** | `ELEVATOR` | Elevator Control | Управление лифтом | `{"serial":"8N1","baud":19200,"log":...}` (компилируется с ELEVATOR_ENABLE) |
|
||||
| **19** | `ELEVATOR` | Elevator Control | Управление лифтом | `{"serial":"8N1","baud":19200,"log":...}` (компилируется с ELEVATOR\_ENABLE) |
|
||||
| **20** | `COUNTER` | Generic Counter | Счётчик импульсов (электроэнергия, газ, вода) | `[коэффициент_импульса, период_автосуммирования_сек]` |
|
||||
| **21** | `HUM` | Humidifier | Управление увлажнителем воздуха (только один в системе) | `[[pumpPin, flushPin, pressurePin, maxPumpTime, idleTime, capacity, minLevel, startLevel], {зоны_краны}, motorExec, faultExec]` |
|
||||
| **22** | `MERCURY` | Mercury Energy Meter | Счётчик энергии Mercury по RS485/Modbus | `[адрес, baud, "8N1", уровень_доступа, пароль, pollingInterval_ms(дефолт 10000)]` |
|
||||
@@ -53,33 +53,33 @@
|
||||
|
||||
## Примеры конфигурации по типам
|
||||
|
||||
### CH_DIMMER (0) - DMX выход с регулировкой
|
||||
### CH\_DIMMER (0) - DMX выход с регулировкой
|
||||
|
||||
```json
|
||||
"dimmer1": [0, 5], // DMX канал 5
|
||||
"dimmer2": [0, [1, 2, 3, 4]] // 4-канальный (RGBW), DMX 1-4
|
||||
```
|
||||
|
||||
### CH_RGBW (1) - DMX RGB+White
|
||||
### CH\_RGBW (1) - DMX RGB+White
|
||||
|
||||
```json
|
||||
"rgb_light": [1, 10] // RGB+W на DMX 10-13
|
||||
```
|
||||
|
||||
### CH_RGB (2) - DMX RGB
|
||||
### CH\_RGB (2) - DMX RGB
|
||||
|
||||
```json
|
||||
"rgb_light": [2, 15] // RGB начиная с 15-го (на DMX 15-17)
|
||||
```
|
||||
|
||||
### CH_PWM (3) - GPIO PWM
|
||||
### CH\_PWM (3) - GPIO PWM
|
||||
|
||||
```json
|
||||
"pwm1": [3, 9], // PWM на GPIO pin 9
|
||||
"pwm_4ch": [3, [11, 12, 13, 14]] // 4-х канальный PWM
|
||||
```
|
||||
|
||||
### CH_MODBUS (4) - AC Dimmer (Legacy)
|
||||
### CH\_MODBUS (4) - AC Dimmer (Legacy)
|
||||
|
||||
```json
|
||||
"mbus_dim": [4, [96, 0, 0, 255]]
|
||||
@@ -89,20 +89,20 @@
|
||||
// Макс значение: 255
|
||||
```
|
||||
|
||||
### CH_THERMO (5) - Термостат
|
||||
### CH\_THERMO (5) - Термостат
|
||||
|
||||
```json
|
||||
"thermo_bath": [5, 24, 33] // GPIO 24, уставка 33°C
|
||||
```
|
||||
|
||||
### CH_RELAY (6) - Реле
|
||||
### CH\_RELAY (6) - Реле
|
||||
|
||||
```json
|
||||
"relay1": [6, 23], // Реле на GPIO 23
|
||||
"relay2": ["RELAY", 28, 1, 1] // Реле, по умолчанию ON
|
||||
```
|
||||
|
||||
### CH_GROUP (7) - Группа каналов
|
||||
### CH\_GROUP (7) - Группа каналов
|
||||
|
||||
```json
|
||||
"lights_all": [7, [
|
||||
@@ -112,19 +112,19 @@
|
||||
"lights_bedroom": [7, ["lamp1", "rgb1"]]
|
||||
```
|
||||
|
||||
### CH_VCTEMP (8) - Vacom PID терморегулятор
|
||||
### CH\_VCTEMP (8) - Vacom PID терморегулятор
|
||||
|
||||
```json
|
||||
"fm_t": [8, "fm"] // строка-имя item типа CH_VC (9)
|
||||
```
|
||||
|
||||
### CH_VC (9) - Vacom мотор регулятор
|
||||
### CH\_VC (9) - Vacom мотор регулятор
|
||||
|
||||
```json
|
||||
"fan_speed": [9, [96, "a_ext"]] // Modbus адрес 96, "имя_объекта" (строка)
|
||||
```
|
||||
|
||||
### CH_AC (10) - Кондиционер Haier
|
||||
### CH\_AC (10) - Кондиционер Haier
|
||||
|
||||
```json
|
||||
"ac_main": [10, 1] // номер порта serial (0-3)
|
||||
@@ -132,13 +132,13 @@
|
||||
// также доступны подканалы lock/swing/quiet/raw (/mode — число, текстовые режимы — в /cmd)
|
||||
```
|
||||
|
||||
### CH_SPILED (11) - SPI LED лента
|
||||
### CH\_SPILED (11) - SPI LED лента
|
||||
|
||||
```json
|
||||
"led_strip": [11, [7, 8]] // data-пин GPIO7, 8 светодиодов
|
||||
```
|
||||
|
||||
### CH_MOTOR (12) - Моторная задвижка с обратной связью
|
||||
### CH\_MOTOR (12) - Моторная задвижка с обратной связью
|
||||
|
||||
```json
|
||||
"gate_motor": [12, [9, 10, 11, 0, 255, 30000]]
|
||||
@@ -146,7 +146,7 @@
|
||||
// fbOpen: 0, fbClosed: 255, maxOnTime_ms: 30000
|
||||
```
|
||||
|
||||
### CH_PID (13) - PID регулятор
|
||||
### CH\_PID (13) - PID регулятор
|
||||
|
||||
```json
|
||||
"pid_temp": [13, [
|
||||
@@ -159,7 +159,7 @@
|
||||
// min_out=0, max_out=255
|
||||
```
|
||||
|
||||
### CH_MBUS (14) - Универсальный Modbus
|
||||
### CH\_MBUS (14) - Универсальный Modbus
|
||||
|
||||
```json
|
||||
"mbus_generic": [14, [96, "temperature_sensor", {
|
||||
@@ -168,7 +168,7 @@
|
||||
}]]
|
||||
```
|
||||
|
||||
### CH_UARTBRIDGE (15) - UART мост
|
||||
### CH\_UARTBRIDGE (15) - UART мост
|
||||
|
||||
```json
|
||||
"uart_debug": [15, {
|
||||
@@ -180,19 +180,19 @@
|
||||
}]
|
||||
```
|
||||
|
||||
### CH_RELAYX (16) - Медленный PWM через реле
|
||||
### CH\_RELAYX (16) - Медленный PWM через реле
|
||||
|
||||
```json
|
||||
"relay_pwm": [16, [22, 60]] // GPIO 22, период цикла 60 сек
|
||||
```
|
||||
|
||||
### CH_RGBWW (17) - DMX RGBWW
|
||||
### CH\_RGBWW (17) - DMX RGBWW
|
||||
|
||||
```json
|
||||
"led_warm_cold": [17, 30] // DMX 30-34 (RGBWW, 5 каналов)
|
||||
```
|
||||
|
||||
### CH_MULTIVENT (18) - Многозональная вентиляция
|
||||
### CH\_MULTIVENT (18) - Многозональная вентиляция
|
||||
|
||||
```json
|
||||
"multivent_system": [18, {
|
||||
@@ -206,14 +206,14 @@
|
||||
}]
|
||||
```
|
||||
|
||||
### CH_COUNTER (20) - Счётчик по импульсам/времени
|
||||
### CH\_COUNTER (20) - Счётчик по импульсам/времени
|
||||
|
||||
```json
|
||||
"energy_meter": [20, [0.02, 1.2]] // коэфф 0.02, период автосуммирования 1.2 с
|
||||
"gas_counter": [20, 0] // без калибровки
|
||||
```
|
||||
|
||||
### CH_HUMIDIFIER (21) - Увлажнитель
|
||||
### CH\_HUMIDIFIER (21) - Увлажнитель
|
||||
|
||||
```json
|
||||
"humidifier1": [21, [13, 14, 15, 120, 15, 50, 5, 25]]
|
||||
@@ -221,7 +221,7 @@
|
||||
// (только один humidifier в системе; компилируется с HUMIDIFIER_ENABLE)
|
||||
```
|
||||
|
||||
### CH_MERCURY (22) - Счётчик энергии Mercury
|
||||
### CH\_MERCURY (22) - Счётчик энергии Mercury
|
||||
|
||||
```json
|
||||
"mercury_meter": [22, [1, 9600, "8N1", 2, "123456", 10000]]
|
||||
@@ -233,7 +233,7 @@
|
||||
// Интервал опроса: 10000 мс (дефолт)
|
||||
```
|
||||
|
||||
### CH_SPRINKLR (23) - Система полива
|
||||
### CH\_SPRINKLR (23) - Система полива
|
||||
|
||||
```json
|
||||
"irrigation_system": [23, {
|
||||
@@ -281,7 +281,7 @@
|
||||
- `HIGH` / `MEDIUM` / `LOW` — скорость вентилятора
|
||||
- `RGB` / `HSV` / `RESET` — цветовые команды (для RGB каналов) и сброс
|
||||
|
||||
Полный список команд: ON OFF REST TOGGLE HALT XON XOFF INCREASE DECREASE ENABLE DISABLE UNFREEZE FREEZE AUTO FAN_ONLY HIGH MEDIUM LOW HEAT_COOL HEAT COOL DRY RGB HSV RESET.
|
||||
Полный список команд: ON OFF REST TOGGLE HALT XON XOFF INCREASE DECREASE ENABLE DISABLE UNFREEZE FREEZE AUTO FAN\_ONLY HIGH MEDIUM LOW HEAT\_COOL HEAT COOL DRY RGB HSV RESET.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Command Line Interface
|
||||
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страница «cli_интерфейс». Снапшот от 2026-10-02.
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страница «cli\_интерфейс». Снапшот от 2026-10-02.
|
||||
|
||||
Иначе, интерфейс командной строки.
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Криптоподпись команды
|
||||
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страница «криптоподпись_команды». Снапшот от 2026-10-02.
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страница «криптоподпись\_команды». Снапшот от 2026-10-02.
|
||||
|
||||
В том случае, если надо гарантировать, что, даже получив доступ к локальной сети, MQTT брокеру или HTTP API, потенциальный злоумышленник не сможет выполнить критичную команду (например, открытие ворот), можно использовать механизм цифровой подписи команды.
|
||||
|
||||
Для задействования режима, необходимо пересобрать прошивку, добавив в приватный файл опций компиляции ([опции компиляции](https://www.lazyhome.ru/dokuwiki/doku.php?id=опции_компиляции)) (пример custom-build-flags/build_flags_lighthub21 для сборки под lighthub21) следующие опции (приведен пример):
|
||||
Для задействования режима, необходимо пересобрать прошивку, добавив в приватный файл опций компиляции ([опции компиляции](https://www.lazyhome.ru/dokuwiki/doku.php?id=опции_компиляции)) (пример custom-build-flags/build\_flags\_lighthub21 для сборки под lighthub21) следующие опции (приведен пример):
|
||||
|
||||
```
|
||||
-D CRYPT
|
||||
@@ -18,11 +18,11 @@
|
||||
* Авторизованная сторона, желающая выполнить команду, вычисляет SHA256 хэш от строки, содержащей `<Salt><SHAREDSECRET><Команда>`
|
||||
* при отправке MQTT команды, авторизованная сторона добавляет в MQTT Payload полученный хэш цифровой подписи ДО команды, отделив подпись от тела команды знаком @
|
||||
* Контроллер, получив команду с подписью, производит аналогичную операцию по вычислению подписи и, если значения совпали, запрос считается авторизованным
|
||||
* Если команда направлена на управление пином контроллера, из перечня PROTECTED_PINS, заданного при компиляции прошивки, то она будет выполнена только том случае, если является авторизованной
|
||||
* Если команда направлена на управление пином контроллера, из перечня PROTECTED\_PINS, заданного при компиляции прошивки, то она будет выполнена только том случае, если является авторизованной
|
||||
|
||||
### Ограничения
|
||||
|
||||
Если пин входит в перечень, заданный при компиляции в опции PROTECTED_PINS, то для него действуют следующие ограничения, смысл которых в том, чтобы сделать крайне сложным подачу высокого логического уровня на выход контроллера (открытие мощных ключей) не имея физического доступа к самому устройству:
|
||||
Если пин входит в перечень, заданный при компиляции в опции PROTECTED\_PINS, то для него действуют следующие ограничения, смысл которых в том, чтобы сделать крайне сложным подачу высокого логического уровня на выход контроллера (открытие мощных ключей) не имея физического доступа к самому устройству:
|
||||
|
||||
* Он не будет работать на канале типа термостат (THERMO)
|
||||
* Для канала типа RELAY вывод работает только в не инверсном режиме. То есть, настройками не получится добиться перевода в состояние с высоким уровнем по-умолчанию, не получив подписанной команды. Настройки команды по умолчанию в файле конфигурации, также, будут проигнорированы. требуется цифровая подпись команде для управления таким каналом
|
||||
@@ -40,4 +40,4 @@
|
||||
- Корректно: механизм реализован под флагом `CRYPT`: ключ `cryptoKey[] = QUOTE(SHAREDSECRET)` (`lighthub/main.cpp:110`), публикация `$salt` в топике устройства — `lighthub/main.cpp:2793-2804` (функция `publishStat()`, вызывается раз в 30 секунд из `thermoLoop()`, период `THERMOSTAT_CHECK_PERIOD=30000`, `lighthub/options.h:147`).
|
||||
- Корректно: подпись вычисляется как SHA256 от `<Salt><SHAREDSECRET><Команда>` — `checkToken()` в `lighthub/utils.cpp:901-942` (sha256.update: saltStr, cryptoKey, data).
|
||||
- Корректно: формат payload «подпись@команда» — разбор по символу `@` в `lighthub/item.cpp:752` (`char * authPos = strchr(payload,'@'); //token@command`).
|
||||
- Корректно: ограничения для PROTECTED_PINS подтверждены в коде: THERMO — `main.cpp:3237`; RELAY — `modules/out_relay.cpp:39,110`; MOTOR — `modules/out_motor.cpp:53,77,102`; PWM требует авторизованную команду — `modules/out_pwm.cpp:129-165`; SPRINKLER (увлажнитель) — `modules/out_sprinkler.cpp:50`. Перечень пинов задается опцией `PROTECTED_PINS` (`lighthub/options.h:390-403`).
|
||||
- Корректно: ограничения для PROTECTED\_PINS подтверждены в коде: THERMO — `main.cpp:3237`; RELAY — `modules/out_relay.cpp:39,110`; MOTOR — `modules/out_motor.cpp:53,77,102`; PWM требует авторизованную команду — `modules/out_pwm.cpp:129-165`; SPRINKLER (увлажнитель) — `modules/out_sprinkler.cpp:50`. Перечень пинов задается опцией `PROTECTED_PINS` (`lighthub/options.h:390-403`).
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Как LightHub работает с файлом конфигурации
|
||||
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страница «как_lighthub_работает_с_файлом_конфигурации». Снапшот от 2026-10-02.
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страница «как\_lighthub\_работает\_с\_файлом\_конфигурации». Снапшот от 2026-10-02.
|
||||
|
||||
## Первое включение
|
||||
|
||||
По-умолчанию, контроллер получает динамический адрес локальной сети по DHCP
|
||||
При этом, он записывает его в энергонезависимую память. И если при очередном перезапуске, DHCP сервер не доступен - он будет использовать последний известный IP адрес.
|
||||
|
||||
Если надо определить статический адрес (а, также, GW, DNS, NetMask), это можно сделать при помощи команды ip в [cli_интерфейс](cli_interface.md)
|
||||
Если надо определить статический адрес (а, также, GW, DNS, NetMask), это можно сделать при помощи команды ip в [cli\_интерфейс](cli_interface.md)
|
||||
Адрес будет сохранен в энергонезависимую память контроллера.
|
||||
|
||||
При включении, контроллер сначала проверяет наличие записанного в памяти конфигурационного файла. (У нового контроллера, а также, после перезаливки прошивки, конфигурационный файл отсутствует (кроме mega2560, в случае этого контроллера, конфигурация не утрачивается в процессе перепрошивки)). Затем контроллер поднимает сетевые интерфейсы, подключается к интернету, идет на сайт lazyhome.ru и пытается скачать конфигурационный файл JSON для своего МАС-адреса. (данное поведение можно отключить при помощи cli команды get OFF)
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
Для того, чтобы быстро начать работу, этого достаточно.
|
||||
|
||||
В дальнейшем, Автоматическую загрузку конфига можно отменить при помощи команды `get OFF` в [cli_интерфейс](cli_interface.md) или изменив конфиг через web интерфейс контроллера
|
||||
В дальнейшем, Автоматическую загрузку конфига можно отменить при помощи команды `get OFF` в [cli\_интерфейс](cli_interface.md) или изменив конфиг через web интерфейс контроллера
|
||||
|
||||
### Автономный метод настройки - веб интерфейс/плагин браузера
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
### Дополнительные возможности
|
||||
|
||||
Также можно разместить настройки на своем собственном http сервере, в папке cnf. Формат имени файла: http://MY_CONFIG_SERVER/cnf/12-12-12-12-12-12.config.json (вместо 12-12-12-12-12-12 ваш mac адрес)
|
||||
Также можно разместить настройки на своем собственном http сервере, в папке cnf. Формат имени файла: http://MY\_CONFIG\_SERVER/cnf/12-12-12-12-12-12.config.json (вместо 12-12-12-12-12-12 ваш mac адрес)
|
||||
|
||||
После этого выполнить через CLI команду `get <MY_CONFIG_SERVER>`
|
||||
Контроллер запомнит ваш сервер и далее, будет загружать обновление конфига из этого источника. (на платформах STM, NRF пока не сохраняется)
|
||||
@@ -46,7 +46,7 @@
|
||||
После этого контроллер готов к автономной работе.
|
||||
При загрузке конфигурации проверяется наличие изменений - если в памяти сохранен тот же конфиг, что имеется на портале, повторная загрузка и сохранение не происходит.
|
||||
|
||||
Данное поведение можно изменить при помощи команды save в [cli_интерфейс](cli_interface.md)
|
||||
Данное поведение можно изменить при помощи команды save в [cli\_интерфейс](cli_interface.md)
|
||||
|
||||
```
|
||||
save ON - включить автосохранение конфига (по умолчанию)
|
||||
|
||||
@@ -7,34 +7,34 @@
|
||||
|
||||
## Содержание
|
||||
|
||||
- [CH_DIMMER (0)](#ch_dimmer-0---dmx-диммер)
|
||||
- [CH_RGBW (1)](#ch_rgbw-1---dmx-rgbwhite)
|
||||
- [CH_RGB (2)](#ch_rgb-2---dmx-rgb)
|
||||
- [CH_PWM (3)](#ch_pwm-3---gpio-pwm)
|
||||
- [CH_MODBUS (4)](#ch_modbus-4---modbus-ac-dimmer-legacy)
|
||||
- [CH_THERMO (5)](#ch_thermo-5---onoff-термостат)
|
||||
- [CH_RELAY (6)](#ch_relay-6---gpio-реле)
|
||||
- [CH_GROUP (7)](#ch_group-7---группа-каналов)
|
||||
- [CH_VCTEMP (8)](#ch_vctemp-8---vacom-pid-терморегулятор)
|
||||
- [CH_VC (9)](#ch_vc-9---vacom-мотор-регулятор)
|
||||
- [CH_AC (10)](#ch_ac-10---кондиционер-haier)
|
||||
- [CH_SPILED (11)](#ch_spiled-11---spi-led-лента)
|
||||
- [CH_MOTOR (12)](#ch_motor-12---шаговый-двигатель)
|
||||
- [CH_PID (13)](#ch_pid-13---pid-регулятор)
|
||||
- [CH_MBUS (14)](#ch_mbus-14---universal-modbus)
|
||||
- [CH_UARTBRIDGE (15)](#ch_uartbridge-15---uart-мост)
|
||||
- [CH_RELAYX (16)](#ch_relayx-16---медленный-pwm-через-реле)
|
||||
- [CH_RGBWW (17)](#ch_rgbww-17---dmx-rgbww)
|
||||
- [CH_MULTIVENT (18)](#ch_multivent-18---многозональная-вентиляция)
|
||||
- [CH_ELEVATOR (19)](#ch_elevator-19---управление-лифтом)
|
||||
- [CH_COUNTER (20)](#ch_counter-20---счётчик-импульсов)
|
||||
- [CH_HUMIDIFIER (21)](#ch_humidifier-21---управление-увлажнителем)
|
||||
- [CH_MERCURY (22)](#ch_mercury-22---счётчик-энергии-mercury)
|
||||
- [CH_SPRINKLER (23)](#ch_sprinkler-23---система-полива)
|
||||
- [CH\_DIMMER (0)](#ch_dimmer-0---dmx-диммер)
|
||||
- [CH\_RGBW (1)](#ch_rgbw-1---dmx-rgbwhite)
|
||||
- [CH\_RGB (2)](#ch_rgb-2---dmx-rgb)
|
||||
- [CH\_PWM (3)](#ch_pwm-3---gpio-pwm)
|
||||
- [CH\_MODBUS (4)](#ch_modbus-4---modbus-ac-dimmer-legacy)
|
||||
- [CH\_THERMO (5)](#ch_thermo-5---onoff-термостат)
|
||||
- [CH\_RELAY (6)](#ch_relay-6---gpio-реле)
|
||||
- [CH\_GROUP (7)](#ch_group-7---группа-каналов)
|
||||
- [CH\_VCTEMP (8)](#ch_vctemp-8---vacom-pid-терморегулятор)
|
||||
- [CH\_VC (9)](#ch_vc-9---vacom-мотор-регулятор)
|
||||
- [CH\_AC (10)](#ch_ac-10---кондиционер-haier)
|
||||
- [CH\_SPILED (11)](#ch_spiled-11---spi-led-лента)
|
||||
- [CH\_MOTOR (12)](#ch_motor-12---шаговый-двигатель)
|
||||
- [CH\_PID (13)](#ch_pid-13---pid-регулятор)
|
||||
- [CH\_MBUS (14)](#ch_mbus-14---universal-modbus)
|
||||
- [CH\_UARTBRIDGE (15)](#ch_uartbridge-15---uart-мост)
|
||||
- [CH\_RELAYX (16)](#ch_relayx-16---медленный-pwm-через-реле)
|
||||
- [CH\_RGBWW (17)](#ch_rgbww-17---dmx-rgbww)
|
||||
- [CH\_MULTIVENT (18)](#ch_multivent-18---многозональная-вентиляция)
|
||||
- [CH\_ELEVATOR (19)](#ch_elevator-19---управление-лифтом)
|
||||
- [CH\_COUNTER (20)](#ch_counter-20---счётчик-импульсов)
|
||||
- [CH\_HUMIDIFIER (21)](#ch_humidifier-21---управление-увлажнителем)
|
||||
- [CH\_MERCURY (22)](#ch_mercury-22---счётчик-энергии-mercury)
|
||||
- [CH\_SPRINKLER (23)](#ch_sprinkler-23---система-полива)
|
||||
|
||||
---
|
||||
|
||||
## CH_DIMMER (0) - DMX диммер
|
||||
## CH\_DIMMER (0) - DMX диммер
|
||||
|
||||
**Назначение**: Регулировка яркости одного или нескольких DMX каналов
|
||||
|
||||
@@ -69,7 +69,7 @@ myhome/s_out/lamp_bedroom/val → опубликованная яркость
|
||||
|
||||
---
|
||||
|
||||
## CH_RGBW (1) - DMX RGBW
|
||||
## CH\_RGBW (1) - DMX RGBW
|
||||
|
||||
**Назначение**: Управление RGB + White каналом через DMX (4 канала DMX)
|
||||
|
||||
@@ -105,7 +105,7 @@ myhome/dev/rgb_light/RGB ← 255,0,0,100 (RGB+White)
|
||||
|
||||
---
|
||||
|
||||
## CH_RGB (2) - DMX RGB
|
||||
## CH\_RGB (2) - DMX RGB
|
||||
|
||||
**Назначение**: Управление RGB каналом через DMX (3 канала DMX)
|
||||
|
||||
@@ -128,7 +128,7 @@ myhome/dev/mood_light/HSV ← 120,100,100 (зелёный в HSV)
|
||||
|
||||
---
|
||||
|
||||
## CH_PWM (3) - GPIO PWM
|
||||
## CH\_PWM (3) - GPIO PWM
|
||||
|
||||
**Назначение**: PWM выход через GPIO пины (для плат Arduino, ESP)
|
||||
|
||||
@@ -159,9 +159,9 @@ myhome/dev/pwm_dim/cmd ← ON
|
||||
|
||||
---
|
||||
|
||||
## CH_MODBUS (4) - Modbus AC Dimmer (Legacy)
|
||||
## CH\_MODBUS (4) - Modbus AC Dimmer (Legacy)
|
||||
|
||||
**Назначение**: Управление AC-диммером через Modbus RTU (устаревший тип, использовать CH_MBUS (14))
|
||||
**Назначение**: Управление AC-диммером через Modbus RTU (устаревший тип, использовать CH\_MBUS (14))
|
||||
|
||||
### Синтаксис
|
||||
|
||||
@@ -183,11 +183,11 @@ myhome/dev/pwm_dim/cmd ← ON
|
||||
}
|
||||
```
|
||||
|
||||
⚠️ **Примечание**: Для новых проектов используйте CH_MBUS (14) вместо этого
|
||||
⚠️ **Примечание**: Для новых проектов используйте CH\_MBUS (14) вместо этого
|
||||
|
||||
---
|
||||
|
||||
## CH_THERMO (5) - ON/OFF Термостат
|
||||
## CH\_THERMO (5) - ON/OFF Термостат
|
||||
|
||||
**Назначение**: Простой ON/OFF термостат с гистерезисом
|
||||
|
||||
@@ -219,7 +219,7 @@ myhome/dev/thermo_bath/cmd ← ON, OFF
|
||||
|
||||
---
|
||||
|
||||
## CH_RELAY (6) - GPIO Реле
|
||||
## CH\_RELAY (6) - GPIO Реле
|
||||
|
||||
**Назначение**: Простое электромагнитное реле ON/OFF или иное дискретное устройство
|
||||
|
||||
@@ -250,7 +250,7 @@ myhome/dev/relay_water/cmd ← ON, OFF, TOGGLE
|
||||
|
||||
---
|
||||
|
||||
## CH_GROUP (7) - Группа каналов
|
||||
## CH\_GROUP (7) - Группа каналов
|
||||
|
||||
**Назначение**: Логическая группа для синхронного управления несколькими каналами
|
||||
|
||||
@@ -291,7 +291,7 @@ myhome/dev/lights_all/cmd ← SET 100 (установит яркость
|
||||
|
||||
---
|
||||
|
||||
## CH_VCTEMP (8) - Vacom PID Терморегулятор
|
||||
## CH\_VCTEMP (8) - Vacom PID Терморегулятор
|
||||
|
||||
**Назначение**: PID регулятор температуры для систем вентиляции Vacom
|
||||
|
||||
@@ -317,7 +317,7 @@ myhome/dev/lights_all/cmd ← SET 100 (установит яркость
|
||||
|
||||
---
|
||||
|
||||
## CH_VC (9) - Vacom Мотор-регулятор
|
||||
## CH\_VC (9) - Vacom Мотор-регулятор
|
||||
|
||||
**Назначение**: Управление мотор-регулятором вентилятора Vacom
|
||||
|
||||
@@ -333,7 +333,7 @@ myhome/dev/lights_all/cmd ← SET 100 (установит яркость
|
||||
|
||||
---
|
||||
|
||||
## CH_AC (10) - Кондиционер Haier
|
||||
## CH\_AC (10) - Кондиционер Haier
|
||||
|
||||
**Назначение**: Управление кондиционером Haier по UART (проприетарный протокол Haier, 9600 baud, не Modbus)
|
||||
|
||||
@@ -374,7 +374,7 @@ myhome/dev/ac_hall/fan ← 0, 1, 2, 3 (скорость)
|
||||
|
||||
---
|
||||
|
||||
## CH_SPILED (11) - SPI LED Лента
|
||||
## CH\_SPILED (11) - SPI LED Лента
|
||||
|
||||
**Назначение**: Управление адресуемой SPI LED лентой (WS2812B, APA102)
|
||||
|
||||
@@ -399,7 +399,7 @@ myhome/dev/ac_hall/fan ← 0, 1, 2, 3 (скорость)
|
||||
|
||||
---
|
||||
|
||||
## CH_MOTOR (12) - Шаговый двигатель
|
||||
## CH\_MOTOR (12) - Шаговый двигатель
|
||||
|
||||
**Назначение**: Управление шаговым двигателем с обратной связью (для задвижек, жалюзи)
|
||||
|
||||
@@ -436,7 +436,7 @@ myhome/dev/gate_motor/val ← текущая позиция обратно
|
||||
|
||||
---
|
||||
|
||||
## CH_PID (13) - PID Регулятор
|
||||
## CH\_PID (13) - PID Регулятор
|
||||
|
||||
**Назначение**: Универсальный PID контроллер для процессов
|
||||
|
||||
@@ -484,7 +484,7 @@ myhome/dev/gate_motor/val ← текущая позиция обратно
|
||||
|
||||
---
|
||||
|
||||
## CH_MBUS (14) - Universal Modbus
|
||||
## CH\_MBUS (14) - Universal Modbus
|
||||
|
||||
**Назначение**: Универсальный Modbus канал с полной поддержкой шаблонизации
|
||||
|
||||
@@ -532,7 +532,7 @@ myhome/dev/gate_motor/val ← текущая позиция обратно
|
||||
|
||||
---
|
||||
|
||||
## CH_UARTBRIDGE (15) - UART Мост
|
||||
## CH\_UARTBRIDGE (15) - UART Мост
|
||||
|
||||
**Назначение**: Мост между двумя UART портами с отладкой через UDP
|
||||
|
||||
@@ -558,7 +558,7 @@ myhome/dev/gate_motor/val ← текущая позиция обратно
|
||||
|
||||
---
|
||||
|
||||
## CH_RELAYX (16) - Медленный PWM через реле
|
||||
## CH\_RELAYX (16) - Медленный PWM через реле
|
||||
|
||||
**Назначение**: Медленный PWM через реле для инертных систем (тепловые системы, комплексы)
|
||||
|
||||
@@ -591,7 +591,7 @@ myhome/dev/floor_heating/val ← текущий PWM
|
||||
|
||||
---
|
||||
|
||||
## CH_RGBWW (17) - DMX RGBWW
|
||||
## CH\_RGBWW (17) - DMX RGBWW
|
||||
|
||||
**Назначение**: DMX управление RGB + тёплый белый + холодный белый (5 каналов)
|
||||
|
||||
@@ -615,7 +615,7 @@ myhome/dev/led_tunable_white/RGB ← 255,128,0,200,50
|
||||
|
||||
---
|
||||
|
||||
## CH_MULTIVENT (18) - Многозональная вентиляция
|
||||
## CH\_MULTIVENT (18) - Многозональная вентиляция
|
||||
|
||||
**Назначение**: Каскадная система вентиляции с независимым регулированием по зонам
|
||||
|
||||
@@ -670,7 +670,7 @@ myhome/dev/multivent_main/bedroom/mode ← HEAT, COOL, FAN
|
||||
|
||||
---
|
||||
|
||||
## CH_ELEVATOR (19) - Управление лифтом
|
||||
## CH\_ELEVATOR (19) - Управление лифтом
|
||||
|
||||
**Назначение**: Управление лифтом (зарезервировано для будущего использования)
|
||||
|
||||
@@ -678,7 +678,7 @@ myhome/dev/multivent_main/bedroom/mode ← HEAT, COOL, FAN
|
||||
|
||||
---
|
||||
|
||||
## CH_COUNTER (20) - Счётчик импульсов
|
||||
## CH\_COUNTER (20) - Счётчик импульсов
|
||||
|
||||
**Назначение**: Счётчик импульсов (электроэнергия, газ, вода)
|
||||
|
||||
@@ -710,7 +710,7 @@ myhome/dev/gas_meter/val ← текущее значение (м³)
|
||||
|
||||
---
|
||||
|
||||
## CH_HUMIDIFIER (21) - Управление увлажнителем
|
||||
## CH\_HUMIDIFIER (21) - Управление увлажнителем
|
||||
|
||||
**Назначение**: Управление форсуночным увлажнителем воздуха
|
||||
|
||||
@@ -743,7 +743,7 @@ myhome/dev/humidifier_room/cmd ← ON, OFF
|
||||
|
||||
---
|
||||
|
||||
## CH_MERCURY (22) - Счётчик энергии Mercury
|
||||
## CH\_MERCURY (22) - Счётчик энергии Mercury
|
||||
|
||||
**Назначение**: Счётчик энергии Mercury по RS485/Modbus
|
||||
|
||||
@@ -777,7 +777,7 @@ myhome/dev/energy_mercury/val ← текущие показания энерг
|
||||
|
||||
---
|
||||
|
||||
## CH_SPRINKLER (23) - Система полива
|
||||
## CH\_SPRINKLER (23) - Система полива
|
||||
|
||||
**Назначение**: Многозональная система автоматического полива с контролем воды и насосов
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# LightHub: Полное инженерное описание JSON‑конфигурации контроллера
|
||||
|
||||
> **Документ актуален для ядра LightHub с типами каналов CH_DIMMER (0) - CH_SPRINKLER (23)**
|
||||
> **Документ актуален для ядра LightHub с типами каналов CH\_DIMMER (0) - CH\_SPRINKLER (23)**
|
||||
>
|
||||
> Предназначен для инженеров автоматизации, интеграторов и разработчиков.
|
||||
> Основан **строго** на официальной документации LazyHome / LightHub и исходном коде.
|
||||
@@ -188,7 +188,7 @@ myhome/s_out/lamp1/hue # текущий оттенок RGB лампы
|
||||
|
||||
| Параметр | Описание |
|
||||
|--|--|
|
||||
| GPIO pin | Не используется: пин фиксирован (AVR_DMXOUT_PIN) |
|
||||
| GPIO pin | Не используется: пин фиксирован (AVR\_DMXOUT\_PIN) |
|
||||
| Кол-во каналов | Число DMX каналов (обычно 512) — берётся только последний элемент массива |
|
||||
|
||||
---
|
||||
@@ -400,7 +400,7 @@ myhome/s_out/lamp1/hue # текущий оттенок RGB лампы
|
||||
|
||||
### Типы каналов (0-23)
|
||||
|
||||
**Полный справочник типов каналов см. в [channel_types_reference.md](channel_types_reference.md)**
|
||||
**Полный справочник типов каналов см. в [channel\_types\_reference.md](channel_types_reference.md)**
|
||||
|
||||
| Код | Тип | Описание | Конфигурация |
|
||||
|--|--|--|--|
|
||||
@@ -423,15 +423,15 @@ myhome/s_out/lamp1/hue # текущий оттенок RGB лампы
|
||||
| **16** | `RELAYX` | Медленный PWM | `[GPIO_pin, период_сек]` |
|
||||
| **17** | `DMXRGBWW` | DMX RGBWW | Стартовый DMX канал |
|
||||
| **18** | `VENTS` | Многозональная вентиляция | `{зоны}` (объект; рабочая форма `[[18,5], {зоны}]`) |
|
||||
| **19** | `ELEVATOR` | Лифт (ELEVATOR_ENABLE) | `{serial, baud, log}` |
|
||||
| **19** | `ELEVATOR` | Лифт (ELEVATOR\_ENABLE) | `{serial, baud, log}` |
|
||||
| **20** | `COUNTER` | Автосуммирующий счётчик | `[коэффициент_импульса, период_автосуммирования_сек]` |
|
||||
| **21** | `HUM` | Увлажнитель (HUMIDIFIER_ENABLE) | `[[пины...], {зоны}, motorExecObj, faultExecObj]` |
|
||||
| **21** | `HUM` | Увлажнитель (HUMIDIFIER\_ENABLE) | `[[пины...], {зоны}, motorExecObj, faultExecObj]` |
|
||||
| **22** | `MERCURY` | Счётчик энергии Mercury | `[адрес, baudrate, ...]` |
|
||||
| **23** | `SPRINKLR` | Система полива | `{конфиг}` (корневой объект `""` + зоны с `pin`) |
|
||||
|
||||
### Примеры конфигурации items
|
||||
|
||||
#### CH_RELAY (6) — Простое реле
|
||||
#### CH\_RELAY (6) — Простое реле
|
||||
|
||||
```json
|
||||
"relay1": [6, 23], // Реле на GPIO 23
|
||||
@@ -439,7 +439,7 @@ myhome/s_out/lamp1/hue # текущий оттенок RGB лампы
|
||||
"relay3": [6, 28, 1, 1] // С начальным значением и командой
|
||||
```
|
||||
|
||||
#### CH_DMX (0) — DMX выход
|
||||
#### CH\_DMX (0) — DMX выход
|
||||
|
||||
```json
|
||||
"lamp1": [0, 5], // DMX канал 5
|
||||
@@ -447,20 +447,20 @@ myhome/s_out/lamp1/hue # текущий оттенок RGB лампы
|
||||
"dmx_4ch": ["DMX", [1, 2, 3, 4]] // 4-х канальный диммер
|
||||
```
|
||||
|
||||
#### CH_RGBW (1) — RGB+White
|
||||
#### CH\_RGBW (1) — RGB+White
|
||||
|
||||
```json
|
||||
"rgb_light": [1, 10] // RGB+W на DMX 10-13
|
||||
```
|
||||
|
||||
#### CH_PWM (3) — GPIO PWM
|
||||
#### CH\_PWM (3) — GPIO PWM
|
||||
|
||||
```json
|
||||
"pwm1": [3, 9], // PWM на GPIO 9
|
||||
"pwm_4ch": [3, [11, 12, 13, 14]] // 4-х канальный PWM
|
||||
```
|
||||
|
||||
#### CH_GROUP (7) — Группа каналов
|
||||
#### CH\_GROUP (7) — Группа каналов
|
||||
|
||||
```json
|
||||
"lights_all": [7, [
|
||||
@@ -470,13 +470,13 @@ myhome/s_out/lamp1/hue # текущий оттенок RGB лампы
|
||||
"lights_bedroom": [7, ["lamp1", "rgb1", "relay1"]]
|
||||
```
|
||||
|
||||
#### CH_THERMO (5) — Термостат
|
||||
#### CH\_THERMO (5) — Термостат
|
||||
|
||||
```json
|
||||
"thermo_bath": [5, 24, 33] // GPIO 24, уставка 33°C
|
||||
```
|
||||
|
||||
#### CH_ACHAIER (10) — Кондиционер Haier
|
||||
#### CH\_ACHAIER (10) — Кондиционер Haier
|
||||
|
||||
Проприетарный UART-протокол (НЕ Modbus):
|
||||
|
||||
@@ -484,14 +484,14 @@ myhome/s_out/lamp1/hue # текущий оттенок RGB лампы
|
||||
"ac_haier": [10, 0] // portNum 0-3
|
||||
```
|
||||
|
||||
#### CH_COUNTER (20) — Счётчик энергии
|
||||
#### CH\_COUNTER (20) — Счётчик энергии
|
||||
|
||||
```json
|
||||
"energy": [20, [0.02, 60]], // импульс, период автосуммирования (сек)
|
||||
"gas": [20, 0] // без калибровки
|
||||
```
|
||||
|
||||
#### CH_MULTIVENT (18) — Многозональная вентиляция
|
||||
#### CH\_MULTIVENT (18) — Многозональная вентиляция
|
||||
|
||||
```json
|
||||
"multivent": [[18, 5], {
|
||||
@@ -684,5 +684,5 @@ LightHub использует **жёстко структурированную,
|
||||
|
||||
**Версия документа**: 2.0
|
||||
**Дата обновления**: 2025-01-24
|
||||
**Актуально для**: LightHub с CH_DIMMER (0) - CH_SPRINKLER (23)
|
||||
**Актуально для**: LightHub с CH\_DIMMER (0) - CH\_SPRINKLER (23)
|
||||
**Источник**: [item.h](../../lighthub/item.h), [item.cpp](../../lighthub/item.cpp)
|
||||
|
||||
@@ -8,29 +8,29 @@
|
||||
## Содержание
|
||||
|
||||
1. [Выходные модули (Out)](#выходные-модули)
|
||||
- [out_Multivent](#out_multivent---многоканальный-кондиционер-вентиляция)
|
||||
- [out_AC](#out_ac---управление-кондиционером)
|
||||
- [out_PID](#out_pid---пид-регулятор)
|
||||
- [out_Relay](#out_relay---электромагнитное-реле)
|
||||
- [out_PWM](#out_pwm---широтно-импульсная-модуляция)
|
||||
- [out_DMX](#out_dmx---dmx512-управление-светом)
|
||||
- [out_Motor](#out_motor---управление-двигателем)
|
||||
- [out_Elevator](#out_elevator---управление-лифтом)
|
||||
- [out_Humidifier](#out_humidifier---управление-увлажнителем)
|
||||
- [out_Counter](#out_counter---автосуммирующий-счётчик)
|
||||
- [out_SPILed](#out_spiled---управление-светодиодами)
|
||||
- [out_Mercury](#out_mercury---счётчик-меркурий)
|
||||
- [out_Sprinkler](#out_sprinkler---система-полива)
|
||||
- [out_UARTBridge](#out_uartbridge---uart-мост)
|
||||
- [out\_Multivent](#out_multivent---многоканальный-кондиционер-вентиляция)
|
||||
- [out\_AC](#out_ac---управление-кондиционером)
|
||||
- [out\_PID](#out_pid---пид-регулятор)
|
||||
- [out\_Relay](#out_relay---электромагнитное-реле)
|
||||
- [out\_PWM](#out_pwm---широтно-импульсная-модуляция)
|
||||
- [out\_DMX](#out_dmx---dmx512-управление-светом)
|
||||
- [out\_Motor](#out_motor---управление-двигателем)
|
||||
- [out\_Elevator](#out_elevator---управление-лифтом)
|
||||
- [out\_Humidifier](#out_humidifier---управление-увлажнителем)
|
||||
- [out\_Counter](#out_counter---автосуммирующий-счётчик)
|
||||
- [out\_SPILed](#out_spiled---управление-светодиодами)
|
||||
- [out\_Mercury](#out_mercury---счётчик-меркурий)
|
||||
- [out\_Sprinkler](#out_sprinkler---система-полива)
|
||||
- [out\_UARTBridge](#out_uartbridge---uart-мост)
|
||||
|
||||
2. [Входные модули (In)](#входные-модули)
|
||||
- [in_CCS811_HDC1080](#in_ccs811_hdc1080---датчик-качества-воздуха)
|
||||
- [in\_CCS811\_HDC1080](#in_ccs811_hdc1080---датчик-качества-воздуха)
|
||||
|
||||
---
|
||||
|
||||
# Выходные модули
|
||||
|
||||
## out_Multivent — Многоканальный кондиционер/вентиляция
|
||||
## out\_Multivent — Многоканальный кондиционер/вентиляция
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
| XON | 6 |
|
||||
| XOFF | 7 |
|
||||
| AUTO | 0xE (14) |
|
||||
| FAN_ONLY | 0xF (15) |
|
||||
| FAN\_ONLY | 0xF (15) |
|
||||
| HIGH | 0x10 (16) |
|
||||
| MEDIUM | 0x11 (17) |
|
||||
| LOW | 0x12 (18) |
|
||||
@@ -110,18 +110,18 @@
|
||||
|
||||
### Примеры
|
||||
|
||||
Полное описание с примерами: [multivent_module_description.md](../modules/multivent_module_description.md)
|
||||
Полное описание с примерами: [multivent\_module\_description.md](../modules/multivent_module_description.md)
|
||||
|
||||
---
|
||||
|
||||
## out_AC — Управление кондиционером
|
||||
## out\_AC — Управление кондиционером
|
||||
|
||||
### Описание
|
||||
|
||||
Управление одиночным кондиционером через проприетарный UART-протокол Haier (9600, кадры 13 байт — команда / 37 байт — ответ). НЕ Modbus.
|
||||
|
||||
**Основные функции:**
|
||||
- Управление режимом (HEAT, COOL, FAN_ONLY, DRY, AUTO)
|
||||
- Управление режимом (HEAT, COOL, FAN\_ONLY, DRY, AUTO)
|
||||
- Управление скоростью вентилятора (LOW, MEDIUM, HIGH, OFF или число)
|
||||
- Управление температурой
|
||||
- Поддержка качания жалюзей (SWING)
|
||||
@@ -158,8 +158,8 @@
|
||||
| `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) | Режим |
|
||||
| `/cmd` | AUTO/HEAT/COOL/FAN\_ONLY/DRY | Текстовые режимы (payload команды) |
|
||||
| `/mode` | число (B\_MODE) | Режим |
|
||||
| `/lock` | ON/OFF | Блокировка пульта |
|
||||
| `/swing` | ON/OFF | Качание жалюзей |
|
||||
| `/quiet` | ON/OFF | Тихий режим (legacy «queit» принимается; статус публикуется в `/quiet`) |
|
||||
@@ -167,7 +167,7 @@
|
||||
|
||||
---
|
||||
|
||||
## out_PID — PID-регулятор
|
||||
## out\_PID — PID-регулятор
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
|
||||
---
|
||||
|
||||
## out_Relay — Электромагнитное реле
|
||||
## out\_Relay — Электромагнитное реле
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -254,7 +254,7 @@ RELAYX: [16, [pin, period_сек], val, cmd]
|
||||
|
||||
---
|
||||
|
||||
## out_PWM — Широтно-импульсная модуляция
|
||||
## out\_PWM — Широтно-импульсная модуляция
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -263,7 +263,7 @@ RELAYX: [16, [pin, period_сек], val, cmd]
|
||||
**Основные функции:**
|
||||
- Регулирование от 0% до 100%
|
||||
- Поддержка RGB-управления (в base-классе colorChannel)
|
||||
- Число пинов (1-5) определяет режим: CH_PWM / RGB / RGBW / RGBWW
|
||||
- Число пинов (1-5) определяет режим: CH\_PWM / RGB / RGBW / RGBWW
|
||||
|
||||
### Тип в JSON
|
||||
```
|
||||
@@ -289,7 +289,7 @@ RELAYX: [16, [pin, period_сек], val, cmd]
|
||||
|
||||
---
|
||||
|
||||
## out_DMX — DMX512 управление светом
|
||||
## out\_DMX — DMX512 управление светом
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -324,7 +324,7 @@ RELAYX: [16, [pin, period_сек], val, cmd]
|
||||
|
||||
---
|
||||
|
||||
## out_Motor — Управление двигателем
|
||||
## out\_Motor — Управление двигателем
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -374,7 +374,7 @@ RELAYX: [16, [pin, period_сек], val, cmd]
|
||||
|
||||
---
|
||||
|
||||
## out_Elevator — Управление лифтом
|
||||
## out\_Elevator — Управление лифтом
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -390,7 +390,7 @@ RELAYX: [16, [pin, period_сек], val, cmd]
|
||||
```
|
||||
[19, {"serial": "8N1", "baud": 19200, "log": ...}]
|
||||
```
|
||||
Реализован (компилируется с ELEVATOR_ENABLE). itemArg — объект. Порты фиксированные (MODULE_UATRBRIDGE_UARTA/B).
|
||||
Реализован (компилируется с ELEVATOR\_ENABLE). itemArg — объект. Порты фиксированные (MODULE\_UATRBRIDGE\_UARTA/B).
|
||||
|
||||
### Формат конфигурации
|
||||
|
||||
@@ -415,7 +415,7 @@ RELAYX: [16, [pin, period_сек], val, cmd]
|
||||
|
||||
---
|
||||
|
||||
## out_Humidifier — Управление увлажнителем
|
||||
## out\_Humidifier — Управление увлажнителем
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -453,25 +453,25 @@ RELAYX: [16, [pin, period_сек], val, cmd]
|
||||
|
||||
| Состояние | Код | Описание |
|
||||
|-----------|-----|---------|
|
||||
| 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 | Ошибка: мотор не выключился |
|
||||
| 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 — Автосуммирующий счётчик
|
||||
## out\_Counter — Автосуммирующий счётчик
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -504,7 +504,7 @@ RELAYX: [16, [pin, period_сек], val, cmd]
|
||||
|
||||
---
|
||||
|
||||
## out_SPILed — Управление светодиодами
|
||||
## out\_SPILed — Управление светодиодами
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -539,7 +539,7 @@ RELAYX: [16, [pin, period_сек], val, cmd]
|
||||
|----------|-----|---------|
|
||||
| `data_pin` | int | GPIO пин (данные) |
|
||||
| `numLeds` | int | Количество светодиодов, деф 43 |
|
||||
| `ledsType` | int | Код NeoPixel (NEO_BRG+NEO_KHZ800 и т.п.) |
|
||||
| `ledsType` | int | Код NeoPixel (NEO\_BRG+NEO\_KHZ800 и т.п.) |
|
||||
|
||||
### Управление
|
||||
|
||||
@@ -553,7 +553,7 @@ RELAYX: [16, [pin, period_сек], val, cmd]
|
||||
|
||||
---
|
||||
|
||||
## out_Mercury — Счётчик Меркурий
|
||||
## out\_Mercury — Счётчик Меркурий
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -562,7 +562,7 @@ RELAYX: [16, [pin, period_сек], val, cmd]
|
||||
**Основные функции:**
|
||||
- Чтение энергопотребления (активная/реактивная)
|
||||
- Контроль связи и состояния счётчика
|
||||
- Тарифные (пиковое/полупиковое/ночное) данные НЕ читаются — только M_NOW
|
||||
- Тарифные (пиковое/полупиковое/ночное) данные НЕ читаются — только M\_NOW
|
||||
|
||||
### Тип в JSON
|
||||
```
|
||||
@@ -612,7 +612,7 @@ RELAYX: [16, [pin, period_сек], val, cmd]
|
||||
|
||||
---
|
||||
|
||||
## out_Sprinkler — Система полива
|
||||
## out\_Sprinkler — Система полива
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -782,7 +782,7 @@ root/s_out/sprinkler/south/val # Выполненный объём/вре
|
||||
|
||||
---
|
||||
|
||||
## out_UARTBridge — UART мост
|
||||
## out\_UARTBridge — UART мост
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -790,7 +790,7 @@ root/s_out/sprinkler/south/val # Выполненный объём/вре
|
||||
|
||||
**Основные функции:**
|
||||
- Прозрачная маршрутизация UART↔UART
|
||||
- Буферизация пакетов (MAX_PDU = 64 байт)
|
||||
- Буферизация пакетов (MAX\_PDU = 64 байт)
|
||||
- Логирование трафика
|
||||
- Одна скорость на оба порта. Порты фиксированные: Serial1/Serial2
|
||||
|
||||
@@ -827,7 +827,7 @@ root/s_out/sprinkler/south/val # Выполненный объём/вре
|
||||
|
||||
# Входные модули
|
||||
|
||||
## in_CCS811_HDC1080 — Датчик качества воздуха
|
||||
## in\_CCS811\_HDC1080 — Датчик качества воздуха
|
||||
|
||||
### Описание
|
||||
|
||||
@@ -916,21 +916,21 @@ root/s_out/sprinkler/south/val # Выполненный объём/вре
|
||||
|
||||
| Модуль | Тип | Назначение | Управление |
|
||||
|--------|-----|-----------|-----------|
|
||||
| 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 |
|
||||
| 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 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -9,27 +9,27 @@
|
||||
|
||||
| Type | Модуль | Класс | Описание |
|
||||
|------|--------|-------|---------|
|
||||
| 0 | DMX | out_dmx | DMX512 управление освещением |
|
||||
| 3 | PWM | out_pwm | Широтно-импульсная модуляция |
|
||||
| 4 | Modbus Dimmer | out_Modbus | AC-диммер через Modbus RTU (legacy) |
|
||||
| 6 | Реле | out_relay | Управление электромагнитным реле |
|
||||
| 10 | AC | out_AC | Управление кондиционером (Haier, UART) |
|
||||
| 11 | SPI LED | out_SPILed | Адресуемые светодиоды WS2812/APA102 |
|
||||
| 12 | Мотор | out_Motor | Управление моторами с обратной связью |
|
||||
| 13 | PID | out_pid | PID-регулятор |
|
||||
| 14 | Modbus | out_Modbus | Modbus устройства (general) |
|
||||
| 15 | UART Bridge | out_UARTbridge | UART-мост между портами |
|
||||
| 16 | RELAYX | out_relay | Медленный PWM через реле |
|
||||
| 18 | Multivent | out_Multivent | Многозональная вентиляция |
|
||||
| 19 | Лифт | out_Elevator | Управление лифтом (UART) |
|
||||
| 20 | Счётчик | out_counter | Счётчик импульсов |
|
||||
| 21 | Увлажнитель | out_humidifier | Форсуночное увлажнение |
|
||||
| 22 | Меркурий | out_Mercury | Счётчик электроэнергии Меркурий |
|
||||
| 23 | Полив | out_sprinkler | Система полива |
|
||||
| 0 | DMX | out\_dmx | DMX512 управление освещением |
|
||||
| 3 | PWM | out\_pwm | Широтно-импульсная модуляция |
|
||||
| 4 | Modbus Dimmer | out\_Modbus | AC-диммер через Modbus RTU (legacy) |
|
||||
| 6 | Реле | out\_relay | Управление электромагнитным реле |
|
||||
| 10 | AC | out\_AC | Управление кондиционером (Haier, UART) |
|
||||
| 11 | SPI LED | out\_SPILed | Адресуемые светодиоды WS2812/APA102 |
|
||||
| 12 | Мотор | out\_Motor | Управление моторами с обратной связью |
|
||||
| 13 | PID | out\_pid | PID-регулятор |
|
||||
| 14 | Modbus | out\_Modbus | Modbus устройства (general) |
|
||||
| 15 | UART Bridge | out\_UARTbridge | UART-мост между портами |
|
||||
| 16 | RELAYX | out\_relay | Медленный PWM через реле |
|
||||
| 18 | Multivent | out\_Multivent | Многозональная вентиляция |
|
||||
| 19 | Лифт | out\_Elevator | Управление лифтом (UART) |
|
||||
| 20 | Счётчик | out\_counter | Счётчик импульсов |
|
||||
| 21 | Увлажнитель | out\_humidifier | Форсуночное увлажнение |
|
||||
| 22 | Меркурий | out\_Mercury | Счётчик электроэнергии Меркурий |
|
||||
| 23 | Полив | out\_sprinkler | Система полива |
|
||||
|
||||
---
|
||||
|
||||
## 1. out_counter — Счётчик импульсов
|
||||
## 1. out\_counter — Счётчик импульсов
|
||||
|
||||
### Конфигурация (Type 20)
|
||||
|
||||
@@ -47,9 +47,9 @@
|
||||
|
||||
### Логика работы
|
||||
|
||||
1. Модуль ждёт команду (S_SET или любой CMD)
|
||||
1. Модуль ждёт команду (S\_SET или любой CMD)
|
||||
2. При получении команды с процентом > 0 запускается таймер
|
||||
3. По истечении периода [1] добавляется значение [0] * TENS_BASE
|
||||
3. По истечении периода [1] добавляется значение [0] * TENS\_BASE
|
||||
4. Считанное значение публикуется в MQTT
|
||||
|
||||
### Пример использования
|
||||
@@ -65,7 +65,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 2. out_relay — Электромагнитное реле (Type 6)
|
||||
## 2. out\_relay — Электромагнитное реле (Type 6)
|
||||
|
||||
### Конфигурация
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 3. out_Motor — Управление моторами (Type 12)
|
||||
## 3. out\_Motor — Управление моторами (Type 12)
|
||||
|
||||
### Конфигурация
|
||||
|
||||
@@ -118,11 +118,11 @@
|
||||
### Логика работы
|
||||
|
||||
1. Модуль сравнивает **targetPos** (из команды 0-255) с **curPos** (из обратной связи)
|
||||
2. Если разница > POS_ERR (10):
|
||||
2. Если разница > POS\_ERR (10):
|
||||
- Если targetPos < curPos → движение вниз (pinDown)
|
||||
- Если targetPos > curPos → движение вверх (pinUp)
|
||||
3. При достижении targetPos или maxOnTime мотор останавливается
|
||||
4. Защита от перегрузки: одновременно работают макс. MOTOR_QUOTE моторов (обычно 2)
|
||||
4. Защита от перегрузки: одновременно работают макс. MOTOR\_QUOTE моторов (обычно 2)
|
||||
|
||||
### Примеры
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 4. out_PID — PID-регулятор (Type 13)
|
||||
## 4. out\_PID — PID-регулятор (Type 13)
|
||||
|
||||
### Конфигурация
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 5. out_PWM — ШИМ управление (Type 3)
|
||||
## 5. out\_PWM — ШИМ управление (Type 3)
|
||||
|
||||
### Конфигурация
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 6. out_relay (Type 6) — детально
|
||||
## 6. out\_relay (Type 6) — детально
|
||||
|
||||
### Загружаемые параметры (getConfig)
|
||||
|
||||
@@ -233,7 +233,7 @@ if (!period) period = 5000UL; // по умолчанию 5 сек
|
||||
|
||||
---
|
||||
|
||||
## 7. out_counter (Type 20) — детально
|
||||
## 7. out\_counter (Type 20) — детально
|
||||
|
||||
### Загружаемые параметры (Poll)
|
||||
|
||||
@@ -250,7 +250,7 @@ uint32_t period = item->getFloatArg(1) * 1000.0; // [1] в мс
|
||||
|
||||
---
|
||||
|
||||
## 8. out_Motor (Type 12) — детально
|
||||
## 8. out\_Motor (Type 12) — детально
|
||||
|
||||
### Загружаемые параметры (getConfig)
|
||||
|
||||
@@ -278,7 +278,7 @@ if (pinDown < 0) {
|
||||
|
||||
---
|
||||
|
||||
## 9. out_PID (Type 13) — детально
|
||||
## 9. out\_PID (Type 13) — детально
|
||||
|
||||
### Загружаемые параметры (getConfig)
|
||||
|
||||
@@ -308,7 +308,7 @@ store->setpoint = item->itemVal->valuefloat; // Установка из JSON va
|
||||
|
||||
---
|
||||
|
||||
## 11. out_humidifier (Type 21) — Форсуночное увлажнение
|
||||
## 11. out\_humidifier (Type 21) — Форсуночное увлажнение
|
||||
|
||||
### Конфигурация
|
||||
|
||||
@@ -380,30 +380,30 @@ MAX_OPERATION_PRESSURE = 600 // максимальное рабочее д
|
||||
|
||||
| Состояние | Код | Описание |
|
||||
|-----------|-----|---------|
|
||||
| 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_MOTOR_OFF_OK | 10 | Насос остановлен |
|
||||
| H_FLUSH | 8 | Промывка системы |
|
||||
| H_IDLE | 9 | Ожидание |
|
||||
| H_FAULT_PRESSURE | -1 | Ошибка давления |
|
||||
| H_FAULT_PRESSURE_KEEP | -2 | Потеря давления во время работы |
|
||||
| H_FAULT_OVERPRESSURE | -3 | Перепад давления |
|
||||
| H_FAULT_MOTOR_OFF | -4 | Отказ насоса |
|
||||
| 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\_MOTOR\_OFF\_OK | 10 | Насос остановлен |
|
||||
| H\_FLUSH | 8 | Промывка системы |
|
||||
| H\_IDLE | 9 | Ожидание |
|
||||
| H\_FAULT\_PRESSURE | -1 | Ошибка давления |
|
||||
| H\_FAULT\_PRESSURE\_KEEP | -2 | Потеря давления во время работы |
|
||||
| H\_FAULT\_OVERPRESSURE | -3 | Перепад давления |
|
||||
| H\_FAULT\_MOTOR\_OFF | -4 | Отказ насоса |
|
||||
|
||||
### Логика работы
|
||||
|
||||
1. **Инициализация**: модуль ждёт команду включения или когда уровень влажности > startLevel
|
||||
2. **Подготовка**: открывает клапаны форсунок, ждёт достижения давления
|
||||
3. **Работа**: включает насос, поддерживает давление в диапазоне [MIN_OPERATION_PRESSURE, MAX_OPERATION_PRESSURE]
|
||||
3. **Работа**: включает насос, поддерживает давление в диапазоне [MIN\_OPERATION\_PRESSURE, MAX\_OPERATION\_PRESSURE]
|
||||
4. **Балансировка**: одновременно открыто не более `capacity` форсунок из группы `N`
|
||||
5. **Очистка**: периодическая промывка при давлении FLUSH_PRESSURE
|
||||
6. **Контроль**: отключение при падении давления ниже MIN_OPERATION_PRESSURE
|
||||
5. **Очистка**: периодическая промывка при давлении FLUSH\_PRESSURE
|
||||
6. **Контроль**: отключение при падении давления ниже MIN\_OPERATION\_PRESSURE
|
||||
|
||||
### Примеры конфигурации
|
||||
|
||||
@@ -453,7 +453,7 @@ MAX_OPERATION_PRESSURE = 600 // максимальное рабочее д
|
||||
|
||||
---
|
||||
|
||||
## 12. out_Mercury (Type 22) — Счётчик электроэнергии
|
||||
## 12. out\_Mercury (Type 22) — Счётчик электроэнергии
|
||||
|
||||
### Конфигурация
|
||||
|
||||
@@ -497,7 +497,7 @@ MAX_OPERATION_PRESSURE = 600 // максимальное рабочее д
|
||||
|
||||
---
|
||||
|
||||
## 13. out_AC (Type 10) — Управление кондиционером
|
||||
## 13. out\_AC (Type 10) — Управление кондиционером
|
||||
|
||||
### Конфигурация
|
||||
|
||||
@@ -535,7 +535,7 @@ portNum = item->getArg(0); // 0=Serial, 1=Serial1, 2=Serial2, 3=Serial3
|
||||
|
||||
---
|
||||
|
||||
## 14. out_Modbus (тип MBUS) — Modbus устройства
|
||||
## 14. out\_Modbus (тип MBUS) — Modbus устройства
|
||||
|
||||
### Конфигурация общая
|
||||
|
||||
@@ -625,7 +625,7 @@ pollingInterval = delayObj->valueint; // по умолчанию 1000 мс
|
||||
|
||||
---
|
||||
|
||||
## 15. out_Multivent (Type 18) — Многозональная вентиляция
|
||||
## 15. out\_Multivent (Type 18) — Многозональная вентиляция
|
||||
|
||||
### Конфигурация
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ root/[id-устройства или bcst или out]/имя_item/[subitem/]suff
|
||||
- `out` — контроллер публикует статус в эти топики
|
||||
- **Пример**: `myhome/s_out/lamp1/set` (где `s_out` — значение `out`)
|
||||
|
||||
#### 3. **item_name** — имя объекта (канала)
|
||||
#### 3. **item\_name** — имя объекта (канала)
|
||||
|
||||
Определяется в разделе `items` конфигурации.
|
||||
|
||||
@@ -59,7 +59,7 @@ myhome/in/multivent/bedroom/set (установить T в спальне)
|
||||
myhome/in/multivent/kitchen/fan (управление вентилятором кухни)
|
||||
```
|
||||
|
||||
**Пример для LED ленты (пиксели 10-20; работает ТОЛЬКО для CH_SPILED, тип 11 — DMX-драйвер subitem игнорирует)**:
|
||||
**Пример для LED ленты (пиксели 10-20; работает ТОЛЬКО для CH\_SPILED, тип 11 — DMX-драйвер subitem игнорирует)**:
|
||||
```
|
||||
myhome/in/led_strip/10-20/set (установить значение пиксели 10-20)
|
||||
```
|
||||
@@ -87,16 +87,16 @@ myhome/in/floor/OFF/set (применится для теплых
|
||||
| **`/hue`** | Command | Оттенок (0-365°, HSV формат) | RGB/RGBW/RGBWW |
|
||||
| **`/sat`** | Command | Насыщенность (0-100%, HSV формат) | RGB/RGBW/RGBWW |
|
||||
| **`/HSV`** | Command | Полный цвет (hue,saturation,volume). Суффикс ЗАГЛАВНЫЙ, строчный `/hsv` игнорируется | RGB/RGBW/RGBWW |
|
||||
| **`/rgb`** | Command | **Не обрабатывается** в текущей сборке (S_RGB) | — |
|
||||
| **`/rgb`** | Command | **Не обрабатывается** в текущей сборке (S\_RGB) | — |
|
||||
| **`/temp`** | Command | Цветовая температура 153-500 mireds (RGBWW); у AC — текущая T | RGBWW, AC |
|
||||
| **`/raw`** | Command | «Сырые» данные, передаваемые драйверу без интерпретации | AC, ELEVATOR |
|
||||
| **`/fan`** | Command, Status | Скорость вентилятора 0-255 или (HIGH, MEDIUM, LOW, OFF) | AC, Multivent |
|
||||
| **`/mode`** | Command, Status | Режим работы — число 0-4 (AC). Команды FAN нет — есть FAN_ONLY. Текстовые режимы (HEAT, COOL, DRY, AUTO) — payload в /cmd | AC, Multivent |
|
||||
| **`/mode`** | Command, Status | Режим работы — число 0-4 (AC). Команды FAN нет — есть FAN\_ONLY. Текстовые режимы (HEAT, COOL, DRY, AUTO) — payload в /cmd | AC, Multivent |
|
||||
| **`/lock`** | Command, Status | Блокировка (ON, OFF) | AC |
|
||||
| **`/swing`** | Command, Status | Направление воздушного потока (ON, OFF) | AC |
|
||||
| **`/quiet`** | Command, Status | Тихий режим (ON, OFF) | AC |
|
||||
| **`/ctrl`** | Command, Status | Управление состоянием (FREEZE, UNFREEZE, ENABLE, DISABLE) | Специальное |
|
||||
| **`/del`** | Command | Команда с задержкой — только команды ON…FAN_ONLY (код ≤ 0x0F); HIGH/MEDIUM/LOW/HEAT_COOL/HEAT/COOL/DRY запланировать нельзя | ON…FAN_ONLY |
|
||||
| **`/del`** | Command | Команда с задержкой — только команды ON…FAN\_ONLY (код ≤ 0x0F); HIGH/MEDIUM/LOW/HEAT\_COOL/HEAT/COOL/DRY запланировать нельзя | ON…FAN\_ONLY |
|
||||
|
||||
---
|
||||
|
||||
@@ -138,7 +138,7 @@ myhome/lighthub01/lamp1/set ← 150
|
||||
root/out/item[/subitem]/suffix
|
||||
```
|
||||
|
||||
**Примеры** (при out="s_out"):
|
||||
**Примеры** (при out="s\_out"):
|
||||
```
|
||||
myhome/s_out/lamp1/set → 255 (текущая яркость, 0-255; общий топик s_out/lamp1 — 0-100)
|
||||
myhome/s_out/lamp1/cmd → ON (последняя команда)
|
||||
@@ -311,7 +311,7 @@ myhome/in/light/cmd → "ON 3000"
|
||||
|
||||
### Восстановление состояния при старте
|
||||
|
||||
1. Контроллер подписывается на **статусные топики** на **8 секунд** после старта (TIMEOUT_RETAIN = 8000 мс)
|
||||
1. Контроллер подписывается на **статусные топики** на **8 секунд** после старта (TIMEOUT\_RETAIN = 8000 мс)
|
||||
2. Брокер отправляет **последний актуальный статус**
|
||||
3. Контроллер восстанавливает все значения: яркость, цвет, температуру и т.д.
|
||||
|
||||
@@ -394,7 +394,7 @@ curl --user arduino:password -X POST http://192.168.1.10/item/ac_main/mode -d "
|
||||
|
||||
1. **Командные широковещательные**: `root/bcst/#`
|
||||
2. **Командные индивидуальные**: `root/id-устройства/#`
|
||||
3. **Статусные** (только при старте, на 8 сек, TIMEOUT_RETAIN = 8000 мс): `root/out/+/+/#`
|
||||
3. **Статусные** (только при старте, на 8 сек, TIMEOUT\_RETAIN = 8000 мс): `root/out/+/+/#`
|
||||
4. **Служебные**: `$command` ловится общей подпиской `root/id-устройства/#` (отдельной подписки нет)
|
||||
|
||||
---
|
||||
@@ -471,5 +471,5 @@ mosquitto_sub -h 192.168.1.100 -t "myhome/s_out/#" -v
|
||||
|
||||
---
|
||||
|
||||
**Версия документа**: 2.1 (актуально для работа_с_mqtt из wiki.lazyhome.ru)
|
||||
**Версия документа**: 2.1 (актуально для работа\_с\_mqtt из wiki.lazyhome.ru)
|
||||
**Источники**: [MQTT wiki](https://www.lazyhome.ru/dokuwiki/doku.php?id=%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_mqtt), [API wiki](https://www.lazyhome.ru/dokuwiki/doku.php?id=api)
|
||||
|
||||
@@ -92,7 +92,7 @@ mosquitto_pub -h 192.168.1.100 -t "myhome/in/rgb/HSV" -m "240,100,200"
|
||||
|
||||
### Цвет по RGB (не поддерживается)
|
||||
|
||||
> Суффикс `/rgb` **не поддерживается** в текущей сборке (S_RGB не обрабатывается).
|
||||
> Суффикс `/rgb` **не поддерживается** в текущей сборке (S\_RGB не обрабатывается).
|
||||
> Цвет задаётся через `/HSV` или строкой «h,s,v[,ct]» в общем топике без суффикса.
|
||||
|
||||
```bash
|
||||
@@ -288,7 +288,7 @@ curl http://192.168.1.10/ram/lamp1
|
||||
| `/hue` | Оттенок RGB | 0-365° |
|
||||
| `/sat` | Насыщенность RGB | 0-100% |
|
||||
| `/HSV` | Полный HSV (ЗАГЛАВНЫЙ) | hue,sat,value |
|
||||
| `/rgb` | **Не поддерживается** (S_RGB не обрабатывается) | — |
|
||||
| `/rgb` | **Не поддерживается** (S\_RGB не обрабатывается) | — |
|
||||
| `/fan` | Вентилятор | LOW, MEDIUM, HIGH, OFF или число|
|
||||
| `/mode` | Режим работы — число 0-4 (AC); текстовые режимы — через /cmd | 0-4 |
|
||||
| `/ctrl` | Управление | ENABLE, DISABLE, FREEZE, UNFREEZE |
|
||||
@@ -297,6 +297,6 @@ curl http://192.168.1.10/ram/lamp1
|
||||
---
|
||||
|
||||
**Дополнительно**:
|
||||
- Полный справочник: [mqtt_api_reference.md](mqtt_api_reference.md)
|
||||
- Справочник суффиксов: [suffixes_reference.md](suffixes_reference.md)
|
||||
- Примеры конфигураций: [configuration_examples.md](configuration_examples.md)
|
||||
- Полный справочник: [mqtt\_api\_reference.md](mqtt_api_reference.md)
|
||||
- Справочник суффиксов: [suffixes\_reference.md](suffixes_reference.md)
|
||||
- Примеры конфигураций: [configuration\_examples.md](configuration_examples.md)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# OTA — обновление прошивки по воздуху
|
||||
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страница «ota_обновление_прошивки_по_воздуху». Снапшот от 2026-10-02.
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страница «ota\_обновление\_прошивки\_по\_воздуху». Снапшот от 2026-10-02.
|
||||
|
||||
### OTA
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
Чтобы прошивка могла успешно обновиться, она должна занимать строго не более 50% flash памяти. Это не является проблемой для всех архитектур, исключая MEGA2560. Данный контроллер имеет очень скромные характеристики, поэтому приходится ужиматься. В пред-компилированной версии для этой архитектуры отключены почти все опциональные модули (DMX, Modbus, 1-wire). Но перекомпилировав проект, можно подключить нужные опции, пожертвовав чем-то еще (например, MDNS)
|
||||
|
||||
См файл build-flags/build_flags_mega2560-optiboot с опциями по умолчанию, которые можно переопределить в custom-build-flags/build_flags_mega2560-optiboot
|
||||
См файл build-flags/build\_flags\_mega2560-optiboot с опциями по умолчанию, которые можно переопределить в custom-build-flags/build\_flags\_mega2560-optiboot
|
||||
|
||||
Подробнее про опции компиляции в разделе [опции компиляции](https://www.lazyhome.ru/dokuwiki/doku.php?id=опции_компиляции)
|
||||
|
||||
@@ -51,9 +51,9 @@ arduinoOTA -address 192.168.1.2 -port 80 -username arduino -password password -s
|
||||
В примере приведены username и password по-умолчанию
|
||||
Пароль необходимо сменить на свой
|
||||
|
||||
Задать пароль и сохранить его в NVRAM можно при помощи команды otapwd [cli_интерфейс](cli_interface.md)
|
||||
Задать пароль и сохранить его в NVRAM можно при помощи команды otapwd [cli\_интерфейс](cli_interface.md)
|
||||
|
||||
для коммита прошивки от 20/05/24 и позднее, можно воспользоваться опциями компиляции DEFAULT_OTA_USERNAME и DEFAULT_OTA_PASSWORD
|
||||
для коммита прошивки от 20/05/24 и позднее, можно воспользоваться опциями компиляции DEFAULT\_OTA\_USERNAME и DEFAULT\_OTA\_PASSWORD
|
||||
|
||||
Примечание (2026-10-02): OTA в актуальных версиях прошивки переделана. Механизм управляется опцией компиляции `OTA_ENABLE` (флаг в `build-flags/build_flags_*` и код под `#ifdef OTA_ENABLE` в `lighthub/main.cpp`), обновление по воздуху для ESP-платформ осуществляется через библиотеку ArduinoOTA (форк https://github.com/anklimov/ArduinoOTA). Для ESP32/ESP8266 в `platformio.ini` задана таблица разделов `board_build.partitions = min_spiffs.csv`, выделенная под обновление прошивка больше не ограничена правилом «строго не более 50% flash» (комментарий в platformio.ini: «>50% space - ok for ESP due spare partition»). Правило 50% flash по-прежнему актуально для AVR-платформ (MEGA2560). Порт OTA по умолчанию 65280 (`OTA_PORT`, `lighthub/options.h:28-29`), для esp32-wifi задан `-DOTA_PORT=80`. В wiki не упомянута сборка esp32c3-wifi, также поддерживающая OTA.
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
Параметр `T` соответствует значению **32** — это тип входа «rotary encoder».
|
||||
|
||||
Параметр `"+-"` определяет обработчик, вызываемый при вращении рукоятки энкодера по или против часовой стрелки. Обработчик аналогичен описанному в разделе «диммирование с использованием кнопок» ([button_presses.md](button_presses.md)). Но там пары параметров `icmd`/`irev` и `ecmd`/`erev` используются поочередно, а в случае энкодера первый параметр используется в случае вращения по часовой стрелке, а второй — против часовой.
|
||||
Параметр `"+-"` определяет обработчик, вызываемый при вращении рукоятки энкодера по или против часовой стрелки. Обработчик аналогичен описанному в разделе «диммирование с использованием кнопок» ([button\_presses.md](button_presses.md)). Но там пары параметров `icmd`/`irev` и `ecmd`/`erev` используются поочередно, а в случае энкодера первый параметр используется в случае вращения по часовой стрелке, а второй — против часовой.
|
||||
|
||||
Настройка в примере ниже переключает локальное устройство `dimmer` между состояниями ON и OFF (команда `toggle`) по однократному клику на энкодер (параметр `click`), а при вращении рукоятки по и против часовой стрелки увеличивает или уменьшает яркость локального устройства `dimmer` соответственно (команды `%+1` и `%-1`):
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ myhome/in/lamp_bedroom/set
|
||||
| `/set` | ✅ | ✅ | Установка численного значения | 0-255 (шкала 0-100 — только в общем топике без суффикса) |
|
||||
| `/val` | ✅ | ❌ | Вход сенсора (THERMO, PID, MULTIVENT, SPRINKLER) | Число (T / значение) |
|
||||
| `/raw` | ✅ | ✅ | «Сырые» данные, передаваемые драйверу без интерпретации | Текст / число |
|
||||
| `/del` | ✅ | ❌ | Команда с задержкой. Только команды ON…FAN_ONLY (код ≤ 0x0F); HIGH/MEDIUM/LOW/HEAT_COOL/HEAT/COOL/DRY запланировать нельзя | Текст (команда + время) |
|
||||
| `/del` | ✅ | ❌ | Команда с задержкой. Только команды ON…FAN\_ONLY (код ≤ 0x0F); HIGH/MEDIUM/LOW/HEAT\_COOL/HEAT/COOL/DRY запланировать нельзя | Текст (команда + время) |
|
||||
|
||||
> **Полный список команд** (payload `/cmd`): `ON`, `OFF`, `REST`, `TOGGLE`, `HALT`, `XON`, `XOFF`, `INCREASE`, `DECREASE`, `ENABLE`, `DISABLE`, `UNFREEZE`, `FREEZE`, `AUTO`, `FAN_ONLY`, `HIGH`, `MEDIUM`, `LOW`, `HEAT_COOL`, `HEAT`, `COOL`, `DRY`, `RGB`, `HSV`, `RESET`.
|
||||
> `TOGGLE` в `/ctrl` не включает/выключает, а **инвертирует флаг DISABLE**.
|
||||
@@ -41,7 +41,7 @@ myhome/in/lamp_bedroom/set
|
||||
| `/hue` | ✅ | ✅ | Оттенок (HSV) | 0-365° |
|
||||
| `/sat` | ✅ | ✅ | Насыщенность (HSV) | 0-100% |
|
||||
| `/HSV` | ✅ | ✅ | Полный цвет (hue,sat,val). Суффикс ЗАГЛАВНЫЙ, строчный `/hsv` игнорируется | `H,S,V` |
|
||||
| `/rgb` | ❌ | ❌ | **Не поддерживается** в текущей сборке (S_RGB нигде не обрабатывается) | — |
|
||||
| `/rgb` | ❌ | ❌ | **Не поддерживается** в текущей сборке (S\_RGB нигде не обрабатывается) | — |
|
||||
| `/temp` | ✅ | ✅ | Цветовая температура 153-500 mireds (RGBWW); у AC — текущая T | 153-500 |
|
||||
|
||||
**Примеры**:
|
||||
@@ -108,7 +108,7 @@ myhome/in/ac_main/quiet → ON
|
||||
| `/cmd` | ✅ | ✅ | Включить/выключить | ON, OFF, TOGGLE |
|
||||
| `/set` | ✅ | ✅ | Установленная температура | Текущее значение |
|
||||
| `/fan` | ✅ | ✅ | Скорость вентилятора (HIGH/MEDIUM/LOW → 255/128/64) | HIGH, MEDIUM, LOW |
|
||||
| `/mode` | ✅ | ❌ | Только у основного item (обратная связь от AC). У зон S_MODE не обрабатывается — режим зоны задаётся командой в `zone/cmd` | — |
|
||||
| `/mode` | ✅ | ❌ | Только у основного item (обратная связь от AC). У зон S\_MODE не обрабатывается — режим зоны задаётся командой в `zone/cmd` | — |
|
||||
|
||||
**Структура многозональной вентиляции**:
|
||||
|
||||
@@ -227,30 +227,30 @@ myhome/in/ac/HEAT/set → 25
|
||||
|
||||
| Номер | Тип канала | Суффиксы | Примеры |
|
||||
|:-----:|-----------|----------|---------|
|
||||
| 0 | CH_DIMMER (DMX 1-4 ch) | `/cmd`, `/set` (subitem-адресация игнорируется) | Лампа, светодиод |
|
||||
| 1 | CH_RGBW (DMX 4 ch) | `/cmd`, `/set`, `/hue`, `/sat`, `/HSV`, `/temp` | RGBW люстра |
|
||||
| 2 | CH_RGB (DMX 3 ch) | `/cmd`, `/set`, `/hue`, `/sat`, `/HSV` | RGB лента, LED |
|
||||
| 3 | CH_PWM | `/cmd`, `/set` | PWM вывод |
|
||||
| 4 | CH_MODBUS | `/cmd`, `/set` | Modbus диммер |
|
||||
| 5 | CH_THERMO | `/cmd`, `/set`, `/val` (вход сенсора), `/ctrl` | Термостат |
|
||||
| 6 | CH_RELAY | `/cmd`, `/set`, `/del` | Реле, розетка |
|
||||
| 7 | CH_GROUP | `/cmd`, `/set`, `/hue`, `/sat`, `/HSV` | Группа каналов |
|
||||
| 8 | CH_VCTEMP | — | Регулятор Vacon (PID) |
|
||||
| 9 | CH_VC | — | Привод Vacon (Modbus) |
|
||||
| 10 | CH_AC (Haier) | `/cmd`, `/set` (16-40), `/mode` (0-4), `/fan`, `/lock`, `/swing`, `/quiet` (legacy `queit`), `/temp`, `/raw` | Кондиционер |
|
||||
| 11 | CH_SPILED | `/cmd`, `/set`, `/hue`, `/sat`, `/HSV` + subitem-пиксели 10-20 | Адресуемая LED лента |
|
||||
| 12 | CH_MOTOR | `/cmd`, `/set` | Сервопривод |
|
||||
| 13 | CH_PID | `/cmd`, `/set`, `/val` (вход сенсора), `/ctrl` | PID регулятор, теплые полы |
|
||||
| 14 | CH_MBUS | `/cmd`, `/set` | Modbus устройство |
|
||||
| 15 | CH_UARTBRIDGE | `/cmd`, `/set` | UART-мост |
|
||||
| 16 | CH_RELAYX | `/cmd`, `/set`, `/del` | Реле + ШИМ |
|
||||
| 17 | CH_RGBWW (DMXRGBWW) | `/cmd`, `/set`, `/hue`, `/sat`, `/HSV`, `/temp` | Теплый+холодный белый |
|
||||
| 18 | CH_MULTIVENT | `/cmd`, `/set`, `/fan` + zone-subitem-ы (`set`, `fan`, `cmd`) | Многозональная вентиляция |
|
||||
| 19 | CH_ELEVATOR | `/cmd`, `/set`, `/raw` | Лифт |
|
||||
| 20 | CH_COUNTER | `/cmd`, `/set` | Счетчик |
|
||||
| 21 | CH_HUMIDIFIER | `/cmd` | Увлажнитель |
|
||||
| 22 | CH_MERCURY | — | Счетчик электроэнергии |
|
||||
| 23 | CH_SPRINKLER | `/cmd`, `/set`, `/val` | Полив (ирригатор) |
|
||||
| 0 | CH\_DIMMER (DMX 1-4 ch) | `/cmd`, `/set` (subitem-адресация игнорируется) | Лампа, светодиод |
|
||||
| 1 | CH\_RGBW (DMX 4 ch) | `/cmd`, `/set`, `/hue`, `/sat`, `/HSV`, `/temp` | RGBW люстра |
|
||||
| 2 | CH\_RGB (DMX 3 ch) | `/cmd`, `/set`, `/hue`, `/sat`, `/HSV` | RGB лента, LED |
|
||||
| 3 | CH\_PWM | `/cmd`, `/set` | PWM вывод |
|
||||
| 4 | CH\_MODBUS | `/cmd`, `/set` | Modbus диммер |
|
||||
| 5 | CH\_THERMO | `/cmd`, `/set`, `/val` (вход сенсора), `/ctrl` | Термостат |
|
||||
| 6 | CH\_RELAY | `/cmd`, `/set`, `/del` | Реле, розетка |
|
||||
| 7 | CH\_GROUP | `/cmd`, `/set`, `/hue`, `/sat`, `/HSV` | Группа каналов |
|
||||
| 8 | CH\_VCTEMP | — | Регулятор Vacon (PID) |
|
||||
| 9 | CH\_VC | — | Привод Vacon (Modbus) |
|
||||
| 10 | CH\_AC (Haier) | `/cmd`, `/set` (16-40), `/mode` (0-4), `/fan`, `/lock`, `/swing`, `/quiet` (legacy `queit`), `/temp`, `/raw` | Кондиционер |
|
||||
| 11 | CH\_SPILED | `/cmd`, `/set`, `/hue`, `/sat`, `/HSV` + subitem-пиксели 10-20 | Адресуемая LED лента |
|
||||
| 12 | CH\_MOTOR | `/cmd`, `/set` | Сервопривод |
|
||||
| 13 | CH\_PID | `/cmd`, `/set`, `/val` (вход сенсора), `/ctrl` | PID регулятор, теплые полы |
|
||||
| 14 | CH\_MBUS | `/cmd`, `/set` | Modbus устройство |
|
||||
| 15 | CH\_UARTBRIDGE | `/cmd`, `/set` | UART-мост |
|
||||
| 16 | CH\_RELAYX | `/cmd`, `/set`, `/del` | Реле + ШИМ |
|
||||
| 17 | CH\_RGBWW (DMXRGBWW) | `/cmd`, `/set`, `/hue`, `/sat`, `/HSV`, `/temp` | Теплый+холодный белый |
|
||||
| 18 | CH\_MULTIVENT | `/cmd`, `/set`, `/fan` + zone-subitem-ы (`set`, `fan`, `cmd`) | Многозональная вентиляция |
|
||||
| 19 | CH\_ELEVATOR | `/cmd`, `/set`, `/raw` | Лифт |
|
||||
| 20 | CH\_COUNTER | `/cmd`, `/set` | Счетчик |
|
||||
| 21 | CH\_HUMIDIFIER | `/cmd` | Увлажнитель |
|
||||
| 22 | CH\_MERCURY | — | Счетчик электроэнергии |
|
||||
| 23 | CH\_SPRINKLER | `/cmd`, `/set`, `/val` | Полив (ирригатор) |
|
||||
|
||||
---
|
||||
|
||||
@@ -319,7 +319,7 @@ myhome/s_out/ac_hallway/fan → HIGH
|
||||
], 22]
|
||||
}
|
||||
```
|
||||
(13 — CH_PID; 2-й аргумент — массив `[kP,kI,kD,dT,…], {выходной execObj}, {каскад}]`; 3-й — стартовый setpoint 22°C)
|
||||
(13 — CH\_PID; 2-й аргумент — массив `[kP,kI,kD,dT,…], {выходной execObj}, {каскад}]`; 3-й — стартовый setpoint 22°C)
|
||||
|
||||
**Команды**:
|
||||
```
|
||||
@@ -472,4 +472,4 @@ light:
|
||||
|
||||
**Версия документа**: 2.0 (обновлено для соответствия wiki.lazyhome.ru)
|
||||
**Последнее обновление**: 2024
|
||||
**Источник**: https://www.lazyhome.ru/dokuwiki/doku.php?id=%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_mqtt
|
||||
**Источник**: https://www.lazyhome.ru/dokuwiki/doku.php?id=%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0\_%D1%81\_mqtt
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
| 5 | THERMO | Thermostat | ON/OFF термостат | array | `[24, 33]` (GPIO, T°C) |
|
||||
| 6 | RELAY | Relay Output | GPIO реле | int | `23` (GPIO pin) |
|
||||
| 7 | GROUP | Group Channel | Логическая группа каналов | array | `["lamp1", "lamp2"]` |
|
||||
| 8 | VCTEMP | Vacom Temp | Температура из VC-канала | string | `"fm"` (имя CH_VC канала) |
|
||||
| 8 | VCTEMP | Vacom Temp | Температура из VC-канала | string | `"fm"` (имя CH\_VC канала) |
|
||||
| 9 | MBUSVC | Vacom Motor | Vacom мотор регулятор | array | `[96, "a_ext"]` (адрес, имя) |
|
||||
| 10 | ACHAIER | AC Haier | Кондиционер Haier (UART) | int | `1` (порт 0-3) |
|
||||
| 11 | SPILED | SPI LED | NeoPixel LED лента | array | `[7, 8]` (data-пин 7, 8 светодиодов) |
|
||||
@@ -25,7 +25,7 @@
|
||||
| 13 | PID | PID Regulator | PID регулятор | array | `[[1.0,0.05,...],{...}]` |
|
||||
| 14 | MBUS | Modbus | Universal Modbus v2 | array | `[96, "template", {...}]` |
|
||||
| 15 | UARTBRDG | UART Bridge | UART мост | object | `{"serial","baud","ip","port","hd","log","bond"}` |
|
||||
| 16 | RELAYX | Relay PWM | Медленный PWM реле | array | `[22, 60]` (GPIO, период_сек) |
|
||||
| 16 | RELAYX | Relay PWM | Медленный PWM реле | array | `[22, 60]` (GPIO, период\_сек) |
|
||||
| 17 | DMXRGBWW | DMX RGBWW | DMX RGB+2White (5 каналов) | int | `30` (DMX 30-34) |
|
||||
| 18 | VENTS | Multivent | Многозональная вентиляция | object | `{зоны}` (без Modbus-адреса) |
|
||||
| 19 | ELEVATOR | Elevator | Лифт (реализован) | object | `{"serial":"8N1","baud":19200}` |
|
||||
@@ -70,7 +70,7 @@
|
||||
|
||||
## Детальная таблица (с командами и суффиксами)
|
||||
|
||||
### CH_DIMMER (0) — DMX Диммер
|
||||
### CH\_DIMMER (0) — DMX Диммер
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -83,7 +83,7 @@
|
||||
| **Начальное значение** | Опционально (элемент 3) |
|
||||
| **MQTT примеры** | `myhome/<имя_контроллера>/lamp/cmd ← ON`, `myhome/<имя_контроллера>/lamp/set ← 150` (индивидуальный командный топик) |
|
||||
|
||||
### CH_RGBW (1) — DMX RGB+White
|
||||
### CH\_RGBW (1) — DMX RGB+White
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -96,7 +96,7 @@
|
||||
| **MQTT формат RGBW** | `255,128,0,100` (R,G,B,W) |
|
||||
| **MQTT команды** | `/HSV`, `/RGB`, `/hue`, `/sat`, `/temp` |
|
||||
|
||||
### CH_RGB (2) — DMX RGB
|
||||
### CH\_RGB (2) — DMX RGB
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -105,7 +105,7 @@
|
||||
| **Формат конфига** | `[2, 15]` (DMX каналы 15-17) |
|
||||
| **Суффиксы** | /cmd, /val, /set, /hue, /sat, /temp, /RGB |
|
||||
|
||||
### CH_PWM (3) — GPIO PWM
|
||||
### CH\_PWM (3) — GPIO PWM
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -117,16 +117,16 @@
|
||||
| **Частота** | 4000 Гц (Mega2560, таймеры 3/4); на ESP32 PWM недоступен (stub) |
|
||||
| **Суффиксы** | /cmd, /val, /set |
|
||||
|
||||
### CH_MODBUS (4) — AC Dimmer (Legacy)
|
||||
### CH\_MODBUS (4) — AC Dimmer (Legacy)
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| **Назначение** | Управление AC-диммером через Modbus (устаревшее) |
|
||||
| **Конфигурация** | array `[addr, reg, mask, max_val]` |
|
||||
| **Параметры** | - addr: Modbus адрес (1-247)<br>- reg: регистр (обычно 0)<br>- mask: маска (0, 1, 2 (пропуск 16 бит), 3 (Modbus relay), 4 (swap байтов), -1/отсутствует — без поллинга)<br>- max_val: максимальное значение (обычно 255) |
|
||||
| **Примечание** | **Использовать CH_MBUS (14) для новых проектов** |
|
||||
| **Параметры** | - addr: Modbus адрес (1-247)<br>- reg: регистр (обычно 0)<br>- mask: маска (0, 1, 2 (пропуск 16 бит), 3 (Modbus relay), 4 (swap байтов), -1/отсутствует — без поллинга)<br>- max\_val: максимальное значение (обычно 255) |
|
||||
| **Примечание** | **Использовать CH\_MBUS (14) для новых проектов** |
|
||||
|
||||
### CH_THERMO (5) — ON/OFF Термостат
|
||||
### CH\_THERMO (5) — ON/OFF Термостат
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -137,7 +137,7 @@
|
||||
| **Гистерезис** | Включение при T<уставка−1, выключение при T≥уставка |
|
||||
| **MQTT команды** | `/set` (целевая T), `/val` (вход текущей температуры) |
|
||||
|
||||
### CH_RELAY (6) — GPIO Реле
|
||||
### CH\_RELAY (6) — GPIO Реле
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -148,7 +148,7 @@
|
||||
| **Макс. ток** | 40 мА на pin (требуется транзистор для реле) |
|
||||
| **Состояния** | 0 = OFF, 1 = ON |
|
||||
|
||||
### CH_GROUP (7) — Группа каналов
|
||||
### CH\_GROUP (7) — Группа каналов
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -158,15 +158,15 @@
|
||||
| **Команды** | ON, OFF, TOGGLE, SET (для диммеров) |
|
||||
| **Рекурсия** | Поддерживается (группы в группах) |
|
||||
|
||||
### CH_VCTEMP (8) — Vacom PID Терморегулятор
|
||||
### CH\_VCTEMP (8) — Vacom PID Терморегулятор
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| **Назначение** | Публикация температуры из VC-канала Vacom |
|
||||
| **Конфигурация** | string — имя_канала_VC (itemArg — строка-имя item типа CH_VC (9)) |
|
||||
| **Конфигурация** | string — имя\_канала\_VC (itemArg — строка-имя item типа CH\_VC (9)) |
|
||||
| **Пример** | `[8, "fm"]` |
|
||||
|
||||
### CH_VC (9) — Vacom Мотор-регулятор
|
||||
### CH\_VC (9) — Vacom Мотор-регулятор
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -174,17 +174,17 @@
|
||||
| **Конфигурация** | array `[modbus_адрес, "имя_объекта"]` |
|
||||
| **Пример** | `[9, [96, "a_ext"]]` |
|
||||
|
||||
### CH_AC (10) — Кондиционер Haier
|
||||
### CH\_AC (10) — Кондиционер Haier
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| **Назначение** | Управление кондиционером Haier |
|
||||
| **Конфигурация** | `[10, portNum(0-3)]` |
|
||||
| **Порт** | Номер serial порта (0-3) |
|
||||
| **Режимы** | AUTO, FAN_ONLY, HEAT, COOL, DRY, HEAT_COOL (текст — в payload /cmd; /mode — число); fan: LOW/MEDIUM/HIGH; /set 16-40 |
|
||||
| **Режимы** | AUTO, FAN\_ONLY, HEAT, COOL, DRY, HEAT\_COOL (текст — в payload /cmd; /mode — число); fan: LOW/MEDIUM/HIGH; /set 16-40 |
|
||||
| **Требует** | Проприетарный UART-протокол Haier (9600, кадры 13/37 байт) |
|
||||
|
||||
### CH_SPILED (11) — SPI LED Лента
|
||||
### CH\_SPILED (11) — SPI LED Лента
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -193,7 +193,7 @@
|
||||
| **Протокол** | NeoPixel (один data-пин); по умолчанию Adafruit NeoPixel, при FASTLED — TM1809 |
|
||||
| **Диапазон пинов** | 0-53 |
|
||||
|
||||
### CH_MOTOR (12) — Моторная задвижка с обратной связью
|
||||
### CH\_MOTOR (12) — Моторная задвижка с обратной связью
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -204,7 +204,7 @@
|
||||
| **maxOnTime** | Максимальное время движения (мс, дефолт 10000) |
|
||||
| **Команды** | ON — к заданной позиции, OFF — в позицию 0, HALT |
|
||||
|
||||
### CH_PID (13) — PID Регулятор
|
||||
### CH\_PID (13) — PID Регулятор
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -218,7 +218,7 @@
|
||||
| **alarm** | Значение аварии |
|
||||
| **min/max** | Диапазон выхода |
|
||||
|
||||
### CH_MBUS (14) — Universal Modbus
|
||||
### CH\_MBUS (14) — Universal Modbus
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -229,7 +229,7 @@
|
||||
| **Params** | Привязка параметров к MQTT/items |
|
||||
| **Тип данных** | i16, i32, u16, u32, i8h, i8l, u8h, u8l, x10, 100 |
|
||||
|
||||
### CH_UARTBRIDGE (15) — UART Мост
|
||||
### CH\_UARTBRIDGE (15) — UART Мост
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -237,7 +237,7 @@
|
||||
| **Конфигурация** | object `{serial, baud, ip, port, hd, log, bond}` (порты фиксированы) |
|
||||
| **Отладка** | Может логировать через UDP |
|
||||
|
||||
### CH_RELAYX (16) — Медленный PWM через реле
|
||||
### CH\_RELAYX (16) — Медленный PWM через реле
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -247,16 +247,16 @@
|
||||
| **Период** | Цикл коммутации в секундах (дефолт 5 с, ограничений нет) |
|
||||
| **Применение** | Система напольного отопления, тепловые системы |
|
||||
|
||||
### CH_RGBWW (17) — DMX RGBWW
|
||||
### CH\_RGBWW (17) — DMX RGBWW
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| **Назначение** | RGB + Тёплый белый + Холодный белый |
|
||||
| **Конфигурация** | int (стартовый DMX) |
|
||||
| **Каналов DMX** | 5 (R, G, B, W_warm, W_cold) |
|
||||
| **Каналов DMX** | 5 (R, G, B, W\_warm, W\_cold) |
|
||||
| **Формат** | DMX 30-34 (5 каналов) |
|
||||
|
||||
### CH_MULTIVENT (18) — Многозональная вентиляция
|
||||
### CH\_MULTIVENT (18) — Многозональная вентиляция
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -266,15 +266,15 @@
|
||||
| **PID** | Для каждой зоны свои коэффициенты |
|
||||
| **itemArg** | объект зон (не массив с адресом) |
|
||||
|
||||
### CH_ELEVATOR (19) — Лифт
|
||||
### CH\_ELEVATOR (19) — Лифт
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| **Назначение** | Управление лифтом |
|
||||
| **Конфигурация** | `[19, {"serial":"8N1","baud":19200,"log":...}]` |
|
||||
| **Статус** | Реализован; компилируется с ELEVATOR_ENABLE (включён только в custom-build mega2560-optiboot) |
|
||||
| **Статус** | Реализован; компилируется с ELEVATOR\_ENABLE (включён только в custom-build mega2560-optiboot) |
|
||||
|
||||
### CH_COUNTER (20) — Счётчик импульсов
|
||||
### CH\_COUNTER (20) — Счётчик импульсов
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -284,15 +284,15 @@
|
||||
| **Период** | Период автосуммирования (сек) |
|
||||
| **Вход** | Внешние импульсы (GPIO-входа в конфиге нет) |
|
||||
|
||||
### CH_HUMIDIFIER (21) — Увлажнитель
|
||||
### CH\_HUMIDIFIER (21) — Увлажнитель
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| **Назначение** | Управление увлажнителем воздуха (только один в системе) |
|
||||
| **Конфигурация** | array `[[pumpPin, flushPin, pressurePin, maxPumpTime, idleTime, capacity, minLevel, startLevel], {зоны_краны}, motorExecObj, faultExecObj]` |
|
||||
| **Сборка** | Компилируется с HUMIDIFIER_ENABLE (custom lighthub21) |
|
||||
| **Сборка** | Компилируется с HUMIDIFIER\_ENABLE (custom lighthub21) |
|
||||
|
||||
### CH_MERCURY (22) — Счётчик энергии Mercury
|
||||
### CH\_MERCURY (22) — Счётчик энергии Mercury
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -305,7 +305,7 @@
|
||||
| **Пароль** | Строка из 6 цифр или массив 6 цифр |
|
||||
| **PollingInterval** | Интервал опроса (мс, дефолт 10000) |
|
||||
|
||||
### CH_SPRINKLER (23) — Система полива
|
||||
### CH\_SPRINKLER (23) — Система полива
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
@@ -425,9 +425,9 @@
|
||||
|-----|---------------------------|
|
||||
| SPRINKLER (23) | due, esp32-wifi, esp32c3-wifi, lighthub21, nrf52840 |
|
||||
| MERCURY (22) | due, lighthub21, stm32 |
|
||||
| ELEVATOR (19) | только custom-build mega2560-optiboot (ELEVATOR_ENABLE) |
|
||||
| HUMIDIFIER (21) | только custom-build lighthub21 (HUMIDIFIER_ENABLE) |
|
||||
| UARTBRIDGE (15) | закомментирован во всех стандартных build-flags (UARTBRIDGE_ENABLE) |
|
||||
| ELEVATOR (19) | только custom-build mega2560-optiboot (ELEVATOR\_ENABLE) |
|
||||
| HUMIDIFIER (21) | только custom-build lighthub21 (HUMIDIFIER\_ENABLE) |
|
||||
| UARTBRIDGE (15) | закомментирован во всех стандартных build-flags (UARTBRIDGE\_ENABLE) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Интерфейс настройки контроллера
|
||||
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страница «интерфейс_настройки». Снапшот от 2026-10-02.
|
||||
> Источник: Wiki LightHub (lazyhome.ru), страница «интерфейс\_настройки». Снапшот от 2026-10-02.
|
||||
|
||||
### Интерфейс настройки контроллера
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
* Появляется возможность поиска контроллеров в вашей локальной сети, так как в них давно реализован протокол MDNS
|
||||
|
||||
Недостаток тут только один - надо потратить 5 минут на установку этого плагина.
|
||||
Так как браузер не имеет прав просканировать локальную сеть на предмет наличия контроллеров, плагин использует утилиту zeroconf_lookup которая была разработана в рамках открытого проекта https://github.com/railduino/zeroconf-lookup
|
||||
Так как браузер не имеет прав просканировать локальную сеть на предмет наличия контроллеров, плагин использует утилиту zeroconf\_lookup которая была разработана в рамках открытого проекта https://github.com/railduino/zeroconf-lookup
|
||||
|
||||
На базе этого проекта, я сделал прототип плагина для конфигурирования контроллеров lighthub
|
||||
https://github.com/anklimov/zeroconf-lighthub
|
||||
@@ -58,21 +58,21 @@ https://github.com/anklimov/zeroconf-lighthub
|
||||
* Для этого открываем браузер chrome, в меню "расширения" выбираем "управление расширениями".
|
||||
* Включаем переключатель "режим разработчика",
|
||||
* нажимаем кнопку"Загрузить распакованное расширение".
|
||||
* Выбираем папку __zeroconf-lighthub-master/Chrome__ в распакованном на предыдущем этапе архиве
|
||||
* Выбираем папку _\_zeroconf-lighthub-master/Chrome_\_ в распакованном на предыдущем этапе архиве
|
||||
* Расширение устанавливается, заглядываем на страницу его свойств и копируем идентификатор расширения (например gepnlbipogackhpjkojhkonkijdgpgji ) это нам пригодится чуть позже
|
||||
|
||||
### Как установить утилиту:
|
||||
|
||||
### Windows
|
||||
|
||||
- Переходите в каталог __zeroconf-lighthub-master\Windows_Go__
|
||||
- Переходите в каталог _\_zeroconf-lighthub-master\Windows\_Go_\_
|
||||
- Из командной строки запускаете - `zeroconf_lookup.exe -i -с gepnlbipogackhpjkojhkonkijdgpgji` (тут укажите ваш идентификатор расширения, скопированный на предыдущем этапе)
|
||||
- После этого переносить данный файл с этого места или удалять папку нельзя
|
||||
- Если ставили плагин из магазина приложений - можно при запуске не указывать идентификатор расширения. `zeroconf_lookup.exe -i`
|
||||
|
||||
### MacOS
|
||||
|
||||
то же самое, только выполнимый файл лежит в директории __zeroconf-lighthub/Apple_Go__
|
||||
то же самое, только выполнимый файл лежит в директории _\_zeroconf-lighthub/Apple\_Go_\_
|
||||
|
||||
### Использование
|
||||
|
||||
@@ -83,6 +83,6 @@ https://github.com/anklimov/zeroconf-lighthub
|
||||
## Сверка с кодом (2026-10-02)
|
||||
|
||||
- Корректно: обращение по адресу контроллера (`http://<ip>` / `http://<имя>.local`) приводит к 301-редиректу на страницу управления с публичного ресурса: `httpHandler` в `lighthub/main.cpp:264-286` отвечает `Location: http://<REDIRECTION_URL>?mac=...&ip=...&port=...&name=...`. По умолчанию `REDIRECTION_URL` для esp32-wifi задан как `http://lazyhome.ru/pwa` (`build-flags/build_flags_esp32-wifi`), то есть «портал» подгружается с lazyhome.ru и дальше использует HTTP API контроллера.
|
||||
- Корректно: MDNS-анонс контроллера реализован (`MDNS.addService("http", "tcp", OTA_PORT)`, main.cpp:650; на STM — `mdns.addServiceRecord`, main.cpp:1332), на этом основан поиск плагина через zeroconf_lookup.
|
||||
- Корректно: MDNS-анонс контроллера реализован (`MDNS.addService("http", "tcp", OTA_PORT)`, main.cpp:650; на STM — `mdns.addServiceRecord`, main.cpp:1332), на этом основан поиск плагина через zeroconf\_lookup.
|
||||
- Корректно: веб-контент не размещается в памяти контроллера — в коде есть только HTTP API: `GET/POST /item/<имя>`, `GET /ram/[<имя>]`, `POST /command/<команда>` (подача CLI-команд по HTTP), `POST /config.json` (локальное изменение конфига отключает загрузку с портала, main.cpp:368-374).
|
||||
- Примечание: ограничение Chrome на доступ внешних страниц к локальной сети — особенность браузеров, описана верно; рекомендация по fireFox/плагину актуальна.
|
||||
|
||||
Reference in New Issue
Block a user