没有可用的 URL
当 Home Assistant 向您显示“没有可用的 URL”消息时,您可能正在尝试设置或配置需要链接您帐户的集成。
发生了什么
用于链接此类帐户的身份验证方法称为 OAuth2,这是一种现代且更常见的系统链接方式,通过使用数据提供者登录。
这意味着 Home Assistant 会将您重定向到提供者进行登录。登录成功后,第三方提供者会将您重定向回您的 Home Assistant 实例。
为了让第三方能够在身份验证后将您重定向/链接回 Home Assistant,Home Assistant 需要告诉第三方应用程序访问 Home Assistant 的 URL / 以便重定向回来。不幸的是,如果出现“没有可用的 URL”错误,Home Assistant 无法确定该 URL。
如何解决
Home Assistant 会尝试找到您当前在浏览器中使用的 URL 作为此身份验证的重定向 URL。然而,只有当配置中已知该 URL 时,Home Assistant 才能确定这一点。
有多种选项可供考虑:
使用 Nabu Casa Home Assistant Cloud
如果您有 Nabu Casa 的 Home Assistant Cloud,解决此问题的最简单方法是通过远程 UI URL 访问您的 Home Assistant 实例。
转到 设置 -> Home Assistant Cloud。
通过远程 URL 访问您的实例。现在,您可以像往常一样设置集成,而不会收到“没有可用的 URL”消息。
使用 IP 地址访问您的实例
如果您在家庭网络中,可以使用实例的 IP 地址访问您的实例。
例如,https://192.168.1.2:8123
将 IP 替换为您的 Home Assistant 实例的 IP 地址。如果您不知道此地址,也可以跳过此步骤并尝试下一个解决方案。
现在,您可以像往常一样设置集成,而不会收到“没有可用的 URL”消息。
配置实例 URL
另一个好的解决方案是在 Home Assistant 中配置 Home Assistant 实例 URL。通过让 Home Assistant 知道您用来访问它的 URL,Home Assistant 将能够在这种情况下处理它。
请注意,您需要在用户配置文件中启用高级模式才能进行此设置。
转到 设置 -> 系统 -> 网络。
在此页面上,有两个字段可以解决此问题:“本地网络”和“互联网”。
-
本地网络:您在家中连接到家庭网络时,在浏览器中输入的 URL,例如
http://homeassistant.local:8123
-
互联网:您在不在家时连接到家庭网络时,在浏览器中输入的 URL,例如
https://example.duckdns.org
一些附加说明:
- 不要在这些字段中的任何一个中使用 Nabu Casa 远程 UI URL。远程 UI 将自动正确处理。
- 如果您在“家中”和“不在家”情况下使用的地址相同,建议仅使用外部 URL 字段。
- 内部 URL 最好不要使用 SSL(即
https://
),因为这可能会导致投射到媒体设备时出现问题。 - 如果您的 Home Assistant 实例没有外部地址,请将该字段留空。
- 确保您提供的 URL 与浏览器用于访问实例的真实地址匹配。许多流行的浏览器会隐藏 www 子域;如果您尝试配置
http://foo.bar
,但实际上是在http://www.foo.bar
,OAuth 将失败,您将收到此错误。您始终可以通过在地址栏中粘贴javascript:alert(document.location)
并按回车键来检查实际域名。
设置 URL 后,点击保存。无需重新启动 Home Assistant,您的更改会立即生效。
现在,您可以像往常一样设置集成,而不会收到“没有可用的 URL”消息。