Files
lighthub/documentation/integrations/z031_panel.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

464 lines
35 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Панель управления климатом Zentec Z031-2C0 — интеграция с LightHub
> Документ описывает настенную панель управления климатом **Z031-2C0** с
> нестандартной прошивкой **P190919LH** (адаптация стокового ПО P190919 под
> LightHub), её карту регистров Modbus и схему интеграции в умный дом
> LightHub + Home Assistant. Все примеры в документе — обобщённые рабочие
> конфигурации; имена топиков соответствуют схеме `house/<контроллер>/...`.
>
> Назначение переработанного ПО: с одной панели в помещении управлять
> кондиционером, приточной вентиляцией, увлажнителем, температурой воздуха
> (батареи отопления) и температурой тёплого пола.
---
## 1. Отличия от стоковой прошивки
Стоковая панель Z031 управляла одной вентустановкой и имела дежурный режим.
В прошивке P190919LH пользовательский интерфейс переработан:
| Функция | Стоковая прошивка | P190919LH |
|---|---|---|
| Кнопка «Питание» | Дежурный/рабочий режим | Вкл/выкл кондиционера (гл. экран); вкл/выкл увлажнителя (режим увлажнения); смена режима кондиционера (режим кондиционера) |
| Главный экран | Рабочий экран вентустановки | Попеременно: уставка температуры воздуха и текущее время |
| Стрелки ↑/↓ (гл. экран) | — | Уставка температуры воздуха: применяется одновременно к термостату батарей **и** к кондиционеру |
| Кнопка «Вентилятор» | Скорость вентустановки | Интенсивность многозональной приточной вентиляции (значок «A» — авторежим по датчику CO2) |
| Кнопка «Режим» | — | Циклическое переключение экранов: главный → увлажнение → качество воздуха → уличная температура → тёплый пол → кондиционер |
| Режим «температура отработанного теплоносителя» | Отображение | Заменён на **настройку температуры тёплого пола** |
| Режим «отображение и обработка воздуха» | Режим вентустановки | Заменён на **режим управления кондиционером** (уставка — стрелки, режим — «Питание», скорость вентилятора — «Вентилятор») |
Режимы дежурного/рабочего в новом ПО нет. При работе кондиционера его режим
индицируется вверху панели значками «охлаждение» / «нагрев» / «вентиляция».
Мигание значка «волнистая линия» у индикатора скорости вентиляции означает,
что вентилятор включён (даже если он обслуживает иную зону).
## 2. Органы управления и индикации
![Панель Z031, нумерация элементов](images/z031/panel_buttons.png)
| Поз. | Назначение | Описание |
|---|---|---|
| 1 | Индикатор работы вентилятора | ![скорость](images/z031/ind_fan_speed.png) В главном режиме — установленная скорость приточной вентиляции или авторежим. Мигает, когда работает приточная вентиляция в доме |
| 2 | «Фильтр» / «Авария» | ![фильтр](images/z031/ind_filter.png) Требуется замена фильтра / серьёзная авария |
| 3 | Дополнительный режим | ![увлажнение вкл](images/z031/ind_hum_on.png) / ![увлажнение выкл](images/z031/ind_hum_off.png) режим увлажнения; ![качество воздуха](images/z031/ind_airq.png) режим качества воздуха |
| 4 | Физические параметры | ![встр. датчик](images/z031/ind_t_int.png) встроенный датчик, ![канальный](images/z031/ind_t_duct.png) канальный, ![улица](images/z031/ind_t_out.png) улица, ![помещение](images/z031/ind_t_room.png) помещение, ![тёплый пол](images/z031/ind_t_floor.png) тёплый пол (с настройкой), ![мощность](images/z031/ind_heatpwr.png) мощность нагревателя, % |
| 5 | День недели | |
| 6 | Режим кондиционера | ![авто](images/z031/ind_ac_auto.png) авто, ![вентиляция](images/z031/ind_ac_vent.png) вентиляция, ![охлаждение](images/z031/ind_ac_cool.png) охлаждение, ![нагрев](images/z031/ind_ac_heat.png) нагрев |
| 7 | Вспомогательный индикатор | ![уставка T](images/z031/ind_set_temp.png) уставка температуры; ![уставка влажности](images/z031/ind_set_hum.png) уставка влажности/качества воздуха; ![параметризация](images/z031/ind_param.png) сервисный режим параметризации |
| 8 | Главный индикатор | ![время](images/z031/ind_time.png) время, ![ошибка](images/z031/ind_err.png) код ошибки, ![температура](images/z031/ind_temp.png) температура, ![влажность](images/z031/ind_humval.png) влажность/качество воздуха |
| 9 | Индикатор таймера | ![таймер](images/z031/ind_timer.png) выполняется управление по расписанию |
| 10.1 | «Питание» | Главный экран — вкл/выкл кондиционера; увлажнение — вкл/выкл увлажнителя; кондиционер — смена режимов работы |
| 10.2 | «Таймер/Режим» | Циклическое переключение экранов: главный → увлажнение → качество воздуха → уличная температура → тёплый пол → кондиционер; настройка времени/даты в сервисных меню |
| 10.3 | «Вентилятор» | Главный экран — скорость приточной вентиляции; кондиционер — скорость вентилятора кондиционера; вход в меню параметризации (удержание 4 с) |
| 10.4/10.5 | «Стрелка вверх/вниз» | Изменение уставок и параметров, вход в дополнительные меню |
## 3. Меню параметризации
Вход: удержание кнопки «Вентилятор» 4 секунды, выбор пункта стрелками,
вход — кратковременное нажатие «Вентилятор».
| № | Пункт | Назначение |
|---|---|---|
| 1 | `o_1` | Настройка расписания (таймер, задачи t1–t9) |
| 2 | `o_2` | Настройка часов и календаря |
| 3 | `o_3` | Настройка параметров (группы A, B, C, D, E, F, U) |
Кнопки в меню: «Режим» — переход между полями (в о\_1 — активация записи
таймера), «Питание» — выход в главный экран, «Вентилятор» — переход к
следующему полю (в о\_3 — кольцевой переход группа → номер → значение).
## 4. Карта регистров Modbus
Протокол: Modbus RTU, `8E1` (8 бит, чётность Even, 1 стоп-бит), 9600 бод.
Тип регистра параметров: беззнаковый 2 байта, команда чтения
Read Holding Registers.
### 4.1 Группа A — технологические параметры (адреса 50000–50007)
| Параметр | Назначение | Нач. значение | Доступ | Адрес |
|---|---|---:|:---:|---:|
| A0 | Маска режима тёплого пола (аналог A6) | 10 | R/W | 50000 |
| A1 | Маска режима кондиционера (аналог A6) | 15 | R/W | 50001 |
| A2 | Конфигурация вентилятора кондиционера (аналог A5) | 3 | R/W | 50002 |
| A3 | Кол-во скоростей кондиционера | 3 | R/W | 50003 |
| A4 | Макс. кол-во скоростей вентилятора (1–7). При 0 — не выводится скорость, авторежим, знак вентилятора и обдува | 5 | R/W | 50004 |
| A5 | Конфигурация вентилятора: bit0 — разрешить авторежим; bit1 — значок вентилятора; bit2 — значок обдува | 5 | R/W | 50005 |
| A6 | Маска режима работы: bit0 — vent, bit1 — warm, bit2 — cool, bit3 — auto | 15 | R/W | 50006 |
| A7 | Маска дополнительных режимов: bit0 — влажность; bit1 — качество воздуха; bit2 — тёплый пол; bit3 — кондиционер | 15 | R/W | 50007 |
### 4.2 Группа B — технологические параметры (адреса 50008–50015)
| Параметр | Назначение | Нач. значение | Доступ | Адрес |
|---|---|---:|:---:|---:|
| B0 | Мин. уставка температуры (15–30) | 15 | R/W | 50008 |
| B1 | Макс. уставка температуры (30–255) | 35 | R/W | 50009 |
| B2 | Мин. уставка влажности (0–50) | 25 | R/W | 50010 |
| B3 | Макс. уставка влажности (50–100) | 70 | R/W | 50011 |
| B4 | Мин. уставка качества воздуха (0–50) | 10 | R/W | 50012 |
| B5 | Макс. уставка качества воздуха (50–100) | 99 | R/W | 50013 |
| B6 | Точка измерения температуры (вывод на гл. экран): 0 — встроенный датчик; 1 — канальный; 2 — вытяжка (домик) | 1 | R/W | 50014 |
| B7 | Маска вспомогательного вывода: bit0 — встроенная T; bit1 — канальная T; bit2 — вытяжка; bit3 — улица; bit4 — тёплый пол; bit5 — мощность нагревателя % | 24 | R/W | 50015 |
### 4.3 Группы C, D, E, F — параметры свободного назначения
Адреса 50016–50047 (C0–C7, D0–D7, E0–E7, F0–F7), по 8 ячеек в группе,
значения 0–255, R/W, начальное значение 0.
### 4.4 Группа U — системные параметры (адреса 50048–50055)
| Параметр | Назначение | Нач. значение | Доступ | Адрес |
|---|---|---:|:---:|---:|
| U0 | Флаг первого включения | 0 | R/W | 50048 |
| U1 | Корректировка встроенного датчика T (шаг 1 °C) | 10 | R/W | 50049 |
| U2 | Время автовыхода из вспомогательных меню, с (5–30) | 15 | R/W | 50050 |
| U3–U6 | Подсветка min/max дневная и ночная (0–100) | 20/100/0/20 | R/W | 50051–50054 |
| U7 | Резерв | 0 | R/W | 50055 |
### 4.5 Переменные управления (адреса 39993–40008)
| Назначение | ПЗУ | Пределы | Нач. значение | Доступ | Адрес |
|---|:---:|---|---:|:---:|---:|
| Авторежим вентилятора | — | 0/1 | — | R/W | 39999 |
| Авторежим вентилятора конд. | — | 0/1 | — | R/W | 39993 |
| Уставка скорости вентилятора (приток) | + | 1–7 | 1 | R/W | 40000 |
| Главный режим работы (битовая маска) | + | 1/2/4/8 | 1 | R/W | 40001 |
| Главная уставка температуры | + | 0–99 | 18 | R/W | 40002 |
| Главный пуск (питание кондиционера) | + | 0–1 | 0 | R/W | 40003 |
| Аварии 01–16 | — | битовая маска | — | R/W | 40004 |
| Аварии 17–32 | — | битовая маска | — | R/W | 40005 |
| Аварии 33–48 | — | битовая маска | — | R/W | 40006 |
| Главная уставка влажности | + | 0–99 | 0 | R/W | 40007 |
| Главная уставка VOC % | + | 0–99 | 0 | R/W | 40008 |
| Уставка температуры кондиционера | — | °C | — | R/W | 39994 |
| Режим работы тёплого пола | — | | — | R/W | 39995 |
| Уставка температуры тёплого пола | — | °C | 30 | R/W | 39996 |
| Скорость вентиляции кондиционера | — | | 0 | R/W | 39997 |
| Увлажнение включено | — | 0/1 | 0 | R/W | 39998 |
Битовая маска главного режима (40001): bit0 — vent (1), bit1 — warm (2),
bit2 — cool (4), bit3 — auto (8).
**ВАЖНО.** Регистры 40000, 40001, 40002, 40007, 40008 имеют прямой доступ к
ПЗУ (flash с ресурсом 10000 циклов записи). Частая запись недопустима.
Запись значения вне диапазона, ограниченного параметрами групп A/B, приводит
к циклической перезаписи ПЗУ и преждевременному выходу панели из строя.
Поэтому в LightHub для таких параметров включён `prefetch: true` —
контроллер пишет в регистр только при реальном изменении значения.
### 4.6 Аварии
Регистры 40004/40005/40006 — битовые маски аварий E01–E16, E17–E32,
E33–E48 (бит 0 = E01 и т.д.). Запись значения 1–15 блокирует клавиатуру,
останавливает систему («Главный пуск» = 0) и показывает «АВАРИЯ Exx».
Запись 0 возвращает экран в главный режим. Можно записывать несколько бит
одновременно — сообщения выводятся последовательно. В конфигурации Эдема
регистр 40005 (alm17) используется для отображения аварии увлажнителя,
40004 (alm01) — аварии вентустановки.
При отсутствии запросов к панели на экране выводится код «АВАРИЯ LN».
### 4.7 Технические переменные (только чтение, 30000–30002)
| Назначение | Тип | Доступ | Адрес |
|---|---|:---:|---:|
| Температура от встроенного датчика* | SInt16 | R | 30000 |
| Влажность от встроенного датчика** | UInt8 | R | 30001 |
| Встроенный датчик качества воздуха** | UInt8 | R | 30002 |
### 4.8 Технические переменные (R/W, 40009–40017)
| Назначение | Тип | Доступ | Адрес |
|---|---|:---:|---:|
| Канальный внешний датчик температуры (приточный воздух)* | SInt16 | R/W | 40009 |
| Температура наружного воздуха* | SInt16 | R/W | 40010 |
| Температура вытяжного воздуха* | SInt16 | R/W | 40011 |
| Температура тёплого пола* | SInt16 | R/W | 40012 |
| Канальный датчик влажности*** | UInt8 | R/W | 40013 |
| Общая мощность нагревателя, %*** | UInt8 | R/W | 40014 |
| Качество воздуха с внешнего датчика | UInt16 | R/W | 40015 |
| Текущая температура кондиционера* | SInt16 | R/W | 40016 |
| Скорость главной вентустановки | UInt8 | R/W | 40017 |
\* значение ×10 (267 → 26.7 °C). \*\* в модели Z031-2C0 не используется.
\*\*\* значение 0–99.
Часы/календарь панели также доступны по Modbus: 65512 — год, 65513 — месяц,
65514 — день, 65515 — день недели, 65516 — час, 65517 — минута, 65518 —
секунда, 65519 — часовой пояс (UInt8, R/W).
## 5. Интеграция с LightHub
Панель — Modbus RTU-абонент контроллера LightHub (тип канала **MBUS**,
канал-тип 14). Архитектура интеграции на примере объекта «Эдем»:
```
MQTT (Home Assistant, syslog)
▲ │
│ ▼
┌─────────────────────┐
│ LightHub "house3" │ CAN addr 13
│ - Modbus master │──── RTU 8E1 9600 ──► Панель Z031 №1 (зал) addr 31
│ - PID термостаты │──── RTU 8E1 9600 ──► Панель Z031 №2 (кабинет) addr 32
│ (батареи, тёплый │──── RTU 8E1 9600 ──► Панель Z031 №3 (спальня) addr 33
│ пол) │──── 1-Wire ──► датчики температуры помещений/полов
│ - датчики CO2 (S8) │
└─────────┬───────────┘
│ CAN (маршрутизация команд/статусов)
▼
┌─────────────────────┐
│ LightHub "air" │ CAN addr 15
│ - приточная │──── Modbus ──► вентустановка (приток, нагреватели, насос)
│ вентустановка │
│ - MULTIVENT: зоны │──── реле задвижек зон
│ - HUMIDIFIER: │──── клапаны зон, насос, датчик давления
│ увлажнение │
│ - PID по CO2 │───── CO2 датчики Sensair S8 по комнатам
└─────────────────────┘
```
### 5.1 Modbus-шаблон панели
Шаблон `panel` задаётся в секции `modbus` конфига LightHub. Он описывает
линию (`serial: "8E1"`), расписание опроса (`poll`) и таблицу соответствия
параметров (`par`). Опрашиваются диапазоны 39993–40008 и 30000–30001
каждые 5 секунд:
```json
"panel": {
"serial": "8E1",
"poll": {
"regs": [[39993, 40008], [30000, 30001]],
"delay": 5000
},
"par": { ... }
}
```
Каждый параметр `par` привязывает имя (subitem) к регистру и опциям:
| Имя (subitem) | Регистр | Опции | Смысл |
|---|---:|---|---|
| `fanspeed` | 40000 | `prefetch`, `map`, `id: 7` (S\_FAN) | Скорость приточной вентиляции; `map.val` [1,255,1,5] масштабирует 1–7 в 0–255; команда OFF → 0 |
| `settemp` | 40002 | `prefetch`, `id: 12` | Уставка температуры воздуха (батареи + кондиционер) |
| `alm01` / `alm17` / `alm33` | 40004/40005/40006 | `id: 13/14/15` | Регистры аварий |
| `sethum` | 40007 | `prefetch`, `id: 16` | Уставка влажности |
| `setvoc` | 40008 | `prefetch`, `map.val` [400,2000,0,100], `id: 17` | Уставка качества воздуха: ppm CO2 ↔ % |
| `roomtemp` | 30000 | `type: "x10"` | Температура встроенного датчика (×10) |
| `hum` | 30001 | | Влажность встроенного датчика |
| `voc` | 30002 | | Качество воздуха встроенного датчика |
| `ch_temp` | 40009 | `type: "x10"` | Приточный (канальный) воздух |
| `ext_temp` | 40010 | `type: "x10"`, `id: 18` | Наружная температура |
| `out_temp` | 40011 | `type: "x10"`, `id: 19` | Температура вытяжки |
| `floor_temp` | 40012 | `type: "x10"`, `id: 20` | Температура тёплого пола |
| `ch_hum` | 40013 | `id: 28` | Влажность канального датчика |
| `heat_pwr` | 40014 | `id: 29` | Мощность нагревателя, % |
| `extvoc` | 40015 | `map.val` [400,2000,0,100], `id: 27` | CO2 внешнего датчика (ppm ↔ %) |
| `actemp` | 40016 | `type: "x10"`, `id: 25` | Текущая температура кондиционера |
| `fanlvl` | 40017 | `id: 21` | Скорость главной вентустановки |
| `floormode` | 39995 | `prefetch`, `id: 22` | Режим тёплого пола |
| `setfloor` | 39996 | `prefetch`, `id: 23` | Уставка тёплого пола |
| `humpwr` | 39998 | `prefetch`, `map.cmd` ON→1 / OFF→0, `id: 24` | Увлажнение вкл/выкл |
| `fanauto` | 39999 | `prefetch`, `map.cmd` ENABLE/AUTO→1, DISABLE→0, `id: 7` | Авторежим вентиляции по CO2 |
| `acsettemp` | 39994 | `prefetch`, `id: 26` | Уставка кондиционера |
| `acon` | 40003 | `prefetch`, `map.cmd` OFF→0, `def: 40001`, `id: 8` | Питание кондиционера |
| `acmode` | 40001 | `prefetch`, `map.cmd` FAN\_ONLY→1, HEAT→4, COOL→2, AUTO→8, `id: 8` | Режим кондиционера |
| `acfanauto` | 39993 | `prefetch`, `map.cmd` AUTO→1, `def: 39997`, `id: 2` | Авторежим вентилятора кондиционера |
| `acfan` | 39997 | `prefetch`, `map.cmd` OFF→0, LOW→1, MEDIUM→2, HIGH→3, `id: 2` | Скорость вентилятора кондиционера |
| `y/mo/d/dw/h/m/s` | 65512–65518 | | Часы/календарь |
| `blmind/blmaxd/blminn/blmaxn` | 50051–50054 | | Подсветка |
Механика драйвера MBUS:
- **Опрос**: списки `regs` читаются каждые `delay` мс; найденные значения
публикуются в статусные топики (или направляются в связанные items через
`item`/`emit` у параметра).
- **Запись**: при получении команды на item ищется параметр шаблона по имени
subitem, иначе — по числовому коду суффикса, совпадающему с `id`
(стандартные коды: S\_CMD=1, S\_SET=2, S\_VAL=3, S\_FAN=7, S\_MODE=8).
- **`prefetch: true`**: перед записью читается текущее значение регистра;
запись выполняется только при отличии. Обязательно для регистров с
прямым доступом к ПЗУ (см. раздел 4.5).
- **`map.val`** масштабирует числовое значение между регистром и
LightHub-значением: `[fromRegMin, fromRegMax, toMin, toMax]`.
**`map.cmd`** преобразует текстовые команды (ON, HEAT, COOL...) в числа
регистра и обратно. **`def`** — подстановка значения из другого регистра
при записи.
- **`@S: 0`** в описании параметра item'а подавляет повторную публикацию
неизменившегося статуса.
### 5.2 Каналы панелей (items)
Каждая панель — item типа `MBUS` (14) с адресом абонента и именем шаблона:
```json
"p_zal3": [14, [31, "panel", { ...маршрутизация параметров... }]]
```
Первый элемент — Modbus-адрес панели (31/32/33), второй — имя шаблона,
третий — объект маршрутизации. Маршрутизация связывает параметр шаблона с
локальными items, MQTT и CAN:
```json
"p_zal3": [14, [31, "panel", {
"fanspeed": { "can": [15, 3, "fan", 7], "@S": 0 },
"settemp": [{ "item": "tzal3/set", "@S": 0 }, // уставка → PID батарей
{ "item": "ac_zal3/set" }], // и → уставка кондиционера
"acsettemp": { "item": "ac_zal3/set", "@S": 0 },
"acon": { "item": "ac_zal3/cmd", "@S": 0 },
"acfanauto": { "item": "ac_zal3/fan", "@S": 0 },
"setfloor": { "item": "tfl31/set", "@S": 0 }, // уставка тёплого пола → PID пола
"sethum": { "can": [15, 431, "set"], "@S": 0 }, // → увлажнитель на контроллере air
"humpwr": { "can": [15, 431, "cmd"], "@S": 0 },
"setvoc": { "can": [15, 331, "set"], "@S": 0 }, // → CO2-PID вентиляции на air
"fanauto": { "can": [15, 331, "cmd"], "@S": 0 },
"hum": { "emit": "${snsr}humzal3/val", "@S": null,
"can": [15, 431, "val"] }, // влажность → air (обратная связь)
"roomtemp": { "emit": "t_zal3_p", "@S": 0 },
"ch_temp": {}, "ext_temp": {}, "out_temp": {}, "extvoc": {},
"floor_temp": {}, "actemp": {}, "fanlvl": {},
"alm01": {}, "alm17": {}, "alm33": {},
"acmode": { "@S": 0 }, "acfan": { "@S": 0 },
"m": {}, "s": {}, "blmind": {}, "blmaxd": {}
}], null]
```
Элемент `"can"` — маршрутизация на другой контроллер по CAN: `[адрес,
itemId, суффикс, subitem]`. Здесь `15` — CAN-адрес контроллера `air`,
`331/332/333` — item'ы PID-регуляторов CO2 (`co2zal3`, `co2cab3`,
`co2bedr3`), `431/432/433` — item'ы PID-регуляторов увлажнения
(`humzal3`, `humcab3`, `humbedr3`). Элемент `"emit"` публикует значение в
MQTT-топик, `"item"` отправляет в локальный item.
### 5.3 Управление температурой воздуха (батареи + кондиционер)
Уставка с панели (`settemp`, регистр 40002) расходится на два контура:
- **PID-термостат батарей** (`tzal3`, `tcab3`, `tbedr3` — тип 13): уставка
через `"item": "tzal3/set"`, вход — 1-Wire датчик температуры помещения
(`p_zal3/ch_temp` → `tzal3`), выход — slow-PWM реле термоклапана
(`rzal3` — тип 16, RELAYPWM).
- **Кондиционер** (`ac_zal3`, `ac_cab3` — тип 10, ACHAIER): уставка
`ac_zal3/set` берётся из `acsettemp` панели, а `settemp` одновременно
обновляет её — стрелки на главном экране меняют температуру и батарей,
и кондиционера.
Текущая температура кондиционера (`actemp`, регистр 40016) передаётся в
`ac_zal3/temp` и дальше в Home Assistant как `current_temperature`.
### 5.4 Управление тёплым полом
Режим тёплого пола на панели (регистры 39995/39996) связан с локальными
PID-регуляторами пола: `setfloor` → `tfl31/set` (туалет), `tfl32/set`
(ванна), `tbath3/set` (ванная при спальне). Температура пола приходит
обратно в регистр 40012 через 1-Wire датчики (`p_zal3/floor_temp` ←
`tfl31` и т.д.).
### 5.5 Вентиляция и увлажнение (контроллер air)
Приточная вентиляция и увлажнение живут на отдельном контроллере `air`
(CAN-адрес 15), панель ими управляет через CAN-маршрутизацию (см. 5.2):
- **Приточная вентиляция** — item `vents` (тип 18, MULTIVENT): зоны
`zal3`, `cab3`, `bedr3` с задвижками; центральная установка `vent`
(тип 14, MBUS, шаблон `airset`) — приточный вентилятор, нагреватели,
насос. Запросы воздуха в зоны формируют PID-регуляторы CO2
(`co2zal3` и т.д., тип 13, вход — датчик Sensair S8, выход — `/fan`
зоны). Панель через `fanspeed` (S\_FAN, CAN item 3 — центральная
установка) и `setvoc`/`fanauto` (CAN item 331/332/333 — CO2-PID зоны)
задаёт интенсивность и режим «авто по CO2». Статус скорости главной
установки возвращается в панель через регистр 40017 (`fanlvl`).
- **Увлажнение** — item `hum` (тип 21, HUMIDIFIER) на контроллере `air`:
насос, промывочный клапан, зональные клапаны, датчик давления. Панель
управляет зоной (`humpwr` → вкл/выкл увлажнителя зоны, `sethum` →
уставка) через CAN item'ы `humzal3`/`humcab3`/`humbedr3` (PID, тип 13),
влажность помещения передаётся панелью обратно на `air` и в MQTT
(`${snsr}humzal3/val`). Авария увлажнителя подаётся на панели через
регистр 40005 (`alm17`).
### 5.6 Home Assistant (MQTT)
Статусные топики LightHub (`house/s_out/...`) и командные топики
(`house/house3/...`, `house/air/...`) подключаются к HA через
`mqtt.yaml`. Примеры сущностей, связанных с панелями:
```yaml
# Кондиционер зала (панель p_zal3, item ac_zal3)
climate:
- name: "Кондиционер Зал 3"
modes: [off, heat, auto, cool, fan_only]
fan_modes: [auto, high, medium, low]
mode_state_topic: "house/s_out/ac_zal3/cmd"
mode_command_topic: "house/house3/ac_zal3/cmd"
temperature_low_command_topic: "house/house3/ac_zal3/set"
temperature_high_command_topic: "house/house3/tzal3/set" # уставка батарей
current_temperature_topic: "house/s_out/ac_zal3/temp" # actemp (reg 40016)
fan_mode_command_topic: "house/house3/ac_zal3/fan"
# Увлажнитель зала (контроллер air)
humidifier:
- name: "Увлажнитель зал 3-й этаж"
command_topic: "house/air/humzal3/cmd"
state_topic: "house/s_out/humzal3/cmd"
target_humidity_command_topic: "house/air/humzal3/set"
target_humidity_state_topic: "house/s_out/humzal3/set"
current_humidity_topic: "house/snsr/humzal3/val"
# Приток зала (multivent + CO2-PID, preset auto/manual)
fan:
- name: "Приток зал 3эт"
state_topic: "house/s_out/vents/zal3/cmd"
command_topic: "house/air/vents/zal3/cmd"
percentage_state_topic: "house/s_out/vents/zal3/fan"
percentage_command_topic: "house/air/vents/zal3/fan"
preset_mode_state_topic: "house/s_out/co2zal3/ctrl"
preset_mode_command_topic: "house/air/co2zal3/ctrl"
# Климат (батареи, PID термостат)
- name: "Климат Зал"
mode_command_topic: "house/house3/tzal3/cmd"
temperature_command_topic: "house/house3/tzal3/set"
current_temperature_topic: "house/s_out/t_zal3"
action_topic: "house/s_out/rzal3/action"
# Тёплый пол
- name: "Теплый пол туалет"
mode_command_topic: "house/house3/tfl31/cmd"
temperature_command_topic: "house/house3/tfl31/set"
current_temperature_topic: "house/s_out/t_fl31"
# Аварии на панелях
sensor:
- name: "Увлажнитель авария"
state_topic: "house/in/panels/alm17/set"
- name: "Вентиляция авария"
state_topic: "house/in/panels/alm01/set"
- name: "Вентилятор" # скорость главной вентустановки (reg 40017)
state_topic: "house/in/panels/fanlvl/set"
unit_of_measurement: '%'
```
Групповой item `panels` (`[7, 210]`, члены `p_zal3`, `p_cab3`,
`p_bedr3`) даёт единые топики `house/in/panels/<параметр>/set` для
широковещательного управления всеми панелями сразу (используется для `alm01`,
`alm17`, `fanlvl`).
## 6. Замечания по эксплуатации
- Панель синхронизирует время по Modbus (регистры 65512–65518) — при
подключении к LightHub время ведёт контроллер.
- Не пишите в ПЗУ-регистры (40000/40001/40002/40007/40008) чаще, чем это
делает человек с панели; `prefetch: true` в шаблоне защищает от
избыточных записей.
- Уставка VOC задаётся в LightHub в ppm CO2 (400–2000) и масштабируется в
проценты панели (0–100 %; 50 % ≈ 1000 ppm).
- Код «АВАРИЯ LN» на панели означает отсутствие Modbus-запросов —
проверяйте линию и контроллер.
---
**Источник данных**: документ «Стандартное программное обеспечение панели
P190919 LH, адаптированное под систему умного дома LightHub» (D190919LH),
драйверы `lighthub/modules/out_modbus.*`
(CH\_MBUS), `out_multivent.*` (CH\_MULTIVENT), `out_humidifier.*`
(CH\_HUMIDIFIER), `out_ac.*` (CH\_AC), `out_pid.*` (CH\_PID).