В визуальном редакторе Home Assistant можно настроить включение света в выбранной зоне за 30 минут до заката. Для этого нужны триггер, который запускает автоматизацию, и действие, которое включает свет; условия добавляются по необходимости.
Что понадобится
Для примера со светом нужны установленный Home Assistant, завершенный онбординг (первичная настройка), хотя бы одна добавленная интеграция и лампа, которую эта интеграция видит и которая назначена зоне (area). Если Home Assistant еще не установлен, обратитесь к гайду Установка Home Assistant.
Основные шаги
Откройте список Settings > Automations & scenes.
Шаг 1. Создайте автоматизацию
В правом нижнем углу выберите Create automation, затем Create new automation.
Шаг 2. Задайте триггер
В секции When нажмите Add trigger. Выберите триггер по цели (By target), по типу (By type) или поиском, затем настройте, за чем он следит. Несколько триггеров работают как альтернативы - автоматизацию запустит любой из них. Типы описаны в документации по триггерам.
Шаг 3. Добавьте условия
Условия необязательны и добавляются в секции And if кнопкой Add condition. Они проверяют текущую ситуацию уже после срабатывания триггера; если условие не выполнено, автоматизация останавливается. Из готовых типов доступны State, Numeric state, Time и Template.
Шаг 4. Настройте действие
Действия собираются в секции Then do. Нажмите Add action, например Turn on light, выберите, чем управлять, в блоке Targets, заполните опции и нажмите Save. Действия выполняются сверху вниз, и ошибка в одном из них обычно не дает выполниться следующим. Блоки Blocks добавляют ветвление, ожидание и повторение.
Шаг 5. Сохраните пример с закатом
Выберите триггер Sunset со смещением, как в обучающем руководстве. Заполните Offset, в Offset type выберите Before и укажите 30 минут. Действие - Turn on light, в Targets через Add target добавьте зону, где стоят лампы. Нажмите Save, введите имя и при желании описание, затем снова Save.
Шаг 6. Проверьте запуск и трассировку
Для проверки условия откройте Menu > Test, для отдельного действия - Menu > Run action.
Что произошло в запуске, показывает трассировка (журнал запуска). Откройте Traces, нажмите Select trace и выберите шаг на графике - в Step details и Changed variables видно состояние шага и изменившиеся переменные.
После правок YAML перед перезапуском Home Assistant запускайте Check configuration в разделе Settings > Tools > YAML.
Шаг 7. Проверьте шаблон отдельно
Шаблон удобнее отлаживать до вставки в автоматизацию. Откройте Settings > Tools > Template, вставьте шаблон в редактор шаблонов и следите за Result, Result type и сообщениями об ошибках - результат показывается прямо во время ввода. Если шаблон использует переменные trigger или this, задайте пробные значения через {% set %} на время проверки и удалите эти строки перед возвратом в автоматизацию.
Другие способы
YAML в интерфейсе. Откройте Menu > Edit in YAML - так редактируется вся автоматизация или отдельный триггер, условие и действие. Изменения сохраняются кнопкой Save, назад в редактор возвращает Edit in visual editor; вставленный YAML визуальный редактор умеет преобразовывать.
Файлы конфигурации. Оставьте подключение и добавляйте блоки с метками в configuration.yaml или других YAML-файлах:
automation: !include automations.yaml
После правки файлов перезагрузите автоматизации через Settings > Tools > YAML → YAML configuration reloading → Automations. У файловых автоматизаций должен быть текстовый id, иначе не будет отладочных трассировок; числовой id нужно брать в кавычки. Что можно задать через triggers, conditions, actions, variables и trace, подробно описано в документации по автоматизациям в YAML.
Blueprint (готовый шаблон автоматизации). Откройте Settings > Automations & scenes > Blueprints. Нажмите Import blueprint, вставьте адрес в Blueprint address, просмотрите Preview и завершите импорт. Затем выберите blueprint, заполните его входные параметры и нажмите Save - получится автоматизация. Набор входных параметров зависит от blueprint.
Триггер-шаблон. Триггер Template объединяет несколько сущностей или вычисления через поле Value template, при необходимости с задержкой For at least. Он срабатывает, когда результат шаблона меняется с ложного на истинный. В YAML это trigger: template с параметром value_template.
Режимы запуска. Поведение при наложении срабатываний меняется через Menu → Change mode:
| Режим | Поведение |
|---|---|
single | По умолчанию - новый запуск игнорируется, пока идет текущий |
restart | Текущий запуск останавливается и начинается заново, если проходят условия |
queued | Запуски выполняются в порядке старта |
parallel | Каждый запуск идет как независимая копия |
Что учесть
Автоматизация стартует, когда что-то меняется. Перезапуск Home Assistant останавливает идущие автоматизации и отменяет ожидающие интервалы For at least.
Триггер Numeric state crossed threshold срабатывает в момент пересечения порога Above или Below, а не повторно, пока значение остается за порогом, и сравнивает сырые значения без перевода единиц. Его интервал for сбрасывается при перезапуске или перезагрузке автоматизации.
Триггер State changed без полей From и To реагирует и на изменения одних атрибутов. Указание фильтра состояния подавляет такие изменения; from: null и to: null означают любое состояние и по-прежнему игнорируют обновления только атрибутов. Таймер for у этого триггера тоже сбрасывается при перезапуске или перезагрузке.
Шаблоны заменяют фиксированные значения или текст уведомления результатом вычислений на данных Home Assistant.
Частые проблемы
У пользователей форума помогали решения из таблицы. Для каждой проблемы указано число веток обсуждения.
| Проблема | Текст ошибки | Что помогало | Веток |
|---|---|---|---|
| Возвращение доступности устройства неожиданно запускает автоматизации | extra keys not allowed @ data['from']. Got None extra keys not allowed @ data['to']. Got None | Триггеры состояния с явными from и to и совпадающими ID сущностей; для света Shelly - триггер состояния со значениями on и off в from и to | 2 |
| Триггеры устройства у кнопки недоступны или не реагируют на короткое и длинное нажатие | - | Прослушать событие zha_event в Developer Tools, скопировать device_ieee и command и использовать эти данные в ручном триггере события. Разбор проблемы | 2 |
| Шаблон в MQTT-автоматизации читает не то свойство payload (содержимого сообщения) триггера | UndefinedError: 'dict object' has no attribute 'value_json' | Использовать trigger.payload_json в условии; для max_soc также указать верный топик (тему сообщений MQTT) | 2 |
| Кавычки в YAML ломают шаблонные данные или REST-команду | Error: Error rendering data template: UndefinedError: 'dict object' has no attribute 'calendar_event' | Для текста MQTT взять trigger.calendar_event.summary в кавычки; для REST-команды исправить отступы и кавычки в ее конфигурации | 2 |
| Действие устройства не принимает шаблонный пресет (режим) климата | Error: Preset mode {{preset_mode}} is not valid. Valid preset modes are: Wake up, away, home, TOU peak, sleep, away_indefinitely | Вызвать службу climate.set_preset_mode с шаблоном | 1 |
| Действие в автоматизации на blueprint падает из-за невыбранного календаря праздников | Errore: Error rendering data template: TypeError: unhashable type: 'list' | Выбрать входной параметр с календарем праздников | 1 |
| Сохранение автоматизации в интерфейсе падает с HTTP 500 | OSError: [Errno 16] Resource busy: '/config/tmp0a9w5j8t' -> '/config/automations.yaml' | Закомментировать отдельное монтирование automations.yaml как Docker-тома; смонтировать папку конфигурации целиком в /config, а не отдельные файлы | 1 |
Частые вопросы
Чем Run actions отличается от реального запуска?
Команда прогоняет последовательность действий, пропуская триггеры и условия верхнего уровня; условия внутри самой последовательности работают. Данные триггера Run actions не передает, как и Trigger automation, поэтому шаблоны с другими свойствами trigger при такой проверке завершатся ошибкой. Логику, зависящую от триггера, проверяйте воспроизведением реального события или имитацией подходящего изменения состояния. Значения свойств trigger, например trigger.platform, можно посмотреть в Changed variables настоящего запуска.
Как превратить автоматизацию на blueprint в обычную?
Выберите Take control в Menu, подтвердите Yes и нажмите Save. Автоматизация перестанет использовать blueprint, и появятся обычные настройки триггеров, условий и действий. Преобразование необратимо - будущие изменения blueprint к ней больше не применятся. Используйте этот способ, когда автоматизация показывает только входные параметры blueprint и не дает править логику.
Как оформить шаблон в YAML?
Однострочный шаблон берите в кавычки, а внутри него используйте противоположный тип кавычек. Для многострочного шаблона выбирайте блок по нужному результату. Блоки > и >- склеивают строки, а блоки | и |- сохраняют переводы строк. В обоих случаях соблюдайте одинаковые отступы. Эти правила оформления приведены в документации по шаблонам в YAML.



