连接到实例
当用户首次打开应用时,他们需要连接到本地实例以进行认证并注册设备。
用户认证
如果 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 组件,允许应用注册自身并与实例交互。这是一个通用的组件,用于处理大多数常见的移动应用任务。如果你的应用需要比该组件提供的更多类型的交互,可以通过自定义交互来扩展此组件。
一旦你获得了用于认证用户的 tokens,就到了在 Home Assistant 中将应用注册到 mobile app 集成的时候了。
准备工作
首先,你必须确保 mobile_app 集成已加载。有两种方式可以做到这一点:
- 你可以发布一条 Zeroconf/Bonjour 记录
_hass-mobile-app._tcp.local.来触发mobile_app集成的自动加载。你应在发布记录后至少等待 60 秒再继续。 - 你可以要求用户在他们的 configuration.yaml 中添加
mobile_app并重启 Home Assistant。如果用户的配置中已经有default_config,那么mobile_app应该已经加载了。
你可以通过检查 /api/config REST API 调用 的 components 数组来确认 mobile_app 组件已加载。如果你继续设备注册并收到 404 状态码,那么它很可能尚未加载。
注册设备
要注册设备,请向 /api/mobile_app/registrations 发送一个经过认证的 POST 请求。有关如何发起经过认证的请求的更多信息。
发送到注册端点的示例 payload:
当你收到 200 响应时,移动应用已注册到 Home Assistant。响应是一个 JSON 文档,将包含如何与 Home Assistant 实例交互的 URLs。你应该永久存储此信息。

