MQTT - Снижение частоты отправки системных топиков

Добрый день. В начале хотел бы поблагодарить команду разработчиков Wiren Board за хороший продукт, уже несколько месяцев контроллеры работают на реальных объектах, не в самых тепличных условиях, и перезагрузок и сбоев за это время не было.

Сейчас наша команда активно занимается оптимизацией настроек Wiren Board 7 (далее WB) контроллеров, и возникла задача снизить нагрузку на сеть и другую инфрастуктуру путём снижения количества сообщений MQTT.

В с каждого контроллера WB итоге собирается 2 типа данных

  1. от serial-устройсв
  2. метаданные от самого контроллера Wiren Board 7

Как управлять нагрузкой, итервалом опроса в случае (1) более-менее понятно - идём на страницу драйвера wb-mqtt-serial GitHub - wirenboard/wb-mqtt-serial: Wiren Board MQTT serial protocol driver и там есть примеры параметров с комментариями. Часть из них использовали.
(Например, прописываем “read_period_ms” : 60000 для определённых каналов, и это снижает частоту посылок mqtt топиков)

А вот как снизить частоту посылки метаданных контроллера (2), пока не нашёл информации.
Возможно, где-то в системе можно прописать аналогичные настройки?
Подскажите пожалуйста варианты решения.
Заранее благодарю.

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

мы тоже используем некоторую обработку, но стандартными средствами: для фильтрации топиков используем MQTT bridge между внутренним брокером WB и внешним. Однако в этом случае можно сократить только количество топиков (и то не всегда, на практике фильтрация работает только по группам, т.к. MQTT bridge не поддерживает пробелы в именах топиков, которые очень часто встречаются). А как сократить частоту посылок самих сообщений пока нкясно.

То есть цепочка простая: WB метрика c метаданными (например, напряжение питания контроллера) → внутренний mosquitto → конфиг bridge (файл 20bridges.conf) → внешний mosquitto

Вы предлагаете куда-то в эту цепочку вставить дополнительную логику, чтобы стало возможным снизить частоту отправки сообщений, верно? Насколько я понял, такое возможно. Подскажите пожалуйста, куда можно встроить такую логику (и/или программный код)?

Да, верно. Как правило реализуется скриптами на Движок правил wb-rules — Wiren Board
В большинстве случаев создается виртуальное устройство и уже именно его топики (или вообще, один топик) отправляется в мост.
В одном топике можно отправить, например json сериализованные значения выбранных топиков исходного контроллера.
При этом можно как угодно часто отправлять, в том числе только при изменении на определенное значение или процент.