Сценарий "термостат" (странно отображается история)

Доброе утро!

Есть несколько вопросов и пожеланий по реализации сценария термостата.

  1. Вся система обновлена до последней версии testing. Настроен сценарий термостат, сам он работает отлично. Но, в истории данные по исполнительному механизму (каналу) отображаются непонятно как-то. С определенного момента все время данные “вкл“, хотя как на панели, так и физически вижу, что включается и отключается согласно времени и алгоритму ПИД (см. скрин). Никаких данных по настрйоке архивирования не менял. По остальным параметрам нет вопросов. Куда копать?

  2. где посмотреть описание настроек (почему взяты такие начальные параметры) и математику реализации ПИД регулятора в этом сценарии?

  3. в настройках сценария предлагаю поправить надписи. При первой настройке не сразу даже сообразил что и куда требуется прописать (см. скрин).

  4. как будет работать и/или как подстроить ПИД регулятор, если в качестве исполнительных устройств выступает дискретный термостатичный исполнительный механизм (он открывается/закрывается полностью в течение 3 минут). В настройках ПИД вроде вкл/выкл укладывается в 1 минуту.

Добрый день.

На скрине вижу что история отображается корректно до появления в истории данных по теплому полу лоджии. Попробуйте отследить только его и исполнительный механизм.

На данный момент только такое описание в инструкции, запишу ваше пожелание разработчикам более детально описать настройки.

Попробуйте выставить время цикла 180 секунд.

Все пожелания внёс в книгу предложений.

Вот. вывел только исполнительный механизм (выход на реле). Первый выделенный красный квадрат - регулирование по гистерезису (у меня был написан простой алгоритм на wb-rules). Второй выделенный зеленый квадрат - настроенный сценарий регулирования по ПИД, при этом вначале работы в историю записываются все отработки вкл/выкл, а как с какого-то момента (красный овал) просто пишется “1“. Третий выделенный квадрат - изменение уставки по температуре и пока температура не упала, выход на реле = “0“, далее какие-то значения записались, а дальше снова “1”.

Сегодня еще одну странность заметил. Один из сценариев просто ночью выключился сам. Это точно не я в 3:19. Ранее тоже подмечал такую странность, но думал, что это из-за проблем с питанием, но на входе UPS скачков и пропажи не было. Как может сценарий отключится сам?

При этом сейчас еще настроен дополнительно другой сценарий и он не отключался в этот момент.

Добрый день.

Попрошу вас зайти в конфигурационные файлы/настройки драйвера wb-mqtt-serial, поставить галочку “включить отладочные сообщения” снять и прислать архив с диагностической информацией контроллера. Создание архива описано в документации.
Галочку снять и пока наблюдать, повторяется ли ситуация, временной интервал достаточно велик как поймать данный баг пока не ясно, мы со своей стороны посмотрим.
Дополнительно опишите перечень устройств которые используются в данной сборке.

Перечень устройств в целом в моей сборке:

  1. WB-UPS + WB7 c подключенными к нему боковыми модулями: DI-DR-14 1 шт + DI-HVD-16 1 шт + DO-SSR-8 1 шт
  2. Интерфейс RS-485-1 WB7 (скорость 115к): WB-LED 8 шт. + WB-MAP3E fw2 1 шт. + WB-MRC v2 - 2 шт. + WB-MDM 3 шт + (WB-UPS + WB-MWAC) 1 шт. + WB-MRWL3 2 шт. + WB-UPS v2 2 шт.
  3. Интерфейс RS-485-2 WB7 (скорость 115 к): MSW v4 - 9 шт + MSW v3 - 1 шт (разной конфигурации)
  4. Интерфейс RS-485-3 WB7 (скорость 9600) (через дополнительно установленный модуль внутри контроллера MOD2): приводы штор Dooya 82 - 4 шт.
  5. датчики температуры на W1 и W2

Прикладываю диагностический файл также.

С уважением,
Александр

(вложения)

приложен диагностический архив, доступен только сотрудникам поддержки
(6.19 MB)

Дайте пожалуйста завтра дополнительно информацию воспроизводилось ли подобное поведение по сценариям.

Добрый день.
Т.к. у вас testing попробуйте обновить пакеты и проверить осталась ли проблема с отображением истории.
Для этого подключитесь к контроллеру по SSH выполните поочередно команды:
apt update
apt upgrade
reboot
Проверьте осталась ли проблема, дайте обратную связь.

Доброе утро!

Обновил, перезагрузил. Проблема с отображением исторических данных не ушла.
Ниже 2 скрина за период и что странно - в части отображения аналоговых сигналов температуры нет проблем, а вот дискретные сигналы как-то совсем не сочетаются. На графике один и тот же параметр исполнительного механизма, но один из сценария, второй канал выходной.
Справа их значения совпадают, а вот слева каждый живет своей жизнью.
И в целом при регулировании, данные снова по “1” почти на всем диапазоне (см. Справа). Может какой-то рассинхрон по времени записи идет. МОжет быть такое?


Может у меня с настройкой архивирования что-то нет так?
Или надо всю историю снести и перезапустить модуль?

Предлагаю для начала подписаться на топики с помощью команды mosquitto_sub и сравнить с тем что выводится в историю.

Итак, по вопросу истории подписался на два топика:

  1. на топик выходного канала реле управления исполнительным механизмом;
  2. на топик команды управления исполнительным механизмом настроенного сценария.

Значения меняются согласно логики сценария (см. скрины). А вот в истории этого нет! В историю заносятся значение с периодом 120 сек. При этом “1” (см. скрин). Я так понимаю настройка периода записи изменяющихся значений в настройках “Истории“ (скрин выше скидывал), должно влиять только на период записи накопившихся значений в БД, так? Или здесь логика иная?

Проблема с произвольным отключением одного из настроенных сценариев (у меня их 2) также присутствует. Не пойму с чем связано.

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

Обратите внимание, что “сценарий” выключается если какой-то из контролов в нем участвующих недоступен или в состоянии ошибки.

1 Like

Действительно! В части отключения сценариев вы правы - в логах есть проблематика по датчикам (см. скрин). Как с этим надо работать?

Проверить корректно ли построена шина 1-wire, начать с этого, т.е. необходимо добиться стабильной связи с датчиками.

“Сценарий” - просто обертка над скриптом, по сути.

Это, собственно, не та проблема из-за которой отключается. То есть для датчиков и вообще всех устройств наличие ошибок обмена - нормально. По шине постоянно идет опрос, мегабайты в час. На скриншоте видно что ошибка с d933253 возникает даже не каждый час.
А для отключения сценария - нужно чтобы ошибка длилась ощутимое время.
Вот в логах, на момент отключения контрола сценария - что было? Именно когда его, переключателя, статус сменился?
В диагностический архив это вряд ли попадет - уже прошло несколько дней.
Насколько часто воспроизводится?

Так, для диагностики истинной причины - лучше всего, по моему, подписаться на топики устройств указанных в сценарии.
Или просто из консоли в screen или правилом.
Если дадите топики - подскажу команду полностью.

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

По проверке соединений и подключений задача понятна - перепроверю все. У меня 3 датчика сидят на одном входе (2 из 3-х бывают с ошибками чтения, один работает вообще без нареканий) и 1 датчик сидит отдельно на втором входе подключенный своим штатным кабелем (на нем также ошибки чтения проскакивают периодически).

Сценарий отключается (пропадает связь с датчиком) раз в 2-3 дня примерно.

Если ориентироваться на ошибки, которые выдает сценарий, то получается что в эти моменты более 10 сек отсутствует связь с датчиком. Откровенно говоря, у меня тут есть сомнения определенные, что связи с датчиком нет более 10 сек, хотя как неисправность полностью не исключаю данный факт.

  1. Может быть так, что в коде скрипта таймер некорректно отрабатывает и не сбрасывается при восстановлении связи?

  2. Где и в каком файле скрипта можно поправить данную задержку по связи и поставить например 60 сек или 5 мин?

топики:

  • /devices/wb-gpio/controls/EXT3_K1
  • /devices/wb-w1/controls/28-00000e7eb219

я так понимаю команда mosquitto_sub -v -t ‘/devices/wb-gpio/controls/EXT3_K1’ | ts такая должна быть, но она в моменте показывает фактические значения же

П.С. Чтобы не мешать темы, я могу отдельно создать тему по датчикам, а здесь оставить проблему с историческими данными.

Посмотрел, функция “createErrChangeRule” строки ~751-830 /usr/share/wb-rules-modules/thermostat.mod.js
Ошибок не вижу.

errorCheckTimeoutMs - можно задать при инициализации.

Ну и для диагностики можно включить отладку (debug) wb-rules, в функциии предусмотрел подробный вывод log.debug

Нет, вывод длится все время. Ну и целесообразно использовать mosquitto_sub -v -t ‘/devices/wb-gpio/controls/EXT3/#_K1’ | ts например чтобы видеть все подтопики.