Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex IoT Core
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Отправка сообщения
    • Подписка устройства или реестра на получение сообщений
    • Просмотр журнала подключений
    • Создание триггера для топика
    • Управление реестрами
      • Получение информации о реестре
      • Создание реестра
      • Изменение реестра
      • Удаление реестра
    • Управление устройствами
      • Управление алиасами топиков
        • Создание алиаса
        • Получение списка алиасов
        • Изменение алиаса
        • Удаление алиаса
      • Получение информации об устройстве
      • Создание устройства
      • Изменение устройства
      • Удаление устройства
    • Управление сертификатами
      • Создание сертификата
      • Управление сертификатами реестра
      • Управление сертификатами устройства
    • Управление паролями
      • Управление паролями реестра
      • Управление паролями устройства
  • Концепции
    • Авторизация
    • Взаимосвязь ресурсов сервиса
    • Параметры подключения MQTT-брокера
    • Отправка сообщений MQTT-брокеру через gRPC
    • Топик
    • Резервное копирование
    • Квоты и лимиты
  • Сценарии использования
    • Все сценарии
    • Работа с помощью Mosquitto
      • Отправить сообщение
      • Подписать устройство или реестр на получение сообщений
    • Работа с Yandex IoT Core с устройства с Android на языке Java
    • Работа с Yandex IoT Core на языке C#
    • Работа с Yandex IoT Core на языке Java
    • Запись данных с устройства в Managed Service for PostgreSQL
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC
      • Обзор
      • DeviceService
      • RegistryService
      • OperationService
    • REST
      • Обзор
      • Device
        • Обзор
        • addCertificate
        • addPassword
        • create
        • delete
        • deleteCertificate
        • deletePassword
        • get
        • list
        • listCertificates
        • listOperations
        • listPasswords
        • update
      • Registry
        • Обзор
        • addCertificate
        • addPassword
        • create
        • delete
        • deleteCertificate
        • deletePassword
        • get
        • list
        • listCertificates
        • listDeviceTopicAliases
        • listOperations
        • listPasswords
        • update
  • Вопросы и ответы
  1. Пошаговые инструкции
  2. Отправка сообщения

Отправка сообщения

  • Перед началом
    • Авторизация
  • Отправить сообщение с данными
    • Отправьте данные с устройства в топик устройства
    • Отправьте данные с устройства в топик реестра
  • Отправить сообщение с командой
    • Отправьте команду одному устройству
    • Отправьте команду всем устройствам, добавленным в реестр

Вы можете отправлять сообщения следующих типов:

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

Для получения сообщения необходимо быть подписанным на отправителя. Как это сделать, читайте в разделе Подписка устройства или реестра на получение сообщений.

Важно

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

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

Подготовьте ресурсы, необходимые для начала работы:

  1. (опционально) Создайте сертификаты для реестра и устройства.
  2. Создайте реестр.
  3. Добавьте сертификат реестру.
  4. Создайте устройство.
  5. Добавьте сертификат устройству.

Авторизация

Чтобы отправлять сообщения, необходимо пройти авторизацию. Для этого используйте X.509-сертификат или логин и пароль. В данном разделе приведены примеры для обоих способов авторизации.

Отправить сообщение с данными

Примечание

Если в процессе выполнения команды у вас возникла ошибка, добавьте к команде флаг --debug и попробуйте еще раз. Данный флаг выводит журнал отладки при выполнении команды, что помогает при диагностике проблемы.

Отправьте данные с устройства в топик устройства

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

CLI

Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

  • Отправьте данные в топик устройства, используя авторизацию по сертификату:

    $ yc iot mqtt publish \
    --cert device-cert.pem \
    --key device-key.pem \
    --topic '$devices/<ID устройства>/events' \
    --message 'Test data' \
    --qos 1
    
  • Отправьте данные в перманентный топик устройства, используя авторизацию по сертификату:

    $ yc iot mqtt publish \
    --cert device-cert.pem \
    --key device-key.pem \
    --topic '$devices/<ID устройства>/state' \
    --message 'Test data' \
    --qos 1
    

    Где:

    • --cert и --key — параметры для авторизации с помощью сертификата.
    • --topic — топик устройства для отправки данных.
    • --message — текст сообщения.
    • --qos — уровень качества обслуживания (QoS).
  • Отправьте данные в топик устройства, используя авторизацию по логину и паролю:

    $ yc iot mqtt publish \
    --username <ID устройства> \
    --password <пароль для устройства> \
    --topic '$devices/<ID устройства>/events' \
    --message 'Test data' \
    --qos 1
    
  • Отправьте данные в перманентный топик устройства, используя авторизацию по логину и паролю:

    $ yc iot mqtt publish \
    --username <ID устройства> \
    --password <пароль для устройства> \
    --topic '$devices/<ID устройства>/state' \
    --message 'Test data' \
    --qos 1
    

    Где:

    • --username и --password — параметры для авторизации с помощью логина и пароля.
    • --topic — топик устройства для отправки данных.
    • --message — текст сообщения.
    • --qos — уровень качества обслуживания (QoS).

Отправьте данные с устройства в топик реестра

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

CLI

Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

  • Отправьте данные в топик реестра, используя авторизацию по сертификату:

    $ yc iot mqtt publish \
    --cert device-cert.pem \
    --key device-key.pem \
    --topic '$registries/<ID реестра>/events' \
    --message 'Test data' \
    --qos 1
    
  • Отправьте данные в перманентный топик реестра, используя авторизацию по сертификату:

    $ yc iot mqtt publish \
    --cert device-cert.pem \
    --key device-key.pem \
    --topic '$registries/<ID реестра>/state' \
    --message 'Test data' \
    --qos 1
    

    Где:

    • --cert и --key — параметры для авторизации с помощью сертификата.
    • --topic — топик реестра для получения данных.
    • --message — текст сообщения.
    • --qos — уровень качества обслуживания (QoS).
  • Отправьте данные в топик реестра, используя авторизацию по логину и паролю:

    $ yc iot mqtt publish \
    --username <ID устройства> \
    --password <пароль для устройства> \
    --topic '$registries/<ID реестра>/events' \
    --message 'Test data' \
    --qos 1
    
  • Отправьте данные в перманентный топик реестра, используя авторизацию по логину и паролю:

    $ yc iot mqtt publish \
    --username <ID устройства> \
    --password <пароль для устройства> \
    --topic '$registries/<ID реестра>/state' \
    --message 'Test data' \
    --qos 1
    

    Где:

    • --username и --password — параметры для авторизации с помощью логина и пароля.
    • --topic — топик реестра для получения данных.
    • --message — текст сообщения.
    • --qos — уровень качества обслуживания (QoS).

Отправить сообщение с командой

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

Примечание

Если в процессе выполнения команды у вас возникла ошибка, добавьте к команде флаг --debug и попробуйте еще раз. Данный флаг выводит журнал отладки при выполнении команды, что помогает при диагностике проблемы.

Отправьте команду одному устройству

CLI

Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

  • Отправьте команду, используя авторизацию по сертификату:

    $ yc iot mqtt publish \
    --cert registry-cert.pem \
    --key registry-key.pem \
    --topic '$devices/<ID устройства>/commands' \
    --message 'Test command for first device' \
    --qos 1
    
  • Отправьте команду, используя перманентный топик и авторизацию по сертификату:

    $ yc iot mqtt publish \
    --cert registry-cert.pem \
    --key registry-key.pem \
    --topic '$devices/<ID устройства>/config' \
    --message 'Test command for first device' \
    --qos 1
    

    Где:

    • --cert и --key — параметры для авторизации с помощью сертификата.
    • --topic — топик устройства для получения команд.
    • --message — текст сообщения.
    • --qos — уровень качества обслуживания (QoS).
  • Отправьте команду, используя авторизацию по логину и паролю:

    $ yc iot mqtt publish \
    --username <ID реестра> \
    --password <пароль для реестра> \
    --topic '$devices/<ID устройства>/commands' \
    --message 'Test command for first device' \
    --qos 1
    
  • Отправьте команду, используя перманентный топик и авторизацию по логину и паролю:

    $ yc iot mqtt publish \
    --username <ID реестра> \
    --password <пароль для реестра> \
    --topic '$devices/<ID устройства>/config' \
    --message 'Test command for first device' \
    --qos 1
    

    Где:

    • --username и --password — параметры для авторизации с помощью логина и пароля.
    • --topic — топик устройства для получения команд.
    • --message — текст сообщения.
    • --qos — уровень качества обслуживания (QoS).

Отправьте команду всем устройствам, добавленным в реестр

CLI

Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

  • Отправьте команду всем устройствам, используя авторизацию по сертификату:

    $ yc iot mqtt publish \
    --cert registry-cert.pem \
    --key registry-key.pem \
    --topic '$registries/<ID реестра>/commands' \
    --message 'Test command for all devices' \
    --qos 1
    
  • Отправьте команду всем устройствам, используя перманентный топик и авторизацию по сертификату:

    $ yc iot mqtt publish \
    --cert registry-cert.pem \
    --key registry-key.pem \
    --topic '$registries/<ID реестра>/config' \
    --message 'Test command for all devices' \
    --qos 1
    

    Где:

    • --cert и --key — параметры для авторизации с помощью сертификата.
    • --topic — топик реестра для отправки команд.
    • --message — текст сообщения.
    • --qos — уровень качества обслуживания (QoS).
  • Отправьте команду всем устройствам, используя авторизацию по логину и паролю:

    $ yc iot mqtt publish \
    --username <ID реестра> \
    --password <пароль для реестра> \
    --topic '$registries/<ID реестра>/commands' \
    --message 'Test command for all devices' \
    --qos 1
    
  • Отправьте команду всем устройствам, используя перманентный топик и авторизацию по логину и паролю:

    $ yc iot mqtt publish \
    --username <ID реестра> \
    --password <пароль для реестра> \
    --topic '$registries/<ID реестра>/config' \
    --message 'Test command for all devices' \
    --qos 1
    

    Где:

    • --username и --password — параметры для авторизации с помощью логина и пароля.
    • --topic — топик реестра для отправки команд.
    • --message — текст сообщения.
    • --qos — уровень качества обслуживания (QoS).
В этой статье:
  • Перед началом
  • Авторизация
  • Отправить сообщение с данными
  • Отправьте данные с устройства в топик устройства
  • Отправьте данные с устройства в топик реестра
  • Отправить сообщение с командой
  • Отправьте команду одному устройству
  • Отправьте команду всем устройствам, добавленным в реестр
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»