Задержки в передаче показаний с датчиков msw-v3 и WB-M1W2

Здравствуйте!
Хочу вернуться к теме

Поведение датчиков wb-msw3 и wb-m1w2 всё ещё не понятно. Сам грешил на шину, но решил провести эксперимент:
На днях взял один из проблемных датчиков на стендовый контроллер. Повесил только его на rs-485-1. длина провода пол метра. Настроена максимальная скорость, быстрый модбас.

Поведение всё такое же. разрывы в показаниях. График из истории прилагаю


Диагностический архив прилагаю.
diag_output_AOO5F5MZ_2024-09-30-14.26.15.zip (508,8 КБ)
Повторю: на msw-v4 такого поведения не наблюдаю. там абсолютно стабильно показания через равные промежутки времени.

Данные перерывы влияют на адекватность поведения контроллера отопления (периодически считает что датчик отвалился) и на spruthub.

по предыдущей теме был совет:
“Очень важно подписаться на топик температуры, где проявляется проблема (с фиксацией времени)”
Подскажите - раздел история с графиками - это же и есть подписка на mqtt топик с фиксацией времени? или графики на что-то другое подписываются?

Вдогонку приближённый график


Показания иногда не передаются больше часаю
для сравнения показания msw-v4

абсолютно равные промежутки времени

ещё добавлю наблюдение:
сделал график с показаниями температуры, влажности, освещенности.
Наблюдаю: показания влажности (оранжевый) и освещенности (зелёный) передаются стабильно через равные промежутки времени.
Температуры (синий) - передаются нестабильно

Добрый день.
Обратите внимание на то что для устройства 245 есть ошибки шины. Не настолько часто чтобы это имело значение но при одном устройстве на шине - но есть.
Судя по изменениям температуры - работает верно.

По ошибке на шине - любопытно. Шина состоит из одного устройства на куске хорошей витой пары 0,5м. Условия обычные - не цех.
Как понимать периодические задержки в показаниях?

Проверьте шину. На скорости 115200 - не должно быть сильных искажений импульсов.

Что такое “задержки” Иными словами - каких записей в базу ждете, в какой период времени?

я ожидаю показания температуры через равные промежутки времени. ровно через такие, через какие вижу показания остальных сенсоров в этом датчике.


Настройки датчика - по умолчанию. опрос в порядке очереди. скорости запроса не менялись ни для каких сенсоров.

А как настроено для группы к которой принадлежит датчик в сервисе истории “промежутки”? Я не вижу для него отдельных записей. Иными словами - что, какое событие должно инициировать записи?

каналы в настройках history были выбраны “all”
В нём параметр Минимальный интервал записи значений (с) - 120. Вижу, что показания всех сенсоров кроме температуры записываются каждые 2 минуты.
Тут же нашёл Минимальный интервал записи, если значение не изменилось (с). было 1200. это 20 минут. Но иногда показания не записываются больше часа.
Сейчас выставил тоже 120. Понаблюдаю

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

Всё ещё непонятное поведение.
Скидываю график за два дня


Вижу забавную тенденцию: когда в офисе никого нет (это с 06:00 29.09.2024 до 07:30 30.09.2024) - показания передаются не стабильно. Как только в офис приходят люди ( с 07:30 30.09.2024 до 19:57 2024) показания поступают постоянно. Вчера в 19:57 я положил датчик в коробку, показания опять стали передаваться с перерывами. Утром в 08:00 вынул из коробки - показания стали передаваться постоянно.
В настройках "Минимальный интервал записи, если значение не изменилось (с) " вчера поставил 120.
Есть ощущение что измерения температуры делаются постоянно когда начинает работать какой-то другой датчик.
Сейчас на обед положил датчик в тёмную коробку - понаблюдаю с 12 до13

Моя теория о зависимости показаний датчика температуры от показаний других датчиков не подтвердилась.
Прошу подсказать, почему ещё я могу наблюдать такие разные графики днём и ночью?

Обратите внимание на описание параметра:

// Минимальный период записи опорных точек в базу по одному каналу в секундах.
      // Опорные точки пишутся, если были получены сообщения с неизменившимися данными.
      "min_unchanged_interval" : 3600,

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

Почему этот параметр "Минимальный интервал записи, если значение не изменилось (с) " в настройках сервиса история не влияет на
“min_unchanged_interval”?

2 вопрос: Другие сервисы берут данные из этой базы?

Пробую воспроизвести - не получается. Параметр в конфиге меняется при сохранении нового значения измененного в веб-интерфейсе.

Не совсем понимаю вопроса. Конфиг сервиса wb-mqtt-db не читается ничем кроме самого сервиса.

Если бы менялся - то при установке значения 120 у меня бы не было неравномерной записи показаний

Не конфиг, а данные другими сервисами берутся из db?

Расскажу предысторию проблемы, описанную в предыдущей теме:
Есть у Вас сервис: Шлюз MQTT - SmartWeb. Оборудование постороннее, но интеграция поддерживается только командой wirenboard.
С помощью этой интеграции показания датчиков температуры передаются в контроллер отопления SmartWeb.
В итоге наблюдаю проблему: На всех датчиках MSW-v3 и M1W2, которые у меня есть, и на которых показания передаются неравномерно (а повторюсь, эта проблема только на MSW-V3 и M1W2. на MSW-V4 её нет) - контроллер SmartWeb постоянно ругается на отвал датчиков. При отвале датчиков наблюдаю неправильное поведение термостатов, созданных на базе Smartweb. SmartWeb говорит что они отношения к интеграции не имеют. Но проблема имеет место.

ПОВТОРЮСЬ. Проблемы на датчиках MSW-v4 нет вообще. я и в графиках вижу постоянный период показаний и SmartWeb ведёт себя как и ожидается

Возможно нашёл ответ в другой теме:

wb-mqtt-serial опрашивает устройства и публикует значения в топики. Если значение при опросе не изменились, то публикации не происходит (по умолчанию). Далее (Node-RED) получает сообщения через MQTT. Соответственно, значения 23.5, как я понимаю, и не публиковалось, т.к. serial таких значений не считывал, а после 23.4 считал 23.6. А по кривой роста температуры из графика это как раз и видно.
В вашем случае вы можете сделать следующее:
в “Настройках” - “Конфигурационные файлы” - в свойствах “Настройки драйвера serial-устройств” активируйте пункт “Интервал публикации неизменившихся значений” и установите подходящий вам интервал.

Изменил интервал. понаблюдаю

Только подскажите пожалуйста, интервал в секундах или миллисекундах?

Для wb-mqtt-serial - в секундах. Но все же мне непонятна цель, зачем это (публикацию) настраивать?

Тер

Когда Термостату SmartWeb не приходят показания датчиков в определенное время - он считает что датчик отвалился, и:

  1. Прилетает сотня уведомлений об отвале датчиков в телегу
  2. Срабатывает логика - греть на максимуму если отвалился датчик (не настраивается)
  3. В интерфейсе Smartweb то пропадают то появляются показания датчиков в карточке
  4. В интерфейсе Spruthub на термостате SmartWeb не отображается текущая температура.

Итог - оборудование работает не так как ожидается.