Awesome-openclaw-skills homeassistant
Control Home Assistant - smart plugs, lights, scenes, automations.
install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/homeassistant" ~/.claude/skills/sundial-org-awesome-openclaw-skills-homeassistant && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/homeassistant" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-homeassistant && rm -rf "$T"
manifest:
skills/homeassistant/SKILL.mdsource content
Home Assistant
Control smart home devices via Home Assistant API.
Setup
Set environment variables:
: Your Home Assistant URL (e.g.,HA_URL
)http://192.168.1.100:8123
: Long-lived access token (create in HA → Profile → Long-Lived Access Tokens)HA_TOKEN
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
— Smart plugs, generic switchesswitch.*
— Lights (Hue, LIFX, etc.)light.*
— Pre-configured scenesscene.*
— Automationsautomation.*
— Thermostatsclimate.*
— Blinds, garage doorscover.*
— TVs, speakersmedia_player.*
— Temperature, humidity, etc.sensor.*
Notes
- API returns JSON by default
- Long-lived tokens don't expire — store securely
- Test entity IDs with the list command first