# LightHub: Примеры конфигурации для всех типов каналов (0-23) > **Практический справочник** с готовыми примерами JSON конфигурации для каждого типа канала. > Каждый пример показывает полный синтаксис, включая MQTT топики и все параметры. --- ## Содержание - [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 диммер **Назначение**: Регулировка яркости одного или нескольких DMX каналов ### Синтаксис ```json "dimmer_name": [0, дмx_канал_или_массив] ``` Число элементов в arg задаёт число DMX каналов: 1 → одно-канальный диммер, 3 → RGB, 4 → RGBW, 5 → RGBWW. ### Примеры ```json { "items": { "lamp_bedroom": [0, 1], // 1 канал: DMX 1 "lamp_kitchen": [0, 2], // 1 канал: DMX 2 "lamp_hall": [0, [3, 4, 5]], // 3 канала: RGB (DMX 3-5) "lamp_stage": [0, 10, 255, 1] // с начальными значениями } } ``` ### MQTT команды ``` myhome/dev/lamp_bedroom/cmd ← ON, OFF, TOGGLE, SET myhome/dev/lamp_bedroom/set ← 150 (яркость 0-255) myhome/s_out/lamp_bedroom/val → опубликованная яркость ``` --- ## CH\_RGBW (1) - DMX RGBW **Назначение**: Управление RGB + White каналом через DMX (4 канала DMX) ### Синтаксис ```json "rgb_name": [1, стартовый_dmx_канал] ``` ### Пример ```json { "mqtt": ["lighthub", "192.168.88.2"], "dmx": [512], "items": { "rgb_light": [1, 10], // RGB+W на DMX 10-13 "rgb_light2": [1, 20, 255, 0] // с начальной яркостью 255 } } ``` ### MQTT команды ``` myhome/dev/rgb_light/hue ← 240 (0-359°) myhome/dev/rgb_light/sat ← 100 (0-100%) myhome/dev/rgb_light/val ← 200 (0-255) myhome/dev/rgb_light/temp ← 6500 (температура цвета, Mirids) myhome/dev/rgb_light/RGB ← 255,0,0 (красный) myhome/dev/rgb_light/RGB ← 255,0,0,100 (RGB+White) ``` --- ## CH\_RGB (2) - DMX RGB **Назначение**: Управление RGB каналом через DMX (3 канала DMX) ### Пример ```json { "items": { "mood_light": [2, 15] // RGB на DMX 15-17 } } ``` ### MQTT команды ``` myhome/dev/mood_light/RGB ← 0,255,0 (зелёный) myhome/dev/mood_light/HSV ← 120,100,100 (зелёный в HSV) ``` --- ## CH\_PWM (3) - GPIO PWM **Назначение**: PWM выход через GPIO пины (для плат Arduino, ESP) ### Синтаксис ```json "pwm_name": [3, gpio_пин_или_массив] ``` ### Примеры ```json { "items": { "pwm_dim": [3, 9], // PWM на GPIO D9 "pwm_4ch": [3, [11, 12, 13, 14]], // RGBW: 4 канала PWM (GPIO 11-14) "led_pwm": [3, 5, 255, 1] // с начальным значением } } ``` ### MQTT команды ``` myhome/dev/pwm_dim/set ← 128 myhome/dev/pwm_dim/cmd ← ON ``` --- ## CH\_MODBUS (4) - Modbus AC Dimmer (Legacy) **Назначение**: Управление AC-диммером через Modbus RTU (устаревший тип, использовать CH\_MBUS (14)) ### Синтаксис ```json "mbus_dim": [4, [адрес, регистр, маска, макс_значение]] ``` ### Пример ```json { "items": { "ac_dimmer": [4, [96, 0, 0, 255]] // Адрес: 96 (0x60) // Регистр: 0 // Маска: 0 (LSB) // Макс значение: 255 } } ``` ⚠️ **Примечание**: Для новых проектов используйте CH\_MBUS (14) вместо этого --- ## CH\_THERMO (5) - ON/OFF Термостат **Назначение**: Простой ON/OFF термостат с гистерезисом ### Синтаксис ```json "thermo_name": [5, gpio_пин, целевая_температура°C] ``` ### Примеры ```json { "items": { "thermo_bath": [5, 24, 33], // GPIO 24, уставка 33°C "thermo_bedroom": [5, 25, 22], // GPIO 25, уставка 22°C "floor_heating": [5, 26, 28, 1, 1] // с начальным значением } } ``` ### MQTT команды ``` myhome/dev/thermo_bath/set ← 35 (установить целевую T) myhome/dev/thermo_bath/val ← передать измерянную температуру с удаленного сенсора myhome/dev/thermo_bath/cmd ← ON, OFF ``` --- ## CH\_RELAY (6) - GPIO Реле **Назначение**: Простое электромагнитное реле ON/OFF или иное дискретное устройство ### Синтаксис ```json "relay_name": [6, gpio_пин] "relay_name": [6, gpio_пин, начальное_значение, начальная_команда] ``` ### Примеры ```json { "items": { "relay_water": [6, 23], // Реле на GPIO 23 "relay_pump": [6, 24, 0, 0], // начально OFF "relay_heat": [6, 28, 1, 1] // начально ON, команда ON } } ``` ### MQTT команды ``` myhome/dev/relay_water/cmd ← ON, OFF, TOGGLE ``` --- ## CH\_GROUP (7) - Группа каналов **Назначение**: Логическая группа для синхронного управления несколькими каналами ### Синтаксис ```json "group_name": [7, [канал1, канал2, канал3, ...]] ``` ### Примеры ```json { "items": { "lamps": [0, 1], "lamps2": [0, 2], "rgb1": [1, 10], "lights_all": [7, [ "lamps", "lamps2", "rgb1" ]], "lights_bedroom": [7, ["lamps"]], "lights_common": [7, ["lamps", "lamps2"]] } } ``` ### MQTT команды ``` myhome/dev/lights_all/cmd ← ON (включит ВСЕ в группе) myhome/dev/lights_all/cmd ← OFF (выключит ВСЕ в группе) myhome/dev/lights_all/cmd ← SET 100 (установит яркость для диммеров) ``` --- ## CH\_VCTEMP (8) - Vacom PID Терморегулятор **Назначение**: PID регулятор температуры для систем вентиляции Vacom ### Синтаксис ```json "vacom_heat": [8, "имя_item_VC"] ``` Аргумент VCTEMP (8) — **строка**: имя item типа VC (9), к которому привязывается термостат. ### Пример ```json { "items": { "fm": [9, [10, "a_ext"]], // VC: modbus-адрес 10, объект "a_ext" "fan_heat": [8, "fm"], // VCTEMP, привязан к item "fm" "fan_cool": [8, "fm"] // второй термостат на том же VC } } ``` --- ## CH\_VC (9) - Vacom Мотор-регулятор **Назначение**: Управление мотор-регулятором вентилятора Vacom ### Пример ```json { "items": { "vent_motor": [9, [96, "имя_объекта"]] } } ``` --- ## CH\_AC (10) - Кондиционер Haier **Назначение**: Управление кондиционером Haier по UART (проприетарный протокол Haier, 9600 baud, не Modbus) ### Синтаксис ```json "ac_name": [10, номер_порта] "ac_name": [10, [номер_порта, {объект_колбэков}]] ``` Номер порта: 0-3 (0 = Serial, 1 = Serial1, 2 = Serial2, 3 = Serial3). Ключи объекта колбэков: `fan`, `set`, `temp`, `cmd`. ### Полный пример ```json { "mqtt": ["lighthub", "192.168.88.2"], "items": { "ac_hall": [10, [1, { "cmd": {"emit": "ac/cmd"}, "set": {"emit": "ac/set"}, "temp": {"emit": "ac/temp"}, "fan": {"emit": "ac/fan"} }]] } } ``` ### MQTT команды ``` myhome/dev/ac_hall/cmd ← ON, OFF myhome/dev/ac_hall/mode ← COOL, HEAT, DRY, FAN myhome/dev/ac_hall/set ← 22 (температура) myhome/dev/ac_hall/fan ← 0, 1, 2, 3 (скорость) ``` --- ## CH\_SPILED (11) - SPI LED Лента **Назначение**: Управление адресуемой SPI LED лентой (WS2812B, APA102) ### Синтаксис ```json "led_name": [11, [data_pin, число_светодиодов, тип_лент]] ``` `число_светодиодов` (по умолчанию 43) и `тип_лент` — опциональны. Отдельного CLK-пина нет. ### Пример ```json { "items": { "led_strip": [11, [7, 8]], // пин 7, 8 светодиодов "led_bar": [11, [10, 11]] // пин 10, 11 светодиодов } } ``` --- ## CH\_MOTOR (12) - Шаговый двигатель **Назначение**: Управление шаговым двигателем с обратной связью (для задвижек, жалюзи) ### Синтаксис ```json "motor_name": [12, [pinUp, pinDown, pinFeedback, fbOpen, fbClosed, maxOnTime_ms]] ``` ### Пример ```json { "items": { "gate_motor": [12, [9, 10, 11, 0, 255, 30000]], // pinUp: 9 // pinDown: 10 // pinFeedback: 11 // fbOpen: 0 // fbClosed: 255 // maxOnTime: 30000 мс "blinds": [12, [5, 6, 7, 100, 900, 20000]] } } ``` ### MQTT команды ``` myhome/dev/gate_motor/cmd ← ON (открыть), OFF (закрыть) myhome/dev/gate_motor/val ← текущая позиция обратной связи ``` --- ## CH\_PID (13) - PID Регулятор **Назначение**: Универсальный PID контроллер для процессов ### Синтаксис ```json "pid_name": [13, [ [Kp, Ki, Kd, dT, timeout, alarm_val, min_out, max_out], {выходной_execObj}, {каскадный_execObj} ]] ``` ### Пример ```json { "items": { "pid_heater": [13, [ [1.0, 0.05, 0.02, 5.0, 3600, 50, 0, 255], {"emit": "heater/output"}, {"emit": "heater/cascade"} ]], "pid_cooler": [13, [ [0.8, 0.03, 0.01, 5.0, 1800, 100, 0, 200], {"item": "fan_speed/set"}, null ]] } } ``` ### Параметры | Параметр | Описание | |--|--| | `Kp` | Коэффициент пропорциональности | | `Ki` | Коэффициент интеграла | | `Kd` | Коэффициент дифференциала | | `dT` | Интервал расчёта (секунды) | | `timeout` | Время срабатывания аварии (сек) | | `alarm_val` | Значение аварии | | `min_out`, `max_out` | Диапазон выхода | --- ## CH\_MBUS (14) - Universal Modbus **Назначение**: Универсальный Modbus канал с полной поддержкой шаблонизации ### Полный пример ```json { "mqtt": ["lighthub", "192.168.88.2"], "modbus": { "temperature_sensor": { "baud": 9600, "serial": "8N1", "poll": { "regs": [[0, 10]], "delay": 2000 }, "par": { "temperature": { "reg": 0, "type": "x10" }, "humidity": { "reg": 1, "type": "100" } } } }, "items": { "sensor_outdoor": [14, [96, "temperature_sensor", { "temperature": {"emit": "sensors/outdoor/temp"}, "humidity": {"emit": "sensors/outdoor/humidity"} }]], "sensor_indoor": [14, [97, "temperature_sensor", { "temperature": {"item": "thermo_room/set"}, "humidity": {"emit": "sensors/indoor/humidity"} }]] } } ``` > Формат item: `[14, [адрес, "имя_шаблона", {параметры}]]` — modbus-адрес обязателен. > Масштаб значения задаётся типом регистра: `"x10"` (×0.1), `"100"` (×0.01); ключа `scale` нет. --- ## CH\_UARTBRIDGE (15) - UART Мост **Назначение**: Мост между двумя UART портами с отладкой через UDP ### Пример ```json { "items": { "uart_debug": [15, { "serial": "8N1", "baud": 9600, "ip": "192.168.88.2", "port": 12345, "hd": 1, "log": 1, "bond": "," }] } } ``` `serial` (кадр, по умолчанию 8N1), `baud` (по умолчанию 9600), `ip`/`port` (UDP-дамп трафика для отладки), `hd` (half-duplex, по умолчанию 1), `log` (уровень логирования), `bond` (границы PDU). --- ## CH\_RELAYX (16) - Медленный PWM через реле **Назначение**: Медленный PWM через реле для инертных систем (тепловые системы, комплексы) ### Синтаксис ```json "relay_pwm": [16, [gpio_pin, период_цикла_сек]] ``` ### Пример ```json { "items": { "floor_heating": [16, [22, 60]], // GPIO 22, период цикла 60 сек "radiator": [16, [23, 120]], // GPIO 23, период цикла 120 сек "underfloor": [16, [24, 300], 128] // GPIO 24, период 300 сек, начальный PWM 128 } } ``` Период цикла задаётся в **секундах**. Начальное значение PWM — третий элемент item (не внутри массива arg). ### MQTT команды ``` myhome/dev/floor_heating/set ← 200 (PWM 0-255) myhome/dev/floor_heating/val ← текущий PWM ``` --- ## CH\_RGBWW (17) - DMX RGBWW **Назначение**: DMX управление RGB + тёплый белый + холодный белый (5 каналов) ### Пример ```json { "dmx": [512], "items": { "led_tunable_white": [17, 30] // RGB+WW+CW на DMX 30-34 } } ``` ### MQTT команды ``` myhome/dev/led_tunable_white/RGB ← 255,128,0,200,50 // R, G, B, Warm White, Cold White ``` --- ## CH\_MULTIVENT (18) - Многозональная вентиляция **Назначение**: Каскадная система вентиляции с независимым регулированием по зонам **Синтаксис**: itemArg — **объект** с зонами, формат `[[18, нач_значение], {зоны}]`. Зона `""` — AC-узел (ключи `fan`/`set`/`cmd`/`temp`/`V`/`turnbyfan`/`boost`/`supress`/`overridecmd`, привязка к AC item — ключ `item`), остальные зоны: `set` (число, уставка), `fan`, `cmd`, `V`, `pid` ([kP, kI, kD, dT]), `AlarmTime` (деф 120), `AlarmValue` (деф 0). ### Полный пример ```json { "mqtt": ["lighthub", "192.168.88.2"], "items": { "ac_hall": [10, 0], "multivent_main": [[18, 5], { "": { "item": "ac_hall", "fan": {"emit": "vents/main/fan"}, "set": {"emit": "vents/main/set"}, "cmd": {"emit": "vents/main/cmd"}, "temp": {"emit": "vents/main/temp"} }, "bedroom": { "fan": {"emit": "vents/bedroom/fan"}, "set": 21, "V": 40, "pid": [1.0, 0.05, 0.02, 5.0] }, "living_room": { "fan": {"emit": "vents/living/fan"}, "set": 21, "V": 60 }, "kitchen": { "fan": {"emit": "vents/kitchen/fan"}, "set": 20, "V": 30 } }] } } ``` ### MQTT команды ``` myhome/dev/multivent_main/bedroom/set ← 22 (уставка T) myhome/dev/multivent_main/bedroom/fan ← 50 (открытие жалюзи) myhome/dev/multivent_main/bedroom/mode ← HEAT, COOL, FAN ``` --- ## CH\_ELEVATOR (19) - Управление лифтом **Назначение**: Управление лифтом (зарезервировано для будущего использования) **Статус**: TBD (To Be Determined) --- ## CH\_COUNTER (20) - Счётчик **Назначение**: накопление показаний — вода, газ, электроэнергия, моторчасы оборудования. GPIO не используется: значение хранится в самих данных канала (I\_VAL) и переживает перезагрузку. Работает в двух режимах. ### Режим 1: внешние импульсы (вода, газ) Канал просто **держит накопленное значение**, а вход контроллера (геркон водосчётчика, контакт газосчётчика) инкрементирует его относительной командой `%X`, где `X` — вес одного импульса в единицах измерения. ```json { "items": { "waterctr": [20, 0], // 0 — автосуммирования нет "gasctr": [20, 0], "fillctr": [20, 0.01, 0] // с начальным значением 0 }, "in": { "41": { "item": "waterctr/set", "scmd": "%0.01", "rcmd": "" }, "39": { "item": "gasctr/set", "scmd": "%0.1", "rcmd": "" } } } ``` Каждое срабатывание геркона (передний фронт) отправляет в `/set` команду `%0.01` — значение растёт на 0.01 м³. Показание читается из статусного топика `/set`. ``` myhome/dev/waterctr/set ← 123.45 (текущее показание, м³) ``` ### Режим 2: автоинкремент старт-стоп (моторчасы) Если задан массив `[импульс, период_сек]`, канал превращается в **счётчик времени работы**: по команде `ON` (также HEAT/COOL/AUTO/FAN/ DRY/HEATCOOL) стартует таймер, и каждые `период` секунд к значению добавляется `импульс`. Команда `OFF` останавливает счёт. Установка ненулевого значения в `/set` также запускает счёт, нулевое — останавливает. ```json { "items": { "pumpctr": [20, [0.02, 1.2]] // каждые 1.2 сек добавляет 0.02 } } ``` Запуск/остановка обычно привязываются к управляемому оборудованию через execObj. Например, счётчик наработки насоса увлажнителя (тип 21 вызывает свой `motorExecObj` с командой `ON` при включении насоса и `OFF` при выключении): ```json { "items": { "hum": [21, [ [22, 23, 54, 200, 600, 11, 20, 50], { "bedroom": { "N": 1, "pin": 25 } }, { "item": "pumpctr" } ]], "pumpctr": [20, [0.02, 1.2]] } } ``` С 0.02 за 1.2 секунды канал набирает 1 «минуту» за минуту реального времени работы насоса — показание в `/set` и есть наработка в минутах. ``` myhome/dev/pumpctr/set ← 1523.6 (наработка, мин) ``` ### Синтаксис ```json "counter_name": [20] // режим 1, без аргументов "counter_name": [20, вес_импульса] // режим 1 (вес для справки) "counter_name": [20, [импульс, период_сек]] // режим 2: автоинкремент "counter_name": [20, ..., начальное_значение] // + стартовое показание (I_VAL) ``` --- ## CH\_HUMIDIFIER (21) - Управление увлажнителем **Назначение**: Управление форсуночным увлажнителем воздуха **Синтаксис**: itemArg — **массив** (не объект): `[21, [[pumpPin, flushPin, pressurePin, maxPumpTime, idleTime, capacity, minLevel, startLevel], {зоны}, motorExecObj, faultExecObj]]` ### Пример ```json { "items": { "humidifier_room": [21, [ [22, 23, 54, 255, 2500, 4, 10, 20], { "bedroom": {"N": 1, "pin": 24}, "living": {"N": 2, "pin": 25} }, {"item": "pumpctr"} ]] } } ``` ### MQTT команды ``` myhome/dev/humidifier_room/set ← 60 (целевая влажность %) myhome/dev/humidifier_room/cmd ← ON, OFF ``` --- ## CH\_MERCURY (22) - Счётчик энергии Mercury **Назначение**: Счётчик энергии Mercury по RS485/Modbus ### Синтаксис ```json "mercury": [22, [адрес, baudrate, формат, уровень_доступа, пароль, pollingInterval_ms]] ``` ### Пример ```json { "items": { "energy_mercury": [22, [1, 9600, "8N1", 2, [2,2,2,2,2,2], 10000]] // Адрес: 1 // Baudrate: 9600 // Формат: 8N1 // Уровень доступа: 2 // Пароль: [2,2,2,2,2,2] (6 цифр) // Интервал опроса: 10000 мс (по умолчанию) } } ``` ### MQTT команды ``` myhome/dev/energy_mercury/val ← текущие показания энергии ``` --- ## CH\_SPRINKLER (23) - Система полива **Назначение**: Многозональная система автоматического полива с контролем воды и насосов ### Синтаксис ```json "sprinkler_name": [23, {конфиг}] ``` Где `{конфиг}` — объект: в корне (зона `""`) пин системы (`vIn`, `rDren`, `rPump`, `wMax`, `wMin`, `fbDren`, `fbPump`, `wCtr`), далее — зоны полива с `pin`. ### Полный пример конфигурации ```json { "items": { "sprinkler": [23, { "": { "vIn": 3, "wMax": 44, "wMin": 46, "rDren": 23, "fbDren": 63, "rPump": 24, "fbPump": 62, "wCtr": 49 }, "nord": { "pin": 6, "set": 60, "cmd": 1 }, "south": { "pin": 7, "set": 100, "cmd": 1 }, "trees": { "pin": 10, "set": 60, "cmd": 2 }, "outlets": {} }] } } ``` ### MQTT Команды управления #### Запуск/остановка цикла полива ``` root/name/sprinkler/cmd ← ON # Запустить цикл полива всех зон root/name/sprinkler/cmd ← OFF # Остановить полив root/name/sprinkler/cmd ← RESET # Сбросить счётчики - инициирует старт полива root/name/sprinkler/cmd ← FREEZE # Полная блокировка на зиму root/name/sprinkler/cmd ← UNFREEZE # Разблокировка root/name/sprinkler/cmd ← DRY # Режим осушения системы перед зимой root/name/sprinkler/cmd ← ENABLE # Разрешить полив root/name/sprinkler/cmd ← DISABLE # Запретить полив (например, после дождя) ``` #### Управление конкретной зоной ``` root/name/sprinkler/nord/cmd ← ON # Включить полив северной зоны root/name/sprinkler/nord/cmd ← OFF # Выключить полив root/name/sprinkler/nord/set ← 60 # Требуемый объём полива root/name/sprinkler/nord/set ← 0 # Без лимита (для розеток) root/name/sprinkler/south/cmd ← ON # Включить южную зону root/name/sprinkler/south/set ← 100 # Требуемый объём root/name/sprinkler/trees/cmd ← ON # Включить капельное орошение root/name/sprinkler/trees/set ← 60 # Требуемый объём ``` #### Специальные команды ``` root/name/sprinkler/val ← -1 # Температура < 0 → автоматический FREEZE root/name/sprinkler/ctrl ← FREEZE # Установить режим FREEZE root/name/sprinkler/ctrl ← UNFREEZE # Снять режим FREEZE ``` ### MQTT Статусные топики (выходные) #### Состояние системы ``` root/s_out/sprinkler/$state → SP_UNKNOWN, SP_OFF, SP_DREN_ON, SP_DREN_OPERATE, SP_DREN_EMPTY, SP_VIN, SP_FULL, SP_FAULT_VIN, SP_FAULT_DREN 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/nord/$state → ON/OFF - зона в данный момент поливается root/s_out/sprinkler/nord/cmd → ON/OFF - состояние команды включения root/s_out/sprinkler/nord/set → требуемый объём полива root/s_out/sprinkler/nord/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 → выполненный объём root/s_out/sprinkler/trees/$state → ON/OFF - капельная зона поливается root/s_out/sprinkler/trees/cmd → ON/OFF root/s_out/sprinkler/trees/set → требуемый объём root/s_out/sprinkler/trees/val → выполненный объём root/s_out/sprinkler/outlets/$state → ON/OFF - розетка активна ``` ### Примеры использования #### Запуск полива с установкой объёмов ```bash # Установить объёмы для каждой зоны mosquitto_pub -t root/name/sprinkler/nord/set -m 60 mosquitto_pub -t root/name/sprinkler/south/set -m 100 mosquitto_pub -t root/name/sprinkler/trees/set -m 60 # Запустить цикл полива mosquitto_pub -t root/name/sprinkler/cmd -m ON ``` #### Запрет полива после дождя и восстановление ```bash # Запретить полив mosquitto_pub -t root/name/sprinkler/cmd -m DISABLE # Разрешить полив mosquitto_pub -t root/name/sprinkler/cmd -m ENABLE ``` #### Подготовка к зиме (блокировка + осушение) ```bash # 1. Перейти в режим DRY для осушения mosquitto_pub -t root/name/sprinkler/cmd -m DRY # 2. Открыть розетки для слива mosquitto_pub -t root/name/sprinkler/outlets/cmd -m ON # 3. После полного слива - заморозить систему mosquitto_pub -t root/name/sprinkler/cmd -m FREEZE ``` #### Сброс счётчиков (инициирует новый цикл полива) ```bash mosquitto_pub -t root/name/sprinkler/cmd -m RESET ``` ### Интеграция с Home Assistant ```yaml sensor: - name: "Полив бак Макс" state_topic: "root/s_out/sprinkler/$wMax" - name: "Полив бак Мин" state_topic: "root/s_out/sprinkler/$wMin" - name: "Полив состояние" state_topic: "root/s_out/sprinkler/$state" - name: "Полив ошибка" state_topic: "root/s_out/sprinkler/$fault" - name: "Полив север выполнено" state_topic: "root/s_out/sprinkler/nord/val" - name: "Полив юг выполнено" state_topic: "root/s_out/sprinkler/south/val" - name: "Полив капельный выполнено" state_topic: "root/s_out/sprinkler/trees/val" switch: - name: "Полив" state_topic: "root/s_out/sprinkler/cmd" command_topic: "root/air/sprinkler/cmd" availability_topic: "root/air/$state" payload_available: "ready" payload_not_available: "disconnected" - name: "Полив север" state_topic: "root/s_out/sprinkler/nord/cmd" command_topic: "root/air/sprinkler/nord/cmd" - name: "Полив юг" state_topic: "root/s_out/sprinkler/south/cmd" command_topic: "root/air/sprinkler/south/cmd" - name: "Полив капельный" state_topic: "root/s_out/sprinkler/trees/cmd" command_topic: "root/air/sprinkler/trees/cmd" button: - name: "Полив сброс" command_topic: "root/air/sprinkler/cmd" payload_press: "RESET" - name: "Полив блокировка (FREEZE)" command_topic: "root/air/sprinkler/cmd" payload_press: "FREEZE" - name: "Полив разблокировка" command_topic: "root/air/sprinkler/cmd" payload_press: "UNFREEZE" - name: "Полив запретить (дождь)" command_topic: "root/air/sprinkler/cmd" payload_press: "DISABLE" - name: "Полив разрешить" command_topic: "root/air/sprinkler/cmd" payload_press: "ENABLE" - name: "Полив осушение (DRY)" command_topic: "root/air/sprinkler/cmd" payload_press: "DRY" number: - name: "Полив север объём" state_topic: "root/s_out/sprinkler/nord/set" command_topic: "root/air/sprinkler/nord/set" min: 0 max: 6000 - name: "Полив юг объём" state_topic: "root/s_out/sprinkler/south/set" command_topic: "root/air/sprinkler/south/set" min: 0 max: 6000 - name: "Полив капельный объём" state_topic: "root/s_out/sprinkler/trees/set" command_topic: "root/air/sprinkler/trees/set" min: 0 max: 6000 ``` ### Особенности и советы | Особенность | Описание | |-----------|---------| | **Водяная розетка** | Настройте зону с `set: 0` — она будет работать неограниченно и всегда под давлением | | **Счётчик воды** | Если `wCtr` не установлен, система отсчитывает время в секундах вместо объёма | | **Приоритет дренажа** | Система сначала наполняет бак из дренажного колодца, потом из водопровода | | **Автозащита от мороза** | Отправьте `/val ← -1` или `FREEZE` при угрозе мороза | | **DISABLE vs FREEZE** | DISABLE блокирует только запуск, FREEZE полностью замораживает систему | | **Режим DRY** | Используйте перед зимой: включает насос без наполнения, зоны можно открыть вручную | | **RESET** | Сбрасывает счётчики всех зон в 0 и инициирует новый цикл полива | ## Полная реальная конфигурация (интеграция всех типов) ```json { "mqtt": ["lh-smart-home", "192.168.88.2", 1883, "mqtt_user", "mqtt_pass"], "topics": {"root": "myhome", "out": "s_out"}, "syslog": ["192.168.88.2", 514], "dmx": [512], "items": { "lights_all": [7, ["lamp1", "lamp2", "rgb1", "rgb2"]], "lamp1": [0, 1], "lamp2": [0, 2], "rgb1": [1, 10], "rgb2": [1, 20], "relay_water": [6, 23], "relay_pump": [6, 24], "relay_heat": [6, 25], "pwm_fan": [3, 9], "thermo_bath": [5, 26, 33], "thermo_hall": [5, 27, 22], "ac_main": [10, [0, { "cmd": {"emit": "ac/cmd"}, "set": {"emit": "ac/set"}, "temp": {"emit": "ac/temp"}, "fan": {"emit": "ac/fan"} }]], "energy_counter": [20, [0.02, 1.2]], "multivent": [[18, 5], { "": {"item": "ac_main", "fan": {"emit": "vent/main/fan"}}, "bedroom": {"fan": {"emit": "vent/bedroom/fan"}, "set": 21, "V": 40}, "kitchen": {"fan": {"emit": "vent/kitchen/fan"}, "set": 20, "V": 60} }] }, "in": { "37": {"item": "lights_all", "scmd": "TOGGLE"}, "38": {"item": "relay_water", "scmd": "OFF"}, "39": {"emit": "/status/water_leak"} } } ``` --- ## Полезные ссылки - [Справочник типов каналов](channel_types_reference.md) — типы 0-23 - [Справочник суффиксов](suffixes_reference.md) — /cmd, /val, /set, /hue, /sat, /temp - [Полное описание конфигурации](light_hub_полное_инженерное_описание_json_конфигурации_v2.md) - [Исходный код item.h](../../lighthub/item.h) --- **Версия документа**: 1.2 **Дата обновления**: 2025-06-17