Controllers were introduced with the idea that users could quickly change automations. However, that goal has not really been realized:
Users don't often switch automations.
There's only a small time cost if you instead had to turn off the controller and start it again (which is probably also consistent with the users mental model).
I think there's are lots of pros to remove controllers and instead purely working with automations:
much less code, both in the UI and the backend.
Faster boot times for jobs (no need to start a controller which boots an automation), and less network overhead.
easier experiment profiles: no need to use controllers to start an automation, and then modify the automation. This is probably very surprising to users.
some potential APIs
This is probably the easiest to implement
pio run temperature_automation --automation-name thermostat --target-temperature 30
this requires dynamic click stuff, not great
pio run thermostat --target-temperature 30
Migration considerations
New yaml job contrib files
Experiment profiles need to be corrected. I think this is just a replacement s/controller/automation/g
Controllers were introduced with the idea that users could quickly change automations. However, that goal has not really been realized:
I think there's are lots of pros to remove controllers and instead purely working with automations:
some potential APIs
This is probably the easiest to implement
this requires dynamic click stuff, not great
Migration considerations
s/controller/automation/g