Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
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...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
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: Intent parsing Fuzzy entity name matching Area-aware commands Execution Error 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.
Only if Assist returns an error (response_type: "error"), you can suggest HA-side improvements: ErrorSuggestionno_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.
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": [] } } }
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
Home Assistant Conversation API Docs
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.