Skip to content

Структура сообщений в MQTT топиках

INFO

Сообщения через MQTT топики передаются в текстовом формате

WARNING

Размер передаваемого Unit сообщения с префиксом /pepeunit на конце - ограничен количеством символов указанных в переменной окружения MQTT_MAX_PAYLOAD_SIZE из Backend ENV. По умолчанию это значение составляет 50000 символов.

Отправка единичного значения

  1. Преобразовать значение переменной в текст
  2. Передать значение фунции публикации

Пример сигнатуры функции публикации

python
def publish(topic: str, msg: str) -> None:

В некоторых библиотеках или языках программирования может потребоваться дополнительное преобразование сообщения в bytes для корректной отправки

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

  1. Преобразовать структуру данных в json
  2. Преобразовать json в текст
  3. Передать текст в функцию публикации

Получение данных

При получении данных из топиков на которые Unit подписывается, достаточно просто совершить обратные преобразования. Главное обработать возможные ошибочные значения ввода в топик.

Почему важен обработчик ошибок?

Если Unit получит некорректные данные, он не должен перезагрузиться или выключиться. Для этого стоит добавлять обработчики ошибок преобразования типов, а так же валидаторы поступающих данных. В этих случаях Unit будет работать более предсказуемо для конечного Пользователя