Пытаюсь реализовать простой сценарий управления светом по правилу. При каждом нажатии выключателя (фиксируется только переход из false в true - т.е. нажатие) связка WBIO-DI-WD-14 и WBIO-DO-R1G-16 работает весьма странно - я могу только выключить реле (включить не получается). При этом тоже самое правило корректно отрабатывает с другим Modbus устройством вывода.
function light_control(name, device_in, control_in, device_out, control_out) {
defineRule({
whenChanged: device_in + "/" + control_in,
then: function (newValue, devName, cellName) {
if ( newValue == true )
if (dev[device_out][control_out] = false){
dev[device_out][control_out] = true;
} else {
dev[device_out][control_out] = false;
}
}
});
}
light_control("light_3", "wb-gpio", "EXT1_IN11", "r4d1c32_1", "R4D1C32 Out 26");
light_control("light_4", "wb-gpio", "EXT1_IN13", "wb-gpio", "EXT4_K13");
что самое любопытное смена в функции “ЕСЛИ” определения текущего состояния ничего не меняет - все равно только выключение
function light_control(name, device_in, control_in, device_out, control_out) {
defineRule({
whenChanged: device_in + "/" + control_in,
then: function (newValue, devName, cellName) {
if ( newValue == true )
if (dev[device_out][control_out] = true){
dev[device_out][control_out] = false;
} else {
dev[device_out][control_out] = true;
}
}
});
}
light_control("light_3", "wb-gpio", "EXT1_IN11", "r4d1c32_1", "R4D1C32 Out 26");
light_control("light_4", "wb-gpio", "EXT1_IN13", "wb-gpio", "EXT4_K13");
в NodeRED все корректно распознается и работает через wb-gpio, через правило нет.
Wiren Board 7.3.3, bullseye, release staging.07427.cf98af374eb4 (as testing)
куда копать?