Никак не могу разобрать, почему “пролетаю мимо” указанной конструкции if-then-else:
//global variables
kids_dim_direction = "up";
//Kids_dim up_down
defineRule("noo_switch_2-1", {
whenChanged: "noolite_rx_0xa950/state",
then: function(newValue, devName, cellName) {
log("step 1, " + kids_dim_direction);
if (kids_dim_direction = 'up') {
log("step 2");
kids_dim_up("wb-dac/MOD1_O2", kids_dim_direction);
} else
// if ( kids_dim_direction = "down" )
{
log("step 2else");
kids_dim_down("wb-dac/MOD1_O2", kids_dim_direction);
}
log("step 3, " + kids_dim_direction);
}
});
Functions
на всякий случай, привожу ещё функции, с которыми, вроде бы, всё в порядке:
function kids_dim_down(dac, dim_direction_variable) {
if (dac >= "1000") {
log("step 2else_inside");
dev[dac] = dev[dac] - 1000;
log(dev[dac]);
} else {
dev[dac] = 0;
kids_dim_direction = "up";
}
}
function kids_dim_up(dac, dim_direction_variable) {
if (dac <= "9000") {
log("step 2_inside");
dev[dac] = dev[dac] + 1000;
log(dev[dac]);
} else {
dev[dac] = 10000;
kids_dim_direction = "down";
log(dev[dac] + ", " + kids_dim_direction)
}
}
Вот что получается при выводе:
Feb 5 19:36:54 wirenboard daemon.info wb-rules[31078]: INFO: [rule info] step 1, down
Feb 5 19:36:54 wirenboard daemon.info wb-rules[31078]: INFO: [rule info] step 2
Feb 5 19:36:54 wirenboard daemon.info wb-rules[31078]: INFO: [rule info] 10000, down
Feb 5 19:36:54 wirenboard daemon.info wb-rules[31078]: INFO: [rule info] step 3, down
т.е. переменная kids_dim_direction равна “down”, но я всё равно попадаю при проверке в первое условие, а во второе никогда не попадаю.