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
+3 -3
View File
@@ -8,7 +8,7 @@ Useful links:
* [WIKI/RU](https://www.lazyhome.ru/dokuwiki/doku.php?id=start) * [WIKI/RU](https://www.lazyhome.ru/dokuwiki/doku.php?id=start)
* [Doxygen autodocumentation for developers](https://anklimov.github.io/lighthub/docs/html/index.html) (litle bit outdated) * [Doxygen autodocumentation for developers](https://anklimov.github.io/lighthub/doxygen-docs/html/index.html) (litle bit outdated)
It may operate both: It may operate both:
* On [especially designed hardware board](http://www.lazyhome.ru/index.php/featurerequest) with 16 optocoupled digital inputs, 16 ESD protected digital/analog Inputs/outputs, 8 open-collector outputs (up to 0.5A/50V), DMX IN/OUT, MODBUS RTU and hardware 1-wire support circuit. * On [especially designed hardware board](http://www.lazyhome.ru/index.php/featurerequest) with 16 optocoupled digital inputs, 16 ESD protected digital/analog Inputs/outputs, 8 open-collector outputs (up to 0.5A/50V), DMX IN/OUT, MODBUS RTU and hardware 1-wire support circuit.
@@ -30,7 +30,7 @@ Lighthub allows connecting together:
![alt text](LightHub.png "LightHub application diagram") ![alt text](LightHub.png "LightHub application diagram")
![alt text](docs/LightHubAppDiagram.png "LightHub application diagram") ![alt text](documentation/LightHubAppDiagram.png "LightHub application diagram")
Where is possible both, to configure local control/mapping between inputs and outputs (light, floor heating thermostats) and remote control from MQTT enabled software and between controllers. At the moment, LightHub tested and perfectly working with following set of complementary free software: Where is possible both, to configure local control/mapping between inputs and outputs (light, floor heating thermostats) and remote control from MQTT enabled software and between controllers. At the moment, LightHub tested and perfectly working with following set of complementary free software:
* [HomeAssistant](https://www.home-assistant.io) - the best choice of HomeAutomation system * [HomeAssistant](https://www.home-assistant.io) - the best choice of HomeAutomation system
@@ -49,7 +49,7 @@ Scalability of Lighthub is virtually unlimited: Setup so many controllers you ne
* [Browser Plugin for searching and configure controllers](https://github.com/anklimov/zeroconf-lighthub) * [Browser Plugin for searching and configure controllers](https://github.com/anklimov/zeroconf-lighthub)
* [Channel commands](https://github.com/anklimov/lighthub/wiki/Channel-commands) * [Channel commands](https://github.com/anklimov/lighthub/wiki/Channel-commands)
* [OpenHab integration](https://github.com/anklimov/lighthub/wiki/OpenHab--integration) * [OpenHab integration](https://github.com/anklimov/lighthub/wiki/OpenHab--integration)
* [Doxygen developers documentation](https://anklimov.github.io/lighthub/docs/html/index.html) * [Doxygen developers documentation](https://anklimov.github.io/lighthub/doxygen-docs/html/index.html)
* [Latest Release notes](https://github.com/anklimov/lighthub/releases/tag/v3.0.0) * [Latest Release notes](https://github.com/anklimov/lighthub/releases/tag/v3.0.0)
# Platforms specific details: # Platforms specific details:
+4 -4
View File
@@ -19,8 +19,8 @@
#-DFLASH_DATA_SECTOR #-DFLASH_DATA_SECTOR
#-DFLASH_PAGE_NUMBER #-DFLASH_PAGE_NUMBER
-D PIO_FRAMEWORK_ARDUINO_ENABLE_MASS_STORAGE #-D PIO_FRAMEWORK_ARDUINO_ENABLE_MASS_STORAGE
-D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC_AND_MSC #-D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC_AND_MSC
#-DdebugSerialPort=SerialUSB #-DdebugSerialPort=SerialUSB
#-DSerialPortType=USBSerial #-DSerialPortType=USBSerial
@@ -36,8 +36,8 @@
#-D USBD_USE_CDC #-D USBD_USE_CDC
-D HAL_CAN_MODULE_ENABLED -D HAL_CAN_MODULE_ENABLED
#HAL_ETH_MODULE_DISABLED -D HAL_ETH_MODULE_DISABLED
#HAL_SD_MODULE_DISABLED #HAL_SD_MODULE_DISABLED
#HAL_DAC_MODULE_DISABLED #HAL_DAC_MODULE_DISABLED
#-DMERCURY_ENABLE -DMERCURY_ENABLE
-D ROTARYENCODER -D ROTARYENCODER
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -1,3 +1,3 @@
export PORT=cu.usbmodem14201 export PORT=cu.usbmodem21301
echo . | stty -f /dev/$PORT speed 1200 echo . | stty -f /dev/$PORT speed 1200
../tools/mac/tool-bossac/bossac -U false -p $PORT -i -e -w -v -b firmware.bin -R ../tools/mac/tool-bossac/bossac -U false -p $PORT -i -e -w -v -b firmware.bin -R
+1 -1
View File
@@ -1 +1 @@
../tools/mac/arduinoOTA -address 192.168.88.21 -port 80 -username arduino -password password -sketch firmware.bin -b -upload /sketch ../tools/mac/arduinoOTA -address 192.168.11.188 -port 80 -username arduino -password password -sketch firmware.bin -b -upload /sketch
+2599 -2515
View File
File diff suppressed because it is too large Load Diff
-29
View File
@@ -1,29 +0,0 @@
{
"mqtt":["garden","192.168.10.115",1883,"test","test"],
"ow":{
"28FFADCE601705A3":{"emit":"t_soil1","item":"h_relay6"},
"286164123FF96F55":{"emit":"t_soil2"},
"28FFEF6D60170335":{"emit":"t_soil3"}
},
"items":{
"h_relay1":[6,39,1,1],
"h_relay2":[6,38,1,1],
"h_relay3":[6,37,1,1],
"h_relay4":[6,36,1,1],
"h_relay5":[6,35,1,1],
"h_relay6":[5,34,23],
"h_relay7":[6,33,1,1],
"h_relay8":[6,32,1,1],
"h_auto":[6,29,1,1]
},
"in":{
"40":{"emit":"/garden/s_in/1"},
"41":{"emit":"/garden/s_in/2"},
"42":{"emit":"/garden/s_in/3"},
"43":{"emit":"/garden/s_in/4"},
"44":{"emit":"/garden/s_in/5"},
"45":{"emit":"/garden/s_in/6"},
"46":{"emit":"/garden/s_in/7"},
"47":{"emit":"/garden/s_in/8"}
}
}
-46
View File
@@ -1,46 +0,0 @@
{
"dmxin":["kuhm","kuhwin","gost","bthr"],
"dmx":[3,60],
"modbus": [96,97],
"items": {
"light":[7,["kuh","ktc","gst","gost"]],
"kuhwin":[1,5],
"kuhline":[1,13],
"kuhfre":[1,25],
"kuhwork":[1,1],
"gost":[1,47],
"sasha1":[1,17],
"sasha2":[1,21],
"vika1":[1,31],
"vika2":[1,35],
"bedr1":[1,39],
"bedr2":[1,43],
"kuhm":[7,["kuhline","kuhfre","kuhwork"]],
"kuh":[7,["kuhline","kuhfre","kuhwork","kuhwin"]],
"sasha":[7,["sasha1","sasha2"]],
"vika":[7,["vika1","vika2"]],
"bedr":[7,["bedr1","bedr2"]],
"balk1":[7,["balk11","balk12"]],
"balk2":[0,53],
"balk11":[0,51],
"balk12":[0,52],
"all":[7,["kuh","gost","vika","sasha","bedr","bth","gst","ktc","balk1","balk2","fm"]],
"bth1":[4,[96,0,0]],
"bth2":[4,[96,0,1]],
"bthr":[1,57],
"bth":[7,["bth1","bth2"]],
"ktc":[4,[97,0,0]],
"gst":[4,[97,0,1]],
"a_vika":[3,8],
"a_sasha":[3,7],
"a_bedr":[3,6],
"a_ext":[3,5],
"fm":[9,10],
"fm_t":[8,"fm"],
"fm_h":[8,"fm"]
},
"mqtt":["public_test2","m2m.eclipse.org"]
}
-43
View File
@@ -1,43 +0,0 @@
{
"mqtt":["public_test1","m2m.eclipse.org"],
"ow":{
"2807FFD503000036":{"emit":"t_balk1","item":"h_balk1"},
"284811170400005B":{"emit":"t_entr"},
"28FFF95533160459":{"emit":"t_bath1","item":"h_bath1"},
"28D2FD1604000051":{"emit":"t_exbath2"},
"28EE634F13160255":{"emit":"t_bath2","item":"h_bath2"},
"28FFB3B02316030C":{"emit":"t_balk2","item":"h_balk2"},
"28EE4A571316027A":{"emit":"t_sasha"},
"28FF0C6A331604FF":{"emit":"t_ext"},
"28FFDD8C3316042C":{"emit":"t_abath2"},
"28FFAEAC3316047F":{"emit":"t_abath1"},
"28EE736E131602D6":{"emit":"t_vika"},
"28EED85C131602DA":{"emit":"t_kitchen"},
"28EE5A62131602CF":{"emit":"t_ac"},
"28EEA76713160204":{"emit":"t_aentr"},
"28EE8A5B1616019D":{"emit":"t_entr2","item":"h_entr"},
"28EED16A13160268":{"emit":"t_bedr"}
},
"items":{
"all":[7,["h_entr","h_bath1","h_bath2","h_balk1","h_balk2","h_boil1","h_boil2","h_polotenc","spots_en","light_en"]],
"h_bath1":[5,24,33],
"h_bath2":[5,34,32],
"h_entr":[5,35,32],
"h_balk1":[5,25,28],
"h_balk2":[5,27,28],
"h_boil1":[6,23],
"h_boil2":[6,28,1,1],
"h_polotenc":[6,26,1,1],
"spots_en":[6,22,1,1],
"light_en":[6,29,1,1],
"water":[6,36,1,1]
},
"in":{
"41":{"T":0,"emit":"/myhome/in/all","scmd":"HALT","rcmd":"REST"},
"37":{"item":"spots_en","scmd":"TOGGLE","rcmd":"TOGGLE"},
"38":{"emit":"/myhome/in/light","scmd":"TOGGLE","rcmd":"TOGGLE"},
"40":{"T":1,"emit":"/myhome/out/all","scmd":"HALT","rcmd":"REST"},
"39":{"emit":"/myhome/s_out/water_leak"}
}
}
-62
View File
@@ -1,62 +0,0 @@
{
"syslog":["192.168.88.2"],
"mqtt1":["esp32","m2m.eclipse.org"],
"mqtt":["elevator","192.168.88.2"],
"mqtt4":["esp32","test.mosquitto.org"],
"dmx":[30],
"items": {
"relay1":[6,32],
"relay2":[6,33],
"relays":[7,["relay1","relay2"]],
"sensair1":[44,[254,
"sensair",
{"co2":{"emit":"co2"}},
{"mode":"auto"}
]
],
"elevator":[15,{"baud":9600,"serial":"8N1","ip":"192.168.88.255","port":502}],
"aaa1":[44,[254,
"aaa",
{"aaa1":{"emit":"aaa2"}},
{"mode":"auto"}
]
]
},
"modbus":
{
"aaa":
{"baud":19200,
"poll":{"irs":[1]},
"par":{
"aaa1":{"ir":1}
}
},
"sensair":{"baud":9600,
"poll":{"irs":[[0,3],21,[25,30]],"regs":[0,1,31],"delay":1000},
"par":{
"co2":{"ir":3},
"meterStat":{"ir":0},
"alarmStat":{"ir":1},
"outStat":{"ir":0},
"pwm":{"ir":21},
"typeid":{"ir":25,"type":"u32"},
"mapver":{"ir":27},
"fwver":{"ir":28},
"sensorid":{"ir":29,"type":"u32"},
"ack":{"reg":0},
"command":{"reg":1},
"abc":{"reg":31}
}
}
},
"in":{ "34":{"item":"relays","emit":"myhome/in/bedr","scmd":"TOGGLE","rcmd":""},
"17":{"T":64,"emit":"analog","map":[0,1024,0,100,15]}
}
}
+7 -6
View File
@@ -1,8 +1,9 @@
# 📚 Полный индекс документации LightHub (v2.0) # 📚 Полный индекс документации LightHub (v2.1)
> **Версия**: 2.0 (Актуально согласно wiki.lazyhome.ru) > **Версия**: 2.1 (Актуально согласно wiki.lazyhome.ru)
> **Дата обновления**: 2025-01-24 > **Дата обновления**: 2026-06-17
> **Всего документов**: 17 > **Всего документов**: 18
> **Типов каналов**: 24 (CH_DIMMER 0 - CH_SPRINKLER 23)
--- ---
@@ -54,7 +55,7 @@
| Файл | Размер | Описание | | Файл | Размер | Описание |
|------|--------|---------| |------|--------|---------|
| **[channel_types_reference.md](channel_types_reference.md)** | 400 стр | Справочник типов каналов (0-22) | | **[channel_types_reference.md](channel_types_reference.md)** | 400 стр | Справочник типов каналов (0-23) |
| **[technical_channel_types_table.md](technical_channel_types_table.md)** | 350 стр | Технические таблицы параметров | | **[technical_channel_types_table.md](technical_channel_types_table.md)** | 350 стр | Технические таблицы параметров |
**Использование**: При создании новых каналов, для понимания параметров **Использование**: При создании новых каналов, для понимания параметров
@@ -218,7 +219,7 @@
| Управлять AC через MQTT | mqtt_quick_reference.md | Управление кондиционером | | Управлять AC через MQTT | mqtt_quick_reference.md | Управление кондиционером |
| Создать конфигурацию JSON | light_hub_полное_инженерное_описание_json_конфигурации_v2.md | Все секции | | Создать конфигурацию JSON | light_hub_полное_инженерное_описание_json_конфигурации_v2.md | Все секции |
| Найти суффикс для типа | suffixes_reference_v2.md | Таблица применимости | | Найти суффикс для типа | suffixes_reference_v2.md | Таблица применимости |
| Увидеть все примеры | configuration_examples.md | Все типы (0-22) | | Увидеть все примеры | configuration_examples.md | Все типы (0-23) |
| Интегрировать с Home Assistant | mqtt_api_reference.md | MQTT структура | | Интегрировать с Home Assistant | mqtt_api_reference.md | MQTT структура |
| Перейти со старой версии | MIGRATION_GUIDE.md | Все типы | | Перейти со старой версии | MIGRATION_GUIDE.md | Все типы |

Before

Width:  |  Height:  |  Size: 178 KiB

After

Width:  |  Height:  |  Size: 178 KiB

+42 -36
View File
@@ -1,8 +1,8 @@
# LightHub: Инженерная документация (Индекс) # LightHub: Инженерная документация (Индекс)
> **Полная инженерная документация системы LightHub** > **Полная инженерная документация системы LightHub**
> Версия ядра: CH_DIMMER (0) - CH_MERCURY (22) > Версия ядра: CH_DIMMER (0) - CH_SPRINKLER (23)
> Дата актуализации: 2025-01-24 > Дата актуализации: 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 конфигурации - Полное описание структуры JSON конфигурации
- Все секции: mqtt, topics, modbus, items, in - Все секции: mqtt, topics, modbus, items, in
- Инженерные принципы конфигурирования - Инженерные принципы конфигурирования
@@ -20,50 +20,50 @@
**🆕 MQTT API и топики:** **🆕 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` - Структура 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 команд и HTTP curl запросов
- Восстановление состояния при старте контроллера - Восстановление состояния при старте контроллера
- Диагностика MQTT подключения - Диагностика MQTT подключения
3. **[suffixes_reference_v2.md](suffixes_reference_v2.md)** — ⭐ ИСПРАВЛЕННЫЙ справочник суффиксов 3. **[suffixes\_reference\_v2.md](suffixes_reference_v2.md)** — ⭐ ИСПРАВЛЕННЫЙ справочник суффиксов
- Правильная структура суффиксов согласно wiki.lazyhome.ru - Правильная структура суффиксов согласно wiki.lazyhome.ru
- 7 категорий: основные, цветовые, AC, Multivent, PID, ШИМ, управление состоянием - 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% - Диапазоны значений: 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)** — Справочник суффиксов параметров (архив) 5. **[suffixes\_reference.md](suffixes_reference_v2.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_Multivent — многозональная вентиляция
- out_AC — управление кондиционером - out_AC — управление кондиционером
- out_PID — PID регулятор - out_PID — PID регулятор
- out_Motor — управление двигателем - 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 ### Задача: Управлять 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) 2. Выберите тип канала: CH_RGB (10), CH_RGBW (11) или CH_RGBWW (12)
3. Найдите примеры в [configuration_examples.md](configuration_examples.md) 3. Найдите примеры в [configuration\_examples.md](configuration_examples.md)
4. Используйте MQTT команды из [suffixes_reference_v2.md](suffixes_reference_v2.md): 4. Используйте MQTT команды из [suffixes\_reference_v2.md](suffixes_reference_v2.md):
``` ```
myhome/in/rgb_lamp/hue → 240 (установить синий) myhome/in/rgb_lamp/hue → 240 (установить синий)
myhome/in/rgb_lamp/sat → 100 (полная насыщенность) myhome/in/rgb_lamp/sat → 100 (полная насыщенность)
@@ -89,9 +89,9 @@
### Задача: Управлять кондиционером через MQTT ### Задача: Управлять кондиционером через MQTT
1. Откройте [mqtt_api_reference.md](mqtt_api_reference.md) — раздел "Суффиксы кондиционера (AC)" 1. Откройте [mqtt\_api\_reference.md](mqtt_api_reference.md) — раздел "Суффиксы кондиционера (AC)"
2. Найдите CH_AC (13) в [configuration_examples.md](configuration_examples.md) 2. Найдите CH_AC (13) в [configuration\_examples.md](configuration_examples.md)
3. Используйте MQTT команды из [suffixes_reference_v2.md](suffixes_reference_v2.md): 3. Используйте MQTT команды из [suffixes\_reference_v2.md](suffixes\_reference_v2.md):
``` ```
myhome/in/ac_main/cmd → ON (включить) myhome/in/ac_main/cmd → ON (включить)
myhome/in/ac_main/mode → HEAT (режим нагрева) myhome/in/ac_main/mode → HEAT (режим нагрева)
@@ -107,15 +107,15 @@
### Задача: Настроить многозональную вентиляцию ### Задача: Настроить многозональную вентиляцию
1. Прочитайте [multivent_module_description.md](multivent_module_description.md) 1. Прочитайте [multivent\_module\_description.md](multivent_module_description.md)
2. Найдите CH_MULTIVENT (18) в [configuration_examples.md](configuration_examples.md) 2. Найдите CH_MULTIVENT (18) в [configuration\_examples.md](configuration_examples.md)
3. Добавьте зоны в массив `"зоны": {...}` 3. Добавьте зоны в массив `"зоны": {...}`
4. Настройте PID параметры `[Kp, Ki, Kd, dT]` 4. Настройте PID параметры `[Kp, Ki, Kd, dT]`
5. Привяжите MQTT топики через `"emit"` 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, и т.д.) 2. Определите GPIO пины входов (37, 38, 39, и т.д.)
3. Привяжите их к объектам через `"item": "имя_канала"` 3. Привяжите их к объектам через `"item": "имя_канала"`
4. Используйте команды `scmd`, `rcmd` для действий 4. Используйте команды `scmd`, `rcmd` для действий
@@ -145,12 +145,12 @@
| 15 | UARTBRDG | UART Мост | [⬇️](configuration_examples.md#ch_uartbridge-15---uart-мост) | | 15 | UARTBRDG | UART Мост | [⬇️](configuration_examples.md#ch_uartbridge-15---uart-мост) |
| 16 | RELAYX | Медленный PWM реле | [⬇️](configuration_examples.md#ch_relayx-16---медленный-pwm-через-реле) | | 16 | RELAYX | Медленный PWM реле | [⬇️](configuration_examples.md#ch_relayx-16---медленный-pwm-через-реле) |
| 17 | DMXRGBWW | RGBWW через DMX | [⬇️](configuration_examples.md#ch_rgbww-17---dmx-rgbww) | | 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) | | 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---управление-увлажнителем) | | 21 | HUM | Увлажнитель | [⬇️](configuration_examples.md#ch_humidifier-21---управление-увлажнителем) |
| 22 | MERCURY | Счётчик энергии | [⬇️](configuration_examples.md#ch_mercury-22---счётчик-энергии-mercury) | | 22 | MERCURY | Счётчик энергии | [⬇️](configuration_examples.md#ch_mercury-22---счётчик-энергии-mercury) |
| 23 | SPRINKLER| многозональная система полива
--- ---
## 📊 Таблица суффиксов MQTT ## 📊 Таблица суффиксов MQTT
@@ -158,14 +158,14 @@
| Суффикс | Назначение | Применимо к | | Суффикс | Назначение | Применимо к |
|---------|-----------|-----------| |---------|-----------|-----------|
| `/cmd` | Команда управления | Все типы | | `/cmd` | Команда управления | Все типы |
| `/val` | Текущее значение (статус) | Все типы | | `/val` | Входное значение | THERMO, PID, MBUS, SPRINKLER|
| `/set` | Установка значения | Диммеры, регуляторы | | `/set` | Установка значения | Диммеры, регуляторы |
| `/hue` | Оттенок (0-359°) | RGB/RGBW/RGBWW | | `/hue` | Оттенок (0-359°) | RGB/RGBW/RGBWW |
| `/sat` | Насыщенность (0-100%) | RGB/RGBW/RGBWW | | `/sat` | Насыщенность (0-100%) | RGB/RGBW/RGBWW |
| `/temp` | Температура цвета (K) | RGB/RGBW/RGBWW | | `/temp` | Температура цвета (Mirids) | RGB/RGBW/RGBWW |
| `/fan` | Скорость вентилятора | AC, Multivent, Vacom | | `/fan` | Скорость вентилятора 0-255| AC, Multivent, Vacom |
| `/mode` | Режим работы | AC, Multivent | | `/mode` | Режим работы | AC, Multivent |
| `/raw` | JSON формат (отладка) | Все типы | | `/raw` | JSON формат (отладка) | TBD |
--- ---
@@ -195,10 +195,12 @@ python3 -m json.tool config.json
### Логирование Modbus ### Логирование Modbus
Если Modbus устройство не отвечает: Если Modbus устройство не отвечает:
1. Проверьте baudrate (по умолчанию 9600) 1. Проверьте baudrate (по умолчанию 9600)
2. Проверьте адрес устройства 2. Проверьте адрес устройства
3. Проверьте регистры (должны быть доступны для чтения) 3. Проверьте регистры (должны быть доступны для чтения)
4. Включите syslog для отладки 4. Включите уровень логгирование 9 для отладки
5. Можно откомпилировать прошивку с ключем, выдающим обмен Modbus в порт консоли в 16-ти ричном виде
### MQTT Отладка ### MQTT Отладка
@@ -241,11 +243,14 @@ MQTT привязка (через "emit")
// myhome/dev/lights_all/cmd → ON // myhome/dev/lights_all/cmd → ON
``` ```
### Правило 4: Подробное имя = легче найти ### Правило 4: Слишком длинное имя = меньше влезет
```json ```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.0 | 2025-01-24 | Полная актуализация документации для ядра CH_DIMMER (0) - CH_MERCURY (22) |
| 2.1 | 2026-06-17 | Добавлен новый тип канала CH_SPRINKLER (23) — система полива |
| 1.0 | 2024-12-16 | Исходная версия | | 1.0 | 2024-12-16 | Исходная версия |
--- ---
@@ -273,7 +279,7 @@ MQTT привязка (через "emit")
- [ ] Все GPIO пины уникальны (нет конфликтов) - [ ] Все GPIO пины уникальны (нет конфликтов)
- [ ] Все Modbus адреса доступны - [ ] Все Modbus адреса доступны
- [ ] MQTT брокер доступен и запущен - [ ] MQTT брокер доступен и запущен
- [ ] Все типы каналов в диапазоне 0-22 - [x] Все типы каналов в диапазоне 0-23
- [ ] Содержатся ли необходимые секции (mqtt, items) - [ ] Содержатся ли необходимые секции (mqtt, items)
- [ ] Проверены все MQTT топики - [ ] Проверены все MQTT топики
- [ ] Запасная копия конфигурации сохранена - [ ] Запасная копия конфигурации сохранена
@@ -291,7 +297,7 @@ MQTT привязка (через "emit")
- Не устанавливайте poll менее 50 мс для RS485 - Не устанавливайте poll менее 50 мс для RS485
⚠️ **СОВМЕСТИМОСТЬ**: ⚠️ **СОВМЕСТИМОСТЬ**:
- Эта документация актуальна для ядра с типами 0-22 - Эта документация актуальна для ядра с типами 0-23
- Убедитесь, что ваша версия LightHub поддерживает нужные типы - Убедитесь, что ваша версия LightHub поддерживает нужные типы
--- ---
+9 -8
View File
@@ -1,8 +1,9 @@
# ⭐ ДОКУМЕНТАЦИЯ ОБНОВЛЕНА — Версия 2.0 # ⭐ ДОКУМЕНТАЦИЯ ОБНОВЛЕНА — Версия 2.1
> **Важно**: Документация LightHub полностью актуализирована для ядра с типами каналов CH_DIMMER (0) - CH_MERCURY (22) > **Важно**: Документация LightHub полностью актуализирована для ядра с типами каналов CH_DIMMER (0) - CH_SPRINKLER (23)
> >
> **🆕 Новое**: Добавлена полная документация MQTT API согласно wiki.lazyhome.ru > **🆕 Новое**: Добавлена полная документация MQTT API согласно wiki.lazyhome.ru
> **🆕 Новое**: Добавлен новый тип канала — система полива (CH_SPRINKLER)
--- ---
@@ -36,7 +37,7 @@
### 3️⃣ [light_hub_полное_инженерное_описание_json_конфигурации_v2.md](light_hub_полное_инженерное_описание_json_конфигурации_v2.md) ⭐ **АКТУАЛЬНО** ### 3️⃣ [light_hub_полное_инженерное_описание_json_конфигурации_v2.md](light_hub_полное_инженерное_описание_json_конфигурации_v2.md) ⭐ **АКТУАЛЬНО**
- **Полное описание JSON конфигурации** - **Полное описание JSON конфигурации**
- Все 23 типа каналов (0-22) - Все 24 типа каналов (0-23)
- Все секции: mqtt, topics, modbus, items, in - Все секции: mqtt, topics, modbus, items, in
- Инженерные правила - Инженерные правила
- Полный пример системы - Полный пример системы
@@ -46,7 +47,7 @@
## 🔍 Справочники (используйте как шпаргалку) ## 🔍 Справочники (используйте как шпаргалку)
### 4️⃣ [channel_types_reference.md](channel_types_reference.md) ### 4️⃣ [channel_types_reference.md](channel_types_reference.md)
- **Справочник типов каналов 0-22** - **Справочник типов каналов 0-23**
- Таблица с кодами и текстовыми обозначениями - Таблица с кодами и текстовыми обозначениями
- Синтаксис конфигурации для каждого типа - Синтаксис конфигурации для каждого типа
- Визуализация иерархии - Визуализация иерархии
@@ -62,7 +63,7 @@
## 💡 Примеры (готовые к использованию) ## 💡 Примеры (готовые к использованию)
### 6️⃣ [configuration_examples.md](configuration_examples.md) ### 6️⃣ [configuration_examples.md](configuration_examples.md)
- **JSON примеры для всех 23 типов каналов** - **JSON примеры для всех 24 типов каналов**
- Для каждого типа: синтаксис + MQTT команды - Для каждого типа: синтаксис + MQTT команды
- Полная реальная система - Полная реальная система
- **Скопируй-вставь готовые примеры** - **Скопируй-вставь готовые примеры**
@@ -123,7 +124,7 @@
--- ---
## 📋 Таблица типов каналов (0-22) ## 📋 Таблица типов каналов (0-23)
| № | Тип | Описание | Справочник | | № | Тип | Описание | Справочник |
|---|-----|---------|-----------| |---|-----|---------|-----------|
@@ -176,7 +177,7 @@
- [ ] Все GPIO пины уникальны - [ ] Все GPIO пины уникальны
- [ ] Все Modbus адреса доступны - [ ] Все Modbus адреса доступны
- [ ] MQTT брокер запущен - [ ] MQTT брокер запущен
- [ ] Все типы каналов в диапазоне 0-22 - [x] Все типы каналов в диапазоне 0-23
- [ ] Необходимые секции присутствуют - [ ] Необходимые секции присутствуют
- [ ] MQTT топики проверены - [ ] MQTT топики проверены
- [ ] Резервная копия конфигурации сохранена - [ ] Резервная копия конфигурации сохранена
@@ -184,5 +185,5 @@
--- ---
**Документация обновлена**: 24 января 2026 г. **Документация обновлена**: 24 января 2026 г.
**Версия ядра**: LightHub с CH_DIMMER (0) - CH_MERCURY (22) **Версия ядра**: LightHub с CH_DIMMER (0) - CH_SPRINKLER (23)
**Статус**: ✅ Актуально и готово к использованию **Статус**: ✅ Актуально и готово к использованию
+35 -1
View File
@@ -1,7 +1,7 @@
# LightHub: Справочник типов каналов (Items) # LightHub: Справочник типов каналов (Items)
> **Инженерный справочник** соответствия цифровых кодов типов каналов к текстовым обозначениям и функциональности. > **Инженерный справочник** соответствия цифровых кодов типов каналов к текстовым обозначениям и функциональности.
> Актуально для версии ядра с типами DIMMER (0) до MERCURY (22). > Актуально для версии ядра с типами DIMMER (0) до SPRINKLER (23).
> Источник: [lighthub/item.h](../lighthub/item.h) > Источник: [lighthub/item.h](../lighthub/item.h)
--- ---
@@ -33,6 +33,7 @@
| **20** | `COUNTER` | Generic Counter | Счётчик импульсов (электроэнергия, газ, вода) | `[инкремент_на_один_отсчет, период_для_автоинкремента_режим_ON]` | | **20** | `COUNTER` | Generic Counter | Счётчик импульсов (электроэнергия, газ, вода) | `[инкремент_на_один_отсчет, период_для_автоинкремента_режим_ON]` |
| **21** | `HUM` | Humidifier | Управление увлажнителем воздуха | Конфигурация по типу увлажнителя | | **21** | `HUM` | Humidifier | Управление увлажнителем воздуха | Конфигурация по типу увлажнителя |
| **22** | `MERCURY` | Mercury Energy Meter | Счётчик энергии Mercury по RS485/Modbus | `[адрес, baudrate, формат, сдвиг, [флаги], timeout]` | | **22** | `MERCURY` | Mercury Energy Meter | Счётчик энергии Mercury по RS485/Modbus | `[адрес, baudrate, формат, сдвиг, [флаги], timeout]` |
| **23** | `SPRINKLER` | Irrigation System | Система автоматического полива с многозональным управлением | `[имя_устройства, конфигурация_зон]` |
--- ---
@@ -230,6 +231,38 @@
// Timeout: 10000 мс // Timeout: 10000 мс
``` ```
### CH_SPRINKLER (23) - Система полива
```json
"irrigation_system": [23, [
"main_sprinkler",
{
"": {
"cmd": {"emit": "sprinkler/cmd"},
"val": {"emit": "sprinkler/state"}
},
"north_zone": {
"enabled": {"emit": "sprinkler/north/enabled"},
"time": {"emit": "sprinkler/north/time"},
"progress": {"emit": "sprinkler/north/progress"},
"cycle": {"emit": "sprinkler/north/cycle"}
},
"south_zone": {
"enabled": {"emit": "sprinkler/south/enabled"},
"time": {"emit": "sprinkler/south/time"},
"progress": {"emit": "sprinkler/south/progress"},
"cycle": {"emit": "sprinkler/south/cycle"}
},
"drip_zone": {
"enabled": {"emit": "sprinkler/drip/enabled"},
"time": {"emit": "sprinkler/drip/time"},
"progress": {"emit": "sprinkler/drip/progress"},
"cycle": {"emit": "sprinkler/drip/cycle"}
}
}
]]
```
--- ---
## Заметки по конфигурации ## Заметки по конфигурации
@@ -284,6 +317,7 @@ ITEMS (каналы)
├── Каналы с множеством подканалов ├── Каналы с множеством подканалов
│ ├── CH_SPILED "SPILED"(11) │ ├── CH_SPILED "SPILED"(11)
│ ├── CH_MULTIVENT "VENTS"(18) │ ├── CH_MULTIVENT "VENTS"(18)
│ ├── CH_SPRINKLER "SPRINKLER"(23)
│ └── CH_HUMIDIFIER "HUM"(21) │ └── CH_HUMIDIFIER "HUM"(21)
│ │
├── Modbus/RS485 Slaves/UART ├── Modbus/RS485 Slaves/UART
+276 -21
View File
@@ -1,4 +1,4 @@
# LightHub: Примеры конфигурации для всех типов каналов (0-22) # LightHub: Примеры конфигурации для всех типов каналов (0-23)
> **Практический справочник** с готовыми примерами JSON конфигурации для каждого типа канала. > **Практический справочник** с готовыми примерами JSON конфигурации для каждого типа канала.
> Каждый пример показывает полный синтаксис, включая MQTT топики и все параметры. > Каждый пример показывает полный синтаксис, включая MQTT топики и все параметры.
@@ -30,6 +30,7 @@
- [CH_COUNTER (20)](#ch_counter-20---счётчик-импульсов) - [CH_COUNTER (20)](#ch_counter-20---счётчик-импульсов)
- [CH_HUMIDIFIER (21)](#ch_humidifier-21---управление-увлажнителем) - [CH_HUMIDIFIER (21)](#ch_humidifier-21---управление-увлажнителем)
- [CH_MERCURY (22)](#ch_mercury-22---счётчик-энергии-mercury) - [CH_MERCURY (22)](#ch_mercury-22---счётчик-энергии-mercury)
- [CH_SPRINKLER (23)](#ch_sprinkler-23---система-полива)
--- ---
@@ -61,7 +62,6 @@
``` ```
myhome/dev/lamp_bedroom/cmd ← ON, OFF, TOGGLE, SET myhome/dev/lamp_bedroom/cmd ← ON, OFF, TOGGLE, SET
myhome/dev/lamp_bedroom/set ← 150 (яркость 0-255) myhome/dev/lamp_bedroom/set ← 150 (яркость 0-255)
myhome/dev/lamp_bedroom/val ← текущая яркость
myhome/s_out/lamp_bedroom/val → опубликованная яркость myhome/s_out/lamp_bedroom/val → опубликованная яркость
``` ```
@@ -96,7 +96,7 @@ myhome/s_out/lamp_bedroom/val → опубликованная яркость
myhome/dev/rgb_light/hue ← 240 (0-359°) myhome/dev/rgb_light/hue ← 240 (0-359°)
myhome/dev/rgb_light/sat ← 100 (0-100%) myhome/dev/rgb_light/sat ← 100 (0-100%)
myhome/dev/rgb_light/val ← 200 (0-255) myhome/dev/rgb_light/val ← 200 (0-255)
myhome/dev/rgb_light/temp ← 6500 (температура цвета, K) myhome/dev/rgb_light/temp ← 6500 (температура цвета, Mirids)
myhome/dev/rgb_light/RGB ← 255,0,0 (красный) myhome/dev/rgb_light/RGB ← 255,0,0 (красный)
myhome/dev/rgb_light/RGB ← 255,0,0,100 (RGB+White) myhome/dev/rgb_light/RGB ← 255,0,0,100 (RGB+White)
``` ```
@@ -152,7 +152,7 @@ myhome/dev/mood_light/HSV ← 120,100,100 (зелёный в HSV)
``` ```
myhome/dev/pwm_dim/set ← 128 myhome/dev/pwm_dim/set ← 128
myhome/dev/pwm_dim/val ← текущее значение myhome/dev/pwm_dim/cmd ← ON
``` ```
--- ---
@@ -211,7 +211,7 @@ myhome/dev/pwm_dim/val ← текущее значение
``` ```
myhome/dev/thermo_bath/set ← 35 (установить целевую T) myhome/dev/thermo_bath/set ← 35 (установить целевую T)
myhome/dev/thermo_bath/val ← 1 (нагревается) или 0 myhome/dev/thermo_bath/val ← передать измерянную температуру с удаленного сенсора
myhome/dev/thermo_bath/cmd ← ON, OFF myhome/dev/thermo_bath/cmd ← ON, OFF
``` ```
@@ -219,7 +219,7 @@ myhome/dev/thermo_bath/cmd ← ON, OFF
## CH_RELAY (6) - GPIO Реле ## CH_RELAY (6) - GPIO Реле
**Назначение**: Простое электромагнитное реле ON/OFF **Назначение**: Простое электромагнитное реле ON/OFF или иное дискретное устройство
### Синтаксис ### Синтаксис
@@ -244,7 +244,6 @@ myhome/dev/thermo_bath/cmd ← ON, OFF
``` ```
myhome/dev/relay_water/cmd ← ON, OFF, TOGGLE myhome/dev/relay_water/cmd ← ON, OFF, TOGGLE
myhome/dev/relay_water/val ← 1 (включено) или 0 (выключено)
``` ```
--- ---
@@ -304,13 +303,7 @@ myhome/dev/lights_all/cmd ← SET 100 (установит яркость
```json ```json
{ {
"modbus": {
"vacom_10": {
"baud": 9600,
"serial": "8N1",
"poll": {"regs": [[0, 50]], "delay": 1000}
}
},
"items": { "items": {
"fan_heat": [8, [96, 0]], // Vacom адрес 96, экземпляр 0 "fan_heat": [8, [96, 0]], // Vacom адрес 96, экземпляр 0
"fan_cool": [8, [96, 1]] // Vacom адрес 96, экземпляр 1 "fan_cool": [8, [96, 1]] // Vacom адрес 96, экземпляр 1
@@ -329,10 +322,7 @@ myhome/dev/lights_all/cmd ← SET 100 (установит яркость
```json ```json
{ {
"items": { "items": {
"vent_motor": [9, [96, { "vent_motor": [9, [96, ??]]
"mode": {"emit": "vent/mode"},
"speed": {"emit": "vent/speed"}
}]]
} }
} }
``` ```
@@ -779,6 +769,271 @@ myhome/dev/energy_mercury/val ← текущие показания энерг
--- ---
## CH_SPRINKLER (23) - Система полива
**Назначение**: Многозональная система автоматического полива с контролем воды и насосов
### Синтаксис
```json
"sprinkler_name": [23, [{параметры_системы}, {зоны_полива}]]
```
### Полный пример конфигурации
```json
{
"items": {
"sprinkler": [23, {
"": {
"vIn": 3,
"wMax": 44,
"wMin": 46,
"rDren": 23,
"fbDren": 63,
"rPump": 24,
"fbPump": 62,
"wCtr": 49
},
"nord": {
"pin": 6,
"set": 60,
"cmd": 1
},
"south": {
"pin": 7,
"set": 100,
"cmd": 1
},
"trees": {
"pin": 10,
"set": 60,
"cmd": 2
},
"outlets": {}
}]
}
}
```
### MQTT Команды управления
#### Запуск/остановка цикла полива
```
root/name/sprinkler/cmd ← ON # Запустить цикл полива всех зон
root/name/sprinkler/cmd ← OFF # Остановить полив
root/name/sprinkler/cmd ← RESET # Сбросить счётчики - инициирует старт полива
root/name/sprinkler/cmd ← FREEZE # Полная блокировка на зиму
root/name/sprinkler/cmd ← UNFREEZE # Разблокировка
root/name/sprinkler/cmd ← DRY # Режим осушения системы перед зимой
root/name/sprinkler/cmd ← ENABLE # Разрешить полив
root/name/sprinkler/cmd ← DISABLE # Запретить полив (например, после дождя)
```
#### Управление конкретной зоной
```
root/name/sprinkler/nord/cmd ← ON # Включить полив северной зоны
root/name/sprinkler/nord/cmd ← OFF # Выключить полив
root/name/sprinkler/nord/set ← 60 # Требуемый объём полива
root/name/sprinkler/nord/set ← 0 # Без лимита (для розеток)
root/name/sprinkler/south/cmd ← ON # Включить южную зону
root/name/sprinkler/south/set ← 100 # Требуемый объём
root/name/sprinkler/trees/cmd ← ON # Включить капельное орошение
root/name/sprinkler/trees/set ← 60 # Требуемый объём
```
#### Специальные команды
```
root/name/sprinkler/val ← -1 # Температура < 0 → автоматический FREEZE
root/name/sprinkler/ctrl ← FREEZE # Установить режим FREEZE
root/name/sprinkler/ctrl ← UNFREEZE # Снять режим FREEZE
```
### MQTT Статусные топики (выходные)
#### Состояние системы
```
root/s_out/sprinkler/$state → SP_UNKNOWN, SP_OFF, SP_DREN_ON, SP_DREN_OPERATE,
SP_DREN_EMPTY, SP_VIN, SP_FULL, SP_FAULT_VIN, SP_FAULT_DREN
root/s_out/sprinkler/$fault → код ошибки (если есть)
root/s_out/sprinkler/$wMax → ON/OFF - бак полный (поплавок макс)
root/s_out/sprinkler/$wMin → ON/OFF - бак пуст (поплавок мин)
```
#### Состояние насосов и клапанов
```
root/s_out/sprinkler/$rPump → ON/OFF - реле основного насоса включено
root/s_out/sprinkler/$fbPump → ON/OFF - основной насос работает (датчик)
root/s_out/sprinkler/$rDren → ON/OFF - реле дренажного насоса включено
root/s_out/sprinkler/$fbDren → ON/OFF - дренажный насос работает (датчик)
root/s_out/sprinkler/$rVIN → ON/OFF - клапан налива из водопровода открыт
root/s_out/sprinkler/set → текущее значение счётчика воды
```
#### Состояние зон полива
```
root/s_out/sprinkler/nord/$state → ON/OFF - зона в данный момент поливается
root/s_out/sprinkler/nord/cmd → ON/OFF - состояние команды включения
root/s_out/sprinkler/nord/set → требуемый объём полива
root/s_out/sprinkler/nord/val → выполненный объём полива (накапливается)
root/s_out/sprinkler/south/$state → ON/OFF - южная зона поливается
root/s_out/sprinkler/south/cmd → ON/OFF
root/s_out/sprinkler/south/set → требуемый объём
root/s_out/sprinkler/south/val → выполненный объём
root/s_out/sprinkler/trees/$state → ON/OFF - капельная зона поливается
root/s_out/sprinkler/trees/cmd → ON/OFF
root/s_out/sprinkler/trees/set → требуемый объём
root/s_out/sprinkler/trees/val → выполненный объём
root/s_out/sprinkler/outlets/$state → ON/OFF - розетка активна
```
### Примеры использования
#### Запуск полива с установкой объёмов
```bash
# Установить объёмы для каждой зоны
mosquitto_pub -t root/name/sprinkler/nord/set -m 60
mosquitto_pub -t root/name/sprinkler/south/set -m 100
mosquitto_pub -t root/name/sprinkler/trees/set -m 60
# Запустить цикл полива
mosquitto_pub -t root/name/sprinkler/cmd -m ON
```
#### Запрет полива после дождя и восстановление
```bash
# Запретить полив
mosquitto_pub -t root/name/sprinkler/cmd -m DISABLE
# Разрешить полив
mosquitto_pub -t root/name/sprinkler/cmd -m ENABLE
```
#### Подготовка к зиме (блокировка + осушение)
```bash
# 1. Перейти в режим DRY для осушения
mosquitto_pub -t root/name/sprinkler/cmd -m DRY
# 2. Открыть розетки для слива
mosquitto_pub -t root/name/sprinkler/outlets/cmd -m ON
# 3. После полного слива - заморозить систему
mosquitto_pub -t root/name/sprinkler/cmd -m FREEZE
```
#### Сброс счётчиков (инициирует новый цикл полива)
```bash
mosquitto_pub -t root/name/sprinkler/cmd -m RESET
```
### Интеграция с Home Assistant
```yaml
sensor:
- name: "Полив бак Макс"
state_topic: "root/s_out/sprinkler/$wMax"
- name: "Полив бак Мин"
state_topic: "root/s_out/sprinkler/$wMin"
- name: "Полив состояние"
state_topic: "root/s_out/sprinkler/$state"
- name: "Полив ошибка"
state_topic: "root/s_out/sprinkler/$fault"
- name: "Полив север выполнено"
state_topic: "root/s_out/sprinkler/nord/val"
- name: "Полив юг выполнено"
state_topic: "root/s_out/sprinkler/south/val"
- name: "Полив капельный выполнено"
state_topic: "root/s_out/sprinkler/trees/val"
switch:
- name: "Полив"
state_topic: "root/s_out/sprinkler/cmd"
command_topic: "root/air/sprinkler/cmd"
availability_topic: "root/air/$state"
payload_available: "ready"
payload_not_available: "disconnected"
- name: "Полив север"
state_topic: "root/s_out/sprinkler/nord/cmd"
command_topic: "root/air/sprinkler/nord/cmd"
- name: "Полив юг"
state_topic: "root/s_out/sprinkler/south/cmd"
command_topic: "root/air/sprinkler/south/cmd"
- name: "Полив капельный"
state_topic: "root/s_out/sprinkler/trees/cmd"
command_topic: "root/air/sprinkler/trees/cmd"
button:
- name: "Полив сброс"
command_topic: "root/air/sprinkler/cmd"
payload_press: "RESET"
- name: "Полив блокировка (FREEZE)"
command_topic: "root/air/sprinkler/cmd"
payload_press: "FREEZE"
- name: "Полив разблокировка"
command_topic: "root/air/sprinkler/cmd"
payload_press: "UNFREEZE"
- name: "Полив запретить (дождь)"
command_topic: "root/air/sprinkler/cmd"
payload_press: "DISABLE"
- name: "Полив разрешить"
command_topic: "root/air/sprinkler/cmd"
payload_press: "ENABLE"
- name: "Полив осушение (DRY)"
command_topic: "root/air/sprinkler/cmd"
payload_press: "DRY"
number:
- name: "Полив север объём"
state_topic: "root/s_out/sprinkler/nord/set"
command_topic: "root/air/sprinkler/nord/set"
min: 0
max: 6000
- name: "Полив юг объём"
state_topic: "root/s_out/sprinkler/south/set"
command_topic: "root/air/sprinkler/south/set"
min: 0
max: 6000
- name: "Полив капельный объём"
state_topic: "root/s_out/sprinkler/trees/set"
command_topic: "root/air/sprinkler/trees/set"
min: 0
max: 6000
```
### Особенности и советы
| Особенность | Описание |
|-----------|---------|
| **Водяная розетка** | Настройте зону с `set: 0` — она будет работать неограниченно и всегда под давлением |
| **Счётчик воды** | Если `wCtr` не установлен, система отсчитывает время в секундах вместо объёма |
| **Приоритет дренажа** | Система сначала наполняет бак из дренажного колодца, потом из водопровода |
| **Автозащита от мороза** | Отправьте `/val ← -1` или `FREEZE` при угрозе мороза |
| **DISABLE vs FREEZE** | DISABLE блокирует только запуск, FREEZE полностью замораживает систему |
| **Режим DRY** | Используйте перед зимой: включает насос без наполнения, зоны можно открыть вручную |
| **RESET** | Сбрасывает счётчики всех зон в 0 и инициирует новый цикл полива |
## Полная реальная конфигурация (интеграция всех типов) ## Полная реальная конфигурация (интеграция всех типов)
```json ```json
@@ -845,12 +1100,12 @@ myhome/dev/energy_mercury/val ← текущие показания энерг
## Полезные ссылки ## Полезные ссылки
- [Справочник типов каналов](channel_types_reference.md) — типы 0-22 - [Справочник типов каналов](channel_types_reference.md) — типы 0-23
- [Справочник суффиксов](suffixes_reference.md) — /cmd, /val, /set, /hue, /sat, /temp - [Справочник суффиксов](suffixes_reference.md) — /cmd, /val, /set, /hue, /sat, /temp
- [Полное описание конфигурации](light_hub_полное_инженерное_описание_json_конфигурации_v2.md) - [Полное описание конфигурации](light_hub_полное_инженерное_описание_json_конфигурации_v2.md)
- [Исходный код item.h](../lighthub/item.h) - [Исходный код item.h](../lighthub/item.h)
--- ---
**Версия документа**: 1.0 **Версия документа**: 1.2
**Дата обновления**: 2025-01-24 **Дата обновления**: 2025-06-17
@@ -1,6 +1,6 @@
# LightHub: Полное инженерное описание JSON‑конфигурации контроллера # LightHub: Полное инженерное описание JSON‑конфигурации контроллера
> **Документ актуален для ядра LightHub с типами каналов CH_DIMMER (0) - CH_MERCURY (22)** > **Документ актуален для ядра LightHub с типами каналов CH_DIMMER (0) - CH_SPRINKLER (23)**
> >
> Предназначен для инженеров автоматизации, интеграторов и разработчиков. > Предназначен для инженеров автоматизации, интеграторов и разработчиков.
> Основан **строго** на официальной документации LazyHome / LightHub и исходном коде. > Основан **строго** на официальной документации LazyHome / LightHub и исходном коде.
@@ -31,7 +31,7 @@ JSON‑конфигурация LightHub — это **единственный
- **Сетевую интеграцию** (MQTT, syslog) - **Сетевую интеграцию** (MQTT, syslog)
- **Подключённые физические интерфейсы** (DMX, RS485, GPIO, 1-Wire) - **Подключённые физические интерфейсы** (DMX, RS485, GPIO, 1-Wire)
- **Библиотеки Modbus‑устройств** (шаблоны с параметрами) - **Библиотеки Modbus‑устройств** (шаблоны с параметрами)
- **Логические объекты (items)** — каналы управления (0-22 типов) - **Логические объекты (items)** — каналы управления (0-23 типов)
- **Маршрутизацию данных и команд** между MQTT и локальными объектами - **Маршрутизацию данных и команд** между MQTT и локальными объектами
❗ **В LightHub нет runtime‑конфигурации** — всё задаётся декларативно при загрузке файла. ❗ **В LightHub нет runtime‑конфигурации** — всё задаётся декларативно при загрузке файла.
@@ -79,6 +79,7 @@ JSON‑конфигурация LightHub — это **единственный
### Параметры (позиционные!) ### Параметры (позиционные!)
| № | Назначение | Тип | Обязателен | Пример | | № | Назначение | Тип | Обязателен | Пример |
|--|--|--|--|--| |--|--|--|--|--|
| 0 | MQTT Client ID | string | **✓** | `"lighthub-07"` | | 0 | MQTT Client ID | string | **✓** | `"lighthub-07"` |
@@ -392,12 +393,12 @@ myhome/s_out/lamp1/hue # текущий оттенок RGB лампы
| Элемент | Назначение | Обязателен | Тип | | Элемент | Назначение | Обязателен | Тип |
|--|--|--|--| |--|--|--|--|
| 0 | **TYPE** — тип канала (0-22) | **✓** | int или string | | 0 | **TYPE** — тип канала (0-23) | **✓** | int или string |
| 1 | **CONFIG** — конфигурация (зависит от типа) | **✓** | int, string, или array | | 1 | **CONFIG** — конфигурация (зависит от типа) | **✓** | int, string, или array |
| 2 | Начальное значение (preset) | - | int или array | | 2 | Начальное значение (preset) | - | int или array |
| 3 | Начальная команда | - | int | | 3 | Начальная команда | - | int |
### Типы каналов (0-22) ### Типы каналов (0-23)
**Полный справочник типов каналов см. в [channel_types_reference.md](channel_types_reference.md)** **Полный справочник типов каналов см. в [channel_types_reference.md](channel_types_reference.md)**
@@ -689,5 +690,5 @@ LightHub использует **жёстко структурированную,
**Версия документа**: 2.0 **Версия документа**: 2.0
**Дата обновления**: 2025-01-24 **Дата обновления**: 2025-01-24
**Актуально для**: LightHub с CH_DIMMER (0) - CH_MERCURY (22) **Актуально для**: LightHub с CH_DIMMER (0) - CH_SPRINKLER (23)
**Источник**: [item.h](../lighthub/item.h), [item.cpp](../lighthub/item.cpp) **Источник**: [item.h](../lighthub/item.h), [item.cpp](../lighthub/item.cpp)
+178
View File
@@ -20,6 +20,7 @@
- [out_Counter](#out_counter---счётчик-импульсов) - [out_Counter](#out_counter---счётчик-импульсов)
- [out_SPILed](#out_spiled---управление-светодиодами) - [out_SPILed](#out_spiled---управление-светодиодами)
- [out_Mercury](#out_mercury---счётчик-меркурий) - [out_Mercury](#out_mercury---счётчик-меркурий)
- [out_Sprinkler](#out_sprinkler---система-полива)
- [out_UARTBridge](#out_uartbridge---uart-мост) - [out_UARTBridge](#out_uartbridge---uart-мост)
2. [Входные модули (In)](#входные-модули) 2. [Входные модули (In)](#входные-модули)
@@ -628,6 +629,182 @@ home/meter/night_power - Ночное потребление
--- ---
---
## out_Sprinkler — Система полива
### Описание
Модуль управления многозональной системой автоматического полива с независимым управлением каждой зоной, таймерами и мониторингом.
**Основные функции:**
- Управление несколькими зонами полива независимо
- Установка длительности полива для каждой зоны
- Таймеры и расписания для автоматизации
- Мониторинг прогресса выполнения
- Поддержка ручного управления и автоматических режимов
- Контроль состояния клапанов и электромагнитных выключателей
### Тип в JSON
```
[23, ["device_name", {zones_configuration}]]
```
### Формат конфигурации
```json
"irrigation_system": [
23,
[
"main_sprinkler",
{
"": {
"cmd": {"emit": "sprinkler/cmd"},
"val": {"emit": "sprinkler/state"}
},
"north_zone": {
"enabled": {"emit": "sprinkler/north/enabled"},
"time": {"emit": "sprinkler/north/time"},
"progress": {"emit": "sprinkler/north/progress"},
"cycle": {"emit": "sprinkler/north/cycle"}
},
"south_zone": {
"enabled": {"emit": "sprinkler/south/enabled"},
"time": {"emit": "sprinkler/south/time"},
"progress": {"emit": "sprinkler/south/progress"},
"cycle": {"emit": "sprinkler/south/cycle"}
},
"drip_zone": {
"enabled": {"emit": "sprinkler/drip/enabled"},
"time": {"emit": "sprinkler/drip/time"},
"progress": {"emit": "sprinkler/drip/progress"},
"cycle": {"emit": "sprinkler/drip/cycle"}
}
}
]
]
```
### Компоненты системы
| Компонент | Выход/Вход | Назначение |
|-----------|-----------|-----------|
| **Бак полива** | wMax, wMin | Поплавки макс/мин уровня воды |
| **Основной насос** | rPump, fbPump | Реле включения, датчик тока |
| **Клапаны зон** | pin (для каждой зоны) | Оптореле открытия клапана |
| **Клапан налива** | vIn | Оптореле подачи воды из водопровода |
| **Дренажный насос** | rDren, fbDren | Реле включения, датчик тока |
| **Водосчётчик** | wCtr (опционально) | Счётчик объёма воды |
### Параметры конфигурации
| Параметр | Тип | Описание |
|----------|-----|---------|
| `vIn` | int | GPIO клапана налива из водопровода |
| `wMax` | int | GPIO поплавка максимума в баке |
| `wMin` | int | GPIO поплавка минимума в баке |
| `rDren` | int | GPIO реле дренажного насоса |
| `fbDren` | int | GPIO датчика дренажного насоса |
| `rPump` | int | GPIO реле основного насоса полива |
| `fbPump` | int | GPIO датчика основного насоса |
| `wCtr` | int | GPIO счётчика воды (опционально) |
### Параметры зоны полива
| Параметр | Тип | Описание |
|----------|-----|---------|
| `pin` | int | GPIO клапана зоны |
| `set` | int | Требуемый объём полива или время (сек). 0 = неограниченно |
| `cmd` | int | Начальное состояние (0=OFF, 1=ON, 2=другое) |
### Состояния системы налива
| Состояние | Описание |
|-----------|---------|
| `SP_UNKNOWN` | Неизвестное состояние |
| `SP_OFF` | Система выключена |
| `SP_DREN_ON` | Дренажный насос включен |
| `SP_DREN_OPERATE` | Дренажный насос работает |
| `SP_DREN_EMPTY` | Дренажный колодец пуст |
| `SP_VIN` | Наполнение из водопровода |
| `SP_FULL` | Бак наполнен |
| `SP_FAULT_VIN` | Ошибка: бак не наполнился из водопровода |
| `SP_FAULT_DREN` | Ошибка: бак не наполнился из дренажа |
### MQTT топики управления
#### Управление циклом полива (команды)
```
root/name/sprinkler/cmd ← ON # Запустить цикл полива
root/name/sprinkler/cmd ← OFF # Остановить цикл полива
root/name/sprinkler/cmd ← XON # Включить (может быть заблокировано DISABLE)
root/name/sprinkler/cmd ← XOFF # Выключить
root/name/sprinkler/cmd ← RESET # Сбросить счётчики всех зон
root/name/sprinkler/cmd ← FREEZE # Блокировка на зиму
root/name/sprinkler/cmd ← UNFREEZE # Разблокировка
root/name/sprinkler/cmd ← DRY # Режим осушения системы
```
#### Управление конкретной зоной (например, "north")
```
root/name/sprinkler/north/cmd ← ON # Включить полив зоны
root/name/sprinkler/north/cmd ← OFF # Выключить полив зоны
root/name/sprinkler/north/set ← 60 # Требуемый объём/время полива (секунды или единицы счётчика)
```
#### Режимы системы (установка в /ctrl)
```
root/name/sprinkler/ctrl ← ENABLE # Разрешить полив
root/name/sprinkler/ctrl ← DISABLE # Запретить полив (например, после дождя)
root/name/sprinkler/ctrl ← FREEZE # Полная блокировка на зиму
root/name/sprinkler/ctrl ← UNFREEZE # Снять блокировку зимы
```
#### Автоматическая блокировка по температуре
```
root/name/sprinkler/val ← -1 # При температуре < 0 система автоматически переходит в FREEZE
```
### MQTT топики мониторинга (статус)
```
root/s_out/sprinkler/$state # Состояние системы налива воды (SP_*)
root/s_out/sprinkler/$fault # Код ошибки (если есть)
root/s_out/sprinkler/$wMax # ON/OFF - бак полный (поплавок макс)
root/s_out/sprinkler/$wMin # ON/OFF - бак пуст (поплавок мин)
root/s_out/sprinkler/$rPump # ON/OFF - реле основного насоса включено
root/s_out/sprinkler/$fbPump # ON/OFF - основной насос работает (датчик тока)
root/s_out/sprinkler/$rDren # ON/OFF - реле дренажного насоса включено
root/s_out/sprinkler/$fbDren # ON/OFF - дренажный насос работает (датчик тока)
root/s_out/sprinkler/$rVIN # ON/OFF - клапан налива из водопровода открыт
root/s_out/sprinkler/set # Текущее значение счётчика воды
root/s_out/sprinkler/north/$state # ON/OFF - зона поливается в настоящее время
root/s_out/sprinkler/north/cmd # ON/OFF - состояние команды включения зоны
root/s_out/sprinkler/north/set # Требуемый объём/время полива
root/s_out/sprinkler/north/val # Текущий выполненный объём/время полива зоны
root/s_out/sprinkler/south/$state # ON/OFF - зона поливается
root/s_out/sprinkler/south/cmd # ON/OFF - состояние команды
root/s_out/sprinkler/south/set # Требуемый объём/время
root/s_out/sprinkler/south/val # Выполненный объём/время
# Аналогично для остальных зон (например, "trees", "outlets" и т.д.)
```
### Особенности
| Особенность | Описание |
|-----------|---------|
| **Динамическое управление** | Все параметры можно изменять через MQTT в реальном времени |
| **Восстановление состояния** | Значения `set` и `val` восстанавливаются из топиков `s_out` при перезагрузке |
| **Водяная розетка** | Зона с `set=0` работает неограниченно (используется для розеток с шлангом) |
| **Приоритет дренажа** | Система сначала пытается наполнить бак из дренажного колодца, затем из водопровода |
| **Автозащита от мороза** | Значение `/val < 0` автоматически активирует режим FREEZE |
| **Двухступенчатая блокировка** | DISABLE блокирует команды, FREEZE полностью заморозит систему |
---
## out_UARTBridge — UART мост ## out_UARTBridge — UART мост
### Описание ### Описание
@@ -791,6 +968,7 @@ home/meter/night_power - Ночное потребление
| out_Counter | 6 | Счётчик импульсов | GPIO-счёт | | out_Counter | 6 | Счётчик импульсов | GPIO-счёт |
| out_SPILed | 10 | Адресуемые светодиоды | SPI/GPIO | | out_SPILed | 10 | Адресуемые светодиоды | SPI/GPIO |
| out_Mercury | 45 | Электросчётчик | Modbus RTU | | out_Mercury | 45 | Электросчётчик | Modbus RTU |
| out_Sprinkler | 23 | Система полива | GPIO + MQTT |
| out_UARTBridge | 55 | UART-мост | UART↔UART | | out_UARTBridge | 55 | UART-мост | UART↔UART |
| in_CCS811_HDC1080 | 100 | Качество воздуха | I2C | | in_CCS811_HDC1080 | 100 | Качество воздуха | I2C |
+58 -55
View File
@@ -65,9 +65,10 @@ myhome/in/led_strip/10-20/set (установить значение пи
``` ```
**Пример для состояния (условное выполнение)**: **Пример для состояния (условное выполнение)**:
``` ```
myhome/in/floor/AUTO/set (команда для теплых полов в режиме AUTO) myhome/in/floor/AUTO/set (применится для теплых полов в режиме AUTO)
myhome/in/floor/OFF/set (команда для теплых полов в режиме OFF) myhome/in/floor/OFF/set (применится для теплых полов в режиме OFF)
``` ```
#### 5. **suffix** (суффикс) — параметр объекта #### 5. **suffix** (суффикс) — параметр объекта
@@ -80,20 +81,20 @@ myhome/in/floor/OFF/set (команда для теплых пол
| Суффикс | Тип | Назначение | Применимость | | Суффикс | Тип | Назначение | Применимость |
|---------|-----|-----------|--------------| |---------|-----|-----------|--------------|
| **`/cmd`** | Command | Основная команда управления (ON, OFF, TOGGLE и др.) | Все типы | | **`/cmd`** | Command, Status | Основная команда управления (ON, OFF, TOGGLE и др.) | Все типы |
| **`/set`** | Parameter | Установка параметра (яркость, температура и др.) | Диммеры, регуляторы, термостаты | | **`/set`** | Command, Status | Установка параметра (яркость, температура и др.) | Диммеры, регуляторы, термостаты |
| **`/val`** | Status | Текущее значение (в статусных топиках) | Все типы | | **`/val`** | Command | Текущее значение регулируемого параметра направляется с сенсора сюда | PID, MULTIVENT, THERMOSTAT, SPRINKLER|
| **`/hue`** | Color | Оттенок (0-365°, HSV формат) | RGB/RGBW/RGBWW | | **`/hue`** | Command | Оттенок (0-365°, HSV формат) | RGB/RGBW/RGBWW |
| **`/sat`** | Color | Насыщенность (0-100%, HSV формат) | RGB/RGBW/RGBWW | | **`/sat`** | Command | Насыщенность (0-100%, HSV формат) | RGB/RGBW/RGBWW |
| **`/hsv`** | Color | Полный цвет (hue,saturation,volume) | RGB/RGBW/RGBWW | | **`/hsv`** | Command | Полный цвет (hue,saturation,volume) | RGB/RGBW/RGBWW |
| **`/rgb`** | Color | Цвет в RGB/RGBW нотации | RGB/RGBW/RGBWW | | **`/rgb`** | Command | Цвет в RGB/RGBW нотации | RGB/RGBW/RGBWW |
| **`/fan`** | Control | Скорость вентилятора (HIGH, MEDIUM, LOW) | AC, Multivent | | **`/fan`** | Command, Status | Скорость вентилятора 0-255 или (HIGH, MEDIUM, LOW, OFF) | AC, Multivent |
| **`/mode`** | Control | Режим работы (HEAT, COOL, DRY, FAN, AUTO) | AC, Thermostat, Multivent | | **`/mode`** | Command, Status | Режим работы (HEAT, COOL, DRY, FAN, AUTO) | AC, Thermostat, Multivent |
| **`/lock`** | Control | Блокировка (ON, OFF) | AC | | **`/lock`** | Command, Status | Блокировка (ON, OFF) | AC |
| **`/swing`** | Control | Направление воздушного потока (ON, OFF) | AC | | **`/swing`** | Command, Status | Направление воздушного потока (ON, OFF) | AC |
| **`/quiet`** | Control | Тихий режим (ON, OFF) | AC | | **`/quiet`** | Command, Status | Тихий режим (ON, OFF) | AC |
| **`/ctrl`** | Control | Управление состоянием (FREEZE, UNFREEZE, ENABLE, DISABLE) | Специальное | | **`/ctrl`** | Command, Status | Управление состоянием (FREEZE, UNFREEZE, ENABLE, DISABLE) | Специальное |
| **`/del`** | Delayed | Команда с задержкой | Все команды | | **`/del`** | Command, Status | Команда с задержкой | Все команды |
--- ---
@@ -237,13 +238,13 @@ myhome/s_out/<item>/<суффикс>
| Формат | Описание | Пример | | Формат | Описание | Пример |
|--------|---------|--------| |--------|---------|--------|
| `<0..100>` | Яркость (OpenHab стиль) | `myhome/in/lamp/set → 50` | | `<0..100>` | Яркость (OpenHab стиль) | `myhome/in/lamp → 50` |
| `<0..255>` | Яркость/PWM (новый стиль) | `myhome/in/lamp/set → 128` | | `<0..255>` | Яркость/PWM/температура/значение счетчика/... (новый стиль) | `myhome/in/lamp/set → 128` |
| `<H>,<S>,<V>` | HSV формат | `myhome/in/rgb/hsv → 240,100,200` | | `<H>,<S>,<V>` | HSV формат | `myhome/in/led/hsv → 240,100,200` |
| `<H>,<S>` | HSV без изменения яркости | `myhome/in/rgb/hsv → 240,100` | | `<H>,<S>` | HSV без изменения яркости | `myhome/in/led/hsv → 240,100` |
| `#RRGGBB` | RGB hex (Home Remote) | `myhome/in/rgb/cmd → #FF0000` | | `#RRGGBB` | RGB hex (Home Remote) | `myhome/in/led/rgb → #FF0000` |
| `<R>,<G>,<B>` | RGB формат | `myhome/in/rgb/rgb → 255,0,0` | | `<R>,<G>,<B>` | RGB формат | `myhome/in/led/rgb → 255,0,0` |
| `<R>,<G>,<B>,<W>` | RGBW формат | `myhome/in/rgb/rgb → 255,0,0,100` | | `<R>,<G>,<B>,<W>` | RGBW формат | `myhome/in/led/rgb → 255,0,0,100` |
### Расширенные команды ### Расширенные команды
@@ -264,12 +265,12 @@ myhome/s_out/<item>/<суффикс>
| Команда | Описание | Применимость | | Команда | Описание | Применимость |
|---------|---------|--------------| |---------|---------|--------------|
| `AUTO` | Автоматический режим | AC, Thermostat | | `AUTO` | Автоматический режим | AC, Thermostat, Multivent |
| `HEAT` | Нагрев | AC, Thermostat | | `HEAT` | Нагрев | AC, Thermostat, Multivent |
| `COOL` | Охлаждение | AC | | `COOL` | Охлаждение | AC, Multivent |
| `DRY` | Осушение | AC | | `DRY` | Осушение | AC, Multivent, IRRIGATOR |
| `FAN_ONLY` | Только вентилятор | AC | | `FAN_ONLY` | Только вентилятор | AC, Multivent |
| `HIGH`, `MED`, `LOW` | Скорость вентилятора | AC | | `HIGH`, `MED`, `LOW` | Скорость вентилятора | AC, MULTIVENT |
### Команды с задержкой ### Команды с задержкой
@@ -294,6 +295,7 @@ myhome/in/light/cmd → "ON 3000"
``` ```
**Взаимно-обратные команды**: **Взаимно-обратные команды**:
- `ON` ↔ `OFF` - `ON` ↔ `OFF`
- `TOGGLE` ↔ `TOGGLE` - `TOGGLE` ↔ `TOGGLE`
- `REST` ↔ `HALT` - `REST` ↔ `HALT`
@@ -319,20 +321,19 @@ myhome/in/light/cmd → "ON 3000"
**Пример**: **Пример**:
- Получена команда: `ON` на RGB канал - Получена команда: `ON` на RGB канал
- Контроллер восстанавливает последний цвет (HSV из памяти) - Контроллер восстанавливает последний цвет (HSV из памяти)
- Публикует в статусный топик: `hue=240, sat=100, val=200` (вместо просто `ON`) - Публикует в статусный топик: `240,100,200` (вместо просто `ON`)
### Различие /set и /cmd (с версии 3.0.0) ### Различие нового подхода (/set и /cmd) и старого (общий топик, совместимо с шиной OpenHab)
| Что | новый | openHab |
| Что | /cmd | /set |
|-----|:----:|:----:| |-----|:----:|:----:|
| Команда управления | ✓ | - | | Команда управления | в /cmd| в общем топике |
| Диапазон значений | 0-255 | 0-255 (новый) или 0-100 (старый) | | Команда установки значения | в /set| в общем топике |
| Для OpenHab совместимости | Используется конец топика | 0-100 | | Диапазон значений | 0-255 | 0-100 |
| Для новых систем | - | 0-255 |
**Практика**: **Практика**:
- `/set` используется для установки **значения** (яркость 0-255) - `/set` используется для установки **значения** (например, яркость 0-255)
- `/cmd` используется для **команд** (ON, OFF, TOGGLE) - `/cmd` используется для **команд** (ON, OFF, TOGGLE ...)
--- ---
@@ -355,22 +356,22 @@ http://<controller_ip>/item/<item_name>[/subitem][/suffix]
```bash ```bash
# Включить лампу # Включить лампу
curl -X POST http://192.168.1.10/item/lamp1/cmd -d "ON" curl --user arduino:password -X POST http://192.168.1.10/item/lamp1/cmd -d "ON"
# Установить яркость # Установить яркость
curl -X POST http://192.168.1.10/item/lamp1/set -d "150" curl --user arduino:password -X POST http://192.168.1.10/item/lamp1/set -d "150"
# Установить цвет RGB # Установить цвет RGB
curl -X POST http://192.168.1.10/item/rgb_light/rgb -d "255,0,0" curl --user arduino:password -X POST http://192.168.1.10/item/rgb_light/rgb -d "255,0,0"
# Получить текущий статус # Получить текущий статус
curl -X GET http://192.168.1.10/item/lamp1/val curl --user arduino:password -X GET http://192.168.1.10/item/lamp1
# Многозональная вентиляция - установить T в спальне # Многозональная вентиляция - установить T в спальне
curl -X POST http://192.168.1.10/item/multivent/bedroom/set -d "22" curl --user arduino:password -X POST http://192.168.1.10/item/multivent/bedroom/set -d "22"
# Кондиционер - установить режим # Кондиционер - установить режим
curl -X POST http://192.168.1.10/item/ac_main/mode -d "HEAT" curl --user arduino:password -X POST http://192.168.1.10/item/ac_main/mode -d "HEAT"
``` ```
### Дополнительные endpoints ### Дополнительные endpoints
@@ -380,7 +381,7 @@ curl -X POST http://192.168.1.10/item/ac_main/mode -d "HEAT"
| `/config.json` | GET, POST | Загрузить/сохранить конфигурацию | | `/config.json` | GET, POST | Загрузить/сохранить конфигурацию |
| `/config.bin` | GET, POST | Системная конфигурация | | `/config.bin` | GET, POST | Системная конфигурация |
| `/sketch` | POST | Загрузить прошивку (OTA) | | `/sketch` | POST | Загрузить прошивку (OTA) |
| `/command/<cmd>` | POST | Выполнить CLI команду | | `/$command/<cmd>` | POST | Выполнить CLI команду |
| `/` | GET | Переадресация на PWA приложение | | `/` | GET | Переадресация на PWA приложение |
--- ---
@@ -421,26 +422,28 @@ curl -X POST http://192.168.1.10/item/ac_main/mode -d "HEAT"
``` ```
# Включить лампу # Включить лампу
→ myhome/in/lamp_bedroom/cmd: ON → myhome/in/lamp_bedroom/cmd: ON
← myhome/s_out/lamp_bedroom/val: 100 (восстановленная яркость) ← myhome/s_out/lamp_bedroom/set: 100 (восстановленная яркость)
← myhome/s_out/lamp_bedroom/cmd: ON ← myhome/s_out/lamp_bedroom/cmd: ON
# Установить яркость RGB # Установить яркость RGB
→ myhome/in/rgb_light/set: 200 → myhome/in/rgb_light/set: 200
← myhome/s_out/rgb_light/val: 200 ← myhome/s_out/rgb_light/set: 0,0,200,500 (в статусный топик запишется полный набор параметров канала)
# Установить цвет # Установить цвет
→ myhome/in/rgb_light/hue: 240 → myhome/in/rgb_light/hue: 240
← myhome/s_out/rgb_light/hue: 240 ← myhome/s_out/rgb_light/set: 240,100,200,500 (в статусный топик запишется полный набор параметров канала)
# Установить насыщенность
→ myhome/in/rgb_light/sat: 50
← myhome/s_out/rgb_light/set: 240,50,200,500 (в статусный топик запишется полный набор параметров канала)
# Включить кондиционер в режим HEAT # Включить кондиционер в режим HEAT
→ myhome/in/ac_main/cmd: ON → myhome/in/ac_main/cmd: HEAT
← myhome/s_out/ac_main/cmd: ON ← myhome/s_out/ac_main/cmd: HEAT (запишется в статусный топик)
→ myhome/in/ac_main/mode: HEAT
← myhome/s_out/ac_main/mode: HEAT
# Установить температуру # Установить температуру
→ myhome/in/ac_main/set: 22 → myhome/in/ac_main/set: 22
← myhome/s_out/ac_main/set: 22 ← myhome/s_out/ac_main/set: 22 (запишется в статусный топик)
``` ```
--- ---
@@ -466,5 +469,5 @@ mosquitto_sub -h 192.168.1.100 -t "myhome/s_out/#" -v
--- ---
**Версия документа**: 2.0 (актуально для работа_с_mqtt из wiki.lazyhome.ru) **Версия документа**: 2.1 (актуально для работа_с_mqtt из wiki.lazyhome.ru)
**Источники**: [MQTT wiki](https://www.lazyhome.ru/dokuwiki/doku.php?id=%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_mqtt), [API wiki](https://www.lazyhome.ru/dokuwiki/doku.php?id=api) **Источники**: [MQTT wiki](https://www.lazyhome.ru/dokuwiki/doku.php?id=%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_mqtt), [API wiki](https://www.lazyhome.ru/dokuwiki/doku.php?id=api)
+20 -4
View File
@@ -1,7 +1,7 @@
# LightHub: Полная техническая таблица типов каналов # LightHub: Полная техническая таблица типов каналов
> **Инженерный справочник** — полная таблица всех типов каналов (0-22) с параметрами, синтаксисом и примерами кода. > **Инженерный справочник** — полная таблица всех типов каналов (0-23) с параметрами, синтаксисом и примерами кода.
> Источник: [lighthub/item.h](../lighthub/item.h), строки 47-69 > Источник: [lighthub/item.h](../lighthub/item.h), строки 47-72
--- ---
@@ -32,6 +32,7 @@
| 20 | COUNTER | Counter | Счётчик импульсов | int/array | `0` или `[0.02, 1.2]` | | 20 | COUNTER | Counter | Счётчик импульсов | int/array | `0` или `[0.02, 1.2]` |
| 21 | HUM | Humidifier | Увлажнитель | object | `{humidity:{...}}` | | 21 | HUM | Humidifier | Увлажнитель | object | `{humidity:{...}}` |
| 22 | MERCURY | Mercury Meter | Счётчик энергии Mercury | array | `[1, 9600, "8N1", ...]` | | 22 | MERCURY | Mercury Meter | Счётчик энергии Mercury | array | `[1, 9600, "8N1", ...]` |
| 23 | SPRINKLER | Irrigation System | Система полива | array | `["main", {zones}]` |
--- ---
@@ -61,7 +62,8 @@
#define CH_COUNTER 20 #define CH_COUNTER 20
#define CH_HUMIDIFIER 21 #define CH_HUMIDIFIER 21
#define CH_MERCURY 22 #define CH_MERCURY 22
#define CH_MAX 22 #define CH_SPRINKLER 23
#define CH_MAX 23
``` ```
--- ---
@@ -305,9 +307,22 @@
| **Flags** | Массив флагов (обычно [2,2,2,2,2,2]) | | **Flags** | Массив флагов (обычно [2,2,2,2,2,2]) |
| **Timeout** | Таймаут опроса (мс) | | **Timeout** | Таймаут опроса (мс) |
### CH_SPRINKLER (23) — Система полива
| Параметр | Значение |
|----------|----------|
| **Назначение** | Многозональная система автоматического полива |
| **Конфигурация** | array `["device_name", {zones_config}]` |
| **Зоны** | Независимое управление каждой зоной |
| **Параметры зоны** | enabled (вкл/выкл), time (длит. полива), progress (прогресс), cycle (режим) |
| **Команды** | ON, OFF, START_ZONE, STOP_ZONE, SCHEDULE |
| **События** | Изменение состояния, завершение полива, ошибки |
| **Интеграция** | MQTT топики для каждой зоны |
| **Таймер** | Встроенные таймеры для автоматизации |
--- ---
## Суффиксы (Suffixes)
Из [item.h](../lighthub/item.h): Из [item.h](../lighthub/item.h):
@@ -346,6 +361,7 @@
| 13 (PID) | ✓ | ✓ | ✓ | - | - | - | - | - | - | | 13 (PID) | ✓ | ✓ | ✓ | - | - | - | - | - | - |
| 14 (MBUS) | ✓ | ✓ | ✓ | - | - | - | - | - | - | | 14 (MBUS) | ✓ | ✓ | ✓ | - | - | - | - | - | - |
| 16 (RELAYX) | ✓ | ✓ | ✓ | - | - | - | - | - | - | | 16 (RELAYX) | ✓ | ✓ | ✓ | - | - | - | - | - | - |
| 23 (SPRINKLER) | ✓ | ✓ | ✓ | - | - | - | - | - | - |
| 17 (RGBWW) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | - | ✓ | | 17 (RGBWW) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | - | ✓ |
| 18 (MULTIVENT) | ✓ | ✓ | ✓ | - | - | - | ✓ | ✓ | - | | 18 (MULTIVENT) | ✓ | ✓ | ✓ | - | - | - | ✓ | ✓ | - |
| 20 (COUNTER) | - | ✓ | - | - | - | - | - | - | - | | 20 (COUNTER) | - | ✓ | - | - | - | - | - | - | - |

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Before

Width:  |  Height:  |  Size: 231 KiB

After

Width:  |  Height:  |  Size: 231 KiB

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 168 KiB

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Before

Width:  |  Height:  |  Size: 181 KiB

After

Width:  |  Height:  |  Size: 181 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before

Width:  |  Height:  |  Size: 676 B

After

Width:  |  Height:  |  Size: 676 B

Before

Width:  |  Height:  |  Size: 147 B

After

Width:  |  Height:  |  Size: 147 B

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Before

Width:  |  Height:  |  Size: 381 B

After

Width:  |  Height:  |  Size: 381 B

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Some files were not shown because too many files have changed in this diff Show More