Перестают работать правила!

Добрый день, разработчики.

Вчера я столкнулся с большой проблемой. Контролы в devices и виджетах не вызывают действие и не управляют устройствами, как впрочем и сценарии также молчат. Это касается и кнопок тоже, которые подключаются ко входам реле WBIO-DI-DR или WBIO-DO-R10R. С кнопок могу управлять только модулями MR6C со своим подключением. Все модули объединены одной шиной RS-485 и подключены к центральному контроллеру WB5.8 (Firmware version: 201707241303)

Сделал reboot в devices и вроде бы все стало вновь работать, но почему-то сразу после перезагрузки отработали правила с проверкой на изменение состояния входа сухих контактов и там, где физически кнопки выключателей находились в положении вкл (замкнут контакт), стало все включаться (свет, клапана и прочие устройства в доме). Я через web интерфейс стал все выключать тут же и в какой-то момент все опять замерло. Попробовал запустить рестарт правил и форсрелоуд, но не помогло. Так я повторил операцию перезагрузки контроллера трижды и на утро картинка прежняя - правила не сработали и в лог окне тоже ничего не отображается, как впрочем и на контролы нет реакции даже напрямую в devices. Сдаётся мне, что контроллер что-то заборохлил. Мне срочно нужна ваша помочь, и хорошо что пока лето. Так-то я зимой отоплением управляю с помощью вашего контроллера. Это очень серьезная вещь и ошибки тут имеют большие последствия.

Добрый день

вот это пожалуйста опишите более подробно

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

Добрый день,

а каналы на скриншоте - это что именно? Это каналы виртуальных устройств из правил?

Нет.

Это лишь один из эпизодов. Я пробовал в devices включить канал у MR6C, тоже не вышло

Понятно, спасибо. Значит проблема не имеет никакого отношения к правилам, дело в работе с устройствами, подключенными по RS-485.

Пожалуйста сделайте следующее:

  1. Проверьте, что модуль связи по RS-485 запущен:

    ps aux | grep wb-mqtt-serial
    
  2. Посмотрите, нет ли в логе сообщений об ошибках. Если есть, постарайтесь их понять:

       cat /var/log/messages | grep serial | tail -n 100
    
  3. Выложите сюда пожалуйста полностью содержимое файла /etc/wb-mqtt-serial.conf и вывод команды

    dpkg -s wb-mqtt-serial.conf

1.485_checking_result.txt (511 Байт)
2.log_fle_list.txt (13,3 КБ)

  1. root@wirenboard-ARAXKJYF:~# dpkg -s wb-mqtt-serial.conf
    dpkg-query: package ‘wb-mqtt-serial.conf’ is not installed and no information is available
    Use dpkg --info (= dpkg-deb --info) to examine archive files,
    and dpkg --contents (= dpkg-deb --contents) to list their contents.

Я вчера в 4ый раз сделал перезапуск контроллера. Сейчас пока отвалились виртуальные устройства и нет реакции на нажатие кнопок выключателей, подключенных ко входам реле WBIO-DI-DR или WBIO-DO-R10R, а каналы родных устройств в devices пока реагируют на переключение контролов ( слышу щелчки в щите при переключении), но сценарии не выполняются.

сейчас проблему решил запуском команды
root@wirenboard-ARAXKJYF:~# /etc/init.d/wb-rules force-reload

что вообще происходит, где надежность?

А сколько всего у вас боковых модулей подключено?

Итого, читаю логи за вас:

root@wirenboard-ARAXKJYF:~# cat /var/log/messages | grep serial | tail -n 100
Jul 20 16:53:32 wirenboard-ARAXKJYF user.notice serial: Init: DEFVAL: setup register <modbus_io:185:3:<unspec>: 10003> <-- 0
Jul 20 16:53:32 wirenboard-ARAXKJYF user.notice serial: Init: INTCON: setup register <modbus_io:185:3:<unspec>: 10004> <-- 0
Jul 20 16:53:32 wirenboard-ARAXKJYF user.notice serial: Init: IOCON: setup register <modbus_io:185:3:<unspec>: 10005> <-- 17476
Jul 20 16:53:32 wirenboard-ARAXKJYF user.notice serial: Init: FLAG: setup register <modbus_io:185:3:<unspec>: 9999> <-- 1
Jul 20 17:28:28 wirenboard-ARAXKJYF user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 8 holding(s) @ 250 of device modbus_io:185:1: Serial protocol error: request timed out

У вас постоянно идут ошибки обмена с устройствами, подключеными через WB-MIO. Именно поэтому, вы не видите никакой реакции на нажатия соответствующих кнопочек в Devices.

Wb-rules, force-reload, четвёртая перезагрузка, прочее шаманство никак не может на это повлиять.
Я вполне допускаю, что у вас сразу несколько несвязанных проблем сейчас есть, поэтому пожалуйста очень подробно описывайте, что происходит и исправляйте их по-очереди. Сейчас вам нужно проверить питание, шину, настройки скорости на всех WB-MIO и добиться того, чтобы они без ошибок опрашивались. Ошибки смотреть в /var/log/messages, как я выше написал.

Три щита объединены последовательно витой парой и подключены к контроллеру

Вот ссылка на serial.conf
Посмотрите, я ничего не менял в настройках

Евгений, я раньше неоднократно уже высылал Вам подобные Сообщения из лог-файлов. Тогда вы ничего не говорили, что есть проблемы. Скорее наоборот, ничего не видели. Теперь я понимаю, что так быть не должно. Буду проверять.

Питание в каждом щите порта RS485 своё, где-то 12В, а где-то и 24В. Это допустимо?

Земли разных блоков питания соединены?

Ну да, от каждого блока питания свой ноль идёт к своему модулю MIO-E и контроллеру соответственно

Не очень понял, что вы имеете в виду. Можете схемку нарисовать?

Так вроде все просто и понятно

Ясно, спасибо. Земли блоков питания (чёрные проводки на вашей картинки) нужно соединить вместе. Желательно делать это не тоненьким проводочком в витой паре, а чем-нибудь более солидным.

Ещё прочитайте пожалуйста про прокладку шины RS-485. Там написано, что одними только A и B обойтись нельзя.

1 лайк