IFTTT

IFTTT 是一个网络服务,允许用户创建简单条件语句的链条,称为“Applet”。通过 IFTTT 集成,您可以通过 “Webhooks” 服务触发 applet(以前称为 “Maker” 渠道)。这需要 Pro 计划 或更高版本。

先决条件

要能够接收来自 IFTTT 的事件,您的 Home Assistant 实例需要可以从网络访问,并且您需要配置外部 URL 配置,或使用您的 Nabu Casa 账户的 webhook URL 从 IFTTT 集成。

配置

要将 IFTTT integration 添加到您的 Home Assistant 实例中,请使用此 My 按钮:

手动配置步骤

如果上述 My 按钮不起作用,您也可以手动执行以下步骤:

接收来自 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设置 获得。它是 URL 的最后一部分(例如,https://maker.ifttt.com/use/MYAPIKEY),您可以在 我的 Applet > Webhooks > 设置 中找到。 Maker 渠道的属性屏幕.

添加密钥到您的 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件后,重新启动您的 Home Assistant 实例。这将加载 IFTTT 集成并使触发事件的操作可用。

Important

重新启动服务器后,请确保查看控制台中出现的任何红色、白色或黄色的日志错误。

多个 IFTTT 密钥

如果您有多个 IFTTT 用户,可以通过以下方式指定多个 IFTTT 密钥:

# 示例 configuration.yaml 条目
ifttt:
  key: 
    YOUR_KEY_NAME1: YOUR_API_KEY1
    YOUR_KEY_NAME2: YOUR_API_KEY2

测试触发器

您可以使用 开发者工具 测试您的 Webhooks 触发器。为此,请打开 Home Assistant 側边栏,点击 开发者工具 > 操作 标签。选择 IFTTT: Trigger 作为操作,并填写以下值:

event

要发送的事件的名称。

value1

通过事件发送数据的通用字段。

value2

通过事件发送数据的通用字段。

value3

通过事件发送数据的通用字段。

当您的屏幕看起来像这样时,选择 执行操作 按钮。

测试操作.

默认情况下,触发器会发送到 configuration.yamlconfiguration.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创建 applet.

选择 Webhooks 服务。 选择 “Webhooks” 服务.

选择 接收网络请求接收网络请求.

您需要为发送的每个事件设置一个唯一的触发器到 IFTTT。 您需要为发送的每个事件设置一个唯一的触发器到 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 }}"}