Управление всеми устройствами системы автоматизации AlphaSE может производиться из внешних систем с использованием протокола MQTT. Ознакомиться с ним можно на сайте Wikipedia.
Сам
AlphaSE Hub2 не
является MQTT брокером.
Для работы должен использоваться внешний
MQTT брокер.
Информация о всех подключенных к AlphaSE
Hub2 модулях, состоянии
их входов-выходов
будет публиковаться в отдельных MQTT
топиках. Топики с информацией об устройствах построены аналогично структуре системы
автоматизации AlphaSE.
Информация о текущем состоянии модулей
Полную информацию о состоянии входа-выхода можно получить из топика alphase/hub_id/addr_x/io_x/state, где
hub_id
— id хаба формата
asehAAAAAA001, указанных на
корпусе устройства,
addr_x —
адрес устройства в шине хаба с префиксом
"addr_",
io_x – номер входа-выхода устройства с префиксом "io_",
state –
подтопик, возвращающий
информацию.
Информация в топиках публикуется в JSON формате. Содержимое JSON зависит от возможностей конкретного устройства и его входов-выходов. Необходимо обратить внимание на то, что входы и выходы устройств Умной электроники в MQTT нумеруются не с 1, а с 0. Приведём примеры топиков основных модулей системы.
Пример топика описания первого входа модуля SE 6i5o
Топик - alphase/asehAAAAAA590/addr_1/io_0/state
Содержимое - {"on_off": 0}
Значение on_off отображает текущее состояние входа, где 0 — разомкнут,
а 1 — замнут.
Пример топика описания первого выхода модуля SE RGBW
Топик - alphase/asehAAAAAA590/addr_10/io_0/state
Содержимое - { "on_off": 0, "bri": 0 }
Значение on_off отображает текущее состояние выхода, где 0 — выключен,
а 1 — включён, значение bri - текущий уровень яркости в диапазоне от 0 до 100%.
Пример топика описания пятого выхода (RGB) модуля SE RGBW
Топик - alphase/asehAAAAAA590/addr_10/io_4/state
Содержимое - { "on_off": 0, "bri": 0, "rgb": "0,0,0" }
Значение on_off отображает текущее состояние выхода, где 0 — выключен,
а 1 — включён, значение bri - текущий уровень яркости в диапазоне от 0 до 100%, rgb - текущий цвет RGB, где каждое значение может изменяться в диапазоне от 0 до 255.
Пример топика описания пятого выхода (Bio) модуля SE RGBW
Топик - alphase/asehAAAAAA590/addr_10/io_4/state
Содержимое - { "on_off": 1, "bri": 100, "ct": 4275 }
Значение on_off отображает текущее состояние выхода, где
0 — выключен,
а 1 — включён, значение bri - текущий уровень яркости в диапазоне от 0
до 100%, ct - значение температуры в Кельвинах.
Пример топика описания первого выхода модуля SE Thermo
Топик - alphase/asehAAAAAA590/addr_21/io_0/state
Содержимое - { "mode": "heat", "temperature": 22, "current_temperature": -30, "fan_speed": "Quiet"}
Значение mode отображает текущий режим работы (обогрев, охлаждение, вентиляция, выключено), значение temperature - значение целевой температуры термостата, current_temperature - значение измеренной температуры термостата, fan_speed - скорость работы вентилятора.
Пример топика описания первого выхода модуля SE Curtain
Топик - alphase/asehAAAAAA590/addr_30/io_0/state
Содержимое - { "position": 100 }
Значение position отображает текущий % открытия шторы.
Пример топика описания первого входа счётчика импульсов SE PulseCounter
Топик - alphase/asehAAAAAA590/addr_122/io_0/state
Содержимое - { "counter": 13232.9 }
Получение метаданных об устройствах
Информацию о модуле можно получить из топика alphase/hub_id/addr_x/meta. Формат тела топика:
{ "type_id": 6, "type": "SE PulseCounter", "sw_version": "101" }Описание:
type_id
— числовой код типа устройства,
type – текстовый тип
устройства,
sw_version— версия прошивки модуля,
Информация о доступности модуля хранится в топиках alphase/hub_id/addr_x/availability. Если модуль исправен в топике хранится строка "online", если управление модулем недоступно - "offline".
Пример
управления состоянием приводом штор
Представим,
что к AlphaSE Hub2 по шине
подключен диммер SE Dim2o. Для управления первым каналом в топик alphase/asehAAAAAA590/set можно записать значения:
{"addr":5,"io":1,"on_off":0} - выключить канал,
{"addr":5,"io":1,"bri":"57"} - включить канал на 57% яркости.
При управлении приводами штор необходимо использовать следующие топики:
{"addr":30,"io":0,"open":"55"} - открыть штору на 55%,
{"addr":30,"io":0,"open":0} - закрыть штору.
При управлении термостатом SE Thermo:
{"addr":20,"io":0,"temperature":"28.0"} - включить термостат на 28'C,
{"addr":20,"io":0,"mode":"heat"} - включить термостат,
{"addr":20,"io":0,"mode":"off"} - выключить термостат.
Примеры подписки на MQTT-топики
Клиенты могут подписываться на интересующие их топики для получения актуальных данных о состоянии устройств. Для подписки на состояние конкретного входа-выхода устройства необходимо подписаться на соответствующий топик типа /hub_id/addr_x/io_x/state. Для подписки на состояние группы устройство можно использовать метасимвол "+". Например, подписка на все входы-выходу устройства будет выглядеть так /hub_id/addr_x/+/state, а подписка не все выходы всех устройств /hub_id/+/+/state.
При использовании утилиты mosquitto_sub в консоли необходимо будет использовать следующие команды:
Подписка на первый канал привода штор с адресом 15.
~# mosquitto_sub -v -t '/hub_asehAAAAAA001/addr_15/io_0/state'Подписка на все каналы привода штор с адресом 15
~# mosquitto_sub -v -t '/hub_asehAAAAAA001/addr_15/+/state'Подписка на все каналы всех устройств
~# mosquitto_sub -v -t '/hub_asehAAAAAA001/+/+/state'Получить полную информацию о всех командах можно на странице разработчика.