top | item 42838732

(no title)

farawayea | 1 year ago

It's a major pain to write YAML for Home Assistant. Some parts of Home Assistant lack complete examples which are up to date. The documentation doesn't include examples for every single thing. Part of writing some automations was just a lot of trial and error, looking things up on the Internet, validating the configuration, and restarting Home Assistant. It's just not a great experience.

Discovering what has to be selected to use as an action in the automation GUI is another nuisance. The most recent example is with a light I wanted to set to 20% brightness. I had no means to find something with the keyword "brightness" or anything similar. It turned out that this was exposed as turn light on.

Breaking changes are their own source of friction. My only advantage has been that many of my automations are now just GUI automations with some custom YAML where it can't be avoided.

All of these things are far beyond what a non-technical user could be able to do. It can be difficult even for someone who knows how to look things up, read documentation and update everything when breaking changes are made.

Home Assistant isn't the kind of tool one can put in someone else's hands to use it without additional maintenance or supervision. It's also not the tool to use in any commercial setting due to its countless problems.

discuss

order

kkfx|1 year ago

Well... GUI automation is not automation. It can't be. Automation must be automateable, code is, since you can save in a text file, versioned etc. GUIs can't. Reproducing them means doing countless step every time, hard to document with screenshots etc instead of "here the snippet" and Python code is self-documented, so discovering how to do things is MUCH easier, YAML need to be read from source code, not just importing a module and run help(modname). That's why to me HA should be pure-python NOT "sold" as a pre-deployed blackbox but as a simple pip-able package. Anyone could easily integrate it in anything else, documenting could be just the code for most simple stuff or a wiki with shared personal configs. Those can be automated as well to test it's validity pinging the author when a snippet fails as well.

That's the power of automation, of code, of end-users programming. Harnessing it means reduce all efforts after the first implementation and speed up anything breaking changes as well.

farawayea|1 year ago

Thanks. I understand where you're coming from now. Your requirement to use Python code for automation could be satisfied by an external component which uses the Home Assistant API or through some internal custom Python based component which runs your code for automation.

The current setup for automations isn't good for anyone - not for end users, not for developers. I've resorted to using the UI because it seemed to be less likely to break across releases.