YLifeOnlyOnce/dsh-smarthome

Home Assistant control for DeepSeek Harness agents — approval-gated lights, switches, climate

dsh-smarthome gives DeepSeek Harness agents control over a Home Assistant instance. Agents can read entity states with ha_list_entities and ha_get_state, query historical data, and call any HA service with ha_call_service — all through natural language. Every state-changing call stops for human approval before executing. A Web UI dashboard card (ha_dashboard) renders a live snapshot of the home in the conversation. Zero external dependencies — plain REST + Node built-ins against HA's standard REST API.

Agent Capabilities ★ 5 updated 2026-08-19 — untested
View on GitHub ↗

Install

dsh plugin --profile web add dsh-smarthome

npm package dsh-smarthome 1.4.0 (registry-verified 2026-08-24). After install, configure your Home Assistant URL and long-lived access token in the plugin settings (Settings → Smart Home or via environment variables HA_URL and HA_TOKEN). Uses Home Assistant's built-in REST API — no MQTT, no WebSocket, no extra daemon. Zero runtime dependencies beyond the harness itself.

Compatibility

DeepSeek Harness web profile. Home Assistant instance with REST API access (any version supporting long-lived access tokens). Zero runtime dependencies (plain REST + Node built-ins). Real-time state via WebSocket subscription for immediate updates.

Details

Recent updates

1.4.0: ha_list_entities, ha_get_state, ha_call_service (approval-gated), ha_dashboard; HA REST API (no MQTT/WebSocket daemon); real-time WebSocket state subscription; allowedDomains deny-list; zero runtime deps; live demo HTML with HA emulator in docs/demo.html.

FAQ

Is every Home Assistant action approval-gated?
Every state-changing call (ha_call_service) pauses for a human approval dialog before executing. Read-only operations (ha_list_entities, ha_get_state) do not require approval. An allowedDomains config provides a second deny-list safety layer.
Does it require any extra Home Assistant add-ons or integrations?
No — it uses HA's built-in REST API with a standard long-lived access token. No MQTT broker, no extra WebSocket daemon, no add-ons required. Configure HA_URL and HA_TOKEN and you're ready.
Can the agent see real-time state changes?
Yes — the plugin subscribes to Home Assistant's WebSocket state stream so entity states are always current. When you turn a light off manually, the agent's next ha_get_state call reflects the change immediately.

Alternatives

omdsh-dev/dsh-advisor · Jesse-njx/dsh-chatnode-wechat · imetn/dsh-lark-bridge

More plugins in Agent Capabilities

Browse more in Agent Capabilities

Guides for Agent Capabilities plugins