Прошу помочь с элементарным кодом

Добрый день!
У меня элементарная задача, но тк не очень дружу с JS, ничего не получается. Задача включать теплый пол по термостату. Необходимо сделать виртуальный переключатель - на включение теплого пола. Если переключатель включен, и температура теплого пола ниже заданной, то включить выход контроллера. Но что так не получается:

defineVirtualDevice("WarmFloor1", {
    title: "WarmFloor1",
    cells: {
	enabled: {
	    type: "switch",
	    value: false
      	},
    }
});

defineRule("WarmFloor1", {
  whenChanged: "WarmFloor1/enabled",
  then: function (newValue, devName, cellName)  {
    if ("wb-w1/28-00000d21cbb2" < 35 && [WarmFloor1] = 1) {
        dev["wb-gpio/EXT1_K1"] = 1;
      }
   }
  });

Скобки забыли. И тепло включать лучше с гистерезисом, т.е включаете при одной температуре, выключаете при другой, например

if (("wb-w1/28-00000d21cbb2" < 35) && ([WarmFloor1] == 1)) {
        dev["wb-gpio/EXT1_K1"] = 1;
} else if (("wb-w1/28-00000d21cbb2" > 38) || ([WarmFloor1] == 0)) {
        dev["wb-gpio/EXT1_K1"] = 0;
}

Спасибо!
Но EXT_K1 всё равно не включается, при выполнении условии (WarmFloor1 = 1, датчик cbb2 < 35). :pensive:

Я зевнул, когда сравниваем на равенство, надо ‘==’, два равно, т.е

if ....([WarmFloor1] == 1)

поправил в коде выше. Попробуйте вывести в отладку состояние переключателя и датчика температуры. Может, там не то, что ожидаете.

  1. Вместо 1 и 0 для булевых переменых лучше использовать true и false соответственно.
  2. В whenChanged: в вашем коде отслеживается виртуальный выключатель “WarmFloor1/enabled”, а надо отслеживать изменение температуры на датчиках, а лучше всего сделать перидический запуск всего правила, например раз в мнуту.
  3. Гистерезис не помешает, как писали выше.
  4. Добавить проверку на датчик температуры, китайские могут зависнуть и показывать одну и ту же температуру.

Добрый день.
Получилось ли у вас сделать управление теплым полом? Если нет, то опишите, что сейчас не получается.