如何个人HA服务器地址和长期密钥
下面分两步说明如何获取你的 Home Assistant 服务器地址以及创建“长期访问令牌”(Long-Lived Access Token),并给出一个简单的 Python 调用示例。
一、获取 Home Assistant 服务器地址
-
默认域名/端口
- 如果你在本机或局域网内安装并使用默认设置,一般可以通过以下地址访问:
http://homeassistant.local:8123
- 或者直接用 IP + 端口,例如:
http://192.168.1.100:8123
- 如果你在本机或局域网内安装并使用默认设置,一般可以通过以下地址访问:
-
查看设置页面
- 登录 HA 后台,点击左侧下方你的用户名 → “系统信息”(System → About),在“主机”或“URL”字段可以看到当前服务器地址。
-
mDNS/Zero-Conf 自动发现
- 如前一条回答所示,也可以用 zeroconf 脚本自动发现局域网内广播的
_home-assistant._tcp.local.
服务。
- 如前一条回答所示,也可以用 zeroconf 脚本自动发现局域网内广播的
二、创建长期访问令牌
- 在左侧菜单最下方,点击你的头像 → “我的个人资料”(Profile)。
- 滚动到页面底部,找到 “长期访问令牌”(Long-Lived Access Tokens) 区域。
- 点击 “创建令牌”,输入一个易识别的名称(例如
my_script_token
),点击确认。 - 会生成一串很长的字符,请务必复制并保存,因为关闭窗口后无法再次查看。
三、Python 示例:调用 Home Assistant REST API
下面示例展示如何用刚才得到的 HA_URL
和 TOKEN
拉取所有实体状态。
import requests# 1. 配置你的 HA 地址和令牌
HA_URL = "http://192.168.1.100:8123" # 或 http://homeassistant.local:8123
TOKEN = "eyJ0eXAiOiJKV1QiLCJh..." # 你的长期访问令牌# 2. REST API 请求头
headers = {"Authorization": f"Bearer {TOKEN}","Content-Type": "application/json",
}# 3. 发起请求:获取所有实体状态
response = requests.get(f"{HA_URL}/api/states", headers=headers)
response.raise_for_status() # 若 HTTP 状态码不是 2xx 则抛异常# 4. 打印结果
for entity in response.json():print(f"{entity['entity_id']}: {entity['state']}")
说明:
Authorization: Bearer <TOKEN>
是必须的认证头。- 默认 Content-Type 和接受 JSON。
- 更多 API 端点请参见官方文档:Home Assistant REST API。
这样,你就可以在脚本或应用里动态地使用你的 HA 服务器地址和长期访问令牌,安全且稳定地调用各种服务和状态接口。