Зависание модулей, отсутствие реакции при управлении через MQTT

Подвисает управление модулями реле wb-mr6c v.2 при управлении с внешнего устройства iRidi.
Канал реле добавлен в виртуальное устройство, этим виртуальным устройством управляем c iRidi по MQTT.
Периодически отваливается управление, команды контроллером(или модулем) игнорируются. Например такая картина:

  • канал реле по факту “Вкл”
  • во вкладке устройства канал реле отображен как “Откл”
  • во вкладке устройства группа в виртуальном устройстве отображена как “Откл”.

Помогает только принудительная команда “Вкл” и “Откл” для соответствующего канала реле со страницы устройства

После этого управление восстанавливается для данного канала с iRidi и с вкладки виртуального устройтсва.

Переходим к следущему каналу… и так со всеми залипшими.
На всякий случай прикладываю лог, в котором контроллер по какой-то причине перезагрузился примерно 26-03-2024 02:24, хотя питание не пропадало, второй контроллер в работе. Так же смущают большое кол-во ошибок и предупреждений в логе, которые затрудняюсь расшифровать.

log_20240327T234026 (1).log (255,5 КБ)

Batch No 7.3.4K/6 1D/E-2GI

DTS Version733

HW Revision7.3.4

Manufacturing Date2023-07-18 09:39:58

Release name wb-2307

Release suitestable

Short SN ANN77W3E

Temperature Grade industrial

Зависшие модули подключены через WB-MGE v.2 Порт TCP 192.168.1.138 23

Добрый день.

Итак, для диагностики - подпишитесь топик реле (с субтопиками) и проверьте пожалуйста какие значения как в топике канала так и в топике /on
Судя по логу

2024-03-25T23:25:07.160Z [wb-mqtt-serial] WARNING: [serial port driver] invalid value for channel 'K6' of device 'A4_6': ''
2024-03-25T23:25:07.160Z [wb-mqtt-serial] WARNING: [conventions] converting empty value to boolean "false"
2024-03-25T23:25:07.160Z [wb-mqtt-serial] WARNING: [serial port driver] invalid value for channel 'K6' of device 'A4_6': ''
2024-03-25T23:25:07.160Z [wb-mqtt-serial] WARNING: [serial port driver] invalid value for channel 'K6' of device 'A4_6': ''
2024-03-25T23:25:07.160Z [wb-mqtt-serial] WARNING: [conventions] converting empty value to boolean "false"
2024-03-25T23:25:03.748Z [wb-mqtt-serial] WARNING: [conventions] converting empty value to boolean "false"
2024-03-25T23:25:03.748Z [wb-mqtt-serial] WARNING: [conventions] converting empty value to boolean "false"

записываете туда что-то неожиданное и не соответствующее конвенции, зачем?

Тут есть интересное, какие модули WBIO подключены? Ну и посмотреть хочется в диагностический архив.

К контроллеру подключен WBIO-DO-R10R-4 1шт напрямую

Во вложении диагностический архив

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

Так, понятно. Что-то течет в памяти скорее всего.
Вижу Mar 23 06:34:39 - начало работы OOM killer.
причем после

Mar 26 02:25:26 wirenboard-ANN77W3E wb-rules[1946]: ERROR: [rule error] ECMAScript error: TypeError: type error (rc -105)
                                                            anon  native strict preventsyield
                                                            anon /usr/share/wb-rules-system/scripts/lib.js:113 preventsyield
                                                            setDevValue /usr/share/wb-rules-system/scripts/lib.js:123 preventsyield
                                                            anon /etc/wb-rules/Outside_GR11.js:13 preventsyield

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

Подскажите, пожалуйста

  1. как можно следить за ростом потребления памяти?
  2. может ли быть дело в том, что два контроллера wirenboard связаны через mqtt?
  3. может ли быть дело в том, что на этом контроллере крутится iRidi сервер?

Использовать, например метрику metrics/ram_used.
Ну или стандартный

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem

раз в сутки и сравнить - какой растет.

непохоже этот случай очень вряд ли, но неверная настройка моста без хорошего понимания параметров - может вызвать проблемы, как пример Циклическая перезагрузка контроллера Wirenboard после блокировки счёта GSM оператора

Если именно он занимает всю RAM - возможно. Но только после того как будет понятна динамика изменения.