dsh-smarthome:把 Home Assistant 接入 DeepSeek Harness

前言

DSH 插件生態強調“一切皆插件”。對需要在智能體裏處理家庭設備的人來說,常見訴求不是簡單發命令,而是讓 agent 能讀取設備狀態、查詢狀態歷史、調用服務,並且寫操作不直接落地。

dsh-smarthome 是面向 DeepSeek Harness agents 的 Home Assistant 控制插件。它的定位是:讀取實體狀態、查詢歷史,並在人工審批後調用服務。

定位與維護方

下面先交代它是什麼、由誰維護、解決什麼問題。

  • 插件名:YLifeOnlyOnce/dsh-smarthome
  • 維護者:YLifeOnlyOnce
  • 許可證:MIT
  • 一句話定位:Home Assistant control for DeepSeek Harness agents — read entity states, query history, and call services behind an approval gate.
  • 解決的問題:讓 DSH agent 能接入 Home Assistant,完成設備狀態讀取、歷史查詢、服務調用等任務,同時把服務調用放在人工審批之後。

核心能力

下面列出的能力來自已覈實資料。按用途可以分爲讀取、歷史與事件、通知、控制、模板五類。

連接與狀態讀取

  • ha_health:驗證連接,並返回實例名、版本、時區、WebSocket 狀態。
  • ha_list_entities:按 domain 和文本過濾列出實體。
  • ha_list_areas:通過 WebSocket API 列出區域。
  • ha_list_devices:通過 WebSocket API 列出物理設備。
  • ha_get_state:讀取單個實體的完整狀態與屬性。
  • ha_weather:從天氣實體獲取當前天氣和結構化預報。

歷史與即時事件

  • ha_history:查詢一段時間內的狀態變化時間線。
  • ha_events:讀取從 WebSocket 緩衝的近期即時狀態變化。
  • ha_wait_for_state:輪詢直到實體匹配或不匹配指定狀態。

場景與界面

  • ha_list_scenes:列出一鍵場景。
  • ha_dashboard:在 Web UI 中渲染整個家庭的儀表盤卡片。

通知與服務調用

  • ha_notify:通過 Home Assistant 發送通知,類型包括 persistent / phone / speaker。
  • ha_call_service:在人工審批後調用任意服務,可按實體、區域、設備或場景。
  • ha_render_template:在人工審批後服務端渲染 Jinja2 模板。

審批與安全邊界

資料對審批的表述有兩個層次。

整體描述是:每個狀態變更調用都會暫停等待人工審批。

功能表給出的具體標記是:

  • ha_call_serviceask
  • ha_render_templateask
  • ha_notifyno gate

爲避免過度推斷,本文把 ha_call_serviceha_render_template 作爲明確需要人工審批的入口;ha_notify 按資料標記爲 no gate

另外,資料將 allowedDomains 描述爲第二道 deny-list belt。

安裝與啓用

資料要求:

dsh ≥ 0.1.0-rc.6

資料同時稱這是 current npm latest。

安裝命令如下:

dsh plugin --profile web add dsh-smarthome

這一步是在當前 web profile 下添加 dsh-smarthome 插件。

安裝後重啓:

dsh --profile web

然後進入 Settings → Plugins 管理插件。

如果從 GitHub 源安裝,資料提到可能需要爲 dsh-smarthome 配置 pnpm allowBuilds。

典型用法

下面示例來自已覈實資料,適合作爲提示詞參考。

  1. “Check that Home Assistant is reachable, then list the lights in the living room.”
    先檢查 Home Assistant 是否可達,再列出客廳的燈。

  2. “Set the living room light to 60% brightness.”
    該示例會觸發審批請求。

  3. “Show me the boiler switch history for the last 24 hours.”
    查詢鍋爐開關最近 24 小時的狀態變化時間線。

  4. “Turn off every light in the bedroom.”
    使用區域目標控制臥室燈。

  5. “Start cinema mode.”
    使用場景激活 cinema 模式。

  6. “What changed in the house in the last hour?”
    使用即時 ha_events 查看最近一小時內家中變化。

適用場景與注意

這個插件適合已經在用 DSH、並且有 Home Assistant 實例的用戶。典型需求包括:

  • 用自然語言查詢設備狀態。
  • 查看某個實體的狀態歷史。
  • 在 agent 流程中等待某個狀態達成。
  • 通過場景或區域批量控制設備。
  • 在 Web UI 裏查看家庭儀表盤卡片。

使用前需要注意:

  • 插件以當前 dsh 進程權限運行。
  • 安裝前應檢查源碼與許可證。
  • 資料中關於 WebSocket 的表述存在衝突:README 頂部稱 no WebSocket,功能表和後文又多次提到 WebSocket API、WebSocket status 或 WebSocket feed。本文不把它解釋爲確定的運行時依賴,實際行爲以源碼和運行環境爲準。
  • 資料多處稱 lightweight / zero runtime dependencies,並提到 REST API、Node built-in WebSocket、no MQTT broker、no extra daemon。由於頂部存在 no WebSocket 表述,這裏只保留事實描述,不做額外推斷。

相關鏈接

  • GitHub:https://github.com/YLifeOnlyOnce/dsh-smarthome
  • 目錄頁:https://www.skillhub.cn/plugins/YLifeOnlyOnce/dsh-smarthome

目錄頁來自插件線索;社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係,不應理解爲官方應用商店。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜