Я создал виртуальное устройство. Реальное устройство контроллов cleaning и sensorDoor не показывает ошибку устройства. А виртуальное устройство говорит об ошибке. Вот мой код, подскажите в чем моя ошибка?
// 1. НЕОБХОДИМО ЗАПОЛНИТЬ ДАННЫЕ ПО УСТРОЙСТВУ
// 1.1 путь до внешних физических устройств
var temperatureSensorDoor = "wb-m1w2_145/External Sensor 1"
var temperatureSensorDeep = "wb-m1w2_145/External Sensor 2"
var redLamp = "wb-mr6cu_188/K1"
var greenLamp = "wb-mr6cu_188/K3"
var yellowLamp = "wb-mr6cu_188/K2"
var sensorDoor = "wb-mai6_66/IN 4 N State"
var cleaning = "wb-mai6_66/IN 2 N State"
// ----------------- список комнат -------------------------------- //
var room_4 = "Ресторан"
var room_4_1 = "Гостевой тамбур"
var room_4_2 = "Зал №1"
var room_4_3 = "Зал №2"
var room_4_4 = "Гостевой туалет"
var room_4_5 = "Детская"
var room_4_6 = "Моповая в зале"
var room_4_7 = "Кассовая зона"
var room_5 = "Кухня"
var room_5_1 = "Служебный тамбур"
var room_5_2 = "Курьерская"
var room_5_3 = "Служебный туалет"
var room_5_4 = "Раздевалка"
var room_5_5 = "Персоналка"
var room_5_6 = "Сухой склад"
var room_5_7 = "Горячий цех"
var room_5_8 = "Холодный цех"
var room_5_9 = "Моечная"
var room_5_10 = "Моповая на кухне"
// 1.2 введите Id и Имя холодильника. Номер комнаты возьми из списка выше (room_5_7)
var idDevice = "1_4"
var idName = "Холодильник 4 хранение сыра" + "/fridge_"+idDevice + "/" + room_5_7
// -------------------------------------------------------------------------- //
// 2. СКРИПТ НА СОЗДАНИЕ УСТРОЙСТВА
defineVirtualDevice("fridge_"+idDevice, {
title: idName ,
cells: {
temperatureSensorDoor: {
title: "Температура у двери",
type: "temperature",
value: 0,
order: 9
},
temperatureSensorDeep: {
title: "Температура у блока",
type: "temperature",
value: 0,
order: 10
},
redLamp: {
title: "Красная лампа",
type: "switch",
value: false,
order: 4
},
greenLamp: {
title: "Зеленая лампа",
type: "switch",
value: false,
order: 6
},
yellowLamp: {
title: "Желтая лампа",
type: "switch",
value: false,
order: 8
},
cleaning: {
title: "Режим уборки",
type: "switch",
value: false,
order: 5
},
sensorDoor: {
title: "Дверь заперта",
type: "switch",
value: false,
readonly: true,
order: 7
},
alarm: {
title: "ОШИБКА",
type: "alarm",
value: false,
order: 1,
},
textAlarm: {
title: "служебное",
type: "text",
value: "описание ошибки",
readonly: false,
order: 11
},
textAlarm2: {
title: "",
type: "text",
value: "описание ошибки",
readonly: true,
order: 2
},
errorReset: {
title: "сброс ошибки",
type: "pushbutton",
value: 0,
order: 3
},
}
});
// Привязка датчиков к устройству
defineRule( {
whenChanged: temperatureSensorDoor,
then: function (newValue) {
dev ["fridge_" +idDevice+ "/temperatureSensorDoor"] = parseFloat(newValue.toFixed(1));
}
});
defineRule( {
whenChanged: temperatureSensorDeep,
then: function (newValue) {
dev ["fridge_" +idDevice+ "/temperatureSensorDeep"] = parseFloat(newValue.toFixed(1));
}
});
// Красная лампа - привязка к устройству
defineRule( {
whenChanged: redLamp,
then: function (newValue) {
dev ["fridge_"+idDevice+"/redLamp"] = newValue
dev ["fridge_"+idDevice+"/alarm"] = newValue
}
});
defineRule( {
whenChanged: "fridge_"+idDevice+"/redLamp",
then: function (newValue) {
dev [redLamp] = newValue
}
});
// Привязка аларм к красной лампе
defineRule( {
whenChanged: "fridge_"+idDevice+"/alarm",
then: function (newValue) {
dev [redLamp] = newValue
}
});
// Зеленая лампа - привязка к устройству
defineRule( {
whenChanged: greenLamp,
then: function (newValue) {
dev ["fridge_"+idDevice+"/greenLamp"] = newValue
}
});
defineRule( {
whenChanged: "fridge_"+idDevice+"/greenLamp",
then: function (newValue) {
dev [greenLamp] = newValue
}
});
// Желтая лампа - привязка к устройству
defineRule( {
whenChanged: yellowLamp,
then: function (newValue) {
dev ["fridge_"+idDevice+"/yellowLamp"] = newValue
}
});
defineRule( {
whenChanged: "fridge_"+idDevice+"/yellowLamp",
then: function (newValue) {
dev [yellowLamp] = newValue
}
});
// геркон (датчик на закрытие двери)
defineRule( {
whenChanged: sensorDoor,
then: function (newValue) {
dev ["fridge_" + idDevice + "/sensorDoor"] = !newValue;
dev [yellowLamp] = !newValue
}
});
// Включение режима уборки
defineRule( {
whenChanged: cleaning,
then: function () {
dev ["fridge_"+idDevice+"/cleaning"] = true
}
});
// синхронизация режима уборки и лампы
defineRule( {
whenChanged: "fridge_"+idDevice+"/cleaning",
then: function (newValue) {
dev ["fridge_"+idDevice+"/greenLamp"] = newValue
}
});
defineRule( {
whenChanged: "fridge_"+idDevice+"/greenLamp",
then: function (newValue) {
dev ["fridge_"+idDevice+"/cleaning"] = newValue
}
});
// сообщения об ошибках
defineRule({
whenChanged: "fridge_" +idDevice+ "/textAlarm",
then: function (newValue, devName, cellName) {
dev ["fridge_" +idDevice+ "/textAlarm2"] = newValue;
}
});
// нажатие кнопки с панели на сброс ошибки
defineRule({
whenChanged: "fridge_" +idDevice+ "/errorReset",
then: function (newValue) {
dev ["fridge_" +idDevice+ "/alarm"] = false;
}
});
// -------------------------------------------------------
//Синхронизация ошибок с виртуальными устройствами
defineRule({
when: function() {
return (dev [temperatureSensorDoor +"#error"]);
},
then: function () {
dev["fridge_" +idDevice+ "/temperatureSensorDoor#error"] = "r";
}
});
defineRule({
when: function() {
return (dev [temperatureSensorDeep +"#error"]);
},
then: function () {
dev["fridge_" +idDevice+ "/temperatureSensorDeep#error"] = "r";
}
});
defineRule({
when: function() {
return (dev [redLamp +"#error"]);
},
then: function () {
dev["fridge_" +idDevice+ "/redLamp#error"] = "r";
}
});
defineRule({
when: function() {
return (dev [greenLamp +"#error"]);
},
then: function () {
dev["fridge_" +idDevice+ "/greenLamp#error"] = "r";
}
});
defineRule({
when: function() {
return (dev [yellowLamp +"#error"]);
},
then: function () {
dev["fridge_" +idDevice+ "/yellowLamp#error"] = "r";
}
});
defineRule({
when: function() {
return (dev [sensorDoor +"#error"]);
},
then: function () {
dev["fridge_" +idDevice+ "/sensorDoor#error"] = "r";
}
});
defineRule({
when: function() {
return (dev [cleaning +"#error"]);
},
then: function () {
dev["fridge_" +idDevice+ "/cleaning#error"] = "r";
}
});
вот список с ошибками виртуального устройства
Ошибки выходят и они вроде прекращаются вот лог с подписки на реальное устройство
Вот ссылка на mqtt топики что нет ошибок у реального устройства