Navaja

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…
Nothing leaves your browser. No upload, no account.

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.