Добавить в корзинуПозвонить
Найти в Дзене
Home Assistant

⚡️ Как я победил “мигание” проходных выключателей в Home Assistant 👍 + Node-RED

🟥 Столкнулся с неприятной проблемой в умном доме: есть две Zigbee-клавиши/реле, которые работают как проходные выключатели. Логика была простая: выключатель №1 включился → включить выключатель №2 выключатель №2 включился → включить выключатель №1 И так же на выключение. На первый взгляд всё правильно. Но на практике, особенно если у Zigbee-устройства слабоватый сигнал, начинается веселье: выключатели получают команды с задержкой, статусы прилетают не сразу, и они начинают как бы догонять друг друга. В итоге свет может моргать, а автоматизация превращается в цикл: первый изменился → второй повторил → первый снова получил событие → второй снова повторил… Короче, классическое “эхо” в двусторонней синхронизации. 🔧 Как исправил Я переделал flow в Node-RED так, чтобы все проходные пары работали через одну общую функцию. Теперь логика такая: 1. Node-RED ловит изменение одного из выключателей. 2. Определяет, кто является парным устройством. 3. Проверяет текущее состояние второго вык

⚡️ Как я победил “мигание” проходных выключателей в Home Assistant 👍 + Node-RED 🟥

Столкнулся с неприятной проблемой в умном доме: есть две Zigbee-клавиши/реле, которые работают как проходные выключатели.

Логика была простая:

выключатель №1 включился → включить выключатель №2

выключатель №2 включился → включить выключатель №1

И так же на выключение.

На первый взгляд всё правильно. Но на практике, особенно если у Zigbee-устройства слабоватый сигнал, начинается веселье: выключатели получают команды с задержкой, статусы прилетают не сразу, и они начинают как бы догонять друг друга.

В итоге свет может моргать, а автоматизация превращается в цикл:

первый изменился → второй повторил → первый снова получил событие → второй снова повторил…

Короче, классическое “эхо” в двусторонней синхронизации.

🔧 Как исправил

Я переделал flow в Node-RED так, чтобы все проходные пары работали через одну общую функцию.

Теперь логика такая:

1. Node-RED ловит изменение одного из выключателей.

2. Определяет, кто является парным устройством.

3. Проверяет текущее состояние второго выключателя.

4. Если второй уже в таком же состоянии — ничего не делает.

5. Если состояние отличается — отправляет команду.

6. После команды включает короткую блокировку на несколько секунд, чтобы обратное событие не запустило цикл.

То есть вместо тупого:

сработал первый → всегда дерни второй

теперь работает аккуратно:

сработал первый → проверь второй → дерни только если надо → заблокируй эхо

🧠 Почему это важно

В #Zigbee не всегда всё происходит мгновенно. Особенно если:

• устройство далеко от координатора;

• мало Zigbee-роутеров в сети;

• выключатель без нуля;

• LQI слабый;

сеть 2.4 GHz забита Wi-Fi;

• устройство иногда просыпается/отвечает с задержкой.

В таких условиях простая зеркальная автоматизация может начать жить своей жизнью.

🧩 Ключевой принцип

Для проходных выключателей в Node-RED я бы теперь всегда закладывал три вещи:

✅ проверка текущего состояния второго устройства;

✅ анти-эхо lock на 2–5 секунд;

✅ одна общая функция вместо десятков дублирующих веток.

Особенно если таких пар много: спальня, холл, подсветка, люстры, проходные клавиши и т.д.

📌 Пример логики внутри function-ноды

// Если второй выключатель уже в нужном состоянии — ничего не делаем

if (targetState === state) {

return null;

}

// Ставим временную блокировку от обратного события

flow.set("lock_until", Date.now() + 3500);

// Отправляем команду только если действительно нужно

msg.payload = {

service: state === "on" ? "turn_on" : "turn_off",

entity_id: target

};

return msg;

🏠 Итог

После такой переделки проходные выключатели перестают “переругиваться” между собой, а свет больше не моргает от догоняющих команд.

Но важно понимать: это лечит именно логику автоматизации. Если Zigbee-сигнал 🏠 реально плохой - лучше параллельно проверить LQI и добавить Zigbee-роутер рядом: розетку, реле или нормальное питаемое устройство.

Умный дом должен быть умным, а не устраивать дискотеку из-за задержки пакетов 😅

Ссылка: https://pastebin.com/GE98ZGAw

📺 Урок. Установка, Компаньон, Автоматизация Node Red в Home Assistant

📺 Урок. Импорт (копирование) чужих автоматизаций Node Red в Home Assistant

#HomeAssistant #NodeRED #Zigbee #УмныйДом #SmartHome #HA #Автоматизация #Zigbee2MQTT