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 与 API 类似,但更轻量级,并且它只能响应事件发送数据。
如何在 Home Assistant 中使用 webhook?
现在我们了解了什么是 Home Assistant 和 webhook,让我们探讨一下如何在 Home Assistant 中使用 webhook。第一步是在您的 Home Assistant 实例中创建自动化。要创建自动化,请转到设置并选择自动化和场景。在它将您重定向到自动化页面后,单击右下角的创建自动化按钮。
要创建新的自动化,请选择 Webhook 作为触发器。Home Assistant 将自动为其分配一个唯一的 ID。此 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 网站上的 Web 界面。
请记住,您只能使用 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 以识别它的前缀词。这两个词都是常量,并且附加到您的所有 webhook 自动化。
-
ID: 这是您的 webhook 的唯一 ID,Home Assistant 使用它来识别正在触发的 webhook。请勿共享或允许其公开,以防止您的隐私面临风险。
现在您知道 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 是一位雄心勃勃的 react 开发者,正在学习并帮助构建企业应用。在他的空闲时间,他踢足球、看足球比赛,并且喜欢玩电子游戏。