Содержание
Если вы являетесь пользователем Home Assistant, возможно, вы слышали о недавнем улучшении синтаксиса YAML в средствах автоматизации Home Assistant. Эти изменения были разработаны для того, чтобы сделать код более понятным и естественным в использовании, но действительно ли они упрощают ситуацию или теперь он стал более сложным? В этой статье мы подробно расскажем, что именно изменилось и что это значит для вас как пользователя Home Assistant.
А теперь хорошая новость: эти изменения не являются «критическими изменениями». Ваши текущие средства автоматизации будут продолжать работать, и вам не придется беспокоиться об их обновлении, если только вы не захотите воспользоваться преимуществами нового синтаксиса. Итак, если вас устраивает текущая настройка, вы можете просто ничего не делать. Home Assistant не планирует удалять старый синтаксис, и все будет работать гладко.
Тем не менее, для новых средств автоматизации рекомендуется использовать новый и улучшенный синтаксис YAML. Если вы используете графический редактор для создания или изменения автоматизации, он автоматически сгенерирует код в новом стиле. Но что именно изменилось и почему стоит рассмотреть возможность перехода на обновленный синтаксис? Давайте разберемся!
Что изменилось в синтаксисе YAML?
В Home Assistant версии 2024.8 ключ «service» был переименован в «action» как в пользовательском интерфейсе, так и в YAML. Следуя той же идее, они внесли некоторые обновления для улучшения синтаксиса YAML в автоматизации. Давайте посмотрим на главные изменения:
- ключ trigger теперь triggers (множественное число).
- ключ condition теперь conditions (множественное число).
- ключ action теперь actions (множественное число).
Причина этого изменения проста: большинство процессов автоматизации состоят из нескольких этапов. Независимо от того, настраиваете ли вы несколько триггеров, условий или действий, использование формы множественного числа делает код более последовательным и простым для понимания.
Еще одним важным обновлением является ключ platform, который теперь называется просто trigger в новом синтаксисе. Это еще больше упрощает определение автоматизации в YAML.

Для обычных пользователей эти изменения не повлияют на работу текущих средств автоматизации. Старый синтаксис будет поддерживаться бесконечно, поэтому паниковать не стоит. Но если вы создаете новые средства автоматизации или настраиваете старые, вы начнете видеть обновленный синтаксис, особенно если вы используете графический редактор.
Пример: старый и новый синтаксис
Давайте рассмотрим пример простой автоматизации, которая включает свет в спальне на закате. В этом примере будут показаны различия между старым и новым синтаксисом:
Старый синтаксис:
alias: "Old YAML Syntax" description: "HA 2024.9 release or lower"
trigger: - platform: sun event: sunset condition: - condition: state entity_id: light.bedroom state: 'off' action: - action: light.turn_on
target: entity_id: light.bedroom
Новый синтаксис:
alias: "Improved YAML Syntax"
description: "From HA 2024.10 release or higher"
triggers:
- trigger: sun
event: sunset
conditions:
- condition: state
entity_id: light.bedroom
state: 'off'
actions:
- action: light.turn_on
target:
entity_id: light.bedroom
Как видите, новый синтаксис использует формы множественного числа для triggers
, conditions
и actions
. Ключ platform
был заменен на trigger
и хотя это может показаться небольшим изменением, оно помогает сделать код более последовательным и естественным для чтения.
Более глубокое погружение в новый синтаксис
Теперь давайте разберемся, что означает новый синтаксис множественного числа для реального использования. Если в вашей автоматизации есть несколько триггеров, условий или действий, новый формат позволит увидеть все сразу. Вам больше не придется работать со смешанными формами единственного и множественного числа, что иногда может затруднить чтение кода.
Например, предположим, что у вас есть два триггера для включения света: один для заката, а другой для обнаружения движения. В старом синтаксисе у вас было бы что-то вроде этого:
Старый синтаксис (несколько триггеров):
trigger: - platform: sun event: sunset platform: state entity_id: sensor.motion to: 'on'
Новый синтаксис (несколько триггеров):
triggers: - trigger: event: sunset trigger: state entity_id: sensor.motion to: 'on'
Обратите внимание, как форма множественного числа ясно дает понять, что вы имеете дело с несколькими триггерами. Тот же принцип применим к условиям и действиям.
Используя форму множественного числа для этих разделов, улучшенный синтаксис YAML становится более структурированным, особенно в более сложных системах автоматизации. Это похоже на организацию ваших мыслей по отдельным категориям, что помогает как новичкам, так и опытным пользователям более эффективно управлять автоматизацией.
Использование графического редактора
Если вам неудобно писать код YAML напрямую, графический редактор автоматизации в Home Assistant сгенерирует для вас YAML, используя новый синтаксис. Это позволяет очень легко создавать сложную автоматизацию, не беспокоясь о правильности синтаксиса. Я настоятельно рекомендую по возможности использовать графический редактор — это экономит время и гарантирует правильное форматирование вашего YAML.
Заключение
Новый и улучшенный синтаксис YAML для автоматизации Home Assistant — долгожданное изменение для большинства пользователей. Он обеспечивает последовательность, ясность и простоту использования, особенно для тех, кто только начинает работать с Home Assistant. Хотя старый синтаксис продолжит работать, использование нового формата множественного числа triggers
, conditions
и actions
это правильный ход, не так ли?
Вам нравится новый синтаксис? Дайте мне знать в комментариях ниже, набрав простое «Да» или «Нет». Я хотел бы услышать ваши мысли!