MQTT-топики
Статья содержит обобщенные данные о структуре MQTT-топиков, посредством которых сервисы HOMEd общаются друг с другом, и не включает в себя описание данных, которые содержат эти топики.
Для ознакомления со структурой данных можно почитать соответствующие статьи на страницах сервисов в этой документации или воспользоваться приложением MQTT Explorer для самостоятельного изучения.
В описании топиков используются следующие шаблоны:
| Шаблон | Описание |
|---|---|
{prefix} |
корневой топик, как указано в файле конфигурации любого сервиса |
{service} |
название сервиса в нижнем регистре, например, recorder или zigbee |
{deviceId} |
идентификатор устройства или его имя (в зависимости от конфигурации соответствующего сервиса) |
[/instance] |
название инстанса, в случае, если оно указано в файле конфигурации (для сервисов, поддерживающих кластеризацию) |
[/endpointId] |
номер конечной точки для устройств с несколькими однотипными конечными точками, таких как многоканальные реле или выключатели |
Топики сервисов
service
{prefix}/service/{service}[/instance]
Топики, в которые сервисы HOMEd публикуют состояние своей доступности. Данные топики являются LWT-топиками, это значит, что при потере соединения между каким-либо сервисом и MQTT-брокером (по причине плохой связи или некорректного завершения работы сервиса), брокер самостоятельно опубликует в соответствующий топик сообщение с содержимым {"status":"offline"}.
Топики публикуются с флагом retain.
status
{prefix}/status/{service}[/instance]
Топики, в которые сервисы HOMEd публикуют свои версии и статические данные, такие, как списки устройств, настройки дашбордов и автоматизаций.
Топики публикуются с флагом retain.
command
{prefix}/command/{service}[/instance]
Топики, в которые сервисы HOMEd публикуют сообщения для общения с другими сервисами, например, для запроса актуальных состояний или управления настройками устройств.
Топики публикуются без флага retain.
Топики устройств
device
{prefix}/device/{service}[/instance]/{deviceId}
Топики, в которые сервисы HOMEd, работающие с устройствами, публикуют состояния доступности своих устройств. Помимо прочего, сервис ZigBee публикует в эти топики метки времени lastSeen, указывающие на момент получения последних данных от устройства.
Топики публикуются с флагом retain.
expose
{prefix}/expose/{service}[/instance]/{deviceId}
Топики, в которые сервисы HOMEd, работающие с устройствами, публикуют данные о способностях устройств и соответствующие им опции.
Топики публикуются с флагом retain.
fd - from device
{prefix}/fd/{service}[/instance]/{deviceId}[/endpointId]
Топики, в которые сервисы HOMEd, работающие с устройствами, публикуют данные, полученные от устройств. Помимо прочего, сервис ZigBee публикует в эти топики параметр linkQuality, указывающий на качество связи с устройством (с ближайшим к координатору роутером, в случае, когда устройство работает через роутер).
Топики публикуются без флага retain.
td - to device
{prefix}/td/{service}[/instance]/{deviceId}[/endpointId]
Топики, из которых сервисы HOMEd, работающие с устройствами, получают данные для управления устройствами. Эти данные публикуются, например, сервисом автоматизаций.
Топики публикуются без флага retain.
Специальные топики
recorder
{prefix}/recorder
Топик, в который рекордер публикует данные для построения графиков. Публикуется без флага retain.