前言¶
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_service:askha_render_template:askha_notify:no gate
爲避免過度推斷,本文把 ha_call_service 和 ha_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。
典型用法¶
下面示例來自已覈實資料,適合作爲提示詞參考。
-
“Check that Home Assistant is reachable, then list the lights in the living room.”
先檢查 Home Assistant 是否可達,再列出客廳的燈。 -
“Set the living room light to 60% brightness.”
該示例會觸發審批請求。 -
“Show me the boiler switch history for the last 24 hours.”
查詢鍋爐開關最近 24 小時的狀態變化時間線。 -
“Turn off every light in the bedroom.”
使用區域目標控制臥室燈。 -
“Start cinema mode.”
使用場景激活cinema模式。 -
“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 / 幻方無官方從屬關係,不應理解爲官方應用商店。