Регулярная публикация неизменившихся значений

Добрый день

Ищу решение для регулярной публикации неизменившихся значений. В настройках /#!/serial-config есть возможность задать интервал публикации:

Я ожидаю, что все устройства, со всеми своими параметрами будут обновлять соответствующие топики… Но это не происходит, наблюдаю с помощью MQTT Explorer. На скрине видно, что некоторые устройства “спамят” много данных, а некоторые вообще не обновляются.

Возможно я неправильно что-то делаю?

P.S. регулярное обновление мне нужно для отрисовки графиков, если в выбранном диапазоне не будет данных, то и графика не будет.

Добрый день!

Не воспроизводится. И не очень понятно. Не публикуют, как я понимаю, WB-MR6CU?
А они подключены, включены, связь с ними есть?

Ну как не воспроизводится… смотрю прямо на монитор и вижу что воспроизводится… Давайте ещё раз, возьмём, например, Opentherm модуль. Мне нужно что бы топик с давлением обновлялся каждые 60 сек., независимо, изменилось значение или нет.
Изменяя обсуждаемый параметр в UI, я не вижу что топик обновляется, запись в него не происходит. Обновление топиков отслеживаю MQTT Explorer, он подсвечивает их.

Если прочитанное (успешно прочитанное, это важно) значение из устройства не меняется - оно не будет публиковаться. В контроллере событийный механизм, нет никакой нужды публиковать те же (неизменные) значения в топики.
Если значение не может быть прочитано - драйвер публикует в топик meta/error.

Поясните тогда, за что отвечает параметр на скрине?

И про нет нужды публиковать - это вы зря так. Возможно для “лабаоратори” и нет смысла, а вот для пользователя есть. Мне нужно, чтобы все параметры всех устройств опрашивались и публиковались минимум раз в 60 сек. Независимо, изменилось значение или нет. Этого возможно добиться?

Вот тут описано:

// Задаёт интервал в секундах, в течение которого неизменяющиеся значения не будут публиковаться в MQTT.
// По истечении интервала (но не чаще периода чтения канала) полученное значение будет опубликовано, даже если оно не изменилось.
// Минимальный интервал - 5 секунд.
// Если установлено отрицательное значение, то значения будут публиковаться только при изменении. Это поведение по умолчанию.

То есть, если опрашивается - публикуется. Если не опрашивается - то не публикуется.

Хорошо, получается, что часть параметров опрашивается с одной периодичностью, часть с другой? Например, температура отопления у меня регулярно обновлятся, а давление - нет.
Давайте конкретно, по шагам, что на ваш взгляд я должен сделать для решения своей задачи? Напомню, мне нужно раз в минуту получать актуальное значение давления в котле.

Если с OT-модулем сложно, то давайте упростим. Есть модуль WB-MR6CU, как раз в минуту обновлять данные в топике, если каналы не меняют свое состояние? Топик перезаписывается при изменении вкл/выкл - тут все четко. Но вот далее ничего не происходит, значения переписываются только при изменении.

Ещё коллеги отметили, что это не работает с регистрами, для которых настроены события быстрого модбаса. То есть для некоторых регистров WB-MR6CU.

Я запишу ваше пожелание по такой функции.

Конкретно сейчас это значение должно опрашиваться по обычному модбасу, тогда оно будет публиковаться с заданным интервалом, но не чаще периода опроса канала.

Можно в данном случае, например, опрашивать нужные регистры WB-MR6CU по обычному модбасу.

А можете, пожалуйста, подробнее рассказать про свою задачу? Почему вам надо такие графики? С помощью чего вы их отрисоввываете?

Есть скользящее окно, если в нем отсутствует признак, то срабатывает тревога:

MQTT -> Telegraf -> Prom -> Grafana

График, это просто визуализация, чтобы было проще рассуждать.
Использовать всякие last_over_time некорректно, так что нужны живые опросы, “я тут”, “у меня так-то”.

Вот что подумалось… значит поле Интервал публикации неизменившихся значений не работает… ну или работет, но не для всех, как вам угодно будет. Наверное, это следует отразить в техничке и на экране…

Согласна, что этот параметр нужно лучше задокументировать - я это передала коллегам уже.

Подскажите, для этой задачи не подходит опрашивать топик meta/error?

Я рассчитывал на опцию, которую привел в начале. Она логична. Опрашивать отдельным образом,- ну, такое себе… Костыль, на мой взгляд… Система странная получается, нужно опрашивать одно и то же устройство по разному… Пока не знаю как к этому отнестись… выглядит как ерунда полная…
Вы дали новые вводные, подумаю как вообще можно это использовать…

Я ранее записала в пожелания. Дальше коллеги будут решать его судьбу.

Мне кажется наоборот хорошо - нет лишних повторяющихся значений - просто отдельный топик “нет связи”.

Пока на этом, думаю, вопрос исчерпан.