mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-05-02 09:17:35 +00:00
181 lines
5.5 KiB
Markdown
181 lines
5.5 KiB
Markdown
---
|
|
title: "Automation Trigger Variables"
|
|
description: "List all available variables made available by triggers."
|
|
---
|
|
|
|
Automations support [templating](/docs/configuration/templating/) in the same way as scripts do. In addition to the [Home Assistant template extensions](/docs/configuration/templating/#home-assistant-template-extensions) available to scripts, the `trigger` and `this` template variables are available.
|
|
|
|
The template variable `this` is also available when evaluating any `trigger_variables` declared in the configuration.
|
|
|
|
## Available this Data
|
|
|
|
Variable `this` is the [state object](/docs/configuration/state_object) of the automation. State objects also contain context data which can be used to identify the user that caused a script or automation to execute.
|
|
|
|
## Available Trigger Data
|
|
|
|
The following tables show the available trigger data per platform.
|
|
|
|
### All
|
|
|
|
The following describes trigger data associated with all platforms.
|
|
|
|
| Template variable | Data |
|
|
| ---- | ---- |
|
|
| `trigger.id` | Optional trigger `id`, or index of the trigger.
|
|
| `trigger.idx` | Index of the trigger.
|
|
|
|
### Device
|
|
|
|
| Template variable | Data |
|
|
| ---- | ---- |
|
|
| `trigger.platform` | Hardcoded: `device`.
|
|
| `trigger.event` | Event object that matched.
|
|
| `trigger.event.event_type` | Event type.
|
|
| `trigger.event.data` | Optional event data.
|
|
|
|
### Event
|
|
|
|
| Template variable | Data |
|
|
| ---- | ---- |
|
|
| `trigger.platform` | Hardcoded: `event`.
|
|
| `trigger.event` | Event object that matched.
|
|
| `trigger.event.event_type` | Event type.
|
|
| `trigger.event.data` | Optional event data.
|
|
|
|
### MQTT
|
|
|
|
| Template variable | Data |
|
|
| ---- | ---- |
|
|
| `trigger.platform` | Hardcoded: `mqtt`.
|
|
| `trigger.topic` | Topic that received payload.
|
|
| `trigger.payload` | Payload.
|
|
| `trigger.payload_json` | Dictionary of the JSON parsed payload.
|
|
| `trigger.qos` | QOS of payload.
|
|
|
|
### Numeric State
|
|
|
|
| Template variable | Data |
|
|
| ---- | ---- |
|
|
| `trigger.platform` | Hardcoded: `numeric_state`
|
|
| `trigger.entity_id` | Entity ID that we observe.
|
|
| `trigger.below` | The below threshold, if any.
|
|
| `trigger.above` | The above threshold, if any.
|
|
| `trigger.from_state` | The previous [state object] of the entity.
|
|
| `trigger.to_state` | The new [state object] that triggered trigger.
|
|
| `trigger.for` | Timedelta object how long state has met above/below criteria, if any.
|
|
|
|
### State
|
|
|
|
| Template variable | Data |
|
|
| ---- | ---- |
|
|
| `trigger.platform` | Hardcoded: `state`
|
|
| `trigger.entity_id` | Entity ID that we observe.
|
|
| `trigger.from_state` | The previous [state object] of the entity.
|
|
| `trigger.to_state` | The new [state object] that triggered trigger.
|
|
| `trigger.for` | Timedelta object how long state has been to state, if any.
|
|
|
|
### Sun
|
|
|
|
| Template variable | Data |
|
|
| ---- | ---- |
|
|
| `trigger.platform` | Hardcoded: `sun`
|
|
| `trigger.event` | The event that just happened: `sunset` or `sunrise`.
|
|
| `trigger.offset` | Timedelta object with offset to the event, if any.
|
|
|
|
### Template
|
|
|
|
| Template variable | Data |
|
|
| ---- | ---- |
|
|
| `trigger.platform` | Hardcoded: `template`
|
|
| `trigger.entity_id` | Entity ID that caused change.
|
|
| `trigger.from_state` | Previous [state object] of entity that caused change.
|
|
| `trigger.to_state` | New [state object] of entity that caused template to change.
|
|
| `trigger.for` | Timedelta object how long state has been to state, if any.
|
|
|
|
### Time
|
|
|
|
| Template variable | Data |
|
|
| ---- | ---- |
|
|
| `trigger.platform` | Hardcoded: `time`
|
|
| `trigger.now` | DateTime object that triggered the time trigger.
|
|
|
|
### Time Pattern
|
|
|
|
| Template variable | Data |
|
|
| ---- | ---- |
|
|
| `trigger.platform` | Hardcoded: `time_pattern`
|
|
| `trigger.now` | DateTime object that triggered the time_pattern trigger.
|
|
|
|
### Webhook
|
|
|
|
| Template variable | Data |
|
|
| ---- | ---- |
|
|
| `trigger.platform` | Hardcoded: `webhook`
|
|
| `trigger.webhook_id` | The webhook ID that was triggered.
|
|
| `trigger.json` | The JSON data of the request (if it had a JSON content type).
|
|
| `trigger.data` | The form data of the request (if it had a form data content type).
|
|
| `trigger.query` | The URL query parameters of the request (if provided).
|
|
|
|
### Zone
|
|
|
|
| Template variable | Data |
|
|
| ---- | ---- |
|
|
| `trigger.platform` | Hardcoded: `zone`
|
|
| `trigger.entity_id` | Entity ID that we are observing.
|
|
| `trigger.from_state` | Previous [state object] of the entity.
|
|
| `trigger.to_state` | New [state object] of the entity.
|
|
| `trigger.zone` | State object of zone
|
|
| `trigger.event` | Event that trigger observed: `enter` or `leave`.
|
|
|
|
## Examples
|
|
|
|
{% raw %}
|
|
|
|
```yaml
|
|
# Example configuration.yaml entries
|
|
automation:
|
|
trigger:
|
|
- platform: state
|
|
entity_id: device_tracker.paulus
|
|
id: paulus_device
|
|
action:
|
|
- service: notify.notify
|
|
data:
|
|
message: >
|
|
Paulus just changed from {{ trigger.from_state.state }}
|
|
to {{ trigger.to_state.state }}
|
|
|
|
This was triggered by {{ trigger.id }}
|
|
|
|
automation 2:
|
|
trigger:
|
|
- platform: mqtt
|
|
topic: "/notify/+"
|
|
action:
|
|
service: >
|
|
notify.{{ trigger.topic.split('/')[-1] }}
|
|
data:
|
|
message: "{{ trigger.payload }}"
|
|
|
|
automation 3:
|
|
trigger:
|
|
# Multiple entities for which you want to perform the same action.
|
|
- platform: state
|
|
entity_id:
|
|
- light.bedroom_closet
|
|
- light.kiddos_closet
|
|
- light.linen_closet
|
|
to: "on"
|
|
# Trigger when someone leaves one of those lights on for 10 minutes.
|
|
for: "00:10:00"
|
|
action:
|
|
- service: light.turn_off
|
|
target:
|
|
# Turn off whichever entity triggered the automation.
|
|
entity_id: "{{ trigger.entity_id }}"
|
|
```
|
|
|
|
{% endraw %}
|
|
|
|
[state object]: /docs/configuration/state_object/
|