Подписка устройства или реестра на получение сообщений
Вы можете подписать:
- Реестр на события устройства, используя топики
$devices/<ID устройства>/events
или$registries/<ID реестра>/events
. - Устройство на команды реестра, используя топики
$devices/<ID устройства>/commands
или$registries/<ID реестра>/commands
.
О том, как обмениваться сообщениями, читайте в разделе Отправка сообщения.
Важная информация
Топик реестра и топик устройства не связаны между собой. Если устройство отправляет данные в топик устройства для телеметрических данных, получить их можно только подписавшись на этот топик. Аналогично для топика реестра.
Перед началом
Чтобы приступить к работе, вам понадобятся:
Подписать реестр на устройство
Реестр можно подписать на одно, несколько или все устройства, добавленные в него. Рассмотрим все варианты.
Подпишите реестр, используя следующие параметры:
--cert
— путь к публичной части сертификата реестра.--key
— путь к публичной части сертификата реестра.--topic
— топик устройства.--qos
— уровень качества обслуживания (QoS).
Примечание
Если в процессе выполнения команды у вас возникла ошибка, добавьте к команде флаг --debug
и попробуйте еще раз. Данный флаг выводит журнал отладки при выполнении команды, что помогает при диагностике проблемы.
Если у вас еще нет интерфейса командной строки Яндекс.Облака, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Подпишите реестр на одно устройство:
$ yc iot mqtt subscribe \ --cert registry-cert.pem \ --key registry-key.pem \ --topic '$devices/<ID устройства>/events' \ --qos 1
-
Подпишите реестр на все устройства, добавленные в него:
$ yc iot mqtt subscribe \ --cert registry-cert.pem \ --key registry-key.pem \ --topic '$registries/<ID реестра>/events' \ --qos 1
Реестр будет получать данные только от тех устройств, которые отправляют сообщения в топик
$registries/<ID реестра>/events
.
Подписать устройство на реестр
Команды от реестра могут предназначаться конкретному устройству или всем устройствам в реестре. Для этого используются разные топики.
Подпишите устройство, используя следующие параметры:
--cert
— путь к публичной части сертификата устройства.--key
— путь к публичной части сертификата устройства.--topic
— топик устройства.--qos
— уровень качества обслуживания (QoS).
Примечание
Если в процессе выполнения команды у вас возникла ошибка, добавьте к команде флаг --debug
и попробуйте еще раз. Данный флаг выводит журнал отладки при выполнении команды, что помогает при диагностике проблемы.
Если у вас еще нет интерфейса командной строки Яндекс.Облака, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Подпишите устройство на команды для конкретного устройства:
yc iot mqtt subscribe \ --cert device-cert.pem \ --key device-key.pem \ --topic '$devices/<ID устройства>/commands' \ --qos 1
-
Подпишите устройство на команды для всех устройств:
$ yc iot mqtt subscribe \ --cert device-cert.pem \ --key device-key.pem \ --topic '$registries/<ID реестра>/commands' \ --qos 1
Команды будут получать только устройства, подписанные на топик
$registries/<ID реестра>/commands
.