//создаю переменную с которой хочу потом забирать температуру в виртуальный термостат
var temperatureSensor = dev [“wb-w1/28-00000fabf9b5”]
// гистерезис 1 градус
var hysteresis = 1
// создание виртуального термостата
defineVirtualDevice(‘termostat’, {
title: ‘Термостат’ ,
cells: {
status: {
title: “Состояние”,
type: “switch”,
value: false
},
usedTemp: {
title: “Желаемая температура”,
type: “range”,
value: 20,
max: 36,
min: 15
},
currentTemp: {
title: “Текущая температура”,
type: “temperature”,
value: 0
},
alarm: {
title: “есть ошибка”,
type: “alarm”,
value: 1
},
}
});
// привязка текущей температуры
defineRule( {
whenChanged: temperatureSensor,
then: function (newValue) {
dev [“termostat/currentTemp”] = newValue
log (“Температура”, newValue)
}
});
// кнопка состояния привязанная к исполнительному устройству
defineRule({
whenChanged: “wb-mrm2-mini_54/K2”,
then: function(newValue, devName, cellName) {
dev[“termostat/status”] = newValue;
}
});
defineRule({
whenChanged: “termostat/status”,
then: function(newValue, devName, cellName){
dev[“wb-mrm2-mini_54/K2”] = newValue;
}
});
// сам термостат
defineRule( {
whenChanged: “termostat/currentTemp”,
then: function (newValue) {
if (newValue <= (dev [“termostat/usedTemp”] - hysteresis) && dev[“termostat/status”] === false) {
dev[“termostat/status”] = true
log (“Виртуальный термостат включен c проверкой состояния включения”)
}
if (newValue >= (dev [“termostat/usedTemp”] + hysteresis) && dev[“termostat/status”] === true) {
dev[“termostat/status”] = false
log (“Виртуальный термостат ВЫКЛЮЧЕН с проверкой состояния”)
}
}
});