Skip to content

Improve referencing triggers in automation conditions and actions #66

@nielsrowinbik

Description

@nielsrowinbik

Problem statement

To be ironed out, but in short: trigger IDs are unnecessarily hard to discover and work with.

For each trigger the user defines, we allow them to set a trigger ID. This setting is hidden in the UI by the default, but can be shown from the trigger's overflow menu:

Image

Next, the user is presented with a blank text input, allowing them to set whatever they want as the ID. In conditions and actions, they can then choose the "triggered by" condition and choose from the trigger IDs that they've set:

Image

We feel that this is an unnecessarily complex flow to introduce more flexibility into automations. The fact that the ID is hidden in an overflow menu represents a significant barrier. Additionally, using a technical term like ID adds to the complexity. Given our goal of making Home Assistant more approachable, we feel this is a quick win.

Scope & Boundaries

In scope

  • Improving how users can reference triggers within the automation editor UI by:
    • Auto-generating trigger IDs (keeping backward compatibility for those that have manually defined them)
    • Showing the trigger itself in the UI picker for the "triggered by" condition, rather than the IDs.

Not in scope

  • Defining trigger/condition/action input and output, paving the way for a node-based editor. We want to keep this small.

Foreseen solution

Manually setting trigger IDs should be something advanced, to be used in case you really want fine-grained control over what the trigger is referred to as. Besides that use case, it should "just work". By this we mean:

  • Auto-generating a (static) trigger ID for every trigger automatically.
  • Displaying the actual trigger in the condition picker, rather than the IDs (for manually set IDs we can consider showing them, but we shouldn't show the automatically generated ones).

No response

Community signals

Risks & open questions

No response

Appetite

No response

Execution issues

No response

Decision log

Date Decision Outcome

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

Considering

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions