Files
lighthub/documentation/core/configuration_examples.md
T
andry f496e30600 Add configuration examples for various devices and functionalities
- Introduced multivent ventilation configuration for managing multiple zones.
- Added PID heating batteries configuration for temperature control.
- Created relay GPIO switch configuration for controlling relays.
- Implemented RGBW LED strip configuration for lighting control.
- Added Modbus CO2 sensor configuration for environmental monitoring.
- Introduced Sonoff S26 humidity controller example for humidity management.
- Created sprinkler irrigation configuration for garden management.
- Added thermostat on/off relay configuration for heating and cooling control.
- Implemented ventilation fan monitoring configuration for performance tracking.
- Added core concepts documentation for LightHub, detailing items, commands, and execution objects.
2026-10-15 19:11:34 +03:00

35 KiB
Raw Blame History

LightHub: Примеры конфигурации для всех типов каналов (0-23)

Практический справочник с готовыми примерами JSON конфигурации для каждого типа канала. Каждый пример показывает полный синтаксис, включая MQTT топики и все параметры.


Содержание


CH_DIMMER (0) - DMX диммер

Назначение: Регулировка яркости одного или нескольких DMX каналов

Синтаксис

"dimmer_name": [0, дмx_канал_или_массив]

Число элементов в arg задаёт число DMX каналов: 1 → одно-канальный диммер, 3 → RGB, 4 → RGBW, 5 → RGBWW.

Примеры

{
  "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)

Синтаксис

"rgb_name": [1, стартовый_dmx_канал]

Пример

{
  "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)

Пример

{
  "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)

Синтаксис

"pwm_name": [3, gpio_пин_или_массив]

Примеры

{
  "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))

Синтаксис

"mbus_dim": [4, [адрес, регистр, маска, макс_значение]]

Пример

{
  "items": {
    "ac_dimmer": [4, [96, 0, 0, 255]]
    // Адрес: 96 (0x60)
    // Регистр: 0
    // Маска: 0 (LSB)
    // Макс значение: 255
  }
}

⚠️ Примечание: Для новых проектов используйте CH_MBUS (14) вместо этого


CH_THERMO (5) - ON/OFF Термостат

Назначение: Простой ON/OFF термостат с гистерезисом

Синтаксис

"thermo_name": [5, gpio_пин, целевая_температура°C]

Примеры

{
  "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 или иное дискретное устройство

Синтаксис

"relay_name": [6, gpio_пин]
"relay_name": [6, gpio_пин, начальное_значение, начальная_команда]

Примеры

{
  "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) - Группа каналов

Назначение: Логическая группа для синхронного управления несколькими каналами

Синтаксис

"group_name": [7, [канал1, канал2, канал3, ...]]

Примеры

{
  "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

Синтаксис

"vacom_heat": [8, "имя_item_VC"]

Аргумент VCTEMP (8) — строка: имя item типа VC (9), к которому привязывается термостат.

Пример

{
  "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

Пример

{
  "items": {
    "vent_motor": [9, [96, "имя_объекта"]]
  }
}

CH_AC (10) - Кондиционер Haier

Назначение: Управление кондиционером Haier по UART (проприетарный протокол Haier, 9600 baud, не Modbus)

Синтаксис

"ac_name": [10, номер_порта]
"ac_name": [10, [номер_порта, {объект_колбэков}]]

Номер порта: 0-3 (0 = Serial, 1 = Serial1, 2 = Serial2, 3 = Serial3). Ключи объекта колбэков: fan, set, temp, cmd.

Полный пример

{
  "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)

Синтаксис

"led_name": [11, [data_pin, число_светодиодов, тип_лент]]

число_светодиодов (по умолчанию 43) и тип_лент — опциональны. Отдельного CLK-пина нет.

Пример

{
  "items": {
    "led_strip": [11, [7, 8]],       // пин 7, 8 светодиодов
    "led_bar": [11, [10, 11]]        // пин 10, 11 светодиодов
  }
}

CH_MOTOR (12) - Шаговый двигатель

Назначение: Управление шаговым двигателем с обратной связью (для задвижек, жалюзи)

Синтаксис

"motor_name": [12, [pinUp, pinDown, pinFeedback, fbOpen, fbClosed, maxOnTime_ms]]

Пример

{
  "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 контроллер для процессов

Синтаксис

"pid_name": [13, [
  [Kp, Ki, Kd, dT, timeout, alarm_val, min_out, max_out],
  {выходной_execObj},
  {каскадный_execObj}
]]

Пример

{
  "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 канал с полной поддержкой шаблонизации

Полный пример

{
  "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

Пример

{
  "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 через реле для инертных систем (тепловые системы, комплексы)

Синтаксис

"relay_pwm": [16, [gpio_pin, период_цикла_сек]]

Пример

{
  "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 каналов)

Пример

{
  "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).

Полный пример

{
  "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 — вес одного импульса в единицах измерения.

{
  "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 также запускает счёт, нулевое — останавливает.

{
  "items": {
    "pumpctr": [20, [0.02, 1.2]]     // каждые 1.2 сек добавляет 0.02
  }
}

Запуск/остановка обычно привязываются к управляемому оборудованию через execObj. Например, счётчик наработки насоса увлажнителя (тип 21 вызывает свой motorExecObj с командой ON при включении насоса и OFF при выключении):

{
  "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    (наработка, мин)

Синтаксис

"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]]

Пример

{
  "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

Синтаксис

"mercury": [22, [адрес, baudrate, формат, уровень_доступа, пароль, pollingInterval_ms]]

Пример

{
  "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) - Система полива

Назначение: Многозональная система автоматического полива с контролем воды и насосов

Синтаксис

"sprinkler_name": [23, {конфиг}]

Где {конфиг} — объект: в корне (зона "") пин системы (vIn, rDren, rPump, wMax, wMin, fbDren, fbPump, wCtr), далее — зоны полива с pin.

Полный пример конфигурации

{
  "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 - розетка активна

Примеры использования

Запуск полива с установкой объёмов

# Установить объёмы для каждой зоны
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

Запрет полива после дождя и восстановление

# Запретить полив
mosquitto_pub -t root/name/sprinkler/cmd -m DISABLE

# Разрешить полив
mosquitto_pub -t root/name/sprinkler/cmd -m ENABLE

Подготовка к зиме (блокировка + осушение)

# 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

Сброс счётчиков (инициирует новый цикл полива)

mosquitto_pub -t root/name/sprinkler/cmd -m RESET

Интеграция с Home Assistant

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 и инициирует новый цикл полива

Полная реальная конфигурация (интеграция всех типов)

{
  "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"}
  }
}

Полезные ссылки


Версия документа: 1.2
Дата обновления: 2025-06-17