mirror of
https://github.com/anklimov/lighthub
synced 2026-03-13 21:06:31 +03:00
13 KiB
13 KiB
LightHub: Справочник суффиксов и параметров
Инженерный справочник суффиксов для обращения к различным параметрам каналов в MQTT и при программном управлении. Актуально для версии ядра. Источник: lighthub/item.h
Таблица суффиксов
| Код | Суффикс | Назв. констаны | Описание | Применяемость | Пример |
|---|---|---|---|---|---|
| 0 | (не используется) | S_NOTFOUND |
Суффикс не найден или корневой параметр | - | channel_name |
| 1 | /cmd |
S_CMD |
Команда управления (ON, OFF, SET и др.) | Все типы каналов | lamp/cmd → ON |
| 2 | /set |
S_SET |
Установка значения для регулирующих каналов | Регулирующие (DMX, PWM, PID) | dimmer/set → 150 |
| 3 | /val |
S_VAL |
Текущее значение (статус канала) | Все типы каналов | dimmer/val → 100 |
| 4 | /del |
S_DELAYED |
Отложенная команда (выполнится позже) | Логирование | lamp/del |
| 5 | /HSV |
S_HSV |
Цвет в формате HSV (Hue, Saturation, Value) | RGB/RGBW/RGBWW каналы | lamp/HSV → 120,255,200 |
| 6 | /RGB |
S_RGB |
Цвет в формате RGB (Red, Green, Blue) | RGB/RGBW/RGBWW каналы | lamp/RGB → 255,128,0 |
| 7 | /fan |
S_FAN |
Скорость вентилятора | Multivent, Vacom, AC | ac/fan → 2 |
| 8 | /mode |
S_MODE |
Режим работы | AC, Multivent, регуляторы | ac/mode → HEAT |
| 9 | /ctrl |
S_CTRL |
Управление (дублирует функцию /cmd) | Специальные случаи | channel/ctrl |
| 10 | /hue |
S_HUE |
Оттенок (Hue, 0-359°) | RGB/RGBW/RGBWW каналы | lamp/hue → 240 |
| 11 | /sat |
S_SAT |
Насыщенность (Saturation, 0-100%) | RGB/RGBW/RGBWW каналы | lamp/sat → 80 |
| 12 | /temp |
S_TEMP |
Температура цвета (Color Temp, K) | RGB/RGBW/RGBWW каналы | lamp/temp → 6500 |
| 13 | /raw |
S_RAW |
Сырые данные (itemCmd в JSON формате) | Отладка, интеграция | channel/raw → {...} |
Примеры использования по типам каналов
Реле (CH_RELAY - 6)
myhome/dev/relay1/cmd ← ON / OFF / TOGGLE
myhome/dev/relay1/val ← 0 или 1 (текущее состояние)
myhome/dev/relay1/set ← 1 (включить) / 0 (выключить)
DMX/PWM диммер (CH_DIMMER - 0, CH_PWM - 3)
myhome/dev/dimmer/cmd ← ON, OFF, SET
myhome/dev/dimmer/val ← 0-255 (текущая яркость)
myhome/dev/dimmer/set ← 100 (установить яркость 100/255)
myhome/dev/dimmer/set ← 50% (установить яркость 50%)
myhome/dev/dimmer/set ← UP / DOWN
RGB светильник (CH_RGB - 2, CH_RGBW - 1, CH_RGBWW - 17)
# Управление цветом (HSV формат)
myhome/dev/rgb_lamp/hue ← 240 (0-359°, синий)
myhome/dev/rgb_lamp/sat ← 100 (0-100%, насыщенность)
myhome/dev/rgb_lamp/val ← 200 (0-255, яркость)
# Управление цветом (RGB формат)
myhome/dev/rgb_lamp/RGB ← 255,0,0 (красный)
myhome/dev/rgb_lamp/RGB ← 0,255,0 (зелёный)
myhome/dev/rgb_lamp/RGB ← 0,0,255 (синий)
# RGBW (с белым каналом)
myhome/dev/rgbw_lamp/RGB ← 255,128,0,100 (RGB + White)
# RGBWW (RGB + тёплый + холодный белый)
myhome/dev/rgbww_lamp/RGB ← 255,128,0,200,50 (RGB + Warm + Cold)
# Температура цвета
myhome/dev/rgb_lamp/temp ← 3000 (тёплый, 3000K)
myhome/dev/rgb_lamp/temp ← 6500 (дневной, 6500K)
Термостат (CH_THERMO - 5)
myhome/dev/thermo_bath/cmd ← ON / OFF
myhome/dev/thermo_bath/val ← 1 или 0 (статус нагрева)
myhome/dev/thermo_bath/set ← 25 (установить целевую температуру)
Группа каналов (CH_GROUP - 7)
myhome/dev/lights_all/cmd ← ON (включит ВСЕ люстры в группе)
myhome/dev/lights_all/cmd ← OFF (выключит ВСЕ люстры в группе)
myhome/dev/lights_all/cmd ← TOGGLE (переключит ВСЕ)
PID регулятор (CH_PID - 13)
myhome/dev/pid_heat/cmd ← ON / OFF / SET
myhome/dev/pid_heat/val ← текущее значение выхода (0-255)
myhome/dev/pid_heat/set ← требуемое значение процесса
Кондиционер Haier (CH_AC - 10)
myhome/dev/ac/cmd ← ON / OFF
myhome/dev/ac/mode ← COOL / HEAT / FAN / DRY / AUTO
myhome/dev/ac/fan ← 0, 1, 2, 3 (скорость вентилятора)
myhome/dev/ac/val ← текущая температура (в помещении)
myhome/dev/ac/set ← 22 (установить целевую T)
Многозональная вентиляция (CH_MULTIVENT - 18)
# Основной контроллер
myhome/dev/vents/cmd ← ON / OFF
myhome/dev/vents/val ← текущая T (комната)
myhome/dev/vents/mode ← режим
# Для зоны "спальня" (через subitems)
myhome/dev/vents/bedroom/cmd ← управление зоной
myhome/dev/vents/bedroom/val ← T в спальне
myhome/dev/vents/bedroom/fan ← открытие жалюзи спальни
myhome/dev/vents/bedroom/set ← уставка T в спальне
Счётчик импульсов (CH_COUNTER - 20)
myhome/dev/energy_meter/val ← текущее значение (кВт·ч)
myhome/dev/gas_meter/val ← текущее значение (м³)
Специальные команды управления
Основные команды (работают с большинством каналов)
| Команда | Код | Описание |
|---|---|---|
ON |
1 | Включить |
OFF |
0 | Выключить |
TOGGLE |
2 | Переключить состояние |
SET |
4 | Установить значение |
Команды изменения значения
| Команда | Описание |
|---|---|
UP |
Увеличить на 1 |
DOWN |
Уменьшить на 1 |
INCREASE |
Плавно увеличить |
DECREASE |
Плавно уменьшить |
Команды расписания
| Команда | Описание |
|---|---|
FREEZE |
Заморозить текущее состояние |
UNFREEZE |
Разморозить |
HALT |
Остановить (аварийная остановка) |
RESTORE |
Восстановить последнее состояние |
Форматирование значений в MQTT
Числовые значения
myhome/dev/dimmer/set ← 150 # абсолютное значение (0-255)
myhome/dev/dimmer/set ← 50% # процент
myhome/dev/dimmer/set ← UP 10 # с модификатором
Цветовые значения
# RGB
myhome/dev/lamp/RGB ← 255,0,0 # красный
myhome/dev/lamp/RGB ← #FF0000 # красный (hex)
# HSV
myhome/dev/lamp/HSV ← 0,100,100 # красный (полная насыщенность)
myhome/dev/lamp/HSV ← 120,100,100 # зелёный
myhome/dev/lamp/HSV ← 240,100,100 # синий
Текстовые команды
myhome/dev/relay/cmd ← ON
myhome/dev/relay/cmd ← OFF
myhome/dev/relay/cmd ← TOGGLE
myhome/dev/ac/mode ← HEAT
myhome/dev/ac/mode ← COOL
JSON формат (subitems)
Для каналов с подпараметрами используется специальный JSON формат:
{
"item": "multizone_ac/bedroom",
"cmd": "SET",
"val": 22,
"suffix": "set"
}
Или через MQTT топик:
myhome/dev/multizone_ac/bedroom/set ← 22
Приоритет суффиксов
При обработке команды LightHub проверяет суффиксы в следующем порядке:
- Явный суффикс в команде (
/cmd,/val,/set, etc.) - Суффикс по умолчанию для типа канала
- Корневой параметр (если суффиксов нет)
Пример:
# Команда с явным суффиксом имеет приоритет
myhome/dev/lamp/cmd ← ON # выполнится как команда ON
# Без суффикса используется суффикс по умолчанию
myhome/dev/lamp ← ON # может интерпретироваться как SET
Статус канала (ответ контроллера)
Контроллер публикует текущий статус в топик:
myhome/s_out/<item_name>/<suffix>
Пример:
myhome/s_out/lamp1/val # яркость лампы 1
myhome/s_out/lamp1/cmd # последняя выполненная команда
myhome/s_out/rgb_lamp/hue # текущий оттенок
myhome/s_out/rgb_lamp/sat # текущая насыщенность
myhome/s_out/ac/mode # текущий режим кондиционера
Особенности отдельных типов
RGB каналы с коррекцией белого (RGBWW)
RGBWW формат: R,G,B,WarmWhite,ColdWhite
# Пример: розовый свет (красный + тёплый белый)
myhome/dev/led/RGB ← 255,0,0,100,0
# Нейтральный белый (комбинация тёплого и холодного)
myhome/dev/led/RGB ← 0,0,0,128,128
# Холодный белый
myhome/dev/led/RGB ← 0,0,0,0,255
Multivent суффиксы для отдельных зон
Для зон используются дополнительные параметры:
myhome/dev/multivent/bedroom/fan ← 50 # открытие жалюзи
myhome/dev/multivent/bedroom/mode ← HEAT # режим нагрева
myhome/dev/multivent/bedroom/set ← 23 # уставка температуры
myhome/dev/multivent/bedroom/val ← текущая T в спальне
Отладка через /raw суффикс
Для отладки и развёрнутого логирования можно использовать суффикс /raw:
myhome/dev/lamp/raw ← получить полное описание состояния в JSON
Ответ:
{
"cmd": 1,
"val": 150,
"type": 0,
"arg": [1],
"suffix": 0
}
Таблица соответствия суффиксов и типов каналов
| Тип | /cmd | /val | /set | /hue | /sat | /temp | /fan | /mode |
|---|---|---|---|---|---|---|---|---|
| RELAY (6) | ✓ | ✓ | - | - | - | - | - | - |
| DMX (0) | ✓ | ✓ | ✓ | - | - | - | - | - |
| PWM (3) | ✓ | ✓ | ✓ | - | - | - | - | - |
| RGB (2) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | - |
| RGBW (1) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | - |
| RGBWW (17) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | - |
| THERMO (5) | ✓ | ✓ | ✓ | - | - | - | - | - |
| PID (13) | ✓ | ✓ | ✓ | - | - | - | - | - |
| AC (10) | ✓ | ✓ | ✓ | - | - | - | ✓ | ✓ |
| MULTIVENT (18) | ✓ | ✓ | ✓ | - | - | - | ✓ | ✓ |
| GROUP (7) | ✓ | ✓ | - | - | - | - | - | - |
| COUNTER (20) | - | ✓ | - | - | - | - | - | - |
| MOTOR (12) | ✓ | ✓ | ✓ | - | - | - | - | - |
Примеры реальных MQTT команд
Включение всех светильников в комнате
myhome/dev/lights_hall/cmd ON
Установка яркости на 50%
myhome/dev/dimmer1/set 128
Установка цвета RGB лампы на синий с 80% яркостью
myhome/dev/lamp_rgb/hue 240
myhome/dev/lamp_rgb/sat 100
myhome/dev/lamp_rgb/val 200
Включение кондиционера в режим охлаждения при 22°C
myhome/dev/ac/cmd ON
myhome/dev/ac/mode COOL
myhome/dev/ac/set 22
Нагрев в спальне многозональной системы до 23°C
myhome/dev/multivent/bedroom/set 23
myhome/dev/multivent/bedroom/mode HEAT