Не работают правила если определение устройства и правило его использующее находятся в разных файлах.
-
Файл test_rule.js:
defineRule(‘test_test’, {
whenChanged: ‘testControl/switch_control’,
then: function (newValue, devName, cellName) {
if (newValue) {
dev[‘testControl’][‘pers_text’] = “Test text”;
log(“text: {}”, dev[‘testControl’][‘pers_text’]);
} else {
dev[‘testControl’][‘pers_text’] = ‘’;
log(“text: {}”, dev[‘testControl’][‘pers_text’]);
}
}
}); -
Файл test_device.js:
defineVirtualDevice(‘testControl’, {
title: ‘Test’,
cells: {
pers_text: {
type: ‘text’,
value: ‘’
},
switch_control: {
type: ‘switch’,
value: false
}
}
});
mosquitto_sub -v -t “/devices/testControl/controls/”# | ts
May 31 18:48:28 /devices/testControl/controls/switch_control/on 1
May 31 18:48:28 /devices/testControl/controls/switch_control 1
May 31 18:48:28 /devices/testControl/controls/pers_text Test text
May 31 18:48:36 /devices/testControl/controls/switch_control/on 0
May 31 18:48:36 /devices/testControl/controls/switch_control 0
May 31 18:48:36 /devices/testControl/controls/pers_text (null)
May 31 18:48:41 /devices/testControl/controls/switch_control/on 1
May 31 18:48:41 /devices/testControl/controls/switch_control 1
May 31 18:48:41 /devices/testControl/controls/pers_text Test text
Лог при включении/выключении свича:
May 31 18:48:28 wirenboard-AHZ2TA3P daemon.info wb-rules[24319]: INFO: [rule info] text: null
May 31 18:48:36 wirenboard-AHZ2TA3P daemon.info wb-rules[24319]: INFO: [rule info] text: null
May 31 18:48:41 wirenboard-AHZ2TA3P daemon.info wb-rules[24319]: INFO: [rule info] text: null
То же самое при использовании dev[‘testControl’][‘pers_text’] в других правилах.