Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
работа_с_mqtt [2019/11/11 01:05] admin |
работа_с_mqtt [2021/04/13 16:20] 192.168.88.1 |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | MQTT является, | + | MQTT является, |
- | Работа контроллера LightHub полностью управляется при помощи данного | + | Работа контроллера LightHub полностью управляется при помощи данного |
Поподробнее про MQTT можно прочитать [[https:// | Поподробнее про MQTT можно прочитать [[https:// | ||
- | Теперь о том, как | + | Теперь о том, как |
- | Имеются два типа топиков - командные и статусные | + | В общем виде, формат топика выглядит следующим образом: |
- | По командным - обьекты контроллера | + | |
- | Также, в статусные топики направляется информация если состояние обьекта контроллера изменилось в связи с локальными процессами (например, | + | < |
+ | root/ | ||
+ | </ | ||
+ | |||
+ | * **root**: это значение имеет смысл, если один брокер обслуживает много абсолютно независимых систем или пользователей. По умолчанию - myhome | ||
+ | |||
+ | * **id-устройства** - индивидуальное Имя контроллера, | ||
+ | |||
+ | * **bcst** - групповое (широковещательное) имя контроллера. Может быть одинаковое у многих контроллеров, | ||
+ | |||
+ | * **item** - устройство или группа устройств, | ||
+ | |||
+ | * **subitem** - значение, | ||
+ | Для адресной светодиодной ленты: 10-20 будет значить, | ||
+ | Также, | ||
+ | |||
+ | * **suffix** - параметр определяет | ||
+ | |||
+ | Имеются три типа топиков - командные, | ||
+ | |||
+ | По командным - объекты контроллера получают | ||
+ | |||
+ | Программы удаленного доступа используют статусные топики для отображения актуального текущего состояния устройств в своем интерфейсе, | ||
+ | |||
+ | Также, в статусные топики направляется информация если состояние объекта контроллера изменилось в связи с локальными процессами (например, | ||
+ | |||
+ | Служебные топики используются для нужд, напрямую не связанных с управлением устройствами. Предназначены для удаленного управления контроллером, | ||
+ | |||
+ | ===== Пример настройки MQTT в JSON конфигурации: | ||
- | Пример настройки MQTT в JSON конфигурации: | ||
< | < | ||
" | " | ||
Строка 18: | Строка 44: | ||
Настройка mqtt задает (в порядке следования): | Настройка mqtt задает (в порядке следования): | ||
- | * Имя контроллера (к одному брокеру может быть подключен только один контроллер с конкретным именем. Если подключается второй с тем же именем - первый отключается) | + | * Имя контроллера (к одному брокеру может быть подключен только один контроллер с конкретным именем. Если подключается второй с тем же именем - первый отключается). В данном примере, |
* IP или доменное имя брокера | * IP или доменное имя брокера | ||
* Порт (по умолчанию, | * Порт (по умолчанию, | ||
* Имя пользователя и пароль (по умолчанию, | * Имя пользователя и пароль (по умолчанию, | ||
- | Настройка topics позволяет определить как формируются MQTT топики у данного контроллера | + | ===== MQTT топики ===== |
+ | |||
+ | Настройка topics | ||
В данном примере: | В данном примере: | ||
**Командные топики (широковещательные): | **Командные топики (широковещательные): | ||
+ | |||
* myhome/ | * myhome/ | ||
Строка 34: | Строка 64: | ||
* myhome/ | * myhome/ | ||
+ | |||
+ | * myhome/ | ||
**Командные топики (индивидуальные): | **Командные топики (индивидуальные): | ||
+ | |||
* myhome/ | * myhome/ | ||
Строка 43: | Строка 76: | ||
* myhome/ | * myhome/ | ||
+ | |||
+ | * myhome/ | ||
**Статусные топики: | **Статусные топики: | ||
+ | |||
* myhome/ | * myhome/ | ||
Строка 54: | Строка 90: | ||
- | (Именно это соответствует настройкам по-умолчанию) | + | (Именно это соответствует настройкам по-умолчанию, если вообще не указан раздел topics в конфигурации) |
Зачем два типа командных топиков: | Зачем два типа командных топиков: | ||
- | Через индивидуальный, | + | Через индивидуальный, |
В старой версии контроллера, | В старой версии контроллера, | ||
- | В данный // | + | В данный // |
Отличительная особенность - запись в такой совмещенный топик ненулевого значения включает канал, запись нулевого - выключает канал; | Отличительная особенность - запись в такой совмещенный топик ненулевого значения включает канал, запись нулевого - выключает канал; | ||
Топики данного типа используются для интеграции с системой OpenHab | Топики данного типа используются для интеграции с системой OpenHab | ||
- | В последних версиях, дополнительно к ним, организованы топики с окончанием /set и /cmd | + | **Внимание, |
- | Это позволяет полностью разнести логику подачи команд каналу и логику установки параметров канала | + | |
- | Например, | + | Топики с суффиксом /set и /hsv оперируют значениями 0..255 |
+ | |||
+ | |||
+ | ===== Суффиксы ===== | ||
+ | |||
+ | В последних версиях введено понятие " | ||
+ | |||
+ | В первую очередь, | ||
+ | |||
+ | Использование их позволяет полностью разнести логику подачи команд каналу и логику установки параметров канала | ||
+ | Например, | ||
Строка 72: | Строка 118: | ||
например, | например, | ||
- | /fan (значения HIGH, MEDIUM, LOW) | + | Кондиционер: |
+ | |||
+ | * /fan (значения HIGH, MEDIUM, LOW) | ||
- | /mode | + | * /mode |
- | /lock (ON,OFF) | + | * /lock (ON,OFF) |
- | /swing (ON,OFF) | + | * /swing (ON,OFF) |
/ | / | ||
+ | Цветное освещение: | ||
- | для канала | + | * /hue - цвет. Шкала 0-365 |
+ | |||
+ | * /sat - насыщенность цвета. 0 - белый, 100 - максимально насыщенный | ||
+ | |||
+ | * /hsv - цвет в нотации hue, | ||
+ | |||
+ | * /rgb - Цвет в нотации RGB (#RRGGBB) - не рекомендованый вариант - данная цветовая схема преобразуется в нотацию HSV для дальнейшего использования | ||
+ | |||
+ | ===== Служебные топики ===== | ||
LightHub (во многом) руководствуется конвенцией [[https:// | LightHub (во многом) руководствуется конвенцией [[https:// | ||
Строка 89: | Строка 146: | ||
В частности, | В частности, | ||
- | Важные для понимания моменты: | + | ===== Важные для понимания моменты |
При старте контроллер сам подписывается на свои статусные топики на период 5 секунд. Таким образом, | При старте контроллер сам подписывается на свои статусные топики на период 5 секунд. Таким образом, | ||
Строка 95: | Строка 153: | ||
Например, | Например, | ||
+ | |||
+ | ===== Команды и инструкции, | ||
Базовый набор команд (совместим с OpenHab): | Базовый набор команд (совместим с OpenHab): | ||
- | * ON - Turn channel ON. If some previous channel state is stored | + | * ON - Включить канал. Если сохранились предыдущие значения |
- | * OFF - just turn channel off | + | * OFF - Выключить канал |
- | * <Numeric value 0..100> - Volume for Dimmer/PWM/ | + | * <Numeric value 0..100 |
- | * <Numeric 0..365>,< | + | * <Numeric 0..365>,< |
+ | * <Numeric 0..365>,< | ||
- | Расширенный набор комманд (также, | + | Расширенный набор команд (также, |
* HALT - выключить канал(группу) | * HALT - выключить канал(группу) | ||
Строка 112: | Строка 173: | ||
* TOGGLE: Переключать из состояния ON в OFF. Если применяется для группы - то принимается что если хоть один канал, входящий в группу включен - она активна и при получении TOGGLE произойдет выключение того, что включено. Последующая команда TOGGLE включит все каналы, | * TOGGLE: Переключать из состояния ON в OFF. Если применяется для группы - то принимается что если хоть один канал, входящий в группу включен - она активна и при получении TOGGLE произойдет выключение того, что включено. Последующая команда TOGGLE включит все каналы, | ||
* #AABBCC: Color notation in RGB - Home Remote app color picker compatible | * #AABBCC: Color notation in RGB - Home Remote app color picker compatible | ||
+ | * %-N : Уменьшить значение (яркость, | ||
+ | * %+N : Увеличить значение (яркость, | ||
Команды, | Команды, | ||
+ | |||
* AUTO | * AUTO | ||
Строка 124: | Строка 188: | ||
* DRY | * DRY | ||
+ | * HIGH | ||
+ | |||
+ | * MED | ||
+ | |||
+ | * LOW | ||
+ | |||
+ | Прочие варианты: | ||
+ | |||
+ | * ENABLED - аналог ON | ||
+ | |||
+ | * DISABLED - аналог OFF | ||
+ | |||
+ | * TRUE - аналог ON | ||
+ | |||
+ | * FALSE - аналог OFF | ||
+ | |||
+ | * INCREASE | ||
+ | |||
+ | * DECREASE | ||