После перезагрузки контроллера увидел, что правило не работает, в логе нашел следующее:
WARNING: couldn’t load /etc/wb-rules/heating.js: Error: invalid cell alias in whenChanged: floor1_temperature transformWhenChangedItem /usr/share/wb-rules-system/scripts/lib.js:138 preventsyield map native strict pre
Но открыл скрипт и сохранил без изменений, то заработало. В чем нюанс?
Вот правило в heating.js:
defineRule('Update_Floors_temp', {
whenChanged: ['floor1_temperature','floor2_temperature','floor3_temperature'],
then: function () {//обновляем значение виртуального контрола
dev.HOME_Temperature['Floor 1'] = floor1_temperature.toFixed(1);
dev.HOME_Temperature['Floor 2'] = floor2_temperature.toFixed(1);
dev.HOME_Temperature['Floor 3'] = floor3_temperature.toFixed(1);
}
});
а вот алиас в rules.js:
defineAlias("floor1_temperature", "wb-w1/10-000802bbd9d5");
defineAlias("floor2_temperature", "wb-w1/10-000802bc9fab");
defineAlias("floor3_temperature", "wb-w1/10-000802bb9742");