It would seem logical to name them for where they are and what they do. “Bathroom motion sensor”, “Bedroom lamp”, etc. However, I’ve found that, if it can move, it ends up moving sooner or later. My “bathroom” motion sensor is now in the upstairs family room, for example.


Entities I strongly recommend naming them like this:
{location}_{type}For example
This way if you change devices, you can swap entity names and everything works. Also YAML code is much easier to read and write.
Devices? That’s more difficult to name, but also way less important, IMO. Usually I try to follow the same scheme as for entities, but sometimes I just prefer something else, like the actual brand, date of install…