SHOULD being the operative word here.
Consider a very common, straightforward usecase: changing the brightness of lights that are currently on, while leaving off lights off.
There is no native support for anything like this, so we must turn to a custom script, HACS, or an add-on. I have had a career writing software for over 20 years. Writing a script with conditionals, or any kind of logic, or any kind of complexity in YAML is…insane. It’s just insane. It’s like if someone handed you a spreadsheet and told you to build a video game with it.
The fact that we need an HACS add on or a script to do something like changing the brightness of all lights currently on is a massive UX smell.
Also, “variables”—a concept that has been part of programming since the 1950s, a concept so tightly integrated into computing that almost all laypeople understand it conceptually—are for some incomprehensible reason called “Helpers”, and values are stored as strings!! Booleans are called Toggles in the Add Helper menu, but their Entity type is input_boolean (please correct me if my info is out of date).
Every system has to grapple with these kinds of architectural decisions, so friction is understandable in 2019, tolerable in 2020, and a nightmare beyond that. The entire taxonomy is insane, and so deeply unintuitive it’s like it was designed to be confusing. Devices and Entities being distinct, Automations and Scripts being distinct. Logs and Logbook being distinct. Murky info about global variables and script scope. Core and OS are separate images. These kinds of things, even when intuitively named and explained, are not for laypeople, and laypeople don’t care to know them. But the concepts are required understanding if one wants to customize their setup.
All of this is surmountable for a person with the time and resources. And as DIY people we have some time we like to dedicate to HA. But at least for me, HA has killed 100% of the joy of home automation because of the timesuck caused by the most menial of tasks. And it is very very frustrating to see resources being poured into things like Voice Assistants and Shopping Lists, when there are endless quality-of-life improvements just chilling in github issues.
This is not a commercial product, but it is being marketed as one. I pay for Nabu Casa, which works when it feels like working and doesn’t other times. The mobile app, the desktop app, and the browser webapp have UI inconsistencies in the damn dashboard. The mobile app doesn’t work with a self-signed cert. Some integrations refuse to start when they’re not in the mood.
Many people replying saying “my updates take 5 minutes”. Sure, when they work seamlessly. But have you never had a Core update not agree with an OS update? God forbid both get too far out of date…And if you choose to update both upon release, you are basically beta testing and hoping for the best, because the team is very aggressive with their releases.
The entire thing needs to be rethought and overhauled. It’s an unintuitive nightmare. But it’s far too late for that. Moreover, things are currently as bad as they are because of prior rethinking and overhauling. It’s just bad software. Yes, all software is bad. But HA is painfully bad. My opinion.