IFTTT
IFTTT
先决条件
要能够接收来自 IFTTT 的事件,您的 Home Assistant 实例需要可以从网络访问,并且您需要配置外部 URL 配置,或使用您的 Nabu Casa 账户的 webhook URL 从 IFTTT 集成。
配置
要将 IFTTT integration 添加到您的 Home Assistant 实例中,请使用此 My 按钮:
手动配置步骤
如果上述 My 按钮不起作用,您也可以手动执行以下步骤:
-
浏览到您的 Home Assistant 实例。
-
转到
设置 > 设备与服务。 -
在右下角,选择
Add Integration 按钮。 -
从列表中选择 IFTTT。
-
按照屏幕上的说明完成设置。
接收来自 IFTTT 的事件
从 IFTTT 传入的事件将作为事件在 Home Assistant 中可用,并被触发为 ifttt_webhook_received
。在 IFTTT 食谱的 Body 部分指定的数据将作为事件数据可用。您可以使用此事件触发自动化。使用 POST 作为方法。
例如,将 IFTTT webhook 的主体设置为:
{ "action": "call_service", "service": "light.turn_on", "entity_id": "light.living_room" }
然后,您需要使用以下自动化消耗该传入信息:
automation:
- alias: "可选的自动化别名"
triggers:
- trigger: event
event_type: ifttt_webhook_received
event_data:
action: call_service # 您在 IFTTT 食谱的 Body 部分使用的相同动作 'name'
actions:
- action: '{{ trigger.event.data.service }}'
target:
entity_id: '{{ trigger.event.data.entity_id }}'
发送事件到 IFTTT
# 示例 configuration.yaml 条目
ifttt:
key: YOUR_API_KEY
key
是您的 API 密钥,可以通过查看 Webhooks applet
添加密钥到您的 configuration.yaml
configuration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件后,重新启动您的 Home Assistant 实例。这将加载 IFTTT 集成并使触发事件的操作可用。
重新启动服务器后,请确保查看控制台中出现的任何红色、白色或黄色的日志错误。
多个 IFTTT 密钥
如果您有多个 IFTTT 用户,可以通过以下方式指定多个 IFTTT 密钥:
# 示例 configuration.yaml 条目
ifttt:
key:
YOUR_KEY_NAME1: YOUR_API_KEY1
YOUR_KEY_NAME2: YOUR_API_KEY2
测试触发器
您可以使用 开发者工具 测试您的 WebhooksIFTTT: Trigger
作为操作,并填写以下值:
当您的屏幕看起来像这样时,选择 执行操作 按钮。
默认情况下,触发器会发送到 configuration.yaml
configuration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 中的所有 API 密钥。如果您想将触发器发送到特定密钥,请使用 target
字段:
字段 | 值 |
---|---|
domain | ifttt |
service | trigger |
data | {"event": "EventName", "value1": "Hello World", "target": "YOUR_KEY_NAME1"} |
target
字段可以包含一个密钥名称或多个密钥名称的列表。
设置一个 applet
按 创建 按钮并在 如果这样 中按 添加。搜索 Webhooks。
选择 Webhooks 服务。
选择 接收网络请求。
您需要为发送的每个事件设置一个唯一的触发器到 IFTTT。
添加 然后那样 的动作。下面的示例向 IFTTT 移动应用程序发送通知,并将 value1
添加到消息中:
# 示例 configuration.yaml 自动化条目
automation:
alias: "启动通知"
triggers:
- trigger: homeassistant
event: start
actions:
- action: ifttt.trigger
data: {"event":"TestHA_Trigger", "value1":"Hello World!"}
IFTTT 也可以在脚本和模板中使用。以下是上述自动化拆分为自动化和脚本,使用变量和模板的示例。
# 示例 configuration.yaml 自动化条目
automation:
alias: "启动通知"
triggers:
- trigger: homeassistant
event: start
actions:
- action: script.ifttt_notify
data:
value1: "HA 状态:"
value2: "{{ trigger.event.data.entity_id.split('_')[1] }} 是 "
value3: "{{ trigger.event.data.to_state.state }}"
# 示例脚本将 TestHA_Trigger 发送到 IFTTT,但附带其他数据(homeassistant 正在运行)。
ifttt_notify:
sequence:
- action: ifttt.trigger
data: {"event":"TestHA_Trigger", "value1":"{{ value1 }}", "value2":"{{ value2 }}", "value3":"{{ value3 }}"}