Добрый день! Несколько вопросов по виртуальным устройствам:
1). При создании вирт. устройства сервис ругается на поля “order”, “max” таким образом:
06-12-2022 13:03:31.277 [wb-mqtt-db.service] ERROR: [driver] failed to accept new meta “order” on control “curValue” of device “VinValue”: Invalid value “” of type “value” @ wblib/control.cpp:479
Ошибка возникает как для явно определенных в правиле устройств, так и для сгенерированных скриптом. Описание явно объявленного объекта ниже:
defineVirtualDevice("VinValue", {
title: "Vin value",
cells: {
"curValue": {
type: "value",
value: 0,
order: 1,
},
"testingRange": {
type: "range",
min: 0,
max: 100,
value: 0,
order: 2,
},
},
});
Почему возникает ошибка? как избавиться?
- Если удалить из веб-интерфейса ранее созданное вирт. устройство, затем заново сохранить правило, которое его создает скриптом, заметил, что некоторые контролы не создаются до тех пор, пока не сделаешь обновление страницы “devices”. В правилах при этом также контрол недоступен до момента обновления вкладки Devices (имеет значение null).
В логах при этом сообщение (INFO) от сервиса wb-rules следующее:
INFO: Thermostat_TS3/Setpoint: failed to convert value ‘’, passing raw
После обновления странцы на вкладке “devices” контрол добавляется в устройство, правило начинает работать. В чем может быть проблема с контролом при создании ВУ?
Скрипт создания ВУ ниже:
var tsCells = {
"Setpoint": {
type: "range",
value: 25,
min: 0,
max: 100,
order: 3
},
"runInterval": {
type: "range",
value: 60,
min: 10,
max: 60,
order: 5
},
};
function defineVirtualTS (nameTS, minSP, maxSP) {
var tsCellsLocal = {};
tsCellsLocal = tsCells;
tsCellsLocal["Setpoint"]["min"] = minSP;
tsCellsLocal["Setpoint"]["max"] = maxSP;
//
defineVirtualDevice("Thermostat_" + nameTS, {
title:"Thermostat " + nameTS,
cells: tsCellsLocal
});
}
- Третий вопрос - не срабатывает свойство min у контрола range - в UI ползунок укатывается до нуля. Как исправить?