Здравствуйте. Было создано правило включения реле по замыкании кнопки на определенное время. Правило работало на “столе” с малыми временными интервалами (до 15 минут). Потом работало с установленным контроллером в шкаф в загородном доме. Вроде тоже корректно. потом были подправлены времена по всем выключателям/каналам (шесть штук). И на конкретном канале была установлена задержка 1800 секунд. После этого, боюсь, что не проверял должным образом из-за нехватки времени. В эти выходные перекоммутировал питание и RS485 на платы с быстрозажимными контактами. После этого стало твориться странное.
- При включении кнопкой 3, включается реле 3 и через секунду реле 4. При этом статус состояния входа 4 не меняется. Реле включается само.
- По прошествии 1800 секунд реле 3 не выключается. Другие каналы, вроде отрабатывают времена.
Проблему с включением канала 4 поборол перекоммутацией проводов RS485 на данном реле. Мне показалось, что был плохой контакт.
Ео время пока живет своей жизнью.
пример кода:
var push_a_button_1_timeout_ms = 1800 * 1000;
var push_a_button_1_id = null;
var prev_count = 0;
defineRule("light_time_1", {
whenChanged: "R1-45/Input 3 counter",
then: function(newValue, devName, cellName) {
if (newValue > prev_count) {
prev_count = newValue;
if (dev["R1-45"]["K3"]) {
dev["R1-45"]["K3"] = 0;
if (push_a_button_1_id) {
clearTimeout(push_a_button_1_id);
push_a_button_1_id = null;
}
} else {
dev["R1-45"]["K3"] = 1;
if (push_a_button_1_id) {
clearTimeout(push_a_button_1_id);
}
push_a_button_1_id = setTimeout(function() {
dev["R1-45"]["K3"] = 0;
push_a_button_1_id = null;
}, push_a_button_1_timeout_ms);
}
}
}
});