连接到实例
当用户首次打开应用时,需要连接到其本地实例,以完成认证并注册设备。
对用户进行认证
如果 Home Assistant 配置了 zeroconf integration,则可以通过搜索 _home-assistant._tcp.local. 发现本地实例。如果未配置,则需要向用户询问其实例的本地地址。
当已知实例地址后,应用会要求用户通过 OAuth2 with Home Assistant 完成认证。Home Assistant 使用 IndieAuth,这意味着如果你要重定向到能触发应用的 URL,需要额外执行一些步骤。请务必仔细阅读 “Clients” 小节的最后一段。
注册设备
这要求 Home Assistant 版本为 0.90 或更高。
Home Assistant 提供了 mobile_app 组件,允许应用自行注册并与实例交互。这是一个用于处理大多数常见移动应用任务的通用组件。如果你的应用需要超出该组件现有能力的更多交互类型,也可以对其进行扩展。
当你已经获得代表用户进行认证的令牌后,就可以开始通过 Home Assistant 中的 mobile app 集成注册应用。
准备工作
首先,你必须确保已加载 mobile_app 集成。有两种方法可以做到这一点:
- 你可以发布一个 Zeroconf/Bonjour 记录
_hass-mobile-app._tcp.local.,以触发mobile_app集成的自动加载。发布该记录后,继续之前应至少等待 60 秒。 - 你也可以要求用户将
mobile_app添加到其configuration.yaml中,并重启 Home Assistant。如果用户的配置中已经包含default_config,那么mobile_app应该已经被加载。
你可以通过检查 /api/config REST API 调用 返回结果中的 components 数组,来确认 mobile_app 组件是否已加载。如果你继续进行设备注册时收到 404 状态码,则很可能说明它还没有加载完成。
注册设备
要注册设备,请向 /api/mobile_app/registrations 发起一个带认证的 POST 请求。关于如何发起带认证请求的更多信息,请参阅认证 API。
发送到注册端点的示例负载:
当你收到 200 响应时,说明移动应用已在 Home Assistant 中注册成功。响应是一个 JSON 文档,其中包含与 Home Assistant 实例交互所需的 URL。你应永久保存这些信息。

