|
将 DeepSeek Harness(DSH) ("一切皆插件")—— 封装为 Home Assistant Addon。 - 通过 HA Ingress 访问 DSH Web UI(无需额外端口暴露)
- 内置桥接 API(deepseek_harness 自定义集成依赖此稳定契约)
- 可选接入 HA 原生 MCP Server,让 DSH 控制家里设备
- Web 一键更新:DSH 更新到上游最新版,无需重新发布 addon
- 多轮会话中继:HA 对话接进 DSH Agent 真实会话,跨轮保留上下文
快速开始
- 将本仓库添加为 HA Add-on 仓库(Repository URL:)
- 安装 DeepSeek Harness addon
- 配置页填写:
- api_key:DeepSeek API Key(必填)
- api_token:桥接 API 共享密钥(强烈建议设置,见下方"安全")
- model / provider / base_url:模型配置(默认 deepseek-v4-flash / deepseek-official)
- ha_mcp_enabled / ha_mcp_url / ha_mcp_token:可选接入 HA MCP Server
- 启动 addon,侧边栏出现 DSH Agent 面板
配套自定义集成:deepseek_harness(HA 商店可搜),用于 Assist 语音/文本对话与运行时状态传感器。 架构
[HA Ingress] ──► [HTTP 代理 :3080] ──► [DSH Web UI 127.0.0.1:3081] │ (注入脚本 / 改写 host.describe)[桥接 API :3082] ◄── [deepseek_harness 集成] ├ GET /api/status (只读, 放行) ├ POST /api/session (需 Bearer token, 多轮会话中继 —— 当前对话路径) ├ POST /api/chat (需 Bearer token, headless 一次性调用, 已不再使用) ├ POST /api/restart (需 Bearer token) ├ GET /api/update/status (需 Bearer token) └ POST /api/update (需 Bearer token, 一键更新)
- 持久化:所有数据在 /data/dsh/(会话、设置、凭据、vendor 更新)
- DSH 安全限制:DSH 自身禁止绑定 0.0.0.0,仅监听 127.0.0.1:3081,对外由代理接管
安全
- 桥接 API 共享密钥:addon 配置 api_token 后,所有写操作(chat / restart / update)要求 Authorization: Bearer <api_token>;未配置时写操作返回 401(fail-closed)。集成侧配置时填入相同值。
- 仅 Ingress 暴露:addon 不发布任何宿主端口(无 ports),Web UI 只能通过 HA 登录后的 Ingress 访问,避免 DSH(具备代码执行能力)暴露到局域网/公网。
- 桥接 API 监听容器内 3082,不映射到宿主机。
一键更新(DSH 本体)
DSH 处于测试期(rc.x),更新频繁。本 addon 提供 Web 一键更新,让用户自主升级 DSH 到上游最新版,无需维护者重新发布 addon: - 打开 DSH Web UI(侧边栏 → DSH Agent)
- 进入 设置(Settings) 页面,底部出现 DSH 更新 卡片
- 点击 → 确认 → 自动:npm install @deepseek-ai/dsh@next 到 /data/dsh/vendor → 原子切换 → 容器重启
- 更新后的 DSH 装在持久化目录 /data/dsh/vendor,镜像内置版保留作离线兜底与回滚
- addon 壳依赖 DSH 的会话 RPC 契约(session.create / session.history / session.prompt);契约变化时只改 addon 桥接层,HA 集成不动
数据备份
/data/dsh/ 位于 addon 的 /data 目录,随 HA 的 addon 备份自动包含(会话记录、设置、vendor 更新均被覆盖)。无需额外备份配置。 注意:卸载 addon 或变更 slug 会清空 /data 目录,属于预期行为。如果你需要保留对话历史,请在卸载前手动备份 /data/dsh/。正常更新 addon(包括 rebuild)时 /data 必定保留,无需担心
|