Зависает правило на wb-rules

У меня есть правило для r10r, которое вешает движок сразу после срабатывания. При перезагрузке оно само запускается и опять движок виснет (объясню, что это значит в конце).

Чтобы избежать переключения направления под нагрузкой правило устроено так:

  1. Есть виртуальное устройство с текущим состоянием и с новым (запрошенным).
  2. Есть одна ссылка на таймер.
  3. Изменение состояния реле происходит только в обработчике таймера. Поэтому
  4. при нажатии кнопки:
    4.1. Сбрасывается таймер, чтобы отменить предыдущий запрос.
    4.2. Отключается реле.
    4.3. В виртуальное устройство записывается новое значение.
    4.4. Запускается новый таймер, в теле которого меняется направление и запускается таймер на включение реле.
    4.5. В теле этого таймера включается реле и запускается еще один таймер, чтобы его выключить, когда уже точно рольставни опустятся.

Итого в обработке правила запускается три таймера, но только один за другим. Я использую ссылку на таймер как “мютекс”.

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

приложен диагностический архив, доступен только сотрудникам поддержки
(344,5 KB)
shutter.js (4,0 KB)

Выложите правило в архиве, например. Движок не позволяет скачивать .js файлы

shutter.zip (1,1 KB)

Интересно. Но, по крайней мере пока - не воспроизводится.

Действительно движок не зависает, не разобрался до конца. Другое правило продолжает работать. Зависают все модули расширения. У меня два DI-WD-14 и потом 3 R10R. После зависания цифровые входы не считываются. Пробовал оставлять только один модуль R10R (в настройках). И тогда зависание происходило позже.

Сейчас используются только DI-WD-14, без R10R. Зависаний нет.

Что (было) подключено к релейным модулям?
Как-то видел плохой контакт между модулями, проявляющийся мнно при срабатывании реле.

Наконец-то опять появилось время заняться проблемой.

  1. Исключил влияние правила. Управляю R10R только из веб интерфейса.
  2. Ко всем модулям подключены одинаковые рольставни. Характеристики мотора: 230 V, 0,62 A, 121 W, 4,5 μF .
  3. Пробовал переставлять модули местами. Если подключен один модуль сразу после двух DI14, то он работает. Если подключаю второй, и на втором переключаю реле, к которым ничего не подключено, то через несколько переключений виснут все модули, включая цифровые входы. После reboot, работает снова и виснет при тех же условиях.
  4. Если подключить три модуля, и переставлять их местами, то поведение такое же.

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

Прихожу к выводу, что лучше заменить на модули modbus. MR6-LV/I для выбора направления (исключает одновременную подачу напряжения на две фазы) и MR6CU для избежания переключения направления под нагрузкой. (Читал про режим управления рольставнями в модулях LV. Но это слишком жирно с точки зрения места в щитке.)

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

i2cdetect -y 1

Необязательно, в общем: Модуль реле WB-MR6C v.2 — Wiren Board

Если такое поведение воспроизводится всегда - давайте исключим.
Давайте мы бесплатно поменяем вам оборудование. Курьер привезёт новое оборудование и заберёт старое:

  • WB7 2Gb -1 шт
  • WBIO-DI-WD14 - 2 шт
  • WBIO-DO-R10R-4 - 3 шт

Для возврата напишите, пожалуйста, письмо на info@wirenboard.com.

В письме укажите:

  1. ссылку на эту тему,
  2. серийный номер устройства, A7Q2W4OK,
  3. ваш действующий телефон, адрес доставки, ФИО получателя.

Релиз wb2310. Обновил до последнего. Поведение одинаковое.

Пока модули не зависли, вывод выглядит так. Появляется “мгновенно” после ввода команды.

Затем я прощелкал все 12 реле на 3 модулях и ввел команду опять. В итоге через пару минут выглядело во так.

Минут через 10 “дошло” до конца.
Реле переключились только на одном модуле.

Было бы конечно хорошо поменять и проверить, в модулях ли дело. Но я нахожусь там, куда курьер не приедет. Если софтварно проблема не решится, я просто закажу модули модбас.

Выглядит все ж как неконтакт на шине модулей. С одним не проявляется ведь?

С одним конкретным не зависает. Остальные тесты проводил с двумя или тремя, меняя их местами.

Попробую еще комбинации. И каждый по отдельности.