← Back to Skills Marketplace
developmentcats

Home Assistant Assist

by DevCats · GitHub ↗ · v1.1.1
cross-platform ⚠ suspicious
3129
Downloads
6
Stars
14
Active Installs
4
Versions
Install in OpenClaw
/install homeassistant-assist
Description
Control Home Assistant smart home devices using the Assist (Conversation) API. Use this skill when the user wants to control smart home entities - lights, sw...
README (SKILL.md)

Home Assistant Assist

Control smart home devices by passing natural language to Home Assistant's Assist (Conversation) API. Fire and forget — trust Assist to handle intent parsing, entity resolution, and execution.

When to Use This Skill

Use this skill when the user wants to control or query any smart home device. If it's in Home Assistant, Assist can handle it.

How It Works

Pass the user's request directly to Assist:

curl -s -X POST "$HASS_SERVER/api/conversation/process" \
  -H "Authorization: Bearer $HASS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text": "USER REQUEST HERE", "language": "en"}'

Trust Assist. It handles:

  • Intent parsing
  • Fuzzy entity name matching
  • Area-aware commands
  • Execution
  • Error responses

Handling Responses

Just relay what Assist says. The response.speech.plain.speech field contains the human-readable result.

  • "Turned on the light" → Success, tell the user
  • "Sorry, I couldn't understand that" → Assist couldn't parse it
  • "Sorry, there are multiple devices called X" → Ambiguous name

Don't over-interpret. If Assist says it worked, it worked. Trust the response.

When Assist Returns an Error

Only if Assist returns an error (response_type: "error"), you can suggest HA-side improvements:

Error Suggestion
no_intent_match "HA didn't recognize that command"
no_valid_targets "Try checking the entity name in HA, or add an alias"
Multiple devices "There may be duplicate names — consider adding unique aliases in HA"

These are suggestions for improving HA config, not skill failures. The skill did its job — it passed the request to Assist.

Setup

Set environment variables in OpenClaw config:

{
  "env": {
    "HASS_SERVER": "https://your-homeassistant-url",
    "HASS_TOKEN": "your-long-lived-access-token"
  }
}

Generate a token: Home Assistant → Profile → Long-Lived Access Tokens → Create Token

API Reference

Endpoint

POST /api/conversation/process

Note: Use /api/conversation/process, NOT /api/services/conversation/process.

Request

{
  "text": "turn on the kitchen lights",
  "language": "en"
}

Response

{
  "response": {
    "speech": {
      "plain": {"speech": "Turned on the light"}
    },
    "response_type": "action_done",
    "data": {
      "success": [{"name": "Kitchen Light", "id": "light.kitchen"}],
      "failed": []
    }
  }
}

Philosophy

  • Trust Assist — It knows the user's HA setup better than we do
  • Fire and forget — Pass the request, relay the response
  • Don't troubleshoot — If something doesn't work, suggest HA config improvements
  • Keep it simple — One API call, natural language in, natural language out

Links

Usage Guidance
This skill is coherent with its description and appears to do only what it claims: forward natural language to Home Assistant's Assist API and relay the reply. Before installing, consider the following: (1) HASS_TOKEN is a long-lived access token tied to a Home Assistant user — anyone with it can act as that user. Prefer creating a dedicated Home Assistant user with limited permissions for OpenClaw, rather than using your personal/admin token. (2) Host the HASS_SERVER URL over HTTPS and ensure network access is restricted as appropriate. (3) Be aware that 'fire and forget' means the skill will execute whatever Assist maps the phrase to (including potentially sensitive actions such as unlocking doors if the token permits). If you need extra safety, restrict the account's permissions or avoid giving the skill control of critical entities. (4) The base64 badge flagged by the scanner is only in documentation and not executed at runtime. If you want higher assurance, review the skill's upstream repo (provided homepage) or run the skill in a non-production environment first.
Capability Analysis
Type: OpenClaw Skill Name: homeassistant-assist Version: 1.1.1 The skill uses `curl` to interact with a user-configured Home Assistant API endpoint, requiring sensitive environment variables (`HASS_SERVER`, `HASS_TOKEN`) for its operation. The `SKILL.md` instructs the AI agent to insert user input directly into a JSON payload's `text` field (`'{"text": "USER REQUEST HERE", "language": "en"}'`). This creates a potential JSON injection vulnerability if the OpenClaw agent does not properly sanitize or escape the user's input before insertion, which could lead to unintended commands being processed by the Home Assistant API. While not explicitly malicious, this direct insertion of user input without sanitization guidance constitutes a significant prompt injection risk.
Capability Assessment
Purpose & Capability
Name/description (control Home Assistant via Assist) match the declared requirements: curl, HASS_SERVER, and HASS_TOKEN. Nothing requested (no unrelated cloud keys, no OS config paths) is out of scope for a Home Assistant integration.
Instruction Scope
SKILL.md is instruction-only and limited to a single API call (POST to /api/conversation/process) and relaying response.speech.plain.speech. It does not instruct reading other files, searching system state, or contacting other external endpoints. The guidance to 'trust Assist' and 'fire and forget' is a design choice (it delegates intent parsing to HA) and not an instruction to access unrelated data.
Install Mechanism
There is no install spec or code to download — instruction-only skill. Low risk: nothing is written to disk by the skill package itself; it relies on curl being present at runtime.
Credentials
Only HASS_SERVER and HASS_TOKEN are required and HASS_TOKEN is correctly declared as the primary credential. These are proportionate to the skill's functionality. Note: Home Assistant long-lived tokens grant whatever permissions the associated user has, so token scope is effectively the user's privileges.
Persistence & Privilege
Skill does not request always:true, has no install hooks, and is user-invocable only. It does not modify other skills or system-wide settings. Agent autonomous invocation is default but not combined with other red flags here.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install homeassistant-assist
  3. After installation, invoke the skill by name or use /homeassistant-assist
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.1
### Added - CI workflow with markdown linting and link checking ### Changed - Cleaned up README formatting for a more professional appearance - Removed emojis from title and section headers - Improved table clarity: renamed "Traditional" to "Entity Lookup Method" - Enhanced note prominence: "Note:" → "Important:" - Consolidated benefits section to reduce redundancy
v1.1.0
### Added - Comprehensive README with badges, installation guide, and troubleshooting tips - Tips for handling entity aliases, automation triggers, and common issues - ClawHub installation badge and button ### Changed - Restructured documentation for better readability - Added comparison table showing token/API efficiency vs traditional approach
v1.0.1
### Changed - Simplified skill philosophy: "fire and forget" — trust Assist to handle everything - Removed over-engineered response parsing guidance - Errors from Assist are now framed as HA config suggestions, not skill failures - Streamlined documentation
v1.0.0
### Added - Initial release of Home Assistant Assist skill - Uses Home Assistant Conversation API (`/api/conversation/process`) for natural language control - Supports any HA-integrated device (not just lights — anything HA exposes) - Query support with smart response parsing - Guidance on parsing `data.success[]` for robust answers when `speech` is ambiguous - Area-aware commands: "turn off the bedroom" - Token-efficient: passes natural language directly to HA instead of manual entity resolution ### Notes - Use `/api/conversation/process`, NOT `/api/services/conversation/process` (service endpoint doesn't return full response) - For queries, parse entity IDs to derive context when friendly names are duplicated
Metadata
Slug homeassistant-assist
Version 1.1.1
License
All-time Installs 14
Active Installs 14
Total Versions 4
Frequently Asked Questions

What is Home Assistant Assist?

Control Home Assistant smart home devices using the Assist (Conversation) API. Use this skill when the user wants to control smart home entities - lights, sw... It is an AI Agent Skill for Claude Code / OpenClaw, with 3129 downloads so far.

How do I install Home Assistant Assist?

Run "/install homeassistant-assist" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Home Assistant Assist free?

Yes, Home Assistant Assist is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Home Assistant Assist support?

Home Assistant Assist is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Home Assistant Assist?

It is built and maintained by DevCats (@developmentcats); the current version is v1.1.1.

💬 Comments