Зависание контроллера WB5


#1

Контроллер WB5, sn: AYZDF7BZ, ПО 201802052055, с модулями WBIO-DO-R10A x2, WBO-DI-DR-16, WB-MR6C, управляет освещением небольшого офиса. За полгода работы четвертый случай “зависания”, второй за последнюю неделю - контроллер не реагирует на срабатывание “сухих контактов”. До сих пор проблему “лечили” выключением/включением контроллера, диагностических данных нет, сказать, доступен ли SSH/Web интерфейс не могу.
Подскажите, какие действия предпринять для поиска проблемы?


#2

Добрый день!

  1. Нужно более подробно описать систему. Например, как видели, что не срабатывают суие контакты, если не смотрели в веб-интерфейс.
  2. При следующем возникновении проблемы нужно:
  • проверить, меняются ли состояния входов в веб-интерфейсе,
  • прислать ошибки из /var/log/messages

#3

Добрый день!
“сухие контакты” правилами привязаны к реле на модулях WBIO-DO-R10A и WB-MR6C - при замыкании включается или выключается та или иная группа освещения, это единственная функция, которую выполняет контроллер. Соответственно, индикацией “зависания” являлось то, что ни один из “сухих контактов” не срабатывал - при замыкании состояние реле не менялось.
“При следующем возникновении проблемы” - к сожалению, это сложно реализовать, рядом с контроллером нет персонала, способного проверить состояние в веб-интерфейсе, в случае проблемы люди идут и перезагружают контроллер по питанию.

  • прислать ошибки из /var/log/messages - я не очень опытен в Linux, в ответ на команду /var/log/messages я получаю:
    ~bash: /var/log/messages: permission denied

вот один из скриптов, работающих на контроллере (все остальные похожи на этот):
//Функция простого включения / выключения света.
//Первое нажатие - включение, второе - выключение
//var stor = PersistentStorage(“my-storage”, {global: true});

function LightOnOf(RuleName, ButtonName, RelayDev, RelayName) {
defineRule(RuleName, {
whenChanged: “wb-gpio/”+ButtonName,
then: function (newValue, devName, cellName) {
if (dev[“wb-gpio”][ButtonName] == 1)
{
if (dev[RelayDev][RelayName] == 0)
{
dev[RelayDev][RelayName] = 1;
}
else
{
dev[RelayDev][RelayName] = 0;
}
}
}});
}

LightOnOf(“Sc1”, “EXT3_DR2”, “wb-gpio”, “EXT1_R3A2”);
LightOnOf(“Sc2”, “EXT3_DR3”, “wb-gpio”, “EXT1_R3A3”);
LightOnOf(“Sc3”, “EXT3_DR13”, “wb-mr6c_68”, “K3”);
LightOnOf(“Sc4”, “EXT3_DR14”, “wb-mr6c_68”, “K3”);


#4

Из консоли это команда tail /var/log/messages или cat /var/log/messages.
Тут больше подойдёт другой способ:
https://wirenboard.com/wiki/index.php/Просмотр_файлов_контроллера_с_компьютера
потом найдите события, которые предшествовали проблеме (нужно учесть, что время в логе - по GMT). Нужный кусок из лога (например, за час до события, и заканчивая 5 минутами после события) прислать сюда.


#5

В логах есть регулярные ошибки типа:
Nov 6 14:21:39 wirenboard-AYZDF7BZ user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 39 of device modbus:68: Serial protocol error: request timed out
Nov 6 15:34:24 wirenboard-AYZDF7BZ daemon.info wb-rules[3016]: ERROR: trying to stop unknown timer: 294

Последняя запись перед “зависанием” такая:
Nov 12 01:39:49 wirenboard-AYZDF7BZ user.err kernel: [1812020.462993] mxs-i2c 80058000.i2c: PIO: Failed to finish WRITE cmd!

предыдущим “зависаниям”, судя по логам, так же предшествовала эта ошибка

Полный файл прилагаю .messages_omtd.txt (94,0 КБ)


#6

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


#7

Понятно. В подтверждение вашей позиции о переносе модулей на соседнюю din-рейку.
Спасибо!