I’ve split my automations off into several categories:
contacts - non-door contact sensors (I’ve got one on my mailbox)
doors - door contacts including warnings when doors are left open or opened when we’re gone
lighting - synchronizing sets of lights and switches
motion - motion detection warnings
presences - people movement and associated notifications
remotes - physical buttons for various lights, scenes, etc.
ring - doorbell and outside garage camera/light
timing - time of day, sun position, and timed switches (that turn off after a set time)
These are all separate .yaml files in my /config/automations/ folder.
There’s also a line in my /config/configuration.yaml file as follows:
automation yaml: !include_dir_merge_list automations/
I designed my config around several “categories” eg. Climate, Presence, Light, Fan, Alarm etc. All of my automations are named to reflect the category. All my scripts, automations, templates, helpers etc revolve around those categories. I’ve split my config and use packages to organize all the YAML stuff that isn’t automations or templates. Those are kept in subfolders named after the category. Keeps everything organized and easy to find.
Automations and scripts are always named to reflect the category.
I use comments in the automation to describe the specific action(s) and trigger(s), etc.
This is OK as long as you’re looking at the actual script for the automation.
I also try to name my automations so that the general concept is fairly clear from the name.
This can result in longer names, but it does aid in remembering what it was supposed to do when I’m looking at it 6 months later