From 641b314218608618a9db6960a5cdff11fd009857 Mon Sep 17 00:00:00 2001 From: "anklimov@gmail.com" Date: Thu, 7 May 2026 19:16:25 +0300 Subject: [PATCH] docs update --- documentation/Sprinkler_module.md | 30 +++++----- documentation/multivent_module_description.md | 56 ++++++++++--------- 2 files changed, 46 insertions(+), 40 deletions(-) diff --git a/documentation/Sprinkler_module.md b/documentation/Sprinkler_module.md index fad002e..dccd8e8 100644 --- a/documentation/Sprinkler_module.md +++ b/documentation/Sprinkler_module.md @@ -1,4 +1,5 @@ -# Данный модуль реализует многозональную систему полива +# LightHub: Модуль многоканальной системы полива (out_sprinkler) +Данный модуль реализует многозональную систему полива ## Система состоит из следующих компонент: @@ -44,23 +45,22 @@ DREN\_OPERATE|таймаут 1200 сек |FAULT_DREN|| "items": { -"sprinkler":[23, - + "sprinkler":[23, { "":{ - "vIn:7, - "wMax":15, - "wMin:17, - "rDren":6, - "fbDren":12, - "rPump":5, - "fbPump":11, - "wCtr":19 + "vIn":3, + "wMax":44, + "wMin":46, + "rDren":23, + "fbDren":63, + "rPump":24, + "fbPump":62, + "wCtr":49 }, - "garden":{"pin":13,"set":60,"val":15,"cmd":2}, - "backyard":{"pin":14,"set":60,"val":15,"cmd":2}, - "trees":{"pin":15,"set":60,"val":15,"cmd":2} - + "nord":{"pin":6,"set":60,"cmd":1}, + "south":{"pin":7,"set":100,"cmd":1}, + "trees":{"pin":10,"set":60,"cmd":2} + }] } diff --git a/documentation/multivent_module_description.md b/documentation/multivent_module_description.md index a5194b2..08bc7bc 100644 --- a/documentation/multivent_module_description.md +++ b/documentation/multivent_module_description.md @@ -37,7 +37,9 @@ ✅ **Агрегация команд** — управление центральной установкой на основе суммарного спроса от зон -✅ **Каскадное управление** — возможность передачи команд на внешние системы +✅ **Каскадное управление** — возможность передачи команд на внешние системы (например, отображение режимов на стеновых панеляж управления) + +✅ **Отслеживание прямого управления основным кондиционером** — система понимает, явились ли изменения режима работы основного кондиционера причиной ее управляющих воздействий. И если обнаруживает, что режим поменялся вручную, при помощи пульта управления центральной установкой, принимает это изменение как инструкцию к действию. А именно: при выключении основного блока с пульта - все виртуальные зоны выключаются. (чтобы предотвратить немедленное автоматическое обратное включение) При обратном включении - их состояние восстанавливается. Также, можно определить какую либо из виртуальных зон для управления с пульта главного кондиционера. ❌ **Ограничения**: ? @@ -105,13 +107,12 @@ $$out = \frac{(V_{requested} \times 255) \times V_{max}}{V \times P_{max}}$$ ## 3. Структура JSON-конфигурации -### 3.1 Формат item типа 14 (Multivent) +### 3.1 Формат item типа 18 (Multivent) ```json "item_name": [ - 14, + 18, [ - "device_name", { "zone_1": { ... }, "zone_2": { ... }, @@ -121,8 +122,7 @@ $$out = \frac{(V_{requested} \times 255) \times V_{max}}{V \times P_{max}}$$ ] ``` -- `device_name` — имя device-type в modbus (если используется внешнее AC) -- Объект маршрутизации содержит **именованные зоны** + **пустую строку** `""` для центральной установки +- Объект маршрутизации содержит **именованные зоны** + **пустую строку** `""` для центральной установки и общих настроек ### 3.2 Структура зоны @@ -150,33 +150,37 @@ $$out = \frac{(V_{requested} \times 255) \times V_{max}}{V \times P_{max}}$$ | `cmd` | int | Текущая команда (OFF/ON/HEAT/COOL и т.д. в числовом виде) | | `out` | int (0-255) | Финальный выходной сигнал задвижки (пересчитанный) | | `V` | int | Номинальный объём воздуха для этой зоны (м³/ч) | -| `pid` | array[4] | Коэффициенты PID: [Kp, Ki, Kd, dT(сек)] | +| `pid` | array[4-6] | Коэффициенты PID: [Kp, Ki, Kd, dT(сек)] | | `set` | float | Требуемая температура (установка) | | `val` | float | Текущая температура зоны. Передается через суффикс /val данной зоны | | `cas` | object | Каскадирование полученной команды на другие обьекты. Полезно, если изменение статуса зоны надо, наример, отразить на климатической панели. Или если скорость вентилятора надо преобразовать в дискретный вид (LOW,MEDIUM,HIGH) и передать в отдельный топик (как в примере) для отображения в интерфейсе Home Assistant. У обьекта cas может быть три под-обьекта: fan, set, cmd которые могут отдельно транслировать скорость вентилятора, команду (режим) зоны и уставку температуры. Следует заметить, что даже без использования данной настройки, изменения зоны передаются в статусный топик зоны (для восстановления состояния при перезапуске и отражения в интерфейсе HA, так что дублировать это в данной настройке не требуется. Но данная настройка крайне полезна именно для дублирования состояния на внешние устройства а также на внутренние обьекты контроллера (отрабатывается весь синтаксис EXEC обьекта, включая возможность передачи по MQTT, CAN, локальные items) | ### 3.3 Центральная установка (пустая зона `""`) -```json -"": { - "val": { "emit": "ac/temp" }, - "mode": { "emit": "ac/mode" }, - "@lastCmd": -1, - "roomtemp": 0.0 -} +``` +"":{"item":"ac_2", + "turnbyfan":0, + "boost":200, + "supress":7, + "onextcmd":{"emit":"${sout}/vac/extcmd","item":"vac/zal"} + } ``` #### Поля: | Поле | Назначение | |------|-----------| +|`turnbyfan`|| +|`boost`|| +|`suppress`| +|`onextcmd`|| | `val` | Температура воздуха от AC (или текущее состояние) | -| `mode` | Текущий режим AC (CMD_HEAT/CMD_COOL/CMD_FAN/CMD_OFF) | +| `mode` | Текущий режим AC (CMD\_HEAT/CMD\_COOL/CMD\_FAN/CMD\_OFF) | | `@lastCmd` | Последняя отправленная команда (служебное) | | `roomtemp` | Дополнительный датчик комнатной температуры | --- - +\ ## 4. Детальная конфигурация компонентов ### 4.1 PID-контроллер @@ -184,14 +188,12 @@ $$out = \frac{(V_{requested} \times 255) \times V_{max}}{V \times P_{max}}$$ #### Включение PID ```json -"pid": [1.0, 0.1, 0.05, 5.0] +"pid": [1.0, 0.1, 0.05, 5.0, 120, 128] ``` -**Формат**: `[Kp, Ki, Kd, dT]` +**Формат**: `[Kp, Ki, Kd, dT, alarmTime, alarmValue]` - **Kp** (пропорциональный коэффициент): 0.5—2.0 - - Отрицательное значение включает **REVERSE-режим** (для охлаждения) - - Положительное значение — DIRECT-режим (для нагрева) - **Ki** (интегральный коэффициент): 0.0—0.2 - Устраняет постоянное отклонение @@ -201,19 +203,20 @@ $$out = \frac{(V_{requested} \times 255) \times V_{max}}{V \times P_{max}}$$ - **dT** (период сэмплирования, сек): по умолчанию 5 сек -#### Пример для зоны с нагревом: + +#### Пример для зоны, заданный в виде массива: ```json "pid": [1.0, 0.05, 0.02, 5.0] ``` -#### Пример для зоны с охлаждением: +#### Пример для зоны, заданный в виде обьекта: ```json -"pid": [-1.0, 0.05, 0.02, 5.0] +"pid": {"kP":-1.0,"kI":0.05,"kD":0.02, "dT":50, "AlarmTime":240, "AlarmValue:128] ``` -### 4.2 Объём воздуха (V) +## 4.2 Объём воздуха (V) Указывается в **относительных единицах** (не обязательно м³/ч): @@ -263,13 +266,14 @@ tbd ### 5.2 Режимы работы центральной установки -Модуль автоматически определяет режим AC по текущей температуре: +Модуль автоматически определяет режим AC по текущей температуре воздуха в канале кондиционера, которую надо направить в /val: ``` AC temp < 15°C → CMD_COOL (переоборудование в холод) 15°C ≤ AC temp ≤ 30°C → CMD_FAN (вентиляция) AC temp > 30°C → CMD_HEAT (переоборудование в тепло) ``` +Важно: при обнаружении холода или тепла автоматичесуки активируются PID регуляторы зон. Их выходы направляются на вход блока балансировки зон. Таким образом, система ререходит в режим нагрева или охлаждения зон с контролем температуры. А прямое управление по входу /fan зон блокируется, (но последее переданное в зону значение запоминается). После того как система обнаруживает переход установки из режима нагрева либо охлаждения в режим вентиляции, она использует последнее полученное на вход /fan зоны значение для балансировки воздушного потока в каждую зону. И система переходит в режим вентиляции. В этом режиме, используются поступающие извне на вход /fan сигналы запросов воздуха в каждую зону (например, от PID регулятора уровня CO2) ### 5.3 PID-режимы @@ -281,6 +285,8 @@ AC temp > 30°C → CMD_HEAT (переоборудование в тепло) - Выход растёт при уменьшении отклонения (set < val) - Используется для режима COOL +режим работы регуляторв переключается автоматически в зависимости от температуры воздуха в канале. При нагреве включается прямой режим. При охлаждении - обратный. + **Автоматическое переключение в режиме CMD_AUTO:** ``` AC в HEAT → PID в DIRECT