home-assistant

star 1

Control and query Home Assistant smart home devices via MCP. Use when: user asks about home temperature/humidity, wants to turn on/off lights, AC, fans, switches, or check device status. Triggers: '智能家居', '空调', '灯', '开关', '温度', '湿度', 'home assistant', 'HA', '家里'. NOT for: Home Assistant config/integration setup (use HA UI directly).

zkl2333 By zkl2333 schedule Updated 3/1/2026

name: home-assistant description: "Control and query Home Assistant smart home devices via MCP. Use when: user asks about home temperature/humidity, wants to turn on/off lights, AC, fans, switches, or check device status. Triggers: '智能家居', '空调', '灯', '开关', '温度', '湿度', 'home assistant', 'HA', '家里'. NOT for: Home Assistant config/integration setup (use HA UI directly)."

Home Assistant Skill

通过 Home Assistant 内置 MCP Server 控制智能家居设备。支持灯光、空调、风扇、开关、传感器查询等。

前置条件

Home Assistant 2025.2+ 内置 MCP Server,需先在 HA 中启用: 设置 → 设备与服务 → 添加集成 → 搜索 "Model Context Protocol Server"

在你的 mcporter.json 里加入(合并到 mcpServers 下):

"home-assistant": {
  "baseUrl": "http://<HA_IP>:8123/api/mcp",
  "headers": {
    "Authorization": "Bearer YOUR_HA_LONG_LIVED_TOKEN",
    "Accept": "application/json, text/event-stream"
  }
}

Long-Lived Token:HA 用户头像 → 安全 → 长期访问令牌 → 创建令牌

常用工具

查询设备状态(REST API 直接查)

MCP 工具不支持直接列出传感器,用 REST API:

TOKEN="YOUR_TOKEN"
HA="http://HA_IP:8123"

# 查温湿度传感器
curl -sf -H "Authorization: Bearer $TOKEN" "$HA/api/states" | python3 -c "
import json,sys
for s in json.load(sys.stdin):
    u=s.get('attributes',{}).get('unit_of_measurement','')
    if u in ['°C','%']:
        print(s['attributes'].get('friendly_name',''), s['state']+u)
"

# 查指定实体
curl -sf -H "Authorization: Bearer $TOKEN" "$HA/api/states/climate.xxx"

开关设备

# 开(推荐用 REST API 指定 entity_id)
curl -sf -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"entity_id": "climate.xxx"}' "$HA/api/services/climate/turn_on"

# 关
curl -sf -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"entity_id": "climate.xxx"}' "$HA/api/services/climate/turn_off"

MCP 工具(通过 mcporter call)

# 开设备(按名称/区域)
mcporter call home-assistant.HassTurnOn name="卧室空调"
mcporter call home-assistant.HassTurnOn area="客厅" domain='["light"]'

# 关设备
mcporter call home-assistant.HassTurnOff name="卧室空调"

# 调灯光亮度/颜色
mcporter call home-assistant.HassLightSet name="客厅灯" color="warm white"

# 设置空调目标温度
mcporter call home-assistant.HassClimateSetTemperature name="卧室空调" temperature=26

# 设置风扇速度(百分比)
mcporter call home-assistant.HassFanSetSpeed name="风扇" percentage=50

常见 Domain 对照

Domain 设备类型
climate 空调、暖气
light 灯光
switch 开关、插座
fan 风扇
media_player 音响、电视
sensor 温湿度、传感器
humidifier 加湿器
water_heater 热水器

查找 entity_id

MCP 工具按名称匹配时,不一定精准。推荐先用 REST API 查出准确的 entity_id,再操作:

curl -sf -H "Authorization: Bearer $TOKEN" "$HA/api/states" | python3 -c "
import json,sys
for s in json.load(sys.stdin):
    if 'climate' in s['entity_id']:
        print(s['entity_id'], '|', s['attributes'].get('friendly_name',''), '|', s['state'])
"

使用建议

  • 查询类:优先用 REST API /api/states,数据准确
  • 控制类:MCP 工具(HassTurnOn/Off)按名称匹配,简单场景够用;复杂场景(多设备、精确 entity_id)用 REST API
  • 心跳集成:可在心跳中查室温/湿度,过冷/过热主动提醒
Install via CLI
npx skills add https://github.com/zkl2333/skills --skill home-assistant
Repository Details
star Stars 1
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator