Подписка устройства или реестра на получение сообщений

Вы можете подписать:

  • Реестр на события устройства, используя топики $devices/<ID устройства>/events или $registries/<ID реестра>/events.
  • Устройство на команды реестра, используя топики $devices/<ID устройства>/commands или $registries/<ID реестра>/commands.

О том, как обмениваться сообщениями, читайте в разделе Отправка сообщения.

Важная информация

Топик реестра и топик устройства не связаны между собой. Если устройство отправляет данные в топик устройства для телеметрических данных, получить их можно только подписавшись на этот топик. Аналогично для топика реестра.

Перед началом

Чтобы приступить к работе, вам понадобятся:

  1. Реестр.
  2. Сертификат для реестра.
  3. Устройство.
  4. Сертификат для устройства.

Подписать реестр на устройство

Реестр можно подписать на одно, несколько или все устройства, добавленные в него. Рассмотрим все варианты.

Подпишите реестр, используя следующие параметры:

Примечание

Если в процессе выполнения команды у вас возникла ошибка, добавьте к команде флаг --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.