Files
lighthub/documentation/mqtt_quick_reference.md

293 lines
9.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Шпаргалка 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)