defineVirtualDevice(‘ventilation_switcher’, {
title: ‘Ventilation’,
cells: {
enabled: {
type: ‘switch’,
value: false
},
on: {
type: ‘switch’,
value: false
}
}
});
if (dev.ventilation_switcher.enabled) {
defineRule(‘vent_onoff’, {
whenChanged: ‘ventilation_switcher/on’,
then: function (newValue, devName, cellName) {
log(‘Vent: timer 1 start’);
}
});
}
Правильно ли я понимаю что если свитч enabled выключен, включение/выключение свича on не должно вызывать никаких действий? У меня правило vent_onoff срабатывает всегда.
Добрый день!
Кажется, это не связано именно с новой версией движка правил.
Если вам нужно, чтобы правило не выполнялось при определённом состоянии переключателя enabled, вы просто внутрь самого правила впишите большой if вначале.
Здесь вы создаёте (!) правило при каком-то состоянии - и всё, оно потом остаётся.
Как работают
disableRule(myRule); // отключить проверку и выполнение правила
enableRule(myRule); // разрешить выполнение правила
после перезагрузки контроллера? Сохраняется ли статус?
Так все таки работают enableRule/disableRule? Есть примеры использования?
Но это же проверить даже быстрее, чем спрашивать здесь.
Работают. Примеры - тут Движок правил wb-rules — Wiren Board .
нет, не сохраняется.
Желаемого поведения можно достичь через PersistentStorage.