Converter · runs in your browser
Old automation YAML, modern syntax
Home Assistant renamed the automation keys. Nothing broke — but every guide you read now uses names your own file does not have. Paste it here and the two will match.
Your automation is not broken. The old keys still work and Home Assistant has said they are not going away. This is for when you are following today's documentation and your own file does not look like it — or when you copied something from a 2022 blog post and the two do not match.
Waiting for your YAML…
What actually changed
Four renames, introduced in Home Assistant 2024.10. The sections that hold a list became plural, and the key inside each item took the singular name.
| Old | New | Where |
|---|---|---|
trigger: | triggers: | The section heading |
condition: | conditions: | The section heading |
action: | actions: | The section heading |
platform: | trigger: | Inside each trigger |
service: | action: | Inside each action step |
The part that trips up find-and-replace
Two of those keys are spelled the same as keys that must not change, so a search-and-replace across your file will quietly corrupt it.
condition: means two different things. As a heading it introduces the list. One level down it names the kind of condition, and there it stays singular forever.
conditions: ← the list. This one becomes plural.
- condition: state ← the kind of condition. Never changes.
entity_id: person.me
state: home
platform: is not always a trigger. Under sensor:, light: or notify: it names the integration. Rename that one and the entity stops existing.
sensor: - platform: template ← an integration. Leave it alone. triggers: - trigger: state ← this is the one that used to say platform:
This tool decides by where a key sits, not by how it is spelled: it tracks which section every line is inside, so a platform: under sensor: is left exactly as it was, and one inside wait_for_trigger: is converted like any other trigger.
Questions people ask
Will my automations stop working if I do not do this?
No. Home Assistant said the old syntax keeps working and there are no plans to remove it. This is about your file reading like the documentation, not about a deadline.
Why not just find-and-replace?
Because condition: is both the section heading and the kind of condition, and platform: is both a trigger type and an integration name. A blind replace turns - condition: state into something Home Assistant rejects, or renames the platform: under sensor: and deletes your entity.
Does it keep my comments?
Yes. Only the key name is swapped — indentation, comments, quoting and blank lines all come out exactly as you pasted them.
What about service: inside data:?
Left alone. Inside data: you are passing values to something else, so a key called service there is your data, not a call Home Assistant makes.
Is my configuration sent anywhere?
No. It runs entirely in your browser. No server, no logging, no account.