Добрый день!
У меня написано правило на работу канала 6 реле Mr6c с вентилятором в Ванной, есть переключатель на вкл/выкл правила, выключатель вентилятора на стене и датчик wb-msv.
Правило работало корректно, но когда влажность снижает до уставки 40%, начинаются «прыжки» на трендах влажности и по факту реле за 30мин включается и выключается раз 15. Потом влажность снижается до 39% и «прыжки» заканчиваются.
Для того чтобы реле «не сломалось» решил поставить задержку на 60мин по примеру из правил на странице поддержки, то есть когда зафиксирована влажность уставки 40%, вентилятор работает ещё 60мин и выключается, за это время влажность с 40,5% станет стабильно 39,5%.
Написал скрипт. По факту не работает, подскажите где у меня ошибка?
var humidity_timer_1_timeout_ms = 60 * 60 * 1000;
var humidity_timer_1_id = null;
defineRule (“Humidity_Bath”, // правило влажность ванны
{
whenChanged: “wb-msw-v3_51/Humidity”,
then: function (newValue4, devName, cellName)
{
if(dev[“wb-mr6c_149/Input 6”])
{dev[“wb-mr6c_149/K6”]=true;} //вентилятор работает
// выключатель влажности на стене
else if ((dev[“wb-mr6c_149/Input 6”]==false) && (dev[“Bathroom/RuleHumidity”]==false)) //выключатель выключен на стене, правило выключено
{dev[“wb-mr6c_149/K6”]=false;} //вентилятор не работает
else if ((dev[“wb-mr6c_149/Input 6”]==false) && (newValue4 > (dev[“Bathroom/humidity_bath”])) && (dev[“Bathroom/RuleHumidity”]==true)) //выключатель выключен, правило включено, влажность больше уставки
{dev[“wb-mr6c_149/K6”]=true;} //вентилятор работает
else if ((humidity_timer_1_id) && (dev[“wb-mr6c_149/Input 6”]==false) && (dev[“Bathroom/RuleHumidity”]) && (newValue4 < (dev[“Bathroom/humidity_bath”]))) // выключатель выключен, правило включено, влажность меньше уставки
{clearTimeout(humidity_timer_1_id);}
humidity_timer_1_id = setTimeout(function ()
{dev[“wb-mr6c_149/K6”] = false; // вентилятор выключается с задержкой 60 мин
humidity_timer_1_id = null;},
humidity_timer_1_timeout_ms);
}
}
);