dsh-smarthome: Integrating Home Assistant with DeepSeek Harness

Preface

The DSH plugin ecosystem emphasizes “everything is a plugin.” For those who need to handle home devices within an agent, the common requirement is not simply sending commands, but enabling the agent to read device states, query state history, call services, and ensure write operations do not take effect directly.

dsh-smarthome is a Home Assistant control plugin for DeepSeek Harness agents. Its positioning is: read entity states, query history, and call services behind an approval gate.

Positioning and Maintainer

The following clarifies what it is, who maintains it, and what problems it solves.

  • Plugin name: YLifeOnlyOnce/dsh-smarthome
  • Maintainer: YLifeOnlyOnce
  • License: MIT
  • One-line positioning: Home Assistant control for DeepSeek Harness agents — read entity states, query history, and call services behind an approval gate.
  • Problem solved: Enables DSH agents to integrate with Home Assistant, handling tasks such as device state reading, history queries, and service calls, while placing service calls behind an approval gate.

Core Capabilities

The capabilities listed below come from verified sources. They can be categorized into five groups based on use: reading, history and events, notifications, control, and templates.

Connection and State Reading

  • ha_health: Verifies connectivity and returns instance name, version, timezone, and WebSocket status.
  • ha_list_entities: Lists entities filtered by domain and text.
  • ha_list_areas: Lists areas via the WebSocket API.
  • ha_list_devices: Lists physical devices via the WebSocket API.
  • ha_get_state: Reads the complete state and attributes of a single entity.
  • ha_weather: Retrieves current weather and structured forecasts from weather entities.

History and Real-Time Events

  • ha_history: Queries the state change timeline over a specified period.
  • ha_events: Reads recent real-time state changes buffered from WebSocket.
  • ha_wait_for_state: Polls until an entity matches or no longer matches a specified state.

Scenes and Dashboard

  • ha_list_scenes: Lists one-click scenes.
  • ha_dashboard: Renders a whole-home dashboard card in the Web UI.

Notifications and Service Calls

  • ha_notify: Sends notifications through Home Assistant, with types including persistent / phone / speaker.
  • ha_call_service: Calls any service behind an approval gate, targeting entities, areas, devices, or scenes.
  • ha_render_template: Renders Jinja2 templates server-side behind an approval gate.

Approval and Security Boundaries

The sources describe approval at two levels.

The overall description states: every state-changing call pauses for manual approval.

The feature table provides the following specific markers:

  • ha_call_service: ask
  • ha_render_template: ask
  • ha_notify: no gate

To avoid over-inference, this document treats ha_call_service and ha_render_template as entry points that clearly require manual approval; ha_notify is marked as no gate per the sources.

Additionally, the sources describe allowedDomains as a second deny-list belt.

Installation and Activation

The sources require:

dsh ≥ 0.1.0-rc.6

The sources also state this is the current npm latest.

The installation command is as follows:

dsh plugin --profile web add dsh-smarthome

This step adds the dsh-smarthome plugin under the current web profile.

Restart after installation:

dsh --profile web

Then navigate to Settings → Plugins to manage the plugin.

If installing from a GitHub source, the sources mention that pnpm allowBuilds may need to be configured for dsh-smarthome.

Typical Usage

The examples below come from verified sources and are suitable for reference as prompts.

  1. "Check that Home Assistant is reachable, then list the lights in the living room."
    First check if Home Assistant is reachable, then list the lights in the living room.

  2. "Set the living room light to 60% brightness."
    This example triggers an approval request.

  3. "Show me the boiler switch history for the last 24 hours."
    Query the state change timeline for the boiler switch over the last 24 hours.

  4. "Turn off every light in the bedroom."
    Controls bedroom lights using area targeting.

  5. "Start cinema mode."
    Activates the cinema scene.

  6. "What changed in the house in the last hour?"
    Uses real-time ha_events to see what changed in the house within the last hour.

Applicable Scenarios and Considerations

This plugin is suitable for users who are already using DSH and have a Home Assistant instance. Typical needs include:

  • Querying device states using natural language.
  • Viewing the state history of a specific entity.
  • Waiting for a specific state to be reached within an agent workflow.
  • Batch-controlling devices via scenes or areas.
  • Viewing home dashboard cards in the Web UI.

Points to note before use:

  • The plugin runs with the permissions of the current dsh process.
  • The source code and license should be reviewed before installation.
  • The sources contain conflicting statements about WebSocket: the README header states no WebSocket, while the feature table and later sections repeatedly mention the WebSocket API, WebSocket status, or WebSocket feed. This document does not interpret this as a definitive runtime dependency; actual behavior should be determined by the source code and runtime environment.
  • The sources repeatedly mention lightweight / zero runtime dependencies, and reference the REST API, Node built-in WebSocket, no MQTT broker, and no extra daemon. Given the “no WebSocket” statement at the header, this document only retains factual descriptions without further inference.

Related Links

  • GitHub: https://github.com/YLifeOnlyOnce/dsh-smarthome
  • Directory page: https://www.skillhub.cn/plugins/YLifeOnlyOnce/dsh-smarthome

The directory page comes from plugin leads; the community directory is an independent site with no official affiliation to DeepSeek / High-Flyer, and should not be understood as an official app store.

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

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

Xiaoye