name: homeassistant description: Control Home Assistant - smart plugs, lights, scenes, automations. homepage: https://www.home-assistant.io/ metadata: {"clawdis":{"emoji":"🏠","requires":{"bins":["curl"],"env":["HA_TOKEN"]},"primaryEnv":"HA_TOKEN"}}
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 switches -
light.*— Lights (Hue, LIFX, etc.) -
scene.*— Pre-configured scenes -
automation.*— Automations -
climate.*— Thermostats -
cover.*— Blinds, garage doors -
media_player.*— TVs, speakers -
sensor.*— 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
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
229
GitHub Forks
71
Created
Jan 2026
Last Updated
5 months ago
tools
tools productivity tools
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!