Wb 6.7.2

Доброго времени суток, ловлю такую ошибку, из-за чего правила работают плохо.

29-03-2025 21:16:50.471 [wb-mqtt-db.service] WARNING: [conventions] converting empty value to boolean "false"
29-03-2025 21:16:50.452 [wb-rules] ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x14712c0 } 9911})
29-03-2025 21:16:40.451 [wb-rules] ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x1470ec0 } 9910})

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

При попытке собрать диагностику словил ошибку.

Start data collecting
Traceback (most recent call last):
  File "/usr/lib/python3.9/asyncio/subprocess.py", line 135, in wait
    return await self._transport._wait()
  File "/usr/lib/python3.9/asyncio/base_subprocess.py", line 235, in _wait
    return await waiter
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.9/asyncio/tasks.py", line 492, in wait_for
    fut.result()
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/bin/wb-diag-collect", line 10, in <module>
    sys.exit(main())
  File "/usr/share/wb-diag-collect/wb/diag/diag_collect.py", line 71, in main
    asyncio.get_event_loop().run_until_complete(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
    return future.result()
  File "/usr/share/wb-diag-collect/wb/diag/collector.py", line 32, in collect
    await self.execute_commands(tmpdir, options["commands"], options["timeout"])
  File "/usr/share/wb-diag-collect/wb/diag/collector.py", line 121, in execute_commands
    await asyncio.wait_for(proc.wait(), timeout=timeout)
  File "/usr/lib/python3.9/asyncio/tasks.py", line 494, in wait_for
    raise exceptions.TimeoutError() from exc
asyncio.exceptions.TimeoutError

Добрый день!

Прошу уточнить, какой релиз прошивки установлен на контроллере?

wb-2501 stable. Сам контроллер 6.7.2F 476

Добрый день!

Во время сбора диагностической информации, а также **непосредственно перед **, выполните следующие команды:

top
df -h
free -m

Это позволит оценить загрузку процессора, использование дискового пространства и объём свободной памяти. Результаты, пожалуйста, пришлите в текстовом виде.

1 Like

Перед:

top - 19:21:23 up  6:30,  2 users,  load average: 3.06, 2.85, 2.89
Tasks: 111 total,   2 running, 109 sleeping,   0 stopped,   0 zombie
%Cpu(s): 33.1 us, 25.0 sy,  0.0 ni, 37.8 id,  0.6 wa,  0.0 hi,  3.4 si,  0.0 st
MiB Mem :   1002.0 total,    485.6 free,    154.9 used,    361.6 buff/cache
MiB Swap:    256.0 total,    256.0 free,      0.0 used.    828.7 avail Mem 

Во время:

top - 19:23:50 up  6:32,  2 users,  load average: 3.29, 3.01, 2.95
Tasks: 112 total,   2 running, 110 sleeping,   0 stopped,   0 zombie
%Cpu(s): 67.8 us, 31.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  1.2 si,  0.0 st
MiB Mem :   1002.0 total,    476.7 free,    163.2 used,    362.2 buff/cache
MiB Swap:    256.0 total,    256.0 free,      0.0 used.    820.4 avail Mem 

Добрый день!

Благодарю за информацию — стало яснее.

Рекомендую выполнить следующие действия для диагностики:

  1. Запустите утилиту htop и проверьте, какие процессы загружают процессор — описанное поведение похоже на перегрузку системы.
  2. Проверьте эффективность и корректность работы правил wb-rules — убедитесь, что алгоритмы не вызывают лишней нагрузки.
  3. Проверьте данные в MQTT-топиках — предупреждение
WARNING: [conventions] converting empty value to boolean "false"

указывает на некорректные или пустые значения, которые конвертируются в false. Это может быть как ошибка в логике правил.

  1. Отключите все правила, затем включайте их по одному, чтобы определить, какое из них вызывает ошибки.

Если потребуется — помогу проанализировать конкретное правило.

Основную часть процессора отнимают:

CPU% process
21.1% wb-rules
21.1% main
15.8% wb-mqtt-serial
10.5% mosquitto
5.3% frpc
5.3% wb-mqtt-adc
5.3% wb-mqtt-mbgate
5.3% kworker/0:1-events

В этот момент все правила закомменчены.

Добрый день!

Прошу уточнить полную конфигурацию контроллера:
— какие внутренние модули установлены;
— какие внешние устройства подключены по RS-485, 1-Wire
— есть ли задействованные боковые модули (WBIO).

Внутренние модули:

  1. Модем
  2. Модуль с батареей

Внешние модули:

  1. RS-485-1 - 15 модулей WB-MAP3E fw2
  2. RS-485-2 - 9 модулей WB-MAP3E fw2
  3. Два преобразователя 485->TCP (висят по tcp):
    • На 1-ом - 4 модуля WB-MAP3E fw2, 1 модуль WB-MAI6
    • На 2-ом - 2 модуля WB-MAP3E fw2, 1модуль WB-MAI6

На всех модулях отключено чтение неиспользуемых регистров.
На модулях WB-MAP3E fw2 включены только напряжение по фазам, токи по фазам, общая активная мощность и серийник. На WB-MAI6 только используемые входы.

Боковые модули не задействованы.

1 Like

Пригласите пожалуйста пользователя support@wirenboard.com в организацию на облачном сервисе.
Для этого в настройках организации нажмите кнопку “Пригласить”


И укажите почтовый адрес:

После этого поддержка получит доступ к вашему контроллеру для диагностики.
Не забудьте удалить потом доступ.

Доступ дал, контроллер AMAMOP2T. Если вдруг сможете глянуть еще на правила (их всего 2 и они почти братья близнецы) и дадите фидбек на тему оптимальности, буду признателен!

Добрый день!

Прошу уточнить:
— могу ли я перезагружать данное устройство?
— разрешено ли вносить изменения в его конфигурацию?

Да, без проблем! Но на всякий случай сделайте бэкапы. У меня вроде есть, но мало ли…

Добрый день!

Сегодня не добрался до контроллера.
Можете пока сохранить себе конфигурацию — завтра подключусь.

Подскажите пожалуйста, удалось ли что-то обнаружить?

Добрый день,

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

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

К сожалению у человека на объекте нет флешки которая устроила бы 6 wiren (ту что есть он не видит). Мы как-то замучались, достали уже 7-ой WB. 6-ки было две, одна на stable прошивке, другая на unstable. Обе вели себя абсолютно идентично. Видимо 6 wiren уже слабоват на нынешних реалиях. Будем тестировать в лабораторных условиях) Подскажите пожалуйста, может быть имеет смысл накатить на них какую-нибудь старую прошивку?

Добрый день,

Даунгрейд официально не тестируется, но по идее должен сработать.