docs update

This commit is contained in:
2026-05-07 19:16:25 +03:00
parent 5cb9c87135
commit 641b314218
2 changed files with 46 additions and 40 deletions

View File

@@ -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}
}]
}

View File

@@ -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.52.0
- Отрицательное значение включает **REVERSE-режим** (для охлаждения)
- Положительное значение DIRECT-режим (для нагрева)
- **Ki** (интегральный коэффициент): 0.00.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