5.0 KiB
title, description, ha_category, ha_iot_class, ha_release, ha_config_flow, ha_domain, ha_platforms
title | description | ha_category | ha_iot_class | ha_release | ha_config_flow | ha_domain | ha_platforms | ||
---|---|---|---|---|---|---|---|---|---|
IFTTT | Instructions on how to setup IFTTT within Home Assistant. |
|
Cloud Push | 0.8 | true | ifttt |
|
IFTTT is a web service that allows users to create chains of simple conditional statements, so-called "Applets". With the IFTTT component, you can trigger applets through the "Webhooks" service (which was previously the "Maker" channel).
Prerequisites
To be able to receive events from IFTTT, your Home Assistant instance needs to be accessible from the web and you need to have the external URL configured.
{% include integrations/config_flow.md %}
Using the incoming data
Events coming in from IFTTT will be available as events in Home Assistant and are fired as ifttt_webhook_received
. The data specified in IFTTT will be available as the event data. You can use this event to trigger automations.
For example, set the body of the IFTTT webhook to:
{ "action": "call_service", "service": "light.turn_on", "entity_id": "light.living_room" }
You then need to consume that incoming information with the following automation:
{% raw %}
automation:
- id: this_is_the_automation_id
alias: "The optional automation alias"
trigger:
- event_data:
action: call_service
event_type: ifttt_webhook_received
platform: event
condition: []
action:
- target:
entity_id: '{{ trigger.event.data.entity_id }}'
service: '{{ trigger.event.data.service }}'
{% endraw %}
Sending events to IFTTT
# Example configuration.yaml entry
ifttt:
key: YOUR_API_KEY
key
is your API key which can be obtained by viewing the Settings of the Webhooks applet. It's the last part of the URL (e.g., https://maker.ifttt.com/use/MYAPIKEY) you will find under My Applets > Webhooks > Settings.
Property screen of the Maker Channel
Once you have added your key to your configuration.yaml
file, restart your Home Assistant instance. This will load up the IFTTT integration and make a service available to trigger events in IFTTT.
Multiple IFTTT keys
If you have multiple IFTTT users you can specify multiple IFTTT keys with:
# Example configuration.yaml entry
ifttt:
key:
YOUR_KEY_NAME1: YOUR_API_KEY1
YOUR_KEY_NAME2: YOUR_API_KEY2
Testing your trigger
You can use Developer Tools to test your Webhooks trigger. To do this, open the Home Assistant sidebar, click on Developer Tools, and then the Services tab. Fill in the following values:
Field | Value |
---|---|
domain | ifttt |
service | trigger |
Service Data | {"event": "EventName", "value1": "Hello World"} |
When your screen looks like this, click the 'call service' button.
By default, the trigger is sent to all the API keys from configuration.yaml
. If you
want to send the trigger to a specific key use the target
field:
Field | Value |
---|---|
domain | ifttt |
service | trigger |
Service Data | {"event": "EventName", "value1": "Hello World", "target": "YOUR_KEY_NAME1"} |
The target
field can contain a single key name or a list of key names.
Setting up a recipe
Press the New applet button and search for Webhooks.
Choose "Webhooks" as service.
You need to setup a unique trigger for each event you sent to IFTTT.
{% raw %}
# Example configuration.yaml Automation entry
automation:
alias: "Startup Notification"
trigger:
platform: homeassistant
event: start
action:
service: ifttt.trigger
data: {"event":"TestHA_Trigger", "value1":"Hello World!"}
{% endraw %}
IFTTT can also be used in scripts and with templates. Here is the above automation broken into an automation and script using variables and templates.
{% raw %}
# Example configuration.yaml Automation entry
automation:
alias: "Startup Notification"
trigger:
platform: homeassistant
event: start
action:
service: script.ifttt_notify
data:
value1: "HA Status:"
value2: "{{ trigger.event.data.entity_id.split('_')[1] }} is "
value3: "{{ trigger.event.data.to_state.state }}"
{% endraw %}
{% raw %}
#Example Script to send TestHA_Trigger to IFTTT but with some other data (homeassistant UP).
ifttt_notify:
sequence:
- service: ifttt.trigger
data: {"event":"TestHA_Trigger", "value1":"{{ value1 }}", "value2":"{{ value2 }}", "value3":"{{ value3 }}"}
{% endraw %}