Дополнительные возможности MQTT-брокера
Создание объекта
Первое, что нужно сделать — это создать модель устройства.
Модель — это представление объекта в платформе. Удобнее всего использовать базовую модель MQTT, а потом расширять ее под свои задачи.

Затем можно переходить к созданию объекта.
При создании идентификатора объекта стоит учитывать, что по нему в дальнейшем будет происходить распознавание объекта системой, поэтому идентификатор должен соответствовать ClientId MQTT клиента устройства.
При необходимости этот идентификатор можно затем изменить в любое время.
Для передачи сообщений в протоколе MQTT используется следующие поля: topic (тема сообщения) и payload (полезная нагрузка сообщения). Платформа RIC не накладывает дополнительных ограничений на эти поля помимо ограничений спецификации протокола. Вся функциональность связанная с подписками на сообщения (например, wildcard topic) также работает.
Для получения и обработки данных нужно настроить модель устройства. Список параметров необходимо расширить в соответствии с данными, которые будут отправляться в MQTT-брокер.
Подробнее о назначении полей модели в разделе Модель объекта контроля.

Окно редактирования параметра модели
Параметры могут быть различных типов, среди которых есть простые типы(число, строка, логический), массивы, объект.
Тип Объект позволяет удобно обрабатывать полезную нагрузку, полученную в формате JSON. Для этого необходимо создать параметр с этим типом данных. У этого параметра в поле Источник (Source) необходимо указать topic сообщения. Чтобы записать значения из JSON, нужно создать параметры, в которых поле Источник(Source) формируется по следующему принципу: “<id параметра объект>.<ключ значения из json>”, где
<id параметра объект> — ID параметра-объекта, с типом Объект (Object),
<ключ значения из json> — ключ для получения значения из JSON-данных
Например, для разбора данных с topic “room1/data” и с payload {“temperature”: 27, “name”:”room1”} нужно создать в модели следующие параметры.
Имя поля | Идентификатор | Тип | Источник |
Данные | data | Объект | room1/data |
Температура | temperature | Число | data.temperature |
Комната | room-name | Строка | data.name |
В базовой модели MQTT есть пример такого параметра — блок Position (JSON). В этом сообщении в JSON могут передаваться координаты устройства.
Для подробной информации смотрите пример подключений MQTT устройства.

Интерфейс объекта связан с его моделью.
В журнале объекта можно увидеть текущее состояние параметров, указанных в модели, посмотреть историю пакетов, статистику и историю команд.
Кроме того в журнале можно посмотреть график изменения значений параметров.
TLS
Для Secure MQTT в интерфейсе объекта можно сгенерировать x.509 сертификат для подключения по TLS. Чтобы исключить возможность подмены можно указать логин и пароль для MQTT-клиента.

Команды
Отправить сообщение на конкретное устройство можно также из вкладки “Команды” (Commands). В поля “Topic” и “Payload” указываются соответствующие параметры сообщения. Кроме того, в поле “Reply_topic” можно указать topic, сообщение по которому система посчитает за успешный ответ на команду.

В модели устройства помимо параметров можно создать шаблоны MQTT-сообщений, которые будут отправлены на устройство при вызове их из интерфейса.

Использование ботов
RIC позволяет разрабатывать и тестировать свои решения без подключения реальных устройств. Для этого можно использовать встроенный инструмент “Боты”. Он помогает быстро и удобно эмулировать работу устройства, отправлять данные в систему прямо из интерфейса объекта. Использование “Ботов” экономит время при тестировании устройств и обеспечения их взаимодействия с другими сущностями платформы.


Включить эту опцию у объекта можно с помощью переключателя в поле “Использовать как бота”. При этом у объекта появляется соответствующие инструменты в интерфейсе. Подробнее об этом можно прочитать в документации.
Автоматизация с помощью “Логики”
Чтобы определить логику поведения объекта можно использовать инструмент Логика. В интерфейсе платформы можно создавать различные сценарии, которые позволят контролировать состояние объекта и выполнять какие-либо действия, например организовать отправку команд. Все зависит от ваших идей и потребностей!
Инструмент “Обработчики”
Постобработку полученных данных можно создать с помощью инструмента Обработчики. Это позволяет обработать данные, полученные от устройства, отфильтровать некорректную информацию, и многое др. Например это удобно если необходимо применить какую-нибудь формулу к нескольким полученным параметрам, чтобы получить результирующее значение или разобрать бинарные данные. Обработчик представляет собой исходный код, написанный на языке программирования JavaScript версии ES6, при помощи которого реализуется заложенный в нем алгоритм.
Мониторинг
В платформе есть ряд встроенных инструментов позволяющих работать с географическими координатами объекта. Для этого в модели должны присутствовать параметры Широта (идентификатор параметра lat) и Долгота (идентификатор параметра lon). Наличие этих параметров позволит отслеживать положение объекта и использовать инструмент построения треков его перемещения.
Ограничения использования MQTT-Брокера
1. Не поддерживается флаг Retain.
2. Не поддерживается флаг CleanSession.
3. Не поддерживается срок действия сообщения.
4. Осложнена работа с unicode. В интерфейсе нет инструментов для обработки и отображения таких данных. Будем работать над этой проблемой.
5. Не полностью реализована работа с идентификаторами подписок.
6. Не поддерживается расширенная авторизация (SCRAM-SHA-1, GS2-KRB5 и т.д.). Сейчас формируется ошибка в connack.
Помимо стандартного MQTT-брокера в RIC реализовано множество инструментов для работы
с MQTT v5.0.
Все зависит от ваших задач: для экономии времени при тестировании используйте «Боты», для автоматизации — «Логику», для обработки и преобразования информации — «Обработчики»
Базовая лицензия до 10 устройств.
Использование в рамках базовой лицензии бесплатно.