для инфо.
сегодня обновил систему еще раз… ушли ошибки из моего сообщения выше:
но появилась аналогичная с другого контрола на mwac. Начал было разбираться по инструкциям в треде, рестартанул сервис wb-rules - и ошибка ушла. Собственно - не может ли проблема быть связана с “ранним” запуском wb-rules после ребута ? Почему лечиться рестартом сервиса после загрузки системы. Никак более изменений не делалось.
у меня лог пестрит красным. что характерно, сначала ругался так:
14-07-2024 00:35:21.730 ERROR: [rule error] failed to SetValue for unexisting control wb-mrm2-mini_38/K1: false
у кого такая проблема, отмотайте лог - может, у вас тоже сначала так было.
потом устройство “появилось” (понятное дело, оно всегда было на месте), и теперь вот этот вот “дататайп 0”:
14-07-2024 02:16:15.462 [wb-rules] ERROR: control wb-mrm2-mini_38/K1 SetValue() error: can’t convert control value ‘false’ (type bool) to datatype ‘0’
правило у меня написано, конечно, криво: оно вызывается каждую секунду по нескольку раз и с несколькими устройствами (два из которых mrm2-mini, но ругается только про этот 38-й). может, там у него что-то перегрелось…
2.20.8, newest. Но перезапуск отдельно wb-rules помогает.
Надо ждать пока 2.20.10 в репозиторий попадет…
~# apt -s install wb-rules
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
wb-rules is already the newest version (2.20.8).
wb-rules set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Есть еще странности. Не отрабатывают некоторые правила при запуске контроллера, и при последующем сохранении правила. Но если перезапустить сервис wb-rules, все начинает работать.
UPD: подпер следующим костылем - пока работает. У меня есть обращения к устроствам сразу после запуска правила, поэтому в журнал попадают сообщения об ошибках уже сразу после перезагрузки.
Сделал скрипит для мониторинга ошибок и перезапуска правил, при старте устройства срабатывает раз 5, потом все стабильно.
sudo nano /usr/local/bin/monitor-wb-rules.sh
#!/bin/bash
SUBSTRING="failed to SetValue for unexisting control"
journalctl -u wb-rules.service -f | while read -r line; do
if echo "$line" | grep -q "$SUBSTRING"; then
systemctl restart wb-rules.service
fi
done
23-07-2024 14:53:19.430 [wb-rules] ERROR: control wb-mr6c_51/K6 SetValue() error: can't convert control value 'true' (type bool) to datatype '0'
23-07-2024 14:53:19.415 [wb-rules] ERROR: control wb-mr6c_51/K4 SetValue() error: can't convert control value 'true' (type bool) to datatype '0'
23-07-2024 14:53:19.400 [wb-rules] ERROR: control wb-mr6c_51/K5 SetValue() error: can't convert control value 'true' (type bool) to datatype '0'