Всем привет.
Откопал очень интересный баг, судя по всему относящийся к rule-engine, но если что поправьте меня.
История следующая:
- Есть первый Js файл, в котором есть обработка событий на изменение значения на входах EXT2_IN1 … EX2_IN11
function presenceSwitchLight(name, msw_control, switch_control, relays_array_day, relays_array_night, night_mode, msw_treshold) {
defineRule(name, { // Функция обработки события движения с обычного потолочного датчика
whenChanged: “wb-gpio/” + switch_control,
then: function(newValue, devName, cellName) {
Код обработчика…
}
});
}
это входы 220V sensing, к которым подключены датчики движения 220V, Значения boolean.
Все работает как по маслу.
- Есть второй файл JS
function setupPresenceDetector(name, switch_control) {
defineRule(name, { // Функция обработки события движения с обычного потолочного датчика
whenChanged: “wb-gpio/” + switch_control,
then: function(newValue, devName, cellName) {
Код обработчика…
}
});
Те же самые правила, на эти же самые входы, но с другими именами естественно:
И вот что интересно, при срабатывании во втором файле любого из событий, вот что получается - cellName в этом событии будет всегда EXT2_IN1. Хотя по логам смотрю что триггером был другой вход, сделал вывод в лог:
Dec 9 18:36:45 wirenboard-ALWR73U7 daemon.info wb-rules[3667]: INFO: [rule info] [Presence] EXT2_IN1 triggered true from EXT2_IN8
Dec 9 18:36:53 wirenboard-ALWR73U7 daemon.info wb-rules[3667]: INFO: [rule info] [Presence] EXT2_IN1 triggered false from EXT2_IN8
Dec 9 18:37:04 wirenboard-ALWR73U7 daemon.info wb-rules[3667]: INFO: [rule info] [Presence] EXT2_IN1 triggered true from EXT2_IN1
Dec 9 18:37:13 wirenboard-ALWR73U7 daemon.info wb-rules[3667]: INFO: [rule info] [Presence] EXT2_IN1 triggered false from EXT2_IN1
Сможете прогнать у себя на стенде?
P.S. все пакеты обновил из репозитория до последней версии на 09.12.2020