модуль лежит в /etc/wb-rules-modules/:
var Test = function (opts){
opts = opts || {};
this.status = opts.status || false;
this.title = opts.title || 'Title';
this.deviceName = opts.deviceName || 'Device';
};
Test.prototype.start = function () {
var _self = this;
var cells = {
enabled: {
title: "Статус",
type: "switch",
value: this.status,
},
};
defineVirtualDevice(_self.deviceName, {
title: _self.title,
cells: cells,
});
}
exports.Test = Test;
Правило (TestModule.js):
var t = require("Test");
var config = [
{
status: false,
title: "Тест модуля 1",
deviceName: "testM1",
},
{
status: true,
title: "Тест модуля 2",
deviceName: "testM2",
},
];
for (var i in config) {
var tDevice = new t.Test(config[i]);
tDevice.start();
}
При сохранении правила появляюся два виртуальных устройства:
Но после обновления страницы браузера они пропадают:
Точнее остается пустое одно устройство вместо двух.
Если зайти в правило и пересохранить то появляются оба устройства, но только до обновления страницы.
С правилами без модулей такого поведения не замечаю.
То есть если в самом правиле написать
defineVirtualDevice('devTest_1', {
title: "Device Тест 1",
cells: {
State: {
type: "switch",
title: "Работа",
value: false,
order: 1,
}
}
});
и не подключать из модуля то проблем нет.
Подскажите куда копать?
Все остальные правила закомментированы, то есть не влияют на текущий тест.
diag_output_AWJY4GZR_2024-02-09-16.39.34.zip (173,4 КБ)