Files
Aodhan Collins c3dda280ea Add OpenClaw skills: home-assistant and voice-assistant
- home-assistant: controls lights, switches, media players, climate etc
  via HA REST API at 10.0.0.199:8123; includes service/domain reference
- voice-assistant: voice-specific response style guide for TTS output
  (concise, no markdown, natural speech)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 00:29:36 +00:00

2.1 KiB
Raw Permalink Blame History

name, description
name description
home-assistant Control smart home devices and query Home Assistant. Use when the user asks to control lights, switches, media players, covers, climate, sensors, or any smart home entity. Also use for scenes, scripts, automations, and device state queries. Examples: turn off the living room lights, what is the temperature in the bedroom, play music in the kitchen, is the front door locked.

Home Assistant Skill

Connection

  • URL: http://10.0.0.199:8123
  • Token: read from environment HASS_TOKEN or file ~/.homeai/hass_token
  • API base: {URL}/api

Common API calls

Get all states (entity discovery):

curl -s -H "Authorization: Bearer $HASS_TOKEN" \
  http://10.0.0.199:8123/api/states | jq '[.[] | {entity_id, state, attributes: .attributes.friendly_name}]'

Get single entity state:

curl -s -H "Authorization: Bearer $HASS_TOKEN" \
  http://10.0.0.199:8123/api/states/<entity_id>

Call a service (turn on/off, set value, etc.):

curl -s -X POST \
  -H "Authorization: Bearer $HASS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"entity_id": "<entity_id>"}' \
  http://10.0.0.199:8123/api/services/<domain>/<service>

Domain/service reference

Domain Services
light turn_on, turn_off, toggle (+ brightness, color_temp, rgb_color)
switch turn_on, turn_off, toggle
media_player media_play, media_pause, media_stop, volume_set, select_source
cover open_cover, close_cover, set_cover_position
climate set_temperature, set_hvac_mode
scene turn_on
script turn_on
input_boolean turn_on, turn_off, toggle
homeassistant turn_on, turn_off (works across domains)

Workflow

  1. If entity ID is unknown, GET /api/states and filter by friendly_name or domain
  2. Call the appropriate service with the entity_id
  3. Confirm the action succeeded (HTTP 200 = OK)
  4. Report back to user in natural language

Tips

  • Entity IDs follow pattern: <domain>.<name> e.g. light.living_room
  • For brightness: 0255 range (255 = max)
  • Token is long-lived — never regenerate unless asked