sprinkler - dry mode presistence, states initial publishing. Mercury - longer timer, dox

This commit is contained in:
2026-09-27 22:12:27 +03:00
parent 1c839091b6
commit e442001ec9
1557 changed files with 3281 additions and 2870 deletions
+42 -36
View File
@@ -1,8 +1,8 @@
# LightHub: Инженерная документация (Индекс)
> **Полная инженерная документация системы LightHub**
> Версия ядра: CH_DIMMER (0) - CH_MERCURY (22)
> Дата актуализации: 2025-01-24
> Версия ядра: CH_DIMMER (0) - CH_SPRINKLER (23)
> Дата актуализации: 2025-06-17
---
@@ -10,7 +10,7 @@
### Основные документы
1. **[light_hub_полное_инженерное_описание_json_конфигурации_v2.md](light_hub_полное_инженерное_описание_json_конфигурации_v2.md)** ⭐ **НАЧНИТЕ ОТСЮДА**
1. **[light\_hub\_полное\_инженерное\_описание\_json\_конфигурации_v2.md](light_hub_полное_инженерное_описание_json_конфигурации_v2.md)** ⭐ **НАЧНИТЕ ОТСЮДА**
- Полное описание структуры JSON конфигурации
- Все секции: mqtt, topics, modbus, items, in
- Инженерные принципы конфигурирования
@@ -20,50 +20,50 @@
**🆕 MQTT API и топики:**
2. **[mqtt_api_reference.md](mqtt_api_reference.md)** — ⭐ ПОЛНЫЙ справочник MQTT API
2. **[mqtt\_api\_reference.md](mqtt_api_reference.md)** — ⭐ ПОЛНЫЙ справочник MQTT API
- Структура MQTT топиков: `root/[id или bcst или out]/item/[subitem]/suffix`
- Три типа топиков: широковещательные команды, индивидуальные команды, статусные
- Таблица суффиксов с применимостью
- HTTP API endpoints (`/item/<name>`, `/config.json`, `/command`)
- HTTP API endpoints (`/item/<name>`, `/config.json`, `/$command`)
- Примеры MQTT команд и HTTP curl запросов
- Восстановление состояния при старте контроллера
- Диагностика MQTT подключения
3. **[suffixes_reference_v2.md](suffixes_reference_v2.md)** — ⭐ ИСПРАВЛЕННЫЙ справочник суффиксов
3. **[suffixes\_reference\_v2.md](suffixes_reference_v2.md)** — ⭐ ИСПРАВЛЕННЫЙ справочник суффиксов
- Правильная структура суффиксов согласно wiki.lazyhome.ru
- 7 категорий: основные, цветовые, AC, Multivent, PID, ШИМ, управление состоянием
- Таблица применимости по типам каналов (CH_DIMMER, CH_RGB, CH_AC и др.)
- Таблица применимости по типам каналов (CH\_DIMMER, CH\_RGB, CH\_AC и др.)
- Диапазоны значений: 0-100 vs 0-255, /hue 0-365°, /sat 0-100%
- Примеры сценариев для каждого типа канала
**Основные справочники:**
4. **[channel_types_reference.md](channel_types_reference.md)** — Справочник типов каналов (0-22)
4. **[channel\_types\_reference.md](channel_types_reference.md)** — Справочник типов каналов (0-23)
- Таблица всех типов каналов с кодами
- Текстовые обозначения и английские названия
- Синтаксис конфигурации для каждого типа
- Визуализация иерархии типов
5. **[suffixes_reference.md](suffixes_reference.md)** — Справочник суффиксов параметров (архив)
- Старая версия справочника (см. suffixes_reference_v2.md)
5. **[suffixes\_reference.md](suffixes_reference_v2.md)** — Справочник суффиксов параметров
6. **[technical_channel_types_table.md](technical_channel_types_table.md)** — Подробные технические таблицы
6. **[technical\_channel\_types\_table.md](technical_channel_types_table.md)** — Подробные технические таблицы
- Таблицы параметров для каждого типа
- Значения по умолчанию и ограничения
- Специфика работы каждого типа
### Модули и компоненты
7. **[modules_description.md](modules_description.md)** — Описание модулей
7. **[modules\_description.md](modules_description.md)** — Описание модулей
- out_Multivent — многозональная вентиляция
- out_AC — управление кондиционером
- out_PID — PID регулятор
- out_Motor — управление двигателем
- И другие модули...
8. **[multivent_module_description.md](multivent_module_description.md)** — Многозональная вентиляция (подробно)
8. **[multivent\_module\_description.md](multivent_module_description.md)** — Многозональная вентиляция (подробно)
9. **[modules_real_config.md](modules_real_config.md)** — Реальные конфигурации модулей
9. **[modules\_real\_config.md](modules_real_config.md)** — Реальные конфигурации модулей
---
@@ -71,10 +71,10 @@
### Задача: Управлять LED светом через MQTT
1. Откройте [mqtt_api_reference.md](mqtt_api_reference.md) — чтобы понять структуру топиков
1. Откройте [mqtt\_api\_reference.md](mqtt_api_reference.md) — чтобы понять структуру топиков
2. Выберите тип канала: CH_RGB (10), CH_RGBW (11) или CH_RGBWW (12)
3. Найдите примеры в [configuration_examples.md](configuration_examples.md)
4. Используйте MQTT команды из [suffixes_reference_v2.md](suffixes_reference_v2.md):
3. Найдите примеры в [configuration\_examples.md](configuration_examples.md)
4. Используйте MQTT команды из [suffixes\_reference_v2.md](suffixes_reference_v2.md):
```
myhome/in/rgb_lamp/hue → 240 (установить синий)
myhome/in/rgb_lamp/sat → 100 (полная насыщенность)
@@ -89,9 +89,9 @@
### Задача: Управлять кондиционером через MQTT
1. Откройте [mqtt_api_reference.md](mqtt_api_reference.md) — раздел "Суффиксы кондиционера (AC)"
2. Найдите CH_AC (13) в [configuration_examples.md](configuration_examples.md)
3. Используйте MQTT команды из [suffixes_reference_v2.md](suffixes_reference_v2.md):
1. Откройте [mqtt\_api\_reference.md](mqtt_api_reference.md) — раздел "Суффиксы кондиционера (AC)"
2. Найдите CH_AC (13) в [configuration\_examples.md](configuration_examples.md)
3. Используйте MQTT команды из [suffixes\_reference_v2.md](suffixes\_reference_v2.md):
```
myhome/in/ac_main/cmd → ON (включить)
myhome/in/ac_main/mode → HEAT (режим нагрева)
@@ -107,15 +107,15 @@
### Задача: Настроить многозональную вентиляцию
1. Прочитайте [multivent_module_description.md](multivent_module_description.md)
2. Найдите CH_MULTIVENT (18) в [configuration_examples.md](configuration_examples.md)
1. Прочитайте [multivent\_module\_description.md](multivent_module_description.md)
2. Найдите CH_MULTIVENT (18) в [configuration\_examples.md](configuration_examples.md)
3. Добавьте зоны в массив `"зоны": {...}`
4. Настройте PID параметры `[Kp, Ki, Kd, dT]`
5. Привяжите MQTT топики через `"emit"`
### Задача: Создать систему с входами (кнопки, датчики)
1. Прочитайте раздел "Секция `in`" в [light_hub_полное_инженерное_описание_json_конфигурации_v2.md](light_hub_полное_инженерное_описание_json_конфигурации_v2.md)
1. Прочитайте раздел "Секция `in`" в [light\_hub\_полное\_инженерное\_описание\_json\_конфигурации\_v2.md](light_hub_полное_инженерное_описание_json_конфигурации_v2.md)
2. Определите GPIO пины входов (37, 38, 39, и т.д.)
3. Привяжите их к объектам через `"item": "имя_канала"`
4. Используйте команды `scmd`, `rcmd` для действий
@@ -145,12 +145,12 @@
| 15 | UARTBRDG | UART Мост | [⬇️](configuration_examples.md#ch_uartbridge-15---uart-мост) |
| 16 | RELAYX | Медленный PWM реле | [⬇️](configuration_examples.md#ch_relayx-16---медленный-pwm-через-реле) |
| 17 | DMXRGBWW | RGBWW через DMX | [⬇️](configuration_examples.md#ch_rgbww-17---dmx-rgbww) |
| 18 | VENTS | Многозональная вентиляция | [⬇️](configuration_examples.md#ch_multivent-18---многозональная-вентиляция) |
| 18 | VENTS | Многозональная вентиляция/кондиционер | [⬇️](configuration_examples.md#ch_multivent-18---многозональная-вентиляция) |
| 19 | ELEVATOR | Лифт | - (TBD) |
| 20 | COUNTER | Счётчик импульсов | [⬇️](configuration_examples.md#ch_counter-20---счётчик-импульсов) |
| 20 | COUNTER | Счётчик импульсов или времени | [⬇️](configuration_examples.md#ch_counter-20---счётчик-импульсов) |
| 21 | HUM | Увлажнитель | [⬇️](configuration_examples.md#ch_humidifier-21---управление-увлажнителем) |
| 22 | MERCURY | Счётчик энергии | [⬇️](configuration_examples.md#ch_mercury-22---счётчик-энергии-mercury) |
| 23 | SPRINKLER| многозональная система полива
---
## 📊 Таблица суффиксов MQTT
@@ -158,14 +158,14 @@
| Суффикс | Назначение | Применимо к |
|---------|-----------|-----------|
| `/cmd` | Команда управления | Все типы |
| `/val` | Текущее значение (статус) | Все типы |
| `/val` | Входное значение | THERMO, PID, MBUS, SPRINKLER|
| `/set` | Установка значения | Диммеры, регуляторы |
| `/hue` | Оттенок (0-359°) | RGB/RGBW/RGBWW |
| `/sat` | Насыщенность (0-100%) | RGB/RGBW/RGBWW |
| `/temp` | Температура цвета (K) | RGB/RGBW/RGBWW |
| `/fan` | Скорость вентилятора | AC, Multivent, Vacom |
| `/temp` | Температура цвета (Mirids) | RGB/RGBW/RGBWW |
| `/fan` | Скорость вентилятора 0-255| AC, Multivent, Vacom |
| `/mode` | Режим работы | AC, Multivent |
| `/raw` | JSON формат (отладка) | Все типы |
| `/raw` | JSON формат (отладка) | TBD |
---
@@ -195,10 +195,12 @@ python3 -m json.tool config.json
### Логирование Modbus
Если Modbus устройство не отвечает:
1. Проверьте baudrate (по умолчанию 9600)
2. Проверьте адрес устройства
3. Проверьте регистры (должны быть доступны для чтения)
4. Включите syslog для отладки
4. Включите уровень логгирование 9 для отладки
5. Можно откомпилировать прошивку с ключем, выдающим обмен Modbus в порт консоли в 16-ти ричном виде
### MQTT Отладка
@@ -241,11 +243,14 @@ MQTT привязка (через "emit")
// myhome/dev/lights_all/cmd → ON
```
### Правило 4: Подробное имя = легче найти
### Правило 4: Слишком длинное имя = меньше влезет
```json
"lamp_bedroom_ceiling": [0, 1], // ✓ Хорошо
"lamp1": [0, 1] // ✗ Плохо
"lamp1": [0, 1] // ✗ Плохо, слишком коротко и непонятно
"lamp_bedroom_ceiling": [0, 1], // ✗ Плохо, занимает много оперативной памяти, дольше в поиске
"lampbedr1": [0, 1], // ✓ Нормально
"ledbedr1": [0, 1], // ✓ Нормально
```
---
@@ -263,6 +268,7 @@ MQTT привязка (через "emit")
| Версия | Дата | Изменения |
|--------|------|----------|
| 2.0 | 2025-01-24 | Полная актуализация документации для ядра CH_DIMMER (0) - CH_MERCURY (22) |
| 2.1 | 2026-06-17 | Добавлен новый тип канала CH_SPRINKLER (23) — система полива |
| 1.0 | 2024-12-16 | Исходная версия |
---
@@ -273,7 +279,7 @@ MQTT привязка (через "emit")
- [ ] Все GPIO пины уникальны (нет конфликтов)
- [ ] Все Modbus адреса доступны
- [ ] MQTT брокер доступен и запущен
- [ ] Все типы каналов в диапазоне 0-22
- [x] Все типы каналов в диапазоне 0-23
- [ ] Содержатся ли необходимые секции (mqtt, items)
- [ ] Проверены все MQTT топики
- [ ] Запасная копия конфигурации сохранена
@@ -291,7 +297,7 @@ MQTT привязка (через "emit")
- Не устанавливайте poll менее 50 мс для RS485
⚠️ **СОВМЕСТИМОСТЬ**:
- Эта документация актуальна для ядра с типами 0-22
- Эта документация актуальна для ядра с типами 0-23
- Убедитесь, что ваша версия LightHub поддерживает нужные типы
---