Можно ли сделать обработку этой ошибки?
Там “failed to SetValue for unexisting control” только в одном месте встречается.
- было бы круто добавить печать, какой конкретно контрол не найден.
Можно ли сделать обработку этой ошибки?
Там “failed to SetValue for unexisting control” только в одном месте встречается.
Подведу итог наблюдений:
Когда пишем из wb-rules, появляется ошибка failed to SetValue for unexisting control.
Причем, проявляется, как я понял, на всех контролах.
Когда пишем из wb-rules в виртуальный девайс, просто ничего не происходит.
Кстати, да.
Еще раз погонял с отсутствующим (неправильным) контролом - при попытке записать в таковой хоть в лог и ругается "Dec 3 10:55:13 wirenboard-ACAX3M6K daemon.info wb-rules[1943]: ERROR: failed to SetValue for unexisting control
Dec 3 10:55:14 wirenboard-ACAX3M6K daemon.info wb-rules[1943]: INFO: reloading file: /etc/wb-rules/11_25_test_3.js
" но скрипт не останавливается.
Покопаюсь с вашим еще из первого сообщения.
Добавил в скрипт
io_5e03a7e5832a17ee33585f34 = args[0] == true;
dev["wb-mr3_39"]["K1"] = args[0] == true;
if (dev["wb-mr3_39"]["K1"] != io_5e03a7e5832a17ee33585f34) {
log("5e03a7e9832a17ee33585f58 BIG PROBLEM!");
}
Проблемная строка напечаталась.
Dec 3 11:47:05 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f58 Exec: {"channels":{"ch_power":[[0]]},"expiration_stamp_ms":1606996205010,"cmd_timestamp_ms":1606996025010,"source":"schedule"}
Dec 3 11:47:05 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f58 schedule performed
Dec 3 11:47:06 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f58 ch_power[0]: 0
Dec 3 11:47:06 IQ139000 daemon.info wb-rules[1800]: ERROR: failed to SetValue for unexisting control
Dec 3 11:47:06 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f58 BIG PROBLEM!
Dec 3 11:47:06 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f58 ch_i: ch_power RETURN
Dec 3 11:47:15 IQ139000 daemon.info wb-rules[1800]: INFO: [rule info] 5e03a7e9832a17ee33585f58 initialized
root@IQ139000:~# mosquitto_sub -t /devices/wb-mr3_39/controls/# -v
/devices/wb-mr3_39/controls/K1 1
/devices/wb-mr3_39/controls/K1/meta/type switch
/devices/wb-mr3_39/controls/K1/meta/order 1
/devices/wb-mr3_39/controls/K1/meta/error r
/devices/wb-mr3_39/controls/K2 1
/devices/wb-mr3_39/controls/K2/meta/type switch
/devices/wb-mr3_39/controls/K2/meta/order 2
/devices/wb-mr3_39/controls/K2/meta/error r
/devices/wb-mr3_39/controls/K3 0
/devices/wb-mr3_39/controls/K3/meta/type switch
/devices/wb-mr3_39/controls/K3/meta/order 3
/devices/wb-mr3_39/controls/K3/meta/error r
/devices/wb-mr3_39/controls/Safety Timer 0
/devices/wb-mr3_39/controls/Safety Timer/meta/type range
/devices/wb-mr3_39/controls/Safety Timer/meta/max 65535
/devices/wb-mr3_39/controls/Safety Timer/meta/order 4
/devices/wb-mr3_39/controls/Safety Timer/meta/error r
/devices/wb-mr3_39/controls/Input 1 0
/devices/wb-mr3_39/controls/Input 1/meta/type switch
/devices/wb-mr3_39/controls/Input 1/meta/readonly 1
/devices/wb-mr3_39/controls/Input 1/meta/order 5
/devices/wb-mr3_39/controls/Input 1/meta/error r
/devices/wb-mr3_39/controls/Input 2 0
/devices/wb-mr3_39/controls/Input 2/meta/type switch
/devices/wb-mr3_39/controls/Input 2/meta/readonly 1
/devices/wb-mr3_39/controls/Input 2/meta/order 6
/devices/wb-mr3_39/controls/Input 2/meta/error r
/devices/wb-mr3_39/controls/Input 3 0
/devices/wb-mr3_39/controls/Input 3/meta/type switch
/devices/wb-mr3_39/controls/Input 3/meta/readonly 1
/devices/wb-mr3_39/controls/Input 3/meta/order 7
/devices/wb-mr3_39/controls/Input 3/meta/error r
/devices/wb-mr3_39/controls/Input 0 0
/devices/wb-mr3_39/controls/Input 0/meta/type switch
/devices/wb-mr3_39/controls/Input 0/meta/readonly 1
/devices/wb-mr3_39/controls/Input 0/meta/order 8
/devices/wb-mr3_39/controls/Input 0/meta/error r
/devices/wb-mr3_39/controls/Input 1 counter 0
/devices/wb-mr3_39/controls/Input 1 counter/meta/type value
/devices/wb-mr3_39/controls/Input 1 counter/meta/readonly 1
/devices/wb-mr3_39/controls/Input 1 counter/meta/order 9
/devices/wb-mr3_39/controls/Input 1 counter/meta/error r
/devices/wb-mr3_39/controls/Input 2 counter 0
/devices/wb-mr3_39/controls/Input 2 counter/meta/type value
/devices/wb-mr3_39/controls/Input 2 counter/meta/readonly 1
/devices/wb-mr3_39/controls/Input 2 counter/meta/order 10
/devices/wb-mr3_39/controls/Input 2 counter/meta/error r
/devices/wb-mr3_39/controls/Input 3 counter 0
/devices/wb-mr3_39/controls/Input 3 counter/meta/type value
/devices/wb-mr3_39/controls/Input 3 counter/meta/readonly 1
/devices/wb-mr3_39/controls/Input 3 counter/meta/order 11
/devices/wb-mr3_39/controls/Input 3 counter/meta/error r
/devices/wb-mr3_39/controls/Input 0 counter 0
/devices/wb-mr3_39/controls/Input 0 counter/meta/type value
/devices/wb-mr3_39/controls/Input 0 counter/meta/readonly 1
/devices/wb-mr3_39/controls/Input 0 counter/meta/order 12
/devices/wb-mr3_39/controls/Input 0 counter/meta/error r
/devices/wb-mr3_39/controls/Supply voltage 17.896
/devices/wb-mr3_39/controls/Supply voltage/meta/type voltage
/devices/wb-mr3_39/controls/Supply voltage/meta/readonly 1
/devices/wb-mr3_39/controls/Supply voltage/meta/order 13
/devices/wb-mr3_39/controls/Supply voltage/meta/error r
Само реле пришлось отключить физически, поэтому висят ошибки, но насколько помню это никогда не влияло на работу скрипта. Плюс проблемы начались, когда реле были подключены.
Сам wb-rules пока не перезапускал, чтобы была возможность отладить.
И да, кстати, то что мы хотим - вывод в лог, оно реализовано, но надо debug для wb-rules передать аргументом в строке.
Да, я видел в коде. Но если сейчас перезапущу с debug, бага исчезнет.
Все-таки debug не всегда нужен, а логирование и в повседневе должно быть информативным. Сейчас, чтобы понять какого контрола нет, нужно открывать скрипт и следить за ходом выполнения с помощью log() в самом скрипте.
Добрый вечер! Есть ли новости?
Добрый день. У меня не воспроизводится пока.
У нас сегодня такая же ситуация.
failed to SetValue for unexisting control
И ничего не работает. Перезапуск wb-rules помог.
Здравствуйте.
С последним обновлением стало такое же происходить.
Устройства обслуживает wb-mqtt-serial.
в wb-rules простое a = dev["RelayGaragePower/K3"] и dev["RelayGaragePower/K3"] = true
работает давно, но переодически отваливается управление и получение значений (результат null) в логах пишет
июл 25 19:48:13 wirenboard- wb-rules[1769]: INFO: [rule info] SET name: Reserve, relay: RelayGaragePower/K3(null)
июл 25 19:48:13 wirenboard- wb-rules[1769]: ERROR: [rule error] failed to SetValue for unexisting control RelayGaragePower/K3: false
после перезагрузки работает, но иногда вдруг отваливаются реле, имя устройства бывают разные, имя реле то же, устройство точно есть, в интерфейсе отображается и управляется… в mosquito то-же есть.
Какие можно провести тесты, что б понять почему “wb-rules” теряет устройства.
Добрый день, прошу уточнить актуален ли вопрос еще?
1 сентября 2024 года обновил apt update && apt upgrade, после этого ERROR: [rule error] не возникало…