Я настроил в WB Rules сбор данных с нескольких датчиков в один JSON, который затем записывается в MQTT-топик. Далее, через MQTT Bridge, этот JSON пересылается во внешний MQTT-брокер.
Меня волнует проблема потери данных в случае пропадания связи с внешним брокером. Насколько я понял, Mosquitto Bridge буферизует сообщения в RAM, если не может их отправить, но это ограничено объёмом оперативной памяти ПЛК.
Есть ли штатные средства Wiren Board (WB), которые позволяют временно сохранять эти сообщения в БД (например, SQLite) или файловую систему, а после восстановления связи отправлять их в внешний брокер?
Из коробки такого решения нет, кроме, настройки QoS.
Вариант реализации — написать свой скрипт, который будет сохранять данные отдельно для последующей передачи. Однако в этом случае возможны задвоения данных, что также не является оптимальным решением.
Я сейчас беру с большим запасом за сутки где то 500 мб. Я хотел попробывать через телеграф сделать но он добавляет свои теги к моим сообщениям. И я пришел к тому что написать код который бы за место бриджа работал с сохранением в бд. Но вдруг я изобретаю велосипед и уже есть вещи для такого кейса. По времени не понятно хотелось бы чтоб до 7 дней мог держать данные на случай форс мажора.
выгружать из москиты сразу в базу какую то простейшую прямо на WB
вполне себе вариант как по мне. базу на SD карту выкидывать как вариант
саму базу тоже можно потом куда-то там выгружать по сети если надо
Если нет возможности исключить перебои связи на столь длительные периоды времени, то да, согласен с автором выше — в вашем сценарии это неплохое решение.
Дополнительно можно:
Сохранять данные на промежуточном сервере и уже с него забирать информацию.
Попробовать увеличить объем хранимых данных в локальной базе (по умолчанию 100000 записей), но стоит учитывать, что увеличение нагрузки на базу может замедлить работу контроллера.