mirror of
https://github.com/anklimov/lighthub
synced 2026-05-09 15:35:48 +00:00
docs update
This commit is contained in:
@@ -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}
|
||||
|
||||
}]
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user