Пишу правило для отопления (управление приводом 0-10в.)


#1

Есть три параметра:
Уставка = (задается на управляющем устройстве в программе от iRidium)
Температура помещения = WB-MSW2-THLSC - датчик климата и CO2 в настенном исполнении
Температура теплосети = 1-Wire

В зависимости от этих параметров нужно получить значение для Модуль_расширения_DAC_(WBE-AO-10V-2) который управляет приводом на батарее по 0-10в.


#2

Написал для создания виртуального устройства для управлением(эти всем).

heatings.js

defineVirtualDevice(“heatings”, {
title: “Heatings”, // Buzzer

cells: {
frequency : {
type : “range”,
value : 0,
max : 10000,
},
volume : {
type : “range”,
value : 10,
max : 30,
},
temperatureTC : {
type : “text”,
value : 0,
max : 100,
},
temperatureROOM : {
type : “text”,
value : 0,
max : 100,

},
enabled : {
    type : "switch",
    value : false,
},

}
});

  1. на и из iRidium значения понимает (ок)
heater_control.js

defineRule(“heater_control”, { //название правила - “контроль обогревателя”, может быть произвольным
whenChanged: “heatings/volume”, //при изменении состояния
then: function (newValue, devName, cellName) { //выполняй следующие действия
if ( newValue > 1) { //если 0
dev[“wb-dac”][“MOD1_O1”] = 1000; //установи
}
if ( newValue > 10) { //если 0
dev[“wb-dac”][“MOD1_O1”] = 2000; //установи
}
if ( newValue > 20) { //если 0
dev[“wb-dac”][“MOD1_O1”] = 3000; //установи
}
if ( newValue > 30) { //если 0
dev[“wb-dac”][“MOD1_O1”] = 4000; //установи
}
if ( newValue > 40) { //если 0
dev[“wb-dac”][“MOD1_O1”] = 5000; //установи
}
if ( newValue > 50) { //если 0
dev[“wb-dac”][“MOD1_O1”] = 6000; //установи
}
if ( newValue > 60) { //если 0
dev[“wb-dac”][“MOD1_O1”] = 7000; //установи
}
if ( newValue > 70) { //если 0
dev[“wb-dac”][“MOD1_O1”] = 8000; //установи
}
if ( newValue > 80) { //если 0
dev[“wb-dac”][“MOD1_O1”] = 9000; //установи
}
if ( newValue > 90) { //если 0
dev[“wb-dac”][“MOD1_O1”] = 10000; //установи
}if ( newValue < 1) { //если 0
dev[“wb-dac”][“MOD1_O1”] = 0; //установи
}
}
});

  1. нужно привязать значения датчиков температуры

  2. нужно привязать изменения значения Модуль_расширения_DAC_(WBE-AO-10V-2)
    (модуль изменяется от уровня вирт. устройства(ок)


#3

Нужна помощь с уставкой (температуры)


#4

наверное в правиле “heater_control” будет правильнее сделать через else if от большего к меньшего, что бы зря не слать лишние параметры.
Пример:
if ( newValue > 90) {

} else if ( newValue > 80) {



} else if ( newValue > 1) {

} else {

}


#5

Так и не могу решить задачу с уставкой температуры


Яндекс.Метрика