Структура сообщений в MQTT топиках
INFO
Сообщения через MQTT топики передаются в текстовом формате
WARNING
Размер передаваемого Unit сообщения с префиксом /pepeunit
на конце - ограничен количеством символов указанных в переменной окружения MQTT_MAX_PAYLOAD_SIZE
из Backend ENV. По умолчанию это значение составляет 50000
символов.
Отправка единичного значения
- Преобразовать значение переменной в текст
- Передать значение фунции публикации
Пример сигнатуры функции публикации
def publish(topic: str, msg: str) -> None:
В некоторых библиотеках или языках программирования может потребоваться дополнительное преобразование сообщения в bytes
для корректной отправки
Отправка сложного сообщения
- Преобразовать структуру данных в
json
- Преобразовать
json
в текст - Передать текст в функцию публикации
Получение данных
При получении данных из топиков на которые Unit подписывается, достаточно просто совершить обратные преобразования. Главное обработать возможные ошибочные значения ввода в топик.
Почему важен обработчик ошибок?
Если Unit получит некорректные данные, он не должен перезагрузиться или выключиться. Для этого стоит добавлять обработчики ошибок преобразования типов, а так же валидаторы поступающих данных. В этих случаях Unit будет работать более предсказуемо для конечного Пользователя