Некорректное значение топика из dev

добрый день!
сегодня воспроизвёл одну проблемку
у меня есть wb-led со slave-id 25
я удалил все правила кроме одного

setInterval(function(){
  log("wb-led_25/Channel 2 is {}".format(dev["wb-led_25/Channel 2"]))
}, 1000)

после рестарта сервиса wb-rules в логе вижу значение false
хотя в mqtt-топиках вижу true
я почитал похожую тему Некорректное определение значения топика в wb-rules - #3 от пользователя BrainRoot
и так понял, что это прогнозируемое поведение, при рестарте mosquitto wb-mqtt-serial wb-rules одновременно проблема уходит, значение в логе становится равным топику mqtt
в принципе, это воспроизводится не только с wb-led, глянул на лампочку, которая управляется через виртуальное устройство, там у реального девайса значение тоже не совпадает аналогичным образом (в логе false, а на самом деле оно true и лампочка горит), а вот с виртуальным устройством такой проблемы нет, даже при рестарте wb-rules оно одинаковое что в топиках что в логе
это нормальное поведение, или может быть, всё-таки, я наткнулся на какой-то баг?

Добрый день.
Интересно, попробую воспроизвести.
А какой релиз на контроллере?

там стоит тестинг, который был прям на кануне стейбл bullseye

root@wirenboard-AFYS6PYF:~# wb-release
Wirenboard release staging.latest (as testing), target wb7/bullseye

You can get this info in scripts from /usr/lib/wb-release.

вот версии пакетов

root@wirenboard-AFYS6PYF:~# dpkg -l |grep wb-
ii  python-wb-io                          1.2.3                                   armhf        A module to control WB IO channels.
ii  python3-wb-common                     2.1.1                                   all          Wiren Board Python common library and helpers
ii  python3-wb-diag-collect               1.5.3                                   all          python3 library for one-click diagnostic data
ii  python3-wb-mcu-fw-updater             1.7.1                                   all          Wiren Board modbus devices firmware update and modbus bindings python libraries (python 3)
ii  python3-wb-mqtt-metrics               0.3.0                                   all          python3 library for sending metrics to mqtt-channels
ii  python3-wb-nm-helper                  1.20.0                                  all          Wirenboard network configuration python3 library
ii  python3-wb-test-suite-deps            1.17.0                                  all          Wiren Board test-suite dependencies (python3 packages)
ii  python3-wb-update-manager             1.3.1                                   all          Wirenboard software updates and release management tool - python3 library
ii  wb-configs                            3.10.4                                  all          Default common config files for Wiren Board
ii  wb-device-manager                     1.5.5                                   all          Wiren Board modbus devices manager (python3 service; backend)
ii  wb-diag-collect                       1.5.3                                   all          one-click diagnostic data collector for Wiren Board,
ii  wb-dt-overlays                        1.6.0+wb1                               all          Device tree overlays for Wiren Board devices
ii  wb-engine                             0.2.19                                  armhf        WB Engine and HomeAssistant integration
ii  wb-essential                          1.17.0                                  all          Wirenboard essential packages
ii  wb-hwconf-manager                     1.57.1                                  all          Provides infrastructure for hardware re-configuration via Device Tree overlays
ii  wb-knxd-config                        1.1.2                                   all          knxd configurator for Wiren Board
ii  wb-mcu-fw-flasher                     1.2.1                                   armhf        Firmware update tool for Wiren Board Modbus devices (WB-M*)
ii  wb-mcu-fw-updater                     1.7.1                                   all          Wiren Board modbus devices firmware update tool (python 3)
ii  wb-mqtt-adc                           2.6.1                                   armhf        Wiren Board Smart Home MQTT ADC driver compatible with HomA conventions
ii  wb-mqtt-confed                        1.12.0                                  armhf        Wiren Board Configuration Editor Backend
ii  wb-mqtt-dac                           1.2.1                                   all          wb-rules-based IIO DAC driver for WB MQTT
ii  wb-mqtt-db                            2.8.8                                   armhf        Wiren Board database logger
ii  wb-mqtt-db-cli                        1.4.4                                   all          CLI for wb-mqtt-db
ii  wb-mqtt-gpio                          2.11.1                                  armhf        Wiren Board Smart Home MQTT generic sysfs GPIO driver compatible with HomA conventions
ii  wb-mqtt-homeui                        2.57.0                                  all          Wiren Board Web UI web interface
ii  wb-mqtt-knx                           1.12.0                                  armhf        Wiren Board MQTT to KNX gateway
ii  wb-mqtt-logs                          1.4.1                                   armhf        Wiren Board journald to MQTT gateway
ii  wb-mqtt-mbgate                        1.5.0                                   armhf        Wiren Board MQTT to Modbus gateway
ii  wb-mqtt-metrics                       0.3.0                                   all          Wirenboard tool for sending metrics to mqtt-channels
ii  wb-mqtt-opcua                         1.0.4                                   armhf        Wiren Board MQTT to OPC UA gateway
ii  wb-mqtt-serial                        2.80.1                                  armhf        Wiren Board Smart Home MQTT serial protocol driver
ii  wb-mqtt-w1                            2.2.5                                   armhf        Wiren Board Smart Home MQTT generic 1-Wire (w1) driver compatible with HomA conventions
ii  wb-nm-helper                          1.20.0                                  all          Wirenboard network configuration backend for wb-mqtt-confed.
ii  wb-release-info                       1.0-testing~wb7+bullseye~20230310162405 all          release information package for Wirenboard
ii  wb-rules                              2.18.1                                  armhf        Wiren Board Rule Engine
ii  wb-rules-system                       1.9.2                                   all          Default system rules for Wiren Board
ii  wb-suite                              1.17.2                                  all          Wirenboard vendor software set
ii  wb-update-manager                     1.3.1                                   all          Wirenboard software updates and release management tool
ii  wb-update-notifier                    0.1.0                                   all          Wiren Board update notifier
ii  wb-utils                              4.7.1                                   all          Wiren Board command-line utils

есть еще один нюанс, может удастся тоже воспроизвести, если рестартнуть только wb-rules, то невозможно записать значение в топик dev, то есть я пишу true, а оно всё равно будет false, опять же, это поведение поменяется только при рестарте всех трёх сервисов.

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

Может это ваш случай:

тут оно выглядит таким образом, что я вижу по дебагу что в правило-то я попадаю, оно должно свичнуть состояние топика в dev, а оно не свитчится, и группа освещения не реагирует, соответственно, пока я не дёрну вручную контрол на дашборде по умолчанию, потом всё нормализуется, всё работает

Не воспроизводится.

вот такой скрипт:

//23_06_02_test_1.js
log.info("script 23_06_02_test_1.js started")
setInterval(function(){
  log("wb-mrgbw-d-fw3_189/Channel 4 (W) is {}".format(dev["wb-mrgbw-d-fw3_189/Channel 4 (W)"]))
}, 1000)

момент перезапуска движка - 2023-06-13 17:26:33

2023-06-13 17:26:30wb-mrgbw-d-fw3_189/Channel 4 (W) is true
2023-06-13 17:26:31wb-mrgbw-d-fw3_189/Channel 4 (W) is true
2023-06-13 17:26:33using file /var/lib/wirenboard/wbrules-persistent.db for persistent DB
2023-06-13 17:26:38DAC: no config file
2023-06-13 17:26:38script 23_06_02_test_1.js started
2023-06-13 17:26:39add your rules to /etc/wb-rules/
2023-06-13 17:26:39wb-mrgbw-d-fw3_189/Channel 4 (W) is true
2023-06-13 17:26:40wb-mrgbw-d-fw3_189/Channel 4 (W) is true
2023-06-13 17:26:41wb-mrgbw-d-fw3_189/Channel 4 (W) is true
2023-06-13 17:26:42wb-mrgbw-d-fw3_189/Channel 4 (W) is true
2023-06-13 17:26:43wb-mrgbw-d-fw3_189/Channel 4 (W) is true
2023-06-13 17:26:44wb-mrgbw-d-fw3_189/Channel 4 (W) is true
2023-06-13 17:26:45wb-mrgbw-d-fw3_189/Channel 4 (W) is true
2023-06-13 17:26:46wb-mrgbw-d-fw3_189/Channel 4 (W) is true

wb-rules=2.18.2

1 лайк

слушайте, я обновился через фит-образ на стейбл и теперь правда не воспроизводится.
значит всё-таки что то в тестинге было не так
и ошибки всякие разные про passing raw ‘’ ушли

А, это как раз исправили, да.

1 лайк

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.