Это черновик страницы. Последняя правка сделана 06.11.2021 пользователем A.Degtyarev.

Версия ПО в веб-интерфейсе контроллера Wiren Board

Введение

Если в работе контроллера Wiren Board возникают ошибки — найти причину поможет анализ системного журнала. Так же полезно проверить, что вы используете свежую версию ПО.

В контроллерах Wiren Board используется системный сервис журналов journald, который обрабатывает события на запись в лог и сохраняет их в бинарные файлы. По умолчанию настроена очистка старых сообщений журнала, которая не позволит ему занять всё свободное пространство.

Читать журналы можно двумя способами:


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

Что искать в журнале

 
Через MQTT работают драйверы внутренних функций, внешних устройств, веб-интерфейс, система правил

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

Сильно поможет понимание архитектуры ПО контроллера, где в центре MQTT-брокер, в который пишут информацию различные сервисы wb:

  • wb-mqtt-adc — драйвер аналоговых входов
  • wb-mqtt-dac — драйвер аналоговых выходов
  • wb-mqtt-confed — конфигуратор в WebUI
  • wb-mqtt-db — хранение архива данных
  • wb-mqtt-gpio — драйвер для работы с GPIO
  • wb-mqtt-knx — мост KNX
  • wb-mqtt-mbgate — шлюз MQTT-ModbusRTU/TCP
  • wb-mqtt-opcua — шлюз MQTT-OPC UA
  • wb-mqtt-serial — драйвер для serial-устройств
  • wb-mqtt-w1 — драйвер для 1-Wire

Кроме этого, есть сервисы, которые реализуют дополнительные функции:

Примеры типовых ситуаций:

  • Контроллер перезагружается без видимых причин, или какой-то из сервисов не запускается — может помочь анализ сообщений ядра (dmesg).
  • Проблемы с serial-устройствами, которые подключены через RS-485 или TCP-порт — смотрите сообщения драйвера wb-mqtt-serial. Ошибки обмена драйвер записывает как предупреждения (warning). Если сообщения об ошибках обмена возникают периодически, повод проверить физику шины RS-485.
  • Странно работают правила — будут интересны сообщения wb-rules.

В консоли

 
Просмотр системного журнала с помощью journalctl

journalctl — это консольный инструмент, поэтому перед вводом команд подключитесь к SSH. Смотрите больше примеров в статье journalctl.

Посмотреть сообщения ядра (dmesg):

# journalctl -k
-- Logs begin at Sat 2021-10-30 10:25:03 +04, end at Thu 2021-11-04 18:37:49 +04. --
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: Booting Linux on physical CPU 0x0
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: Linux version 5.10.35-wb6 (jenkins@wbdevenv) (arm-linux-gnueabihf-gcc (Debian 6.3.0-1
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: CPU: div instructions available: patching division code
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Nov 04 13:43:31 wirenboard-AYXIHFQ6 kernel: OF: fdt: Machine model: Wiren Board rev. 6.7.0 (i.MX6UL/ULL)

Здесь видно, что ОС контроллера начала загрузку 4 ноября в 13:43:31, используется ядро 5.10.35-wb6 и ниже идёт лог загрузки.

Вывести на экран журнал драйвера wb-mqtt-serial:

# journalctl -u wb-mqtt-serial
-- Logs begin at Sat 2021-10-30 10:25:03 +04, end at Thu 2021-11-04 18:38:20 +04. --
Nov 01 14:36:33 wirenboard-AYXIHFQ6 wb-mqtt-serial[25318]: WARNING: [modbus] failed to read 1 discrete(s) @ 1 of device modbus:58: Serial protocol error: request timed out
Nov 01 15:29:19 wirenboard-AYXIHFQ6 wb-mqtt-serial[25318]: WARNING: [modbus] failed to read 3 input(s) @ 6 of device modbus:87: Serial protocol error: malformed response: invalid crc
Nov 01 15:51:07 wirenboard-AYXIHFQ6 wb-mqtt-serial[25318]: INFO: [signal handling] Received signal 15
Nov 01 15:51:07 wirenboard-AYXIHFQ6 systemd[1]: Stopping MQTT Driver for serial devices...
Nov 01 15:51:15 wirenboard-AYXIHFQ6 systemd[1]: Stopped MQTT Driver for serial devices.
Nov 01 15:56:42 wirenboard-AYXIHFQ6 systemd[1]: Started MQTT Driver for serial devices.
Nov 01 15:56:49 wirenboard-AYXIHFQ6 wb-mqtt-serial[30608]: INFO: [serial config] "WB-MSW v.3 22" channel "CO2 Force Calibration" override property "enabled"

В журнале есть ошибки чтения регистров из Modbus-устройств с адресами 58 и 87, потом драйвер был перезапущен и сразу после перезапуска началась отправка параметров датчику WB-MSW v.3 с адресом 22.

Показать предупреждения (-p 4), записанные драйвером wb-mqtt-serial с момента последней загрузки (-b 0):

# journalctl -b 0 -p 4 -u wb-mqtt-serial
-- Logs begin at Sat 2021-10-30 10:25:03 +04, end at Thu 2021-11-04 18:39:29 +04. --
Nov 04 13:44:48 wirenboard-AYXIHFQ6 systemd[1]: wb-mqtt-serial.service: Main process exited, code=killed, status=4/ILL
Nov 04 13:44:48 wirenboard-AYXIHFQ6 systemd[1]: wb-mqtt-serial.service: Failed with result 'signal'.
Nov 04 13:45:23 wirenboard-AYXIHFQ6 wb-mqtt-serial[3227]: WARNING: [modbus] Register <modbus:87:input: 7> is not supported
Nov 04 13:45:23 wirenboard-AYXIHFQ6 wb-mqtt-serial[3227]: WARNING: [modbus] Register <modbus:87:input: 8> is not supported
Nov 04 14:41:30 wirenboard-AYXIHFQ6 wb-mqtt-serial[3227]: WARNING: [modbus] failed to read 3 input(s) @ 32 of device modbus:111: Serial protocol error: request timed out
Nov 04 14:49:09 wirenboard-AYXIHFQ6 wb-mqtt-serial[3227]: WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:111: Serial protocol error: request timed out

В записях дравера видны ошибки чтения регистров из Modbus-устройств с адресами 87 и 111.

Сохранить журнал сервиса wb-rules в файл:

# journalctl -u wb-rules >> /tmp/log-file.txt

О том, как скопировать файл с контроллера на компьютер, читайте в статье Просмотр файлов контроллера с компьютера.

Посмотреть, когда был запущен контроллер, можно командой:

# who -b
         system boot  Nov  4 13:43

Можно узнать, когда контроллер перезагружался:

# last -x reboot
reboot   system boot  5.10.35-wb6      Thu Nov  4 13:43   still running
reboot   system boot  5.10.35-wb6      Thu Nov  4 10:39   still running

Посмотреть текущую версию ПО:

# wb-release
Wirenboard release wb-2108 (as stable), target wb6/stretch

В веб-интерфейсе контроллера

 
Просмотр системного журнала в веб-интерфейсе контроллера Wiren Board

Для просмотра системного журнала из веб-интерфейса контроллера, используйте инструмент Logs.

Узнать, сколько времени работает контроллер и текущую версию ПО можно на вкладке Devices, в устройстве System.

 
Просмотр системных сообщений ядра ОС.
В сообщениях ядра можно найти полезную информацию: версии ядра и контроллера, как происходила загрузка операционной системы
 
Просмотр сообщений драйвера wb-mqtt-serial.
Здесь видно, что есть ошибки при обращении к регистрам Modbus-устройства с адресом 87, потом драйвер был перезапущен и началась отправка параметров в датчик WB-MSW v.3 с адресом 22
 
Просмотр сообщений драйвера wb-mqtt-serial с 3 ноября.
Видно, что иногда возникают ошибки при обращении к регистрам Modbus-устройств — повод проверить физическое подключение шины RS-485

Выгрузка данных для отправки в техподдержку

 
Страница сбора данных для диагностики

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

Файл с данными представляет собой zip-архив, который содержит текстовые файлы с записями из системного журнала и служебной информацией о контроллере. Архив можно подготовить и загрузить с помощью инструмента Diagnostic collector.