Правило для начинающего. Помогите разобраться в логике

Только начинаю писать правила, столкнулся с непонятной мне странностью. Помогите разобраться.

Нужно чтоб вентилятор включался когда включен свет, выключался когда свет выключен.

Так всё работает:

defineRule({
whenChanged: “wb-mr6c_144/K1”,
then: function (newValue, devName, cellName) {
dev[“wb-mr6c_144”][“K2”] = newValue;
}
});

А так вентилятор включается, но не выключается.

defineRule({
whenChanged: “wb-mr6c_144/K1”,
then: function (newValue, devName, cellName) {
if ( newValue = true) {
dev[“wb-mr6c_144”][“K2”] = true;
} else {
dev[“wb-mr6c_144”][“K2”] = false;
}
}
});

Объясните пожалуйста, почему? ведь вроде одно и то же, или нет?
Бьюсь с этим маленьким куском кода уже третий день, перепробовал разные логики. Где ошибка?

Может, сначала по js для чайников книжку скушать? Осознать разницу между = и ==…

Здравствуйте!
В строке

if ( newValue = true) {

нужно заменить “=” на “==”. Оператор “=” - это оператор присваивания, оператор “==” - это оператор проверки на равенство.

Синтаксис правил основан на JavaScript, поэтому рекомендую ознакомиться с основными конструкциями языка, а также с документацией и примерами работы с движком правил:
https://wirenboard.com/wiki/Движок_правил_wb-rules

Спасибо, понял. Буду читать азы.