开始使用Home Assistant Webhooks
作者:社区 / 开发者
2023年8月7日
导航至
本文由Suleiman Abubakar Sadeeq撰写,他是一位有抱负的React开发者,正在学习和帮助构建企业应用程序。
如果您已经熟悉Home Assistant,您可能知道它如何通过自动化极大地简化我们的许多日常活动。您也可能想知道如何在事件触发后发送信息。比如说,您出门了,当您离家达到一定距离时,您希望门解锁。在这种情况下,您可以使用webhook将您的位置数据发送到您的Home Assistant实例。这样,它可以为您解锁门。在本篇文章中,我们将讨论Home Assistant webhook,以及如何开始使用它们。让我们深入探讨!
Home Assistant
拥有所有晨间习惯的自动化是多么酷啊?从早晨的咖啡,到温度调节,到电视,再到闹钟。请注意,这不仅仅是晨间习惯——如果您想的话,也可以使用Home Assistant自动化您的一整天。
Home Assistant 是一款开源软件,允许自动化家庭。它提供了一种方式,让您可以从一个来源(Home Assistant 移动应用、桌面UI或桌面伴侣应用)本地控制家中所有的智能设备,而无需分别使用多个设备。它提供了更多灵活性,并允许您控制您想要的自动化外观和感觉。
Webhooks
一个 webhook 是一个事件驱动的单向请求,这意味着它不是双向的,它只能发送信息。如果您熟悉API,webhook与它类似,但更轻量级,并且它只能响应事件发送数据。
如何在Home Assistant中使用webhook?
既然我们已经了解了什么是 Home Assistant 和 webhook,那么让我们来探讨如何在 Home Assistant 中使用 webhook。第一步是在您的 Home Assistant 实例中创建自动化。要创建自动化,请前往 设置 并选择 自动化和场景。之后它将重定向到自动化页面,点击右下角的 创建自动化 按钮。
要创建新的自动化,将 触发器 选择为 Webhook。Home Assistant 会自动为其分配一个唯一的 ID。这个 ID 必须是唯一的,如果您想编辑它,也应该像秘密密钥一样对待。这样做的原因是:如果您的 Home Assistant 存在于公共网络上,然后有人获取了您的 Webhook ID,他们可能能够从任何地方创建针对您的实例的自动化。这是因为 webhook 没有任何身份验证,所以任何拥有您的 Webhook ID 和实例访问权限的人都可以发起调用并创建自动化。
现在我们可以创建我们第一个 webhook。这个例子将会非常简单和基础,以便您了解如何在 Home Assistant 中使用 webhook。我们将通过 Home Assistant 的 webhook 向您的手机发送“寻找我的设备”消息。
添加一个操作并选择如上图所示的 调用服务。现在,选择服务 Apple iCloud: 显示消息。如果您将 iPhone 连接到 Home Assistant 实例,此服务将出现。输入您的 iCloud 用户名、设备名称 和您想要发送的 消息,然后保存。这样,您就创建了第一个 webhook。接下来要讲的是如何测试 webhook 是否工作。
测试 webhook
要测试 Home Assistant webhook,您需要一个发送 POST 请求的方法。有多种方法可以实现(Python 脚本、Zapier、iPhone 上的快捷方式等),但在这篇文章中,我们将使用 Postman。如果您不熟悉 Postman,它是一个允许您通过端点进行 API 调用的服务。如果您想,可以下载 Postman 桌面版,或者您可以使用他们在 Postman 网站 上的网络界面。
请注意,您只能使用 POST、PUT 或 Home Assistant 网站上提到的其他方法来测试 Home Assistant webhook。
在 Postman 中,创建一个新的请求并将请求方法设置为 POST。从您的 Home Assistant 实例复制 webhook 的唯一 ID 并将其粘贴到 Postman 中。注意 Webhook URL 的格式就像您在图中看到的那样。不用担心我的 URL 是公开的,因为我会在之后删除它。
URL 参数
让我们剖析 Home Assistant webhook 的 URL 模式:HTTP://Instance_IP:PORT/api/webhook/ID
-
Instance_IP: 在我的情况下,172.20.10.2 是网络的 IP 地址。
-
PORT: 这是 Home Assistant 的端口。
-
api/webhook: 这些是 Home Assistant 附加到 URL 上的前缀词,用于标识 URL。这两个词都是常量,并附加到所有 webhook 自动化上。
-
ID: 这是 Home Assistant 用于标识触发 webhook 的唯一 ID。不要分享或允许其公开,以防止对隐私造成风险。
现在您知道了为什么 URL 看起来是这样的,您可以点击 Postman 上的 发送 按钮来发送请求。几秒钟后,它将发送一个 200 OK 响应,同时您也应该在手机上收到您分配的消息的通知(就像上面的图片一样)。
webhook 的更多用法
-
智能家居自动化:这是webhook最著名的用例之一。您可以在Home Assistant上利用webhook创建智能家居的高级自动化。您可以创建一个webhook,当某个条件为真或假时执行自动化。例如,当没有人在客厅时关闭灯光。这个webhook用例可以帮助您简化日常习惯和例行公事。
-
移动通知:您还可以创建webhook,在Home Assistant中发生自动化时向您的手机发送通知。例如,当有人触发动作传感器或当您不在家时门铃响起。您可以创建一个监听此类事件并向您的手机发送警报通知的webhook。这样,即使在通勤、工作中或旅行中,您也能同步家中所有活动。
-
第三方服务:您还可以在Home Assistant中利用webhook集成第三方服务。例如,在Home Assistant中发生事件后,使用webhook在另一个应用程序或服务(Slack、WhatsApp、Telegram等)中创建自动化。
-
数据分析:使用webhook,您可以记录来自外部源的数据到您的实例,通过分析数据来创建自动化。这很好,因为您可以在创建自动化之前分析服务的行为并获取见解。这样,所有自动化都是数据驱动的。一个好的例子是在创建天气自动化时,您可以使用您可以访问的数据来触发某些动作或事件。
由于Home Assistant webhook在智能家居自动化方面的适应性,其用例列表是无限的。但以上只是一些例子,让您了解您可能想要使用Home Assistant webhook做什么。
结论
了解您可以使用Home Assistant的webhook功能做哪些酷事真是太令人惊叹了。我希望这篇文章能向您提供使用Home Assistant webhook的基本知识。希望它能激发您创建更多使您生活更便捷的自动化。
如果您想了解更多关于如何从收集您的智能设备的传感器和指标中受益的信息,请查看InfluxData。
关于作者
本文由Suleiman Abubakar Sadeeq撰写。Suleiman Abubakar Sadeeq是一位有抱负的前端开发者,正在学习和帮助构建企业级应用程序。在空闲时间,他踢足球、看足球比赛并享受玩电子游戏。