Автоматизация в home assistant — это правило вида «если случилось событие, и выполнено условие, то сделать действие». Любой сценарий, от включения света по датчику движения до уведомления о протечке, собирается из трёх блоков: триггеров, условий и действий. Ниже разберём, как устроен каждый блок, как создать первую автоматизацию в интерфейсе и в YAML и как искать ошибки, если она не срабатывает.
1Из чего состоит автоматизация в Home Assistant
Автоматизация описывается тремя ключами верхнего уровня (синтаксис актуален для версий 2024.10 и новее):
triggers— что запускает правило. Достаточно, чтобы сработал любой из перечисленных триггеров.conditions— проверки на момент срабатывания. Если хотя бы одно условие ложно, действия не выполняются. По умолчанию условия объединены по «И».actions— что нужно сделать: вызвать службу, отправить уведомление, подождать, выбрать ветку выполнения.
Кроме них у автоматизации есть идентификатор id, название alias, описание и режим выполнения mode.
2Основные типы триггеров
| Триггер | Когда срабатывает | Пример |
|---|---|---|
state |
Состояние сущности изменилось | Датчик движения стал on |
time |
Наступило заданное время | Каждый день в 07:00 |
time_pattern |
Через равные интервалы | Каждые 15 минут |
sun |
Восход или закат (со смещением) | За 30 минут до заката |
numeric_state |
Число пересекло порог | Температура ниже 18 |
zone |
Человек вошёл в зону или вышел | Прибытие домой |
event |
Произошло событие шины HA | Нажата кнопка Zigbee |
template |
Шаблон стал истинным | Сумма мощностей выше порога |
homeassistant |
Запуск или остановка HA | После старта системы |
Для триггера state полезны параметры from, to и for. Последний задаёт, как долго состояние должно сохраняться, чтобы правило сработало: это основа защиты от ложных срабатываний.
3Создаём первую автоматизацию в интерфейсе
- Откройте «Настройки» → «Автоматизации и сцены» → «Создать автоматизацию».
- Выберите «Создать новую автоматизацию» и нажмите «Добавить триггер». Укажите тип «Сущность → Состояние», выберите датчик движения и состояние «Обнаружено».
- В блоке «Условия» добавьте условие «Время» или «Солнце», чтобы свет включался только в тёмное время.
- В блоке «Действия» выберите «Вызов службы» (в новых версиях — «Выполнить действие») и укажите
light.turn_onдля нужного светильника. - Сохраните и дайте название, например «Свет в коридоре по движению».
- Через меню с тремя точками можно переключиться в режим YAML и увидеть то, что собрал редактор.
4Автоматизация в Home Assistant на YAML: рабочий пример
Ниже правило, которое включает свет в коридоре при движении, если на улице темно, а выключает через две минуты после того, как движение прекратилось.
alias: "Свет в коридоре по движению"
description: "Включает свет при движении и выключает через 2 минуты"
mode: restart
triggers:
- trigger: state
entity_id: binary_sensor.corridor_motion
to: "on"
conditions:
- condition: sun
after: sunset
after_offset: "-00:30:00"
before: sunrise
actions:
- action: light.turn_on
target:
entity_id: light.corridor
data:
brightness_pct: 60
- wait_for_trigger:
- trigger: state
entity_id: binary_sensor.corridor_motion
to: "off"
for: "00:02:00"
- action: light.turn_off
target:
entity_id: light.corridor
Обратите внимание на mode: restart. Если движение снова появится, пока автоматизация ждёт, она перезапустится и отсчёт начнётся заново. Без этого при режиме по умолчанию (single) повторный запуск просто будет проигнорирован.
5Режимы выполнения и ветвление
Режим mode определяет, что произойдёт, если автоматизация запускается снова, пока выполняется предыдущий запуск:
single— новый запуск игнорируется (по умолчанию);restart— текущий запуск прерывается, начинается новый;queued— запуски становятся в очередь (maxзадаёт её длину);parallel— запуски работают одновременно.
Для ветвления внутри действий используйте choose, для простых проверок — if / then / else. Пример с выбором по времени суток:
actions:
- choose:
- conditions:
- condition: time
after: "23:00:00"
before: "06:00:00"
sequence:
- action: light.turn_on
target:
entity_id: light.corridor
data:
brightness_pct: 10
default:
- action: light.turn_on
target:
entity_id: light.corridor
data:
brightness_pct: 80
Ночью свет включится тускло, днём и вечером — ярче. Для сложных случаев в данных можно использовать шаблоны Jinja2, например "{{ states('sensor.lux') | float(0) }}". Если шаблон возвращает не число, всегда задавайте значение по умолчанию внутри float() или int(), иначе при недоступном датчике правило упадёт с ошибкой.
Условия и несколько триггеров в одном правиле
Условия бывают нескольких видов: по состоянию сущности (state), числовому значению (numeric_state), времени, дню недели, солнцу, зоне и шаблону. Для логики «ИЛИ» и «НЕ» используйте составные условия or и not. Рассмотрим правило с двумя триггерами, где действие зависит от того, какой из них сработал:
alias: "Вентилятор в ванной"
mode: single
triggers:
- trigger: numeric_state
entity_id: sensor.bathroom_humidity
above: 70
id: "wet"
- trigger: numeric_state
entity_id: sensor.bathroom_humidity
below: 55
id: "dry"
conditions:
- condition: not
conditions:
- condition: state
entity_id: input_boolean.guest_mode
state: "on"
actions:
- choose:
- conditions:
- condition: trigger
id: "wet"
sequence:
- action: switch.turn_on
target:
entity_id: switch.bathroom_fan
- conditions:
- condition: trigger
id: "dry"
sequence:
- action: switch.turn_off
target:
entity_id: switch.bathroom_fan
Здесь два порога образуют гистерезис: вентилятор включается при влажности выше 70 % и выключается ниже 55 %. Такой подход не даёт устройству дребезжать вокруг одного значения. Условие с input_boolean.guest_mode показывает, как отключить правило по ручному переключателю, не удаляя его.
Идентификаторы триггеров (id) также доступны в шаблонах как trigger.id, а данные о сработавшей сущности — как trigger.entity_id и trigger.to_state.state. Это позволяет написать одну автоматизацию на несколько однотипных датчиков.
6Как проверить и отладить автоматизацию
- Откройте автоматизацию и перейдите в «Трассировки». Там видно, какой триггер сработал, какие условия прошли и где остановилось выполнение.
- Нажмите «Запустить действия» в меню автоматизации, чтобы проверить блок действий без триггера.
- Посмотрите журнал в «Настройки» → «Система» → «Журналы»: ошибки шаблонов и недоступные службы попадают туда.
- Убедитесь, что автоматизация включена (переключатель справа в списке) и сущность триггера действительно меняет состояние. Проверить это можно в «Инструменты разработчика» → «Состояния».
Самые частые причины «не работает»: опечатка в entity_id, значение to: on без кавычек (YAML превращает его в булево), условие по времени или солнцу, которое не выполняется, и режим single при долгом действии.
Если логика получается запутанной, воспользуйтесь бесплатным конструктором автоматизаций: он собирает корректный YAML по выбранным триггерам и действиям.
7Частые вопросы
Чем автоматизация отличается от скрипта и сцены?
Автоматизация запускается сама по триггеру. Скрипт — это именованная последовательность действий, которую вызывают вручную или из автоматизаций. Сцена хранит набор состояний устройств и применяет их одной командой.
Можно ли использовать несколько триггеров?
Да. Достаточно сработать любому из них. Чтобы действия различались, каждому триггеру задают id и проверяют его условием condition: trigger.
Куда сохраняются автоматизации?
Созданные в интерфейсе хранятся в файле automations.yaml в каталоге конфигурации. Редактировать его вручную можно, но после правки нужно перезагрузить автоматизации в «Инструменты разработчика» → «YAML».
Нужно ли знать YAML?
Для простых правил хватает визуального редактора. YAML нужен для сложных сценариев, копирования готовых решений и удобной правки.
8Итог
Главное, что стоит запомнить: триггер отвечает на вопрос «когда», условие — «можно ли сейчас», действие — «что делать». Если разделять эти роли, правила получаются короткими и легко читаются через полгода.
Начинайте с простых правил: один триггер, одно-два условия, одно действие. Проверяйте каждое через трассировку и усложняйте постепенно. Если нужна сложная логика с учётом присутствия, климата и расписаний, закажите автоматизацию на заказ — специалист соберёт и протестирует сценарии под ваш дом.



