Есть такой простой скрипт (правило):
defineVirtualDevice('recirk_mode', {
title:'Режим рециркуляции',
cells: {
'Циклический круглосуточный': {
type:'switch',
value: false,
},
'Циклический дневной': {
type:'switch',
value: false,
}
}
});
defineRule("Выбор режима круглосуточный",{
when: function() {
return dev['recirk_mode/Циклический круглосуточный'];
},
then: function (newValue, devName, cellName) {
dev["recirk_mode"]["Циклический дневной"] = false;
}
});
defineRule("Выбор режима дневной",{
when: function() {
return dev['recirk_mode/Циклический дневной'];
},
then: function (newValue, devName, cellName) {
dev["recirk_mode"]["Циклический круглосуточный"] = false;
}
});
по факту он пока ничего не делает в реальности, просто работает как виртуальный переключатель. Задействовать планируется в будущем. Сейчас я его использую для проверки работы движка правил.
Итак, ловим проблему:
Перезагрузка wb-rules, правила работают четко, веб-страница с правилами открывается быстро. Через 1-2 дня переключение перестает работать, т.е. это правило не работает, веб-страница с правилами тоже перестает нормально открываться (показывает загрузку и в итоге пустая).
До этого искал проблему в более сложных правилах, но в итоге уже почти все отключил, за исключением примитивных и всё равно, ситуация не меняется. Сервис wb-rules активен:
# systemctl status wb-rules
● wb-rules.service - MQTT Rule engine for Wiren Board
Loaded: loaded (/lib/systemd/system/wb-rules.service; disabled; vendor preset
Active: active (running) since Thu 2022-04-14 23:30:09 MSK; 11h ago
Main PID: 25669 (wb-rules)
CGroup: /system.slice/wb-rules.service
└─25669 /usr/bin/wb-rules -syslog -editdir /etc/wb-rules/ /usr/share/
В итоге перезапускаю, всё начинает работать. Не знаю, куда дальше копать и какие логи смотреть.
При запуске wb-rules такой лог:
апр 15 10:50:18 wirenboard-AUOLFEEE wb-rules[23607]: WARNING: [rule warning] DAC: EXT5_O3: IIO device not found, skipping
апр 15 10:50:18 wirenboard-AUOLFEEE wb-rules[23607]: WARNING: [rule warning] DAC: EXT5_O4: IIO device not found, skipping
апр 15 10:50:18 wirenboard-AUOLFEEE wb-rules[23607]: WARNING: [rule warning] DAC: EXT5_O5: IIO device not found, skipping
апр 15 10:50:18 wirenboard-AUOLFEEE wb-rules[23607]: WARNING: [rule warning] DAC: EXT5_O6: IIO device not found, skipping
апр 15 10:50:18 wirenboard-AUOLFEEE wb-rules[23607]: WARNING: [rule warning] DAC: EXT5_O7: IIO device not found, skipping
апр 15 10:50:18 wirenboard-AUOLFEEE wb-rules[23607]: WARNING: [rule warning] DAC: EXT5_O8: IIO device not found, skipping
апр 15 10:50:18 wirenboard-AUOLFEEE wb-rules[23607]: INFO: system/DTS Version: failed to convert value '', passing raw
апр 15 10:50:19 wirenboard-AUOLFEEE wb-rules[23607]: INFO: [rule info] add your rules to /etc/wb-rules/
апр 15 10:50:19 wirenboard-AUOLFEEE wb-rules[23607]: INFO: /usr/share/wb-rules/load_alarms.js is NOT under source root /etc/wb-rules
апр 15 10:50:19 wirenboard-AUOLFEEE wb-rules[23607]: INFO: all rule files are loaded
Устройств DAC: EXT5_O8: IIO device not found, skipping - по факту нет. Возможно остатки старых конфигураций.
Лог за пару дней попробую приложить, в какой момент повисание, не пойму.
wb-rules_20220413T100734.log (19.2 КБ)