5 скрытых приёмов, с которыми вы полностью обуздаете автоматизацию Home Assistant — пора покончить с надоедливой какофонией уведомлений!

An iPhone showing 34 notifications from Home Assistant.

Когда я настраиваю автоматизацию в Home Assistant, результат не всегда совпадает с ожиданиями. Иногда сценарий начинает срабатывать по нескольку раз подряд буквально за секунду. Если у вас похожая ситуация, не переживайте: есть простые способы всё исправить.

Выбирайте подходящий режим работы автоматизации

Один из самых простых способов избавиться от лишних запусков — проверить выбранный режим сценария. В Home Assistant доступно четыре режима, и от вашего выбора зависит, что произойдёт, если во время выполнения поступит новый сигнал на запуск.

Выбор режима single в редакторе автоматизации Home Assistant.

В режиме «single» (стоит по умолчанию) даже если сработало несколько запусков подряд, пока автоматизация выполняется — новые попытки игнорируются. Если нужно другое поведение, выберите режимы «restart», «queued» или «parallel»:

«Restart» — каждый новый триггер тут же перезапускает сценарий. «Queued» — все новые попытки встают в очередь и срабатывают одна за другой. «Parallel» — каждый новый запуск идёт независимо, одновременно с другим.

Эти режимы работают только пока длится автоматизация. Как только сценарий завершился — он снова готов стартовать столько раз, сколько потребуется.

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

Как настроить автоматизации, чтобы они работали для вас и вашей семьи

Попробуйте этот простой метод, чтобы понять, что именно облегчит вам жизнь дома

Убирайте ложные срабатывания с помощью «for»

Часто автоматизации начинают запускаться взахлёб — датчик буквально «дёргается» возле порога или скачет туда-сюда. Например, если сценарий реагирует на открытие двери, а контакт неплотно прилегает, автоматизация может выстрелить несколько раз, пока дверь просто захлопывается.

Действие в автоматизации Home Assistant с параметром for, установленным на 2 секунды.

Избавиться от таких «мигающих» срабатываний помогает параметр «for» в настроиках триггера. Автоматизация включится только если нужное состояние удерживается не менее указанного времени. Например, если дверной датчик находится в состоянии «закрыто» хотя бы 2 секунды — вот тогда и начнёт работать сценарий.

Гистерезис: используйте два порога вместо одного

Гистерезис — отличный способ снизить количество лишних срабатываний, если сенсор болтается рядом с критической отметкой. Смысл прост: вместо одного значения на вход/выход ставьте сразу два, чуть разнесённых друг от друга. Автоматизация сработает при достижении верхнего порога, а выключится — только когда сенсор опустится ниже нижнего. На промежутке между ними ничего не случится.

Пороговый сенсор в Home Assistant.

Самый простой способ внедрить гистерезис в Home Assistant — использовать помощник Threshold. Укажите нужный датчик, граничные значения и насколько «отступить» от порога перед следующей сменой состояния.

К примеру: у вас температурный сенсор. Верхний порог — 20, гистерезис — 1. В результате автоматизация включается только если температура превысила 21, а выключение произойдёт, когда опустится ниже 19 градусов. Именно на такой «виртуальный» датчик лучше завязывать сценарии — чтобы исключить повторные циклы от случайных скачков исходных значений.

Введите антиспам-таймер (cooldown)

Ещё один эффективный способ — добавить минимальную задержку между срабатываниями сценария, чтобы не получалось запусков друг за другом.

Есть несколько способов реализовать это. Если вы используете режим «single», достаточно добавить действие «delay» в конце сценария — пока таймер не закончится, автоматизация не запустится заново.

Есть и более гибкий вариант: добавить шаблонное условие, сравнивающее текущее время с последним запуском. Если прошло меньше нужного интервала — сценарий просто не включится.

Автоматизация Home Assistant с шаблонным условием.

В шаблонном условии вы просто вычисляете разницу времени между сейчас и последним запуском. Если пауза меньше заданной — запуск отменяется. Вот наглядный пример такого условия:


Подпишитесь, чтобы ваши автоматизации стали умнее и удобнее!

{{ (now() - (state_attr('automation.your_automation_name', 'last_triggered') | default(as_datetime(0), true))) > timedelta(minutes=5) }} Такое условие позволит автоматизации стартовать не чаще раза в 5 минут. А часть default(as_datetime(0), true) спасает, если история запусков пока пуста — например, когда вы только что всё настроили.

Рука держит смартфон, над экраном парят иконки умного дома.

6 домашних автоматизаций, которые выглядят как настоящее волшебство

Порой мне самому не верится, что мой дом действует сам — как будто я настоящий волшебник.

Используйте триггеры по изменению состояния (edge triggering)

Иногда случается так, что датчики теряют соединение с Home Assistant. Если у вас сценарий реагирует на включение, запуск может происходить каждый раз, когда устройство возвращается онлайн и переходит со статуса «неопределённо» или «недоступно» на «включено».

Автоматизация Home Assistant с триггером от состояния и к состоянию.

Удобно настроить триггер строго на переход между двумя состояниями. Например, запускать сценарий только когда устройство меняет статус именно с «выключено» на «включено». Тогда автоматизация не активируется при возвращении из «неопределённо» → «включено».

Таких «подводных камней» с автоматизациями может быть много. Главное — найти, в чём причина лишних срабатываний, и применить правильный способ решения. Грамотно настроенные сценарии не мешают по пустякам и работают только тогда, когда это действительно нужно.

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка — это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!

Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в:

Алекс Бежбакин
Оцените автора
Добавить комментарий