用途
该技能用于通过 Home Assistant API 控制智能家居设备,包括智能插座、灯具、场景和自动化,并提供一组可直接使用的 curl 命令示例。
设置
需要设置两个环境变量:
- HA_URL:你的 Home Assistant URL(例如 http://192.168.1.100:8123)
- HA_TOKEN:长期访问令牌(在 Home Assistant 中通过“个人资料 → Long-Lived Access Tokens”创建)
主要能力与快速命令
按域列出实体
curl -s "$HA_URL/api/states" -H "Authorization: Bearer $HA_TOKEN" | \
jq -r '.[] | select(.entity_id | startswith("switch.")) | .entity_id'
打开/关闭开关
# Turn on
curl -s -X POST "$HA_URL/api/services/switch/turn_on" \
-H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"entity_id": "switch.office_lamp"}'
# Turn off
curl -s -X POST "$HA_URL/api/services/switch/turn_off" \
-H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"entity_id": "switch.office_lamp"}'
控制灯光
# Turn on with brightness
curl -s -X POST "$HA_URL/api/services/light/turn_on" \
-H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"entity_id": "light.living_room", "brightness_pct": 80}'
触发场景
curl -s -X POST "$HA_URL/api/services/scene/turn_on" \
-H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"entity_id": "scene.movie_time"}'
调用任意服务
curl -s -X POST "$HA_URL/api/services/{domain}/{service}" \
-H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"entity_id": "...", ...}'
获取实体状态
curl -s "$HA_URL/api/states/{entity_id}" -H "Authorization: Bearer $HA_TOKEN"
实体域
- switch.* — 智能插座、通用开关
- light.* — 灯具(Hue、LIFX 等)
- scene.* — 预配置场景
- automation.* — 自动化
- climate.* — 恒温器
- cover.* — 百叶窗、车库门
- media_player.* — 电视、音箱
- sensor.* — 温度、湿度等
注意事项
- API 默认返回 JSON
- 长期令牌不会过期,请安全保存
- 建议先用列表命令确认实体 ID
适用场景与限制
适用于通过命令行或脚本调用 Home Assistant 服务、查询与控制实体状态的场景。资料未提供除上述 curl 调用之外的集成方式、图形界面或平台支持信息;也未提供收费、价格或效果方面的说明。