Здравствуйте. Скажите пожалуйста, возможно сделать отложенную отправку сообщений через mosquitto, чтобы он посылал сообщение раз в 20 секунд допустим? И можно как-то отловить clientid отправителя на сервере?
Боюсь, что нет. Я правильно понимаю, что вы хотите, чтобы бридж слал сообщения пакетами с задержкой в 20 секунд?
А как вы хотите использовать clientid?
Да, а если тогда сделать опрос датчиков раз в определенное время?
Мы хотели использовать clientid для идентификации конкретного устройства, чтобы если их будет несколько, не путаться в показаниях. Уже нашли решение для этого, просто дописываем перед топиком имя устройства и шлем все спокойно.
Да, как раз хотел предложить использовать префикс для топиков с определенного устройства.
Вы можете увеличить время опроса для Modbus устройств, как для всех (в настройках порта), так и для каждого. Но остаются другие топики, не те, в которые публикует wb-mqtt-serial, их надо будет фильтровать.
Правда, при опросе устройств с 20-секундной задержкой вы перестанете отлавливать изменения входов Modbus-устройств, устроит ли это вас?
- Мы сейчас используем 4 датчика ds18b20 по 1-Wire, возможно ли для них это сделать?
- Хотелось бы обойтись без потерь информации, может вы подскажите, возможно ли тогда брать конкретные записи из wb-mqtt-bd? Написать скрипт, который находил бы нужное устройство с временной меткой отличной от прошлой там на 20 секунд и посылал ее?
Также использую эти датчики через WB-M1W2. При этом, так как они отправляют температуру по Modbus, то соответственно делаешь опрос 15000мс. Плюс еще в том, что адаптер отсылает только если температура поменялась.
Тоже достаточное кол-во устройств из разных мест шлют информацию на один сервер для отображения в Grafana и их сортировка осуществляется по префиксу, который добавляет бридж каждого из контроллеров на объектах.
Нам нужны данные каждые х секунд, даже если они не меняются.
Через cron в скрипте и VirtualDevice тогда?
Спасибо за совет, будем пробовать. Напишем, что из этого выйдет.