mirror of
https://github.com/anklimov/lighthub
synced 2026-03-14 05:16:31 +03:00
293 lines
9.7 KiB
Markdown
293 lines
9.7 KiB
Markdown
# Шпаргалка MQTT LightHub
|
||
|
||
> Быстрая справка часто используемых MQTT команд для LightHub
|
||
|
||
---
|
||
|
||
## Структура топика
|
||
|
||
```
|
||
root / [id или bcst или out] / item_name / [subitem/] suffix
|
||
└──────┴─────────────────────────┴──────────────────────────┘
|
||
мyhome /в/ /lamp1/ /cmd
|
||
```
|
||
|
||
**Пример для дома `myhome`, устройства `in`, лампы `lamp1`, команды включения**:
|
||
```
|
||
myhome/in/lamp1/cmd
|
||
```
|
||
|
||
---
|
||
|
||
## Три типа топиков
|
||
|
||
| Тип | Направление | Пример |
|
||
|-----|:-----------:|--------|
|
||
| **Команда (broadcast)** | вход | `myhome/in/lamp1/cmd` (выполнить на всех) |
|
||
| **Команда (индивидуальная)** | вход | `myhome/lighthub01/lamp1/cmd` (на конкретном) |
|
||
| **Статус** | выход | `myhome/s_out/lamp1/val` (ответ контроллера) |
|
||
|
||
---
|
||
|
||
## Базовые команды управления
|
||
|
||
### Включение/выключение
|
||
|
||
```bash
|
||
# Включить лампу (ON)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/cmd" -m "ON"
|
||
|
||
# Выключить лампу (OFF)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/cmd" -m "OFF"
|
||
|
||
# Переключить (TOGGLE)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/cmd" -m "TOGGLE"
|
||
```
|
||
|
||
### Установка яркости
|
||
|
||
```bash
|
||
# Установить яркость 50% (0-100)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/set" -m "50"
|
||
|
||
# Установить яркость 150 (0-255)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/set" -m "150"
|
||
|
||
# Увеличить на 10 пунктов
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/cmd" -m "INCREASE 10"
|
||
|
||
# Уменьшить на 10 пунктов
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/cmd" -m "DECREASE 10"
|
||
```
|
||
|
||
---
|
||
|
||
## Управление RGB светом
|
||
|
||
### Цвет по HSV (Hue, Saturation, Value)
|
||
|
||
```bash
|
||
# Оттенок (0-365°):
|
||
# 0° = красный 60° = желтый 120° = зеленый
|
||
# 180° = голубой 240° = синий 300° = магента
|
||
|
||
# Установить красный цвет
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/rgb/hue" -m "0"
|
||
|
||
# Установить зеленый
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/rgb/hue" -m "120"
|
||
|
||
# Установить синий
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/rgb/hue" -m "240"
|
||
|
||
# Установить насыщенность 0% = белый, 100% = полный цвет
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/rgb/sat" -m "100"
|
||
|
||
# Установить яркость 200 (0-255)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/rgb/set" -m "200"
|
||
|
||
# Установить полный HSV одной командой (hue,sat,value)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/rgb/hsv" -m "240,100,200"
|
||
```
|
||
|
||
### Цвет по RGB
|
||
|
||
```bash
|
||
# Красный RGB(255, 0, 0)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/rgb/rgb" -m "255,0,0"
|
||
|
||
# Зеленый
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/rgb/rgb" -m "0,255,0"
|
||
|
||
# RGBW с белым
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/rgb/rgb" -m "255,0,0,100"
|
||
```
|
||
|
||
---
|
||
|
||
## Управление кондиционером
|
||
|
||
```bash
|
||
# Включить кондиционер
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/ac_main/cmd" -m "ON"
|
||
|
||
# Выключить
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/ac_main/cmd" -m "OFF"
|
||
|
||
# Режим нагрева (HEAT, COOL, AUTO, DRY, FAN_ONLY)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/ac_main/mode" -m "HEAT"
|
||
|
||
# Температура
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/ac_main/set" -m "22"
|
||
|
||
# Скорость вентилятора (HIGH, MED, LOW, AUTO)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/ac_main/fan" -m "HIGH"
|
||
|
||
# Направление воздуха (ON, OFF)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/ac_main/swing" -m "ON"
|
||
|
||
# Тихий режим
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/ac_main/quiet" -m "ON"
|
||
|
||
# Блокировка ПДУ
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/ac_main/lock" -m "ON"
|
||
```
|
||
|
||
---
|
||
|
||
## Управление теплыми полами (PID)
|
||
|
||
```bash
|
||
# Включить
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/floor/cmd" -m "ON"
|
||
|
||
# Выключить
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/floor/cmd" -m "OFF"
|
||
|
||
# Установить температуру 24°C
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/floor/set" -m "24"
|
||
|
||
# Режим AUTO (включить, если T < установленной)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/floor/mode" -m "AUTO"
|
||
|
||
# Заморозить (игнорировать команды)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/floor/ctrl" -m "FREEZE"
|
||
|
||
# Разморозить
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/floor/ctrl" -m "UNFREEZE"
|
||
```
|
||
|
||
---
|
||
|
||
## Многозональная вентиляция
|
||
|
||
```bash
|
||
# Установить температуру в спальне
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/multivent/bedroom/set" -m "21"
|
||
|
||
# Установить температуру на кухне
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/multivent/kitchen/set" -m "22"
|
||
|
||
# Скорость вентилятора
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/multivent/fan" -m "HIGH"
|
||
|
||
# Режим (HEAT, AUTO, COOL)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/multivent/mode" -m "AUTO"
|
||
```
|
||
|
||
---
|
||
|
||
## Команды с задержкой
|
||
|
||
```bash
|
||
# Включить на 3 секунды, потом выключить
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/cmd" -m "ON 3000"
|
||
|
||
# Включить через 5 сек
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/del" -m "ON 5000"
|
||
|
||
# Импульс гаража на 3 сек
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/gate/cmd" -m "ON 3000"
|
||
```
|
||
|
||
---
|
||
|
||
## Расширенные команды
|
||
|
||
```bash
|
||
# Перевести в режим HALT (запомнить состояние и выключить)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/cmd" -m "HALT"
|
||
|
||
# Восстановить с HALT
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/cmd" -m "REST"
|
||
|
||
# Включить (если не DISABLE)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/cmd" -m "XON"
|
||
|
||
# Выключить (если был включен XON)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/cmd" -m "XOFF"
|
||
|
||
# Разрешить управление (если было DISABLE)
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/ctrl" -m "ENABLE"
|
||
|
||
# Запретить управление
|
||
mosquitto_pub -h 192.168.1.100 -t "myhome/in/lamp1/ctrl" -m "DISABLE"
|
||
```
|
||
|
||
---
|
||
|
||
## Подписка на статусные топики
|
||
|
||
```bash
|
||
# Подписаться на все топики контроллера
|
||
mosquitto_sub -h 192.168.1.100 -t "myhome/#" -v
|
||
|
||
# Только статусные топики (ответы)
|
||
mosquitto_sub -h 192.168.1.100 -t "myhome/s_out/#" -v
|
||
|
||
# Статус конкретной лампы
|
||
mosquitto_sub -h 192.168.1.100 -t "myhome/s_out/lamp1/#" -v
|
||
|
||
# Служебная статистика
|
||
mosquitto_sub -h 192.168.1.100 -t "myhome/lighthub01/\$stats" -v
|
||
```
|
||
|
||
---
|
||
|
||
## HTTP API (альтернатива MQTT)
|
||
|
||
```bash
|
||
# Включить лампу через HTTP
|
||
curl -X POST http://192.168.1.10/lamp1/cmd -d "ON"
|
||
|
||
# Установить яркость
|
||
curl -X POST http://192.168.1.10/lamp1/set -d "150"
|
||
|
||
# Установить RGB цвет
|
||
curl -X POST http://192.168.1.10/rgb/set -d "255,0,0"
|
||
|
||
# Передать текущую температуру
|
||
curl -X GET http://192.168.1.10/thermostat/val -d "150"
|
||
|
||
# AC: установить режим и температуру
|
||
curl -X POST http://192.168.1.10/ac_main/mode -d "HEAT"
|
||
curl -X POST http://192.168.1.10/ac_main/set -d "22"
|
||
```
|
||
|
||
---
|
||
|
||
## Типичные ошибки
|
||
|
||
| Ошибка | Причина | Решение |
|
||
|--------|---------|--------|
|
||
| Команда не выполняется | Неправильный топик | Проверьте структуру: `root/bcst/item/suffix` |
|
||
| Статус не приходит | Неправильный `out` параметр | Использовать `myhome/s_out/...` |
|
||
| Яркость не меняется | Используется `/cmd` вместо `/set` | Используйте `/set` для значений (0-255) |
|
||
| RGB не меняет цвет | Насыщенность 0% (белый) | Установите `/sat` на 100 для цвета |
|
||
| Нет ответа от MQTT | Контроллер не подключен | Проверьте MQTT конфигурацию в `config.json` |
|
||
|
||
---
|
||
|
||
## Таблица суффиксов (краткая)
|
||
|
||
| Суффикс | Использование | Примеры |
|
||
|---------|--------------|---------|
|
||
| `/cmd` | Команды | ON, OFF, TOGGLE, HALT, REST |
|
||
| `/set` | Значения | 0-255, температура |
|
||
| `/val` | | Текущее значение |
|
||
| `/hue` | Оттенок RGB | 0-365° |
|
||
| `/sat` | Насыщенность RGB | 0-100% |
|
||
| `/hsv` | Полный HSV | hue,sat,value |
|
||
| `/rgb` | RGB цвет | r,g,b или r,g,b,w |
|
||
| `/fan` | Вентилятор | HIGH, MED, LOW, AUTO, OFF или число|
|
||
| `/mode` | Режим работы | HEAT, COOL, AUTO, DRY |
|
||
| `/ctrl` | Управление | ENABLE, DISABLE, FREEZE, UNFREEZE |
|
||
| `/del` | Задержка | "ON 5000" |
|
||
|
||
---
|
||
|
||
**Дополнительно**:
|
||
- Полный справочник: [mqtt_api_reference.md](mqtt_api_reference.md)
|
||
- Справочник суффиксов: [suffixes_reference_v2.md](suffixes_reference_v2.md)
|
||
- Примеры конфигураций: [configuration_examples.md](configuration_examples.md)
|