homeassistant
SKILL.md
Home Assistant
Control smart home devices via Home Assistant API.
Setup
Set environment variables:
HA_URL: Your Home Assistant URL (e.g.,http://192.168.1.100:8123)HA_TOKEN: Long-lived access token (create in HA → Profile → Long-Lived Access Tokens)
Quick Commands
List entities by domain
curl -s "$HA_URL/api/states" -H "Authorization: Bearer $HA_TOKEN" | \
jq -r '.[] | select(.entity_id | startswith("switch.")) | .entity_id'
Turn on/off
# Turn on
curl -s -X POST "$HA_URL/api/services/switch/turn_on" \
-H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"entity_id": "switch.office_lamp"}'
# Turn off
curl -s -X POST "$HA_URL/api/services/switch/turn_off" \
-H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"entity_id": "switch.office_lamp"}'
Control lights
# Turn on with brightness
curl -s -X POST "$HA_URL/api/services/light/turn_on" \
-H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"entity_id": "light.living_room", "brightness_pct": 80}'
Trigger scene
curl -s -X POST "$HA_URL/api/services/scene/turn_on" \
-H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"entity_id": "scene.movie_time"}'
Call any service
curl -s -X POST "$HA_URL/api/services/{domain}/{service}" \
-H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"entity_id": "...", ...}'
Get entity state
curl -s "$HA_URL/api/states/{entity_id}" -H "Authorization: Bearer $HA_TOKEN"
Entity Domains
switch.*— Smart plugs, generic switcheslight.*— Lights (Hue, LIFX, etc.)scene.*— Pre-configured scenesautomation.*— Automationsclimate.*— Thermostatscover.*— Blinds, garage doorsmedia_player.*— TVs, speakerssensor.*— Temperature, humidity, etc.
Notes
- API returns JSON by default
- Long-lived tokens don't expire — store securely
- Test entity IDs with the list command first
Weekly Installs
5
Repository
clawdbot/skillsInstalled on
opencode4
codex3
claude-code3
gemini-cli3
windsurf2
clawdbot2