Дополнительные возможности 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 устройств.

Использование в рамках базовой лицензии бесплатно.