In the upcoming releases, we aim to make automation creation easier with @jenova70. Please let us know your thoughts on our proposed solution to the issues we want to address.
Issues
Home Assistant’s automation engine is one of the most powerful on the market, but this comes at a cost: It’s not the easiest to approach.
1. Triggers and conditions are hard to choose and configure
Entity and Numeric state triggers are powerful and flexible but can be challenging to understand, especially for those who are new to Home Assistant. Device triggers are easier to use, but these don’t let us fully use the power of the automation editor.
When we want to search on a common trigger, like motion
or temperature
, we won’t get any results. As these are part of the State or Numerical state trigger.
2. Common triggers and conditions are complex to achieve
In order to perform seemingly easy tasks, we must understand how data flows into the internal state machine and how it is represented. For example:
- “When the target temperature of my thermostat goes above 22 degrees”. Requires knowledge that this is an attribute, not a state.
- “When my front door opens”. We need to understand that it’s a
binary_sensor
,lock
orcover
.
3. Difficult to trigger something on a scope that is bigger than an entity
Automation is tightly coupled with the state machine. If something isn’t in the state machine, it’s difficult (or impossible) to automate. Currently, the only workaround is creating helpers to persist such data. For example:
- “When at least one light in the living room turns on”. We have to create a group helper.
- “When any of my switches labeled
always_on
turns off”. Labels are not available as trigger target. We can walk around that by creating some pretty advanced templates. - “When presence is detected on the second floor”. Areas are not available as trigger target.
Our solution
We plan to unwrap the triggers and conditions, allowing integrations to provide them. This is similar to what we did for actions. Integrations will define available triggers, conditions, and actions, which Home Assistant will then display in the automation editor. This will result in:
- Generic triggers and conditions such as
light
,climate
andfan
. And specific such asSonos
orLG Web OS
. - The ability to target areas, devices, and labels. Not just entities.
- A more intuitive “Add Trigger/Condition” dialog that only shows relevant options and supports search.
With these improvements, we will be able to create automations like:
- “When there is motion in the living room area, turn on all living room lights”
- “When a leak is detected, and if no-one is home, send a notification”
- “When lights labeled xmas turn on, start the Christmas playlist in living room”
Of course, we will still be able to use the State
and Numerical state
triggers for more complex use cases.
First results from user test are great. We feel like we are heading in the right direction, but want to continue getting feedback from the community. How do you feel about these improvements? Is there anything we may have missed here? We’re open for feedback!
Edit
Small clarification what we mean by allowing integrations to provide triggers and conditions, like it does with actions: