Добрый день, обнаружен проблему зависания WB-rules при следующих условиях.
Код:
function sensors(address) {
var lmode = null;
if ((dev[address]["CO2"] >= 800) && (dev[address]["CO2#error"] != "r" )) {
lmode = 3;
}
//Если СО2 < или на нем висит ошибка для того что бы не исключать в влажность
if ((dev[address]["CO2"] < 800) || (dev[address]["CO2#error"] == "r" )) {
if ((dev[address]["Humidity#error"] != "r")) {
if ((dev[address]["Humidity"] >= 65)) {
lmode = 3;
}
if ((dev[address]["Humidity"] >= 55) && (dev["address"]["Humidity"] < 65)) {
lmode = 2;
}
if ((dev[address]["Humidity"] < 55)) {
lmode = 1;
}
}
}
return lmode;
}
startTicker(function () {
if ((!dev["PV"]["Remote"])) {
var s1 = sensors("wb-msw-v3_103");
var s2 = sensors("wb-msw-v3_110");
log.debug("s1_103: ", s1);
log.debug("s2_110: ", s2);
var max = s1;
//log.debug("max : ", max);
if (s2 > max) { max = s2 }
if (max == null) { dev["PV"]["Mode"] = 3; } //УСТНОВИТЬ МАX MODE
else { dev["PV"]["Mode"] = max; }
}
}, delay_main)
Зависания происходит при входе в функцию с несуществующим топиком. я опасаюсь что если wb-mqtt-serial зависнет или буду добавлять новый сенсор произойдет перезагрузка, то топики на момент прогрузки пропадают, а wb-rules если зависает то его надо перезагружать ручками получается?
Можно ли как то избежать данной ситуации?