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...
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...
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
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.
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.
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:
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 nameDon't over-interpret. If Assist says it worked, it worked. Trust the response.
Only if Assist returns an error (
response_type: "error"), you can suggest HA-side improvements:
| Error | Suggestion |
|---|---|
| "HA didn't recognize that command" |
| "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.
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
POST /api/conversation/process
Note: Use
/api/conversation/process, NOT /api/services/conversation/process.
{ "text": "turn on the kitchen lights", "language": "en" }
{ "response": { "speech": { "plain": {"speech": "Turned on the light"} }, "response_type": "action_done", "data": { "success": [{"name": "Kitchen Light", "id": "light.kitchen"}], "failed": [] } } }
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.