5.5k★by ericarnoldy
home-assistant – OpenClaw Skill
home-assistant is an OpenClaw Skills integration for productivity workflows. Control Home Assistant devices and automations via hass-cli. Use when controlling smart home devices, lights, switches, sensors, climate, media players, or running automations/scripts. Requires HASS_SERVER and HASS_TOKEN environment variables.
Skill Snapshot
| name | home-assistant |
| description | Control Home Assistant devices and automations via hass-cli. Use when controlling smart home devices, lights, switches, sensors, climate, media players, or running automations/scripts. Requires HASS_SERVER and HASS_TOKEN environment variables. OpenClaw Skills integration. |
| owner | ericarnoldy |
| repository | ericarnoldy/hass-cli |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @ericarnoldy/hass-cli |
| last updated | Feb 7, 2026 |
Maintainer

name: home-assistant description: Control Home Assistant devices and automations via hass-cli. Use when controlling smart home devices, lights, switches, sensors, climate, media players, or running automations/scripts. Requires HASS_SERVER and HASS_TOKEN environment variables. metadata: {"clawdbot":{"emoji":"🏠","requires":{"bins":["hass-cli"]},"install":[{"id":"brew","kind":"brew","formula":"homeassistant-cli","bins":["hass-cli"],"label":"Install hass-cli (brew)"}]}}
Home Assistant CLI
Control Home Assistant via hass-cli.
Install
# macOS (Homebrew)
brew install homeassistant-cli
# pip (any platform)
pip install homeassistant-cli
# Verify
hass-cli --version
Setup
1. Find Your Home Assistant URL
Common URLs (try in order):
http://homeassistant.local:8123— Default mDNS hostnamehttp://homeassistant:8123— If using Docker/hostnamehttp://<IP-ADDRESS>:8123— Direct IP (e.g.,http://192.168.1.100:8123)https://your-instance.ui.nabu.casa— If using Nabu Casa cloud
Test it: open the URL in a browser — you should see the HA login page.
2. Create a Long-Lived Access Token
- Open Home Assistant in your browser
- Click your profile (bottom-left of the sidebar, your name/icon)
- Scroll down to Long-Lived Access Tokens
- Click Create Token
- Give it a name (e.g., "Clawdbot" or "CLI")
- Copy the token immediately — you won't see it again!
The token looks like: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3...
3. Configure Environment Variables
Add to your shell profile (~/.zshrc or ~/.bashrc):
export HASS_SERVER="http://homeassistant.local:8123"
export HASS_TOKEN="your-token-here"
Or for Clawdbot, store credentials in TOOLS.md:
## Home Assistant
- **URL:** `http://homeassistant.local:8123`
- **Token:** `eyJ...your-token...`
Then reference TOOLS.md before making calls.
Quick Reference
# List all entities
hass-cli state list
# Filter entities (pipe to grep)
hass-cli state list | grep -i kitchen
# Get specific entity state
hass-cli state get light.kitchen
# Turn on/off
hass-cli service call switch.turn_on --arguments entity_id=switch.fireplace
hass-cli service call switch.turn_off --arguments entity_id=switch.fireplace
hass-cli service call light.turn_on --arguments entity_id=light.kitchen
hass-cli service call light.turn_off --arguments entity_id=light.kitchen
# Light brightness (0-255)
hass-cli service call light.turn_on --arguments entity_id=light.kitchen,brightness=128
# Toggle
hass-cli service call switch.toggle --arguments entity_id=switch.fireplace
# Climate
hass-cli service call climate.set_temperature --arguments entity_id=climate.thermostat,temperature=72
# Run automation/script
hass-cli service call automation.trigger --arguments entity_id=automation.evening_lights
hass-cli service call script.turn_on --arguments entity_id=script.movie_mode
Entity Naming Patterns
light.*— Lightsswitch.*— Switches, plugs, relayssensor.*— Temperature, humidity, power, etc.binary_sensor.*— Motion, door/window, presenceclimate.*— Thermostats, HVACcover.*— Blinds, garage doorsmedia_player.*— TVs, speakersautomation.*— Automationsscript.*— Scriptsscene.*— Scenes
Discovery Tips
# Find all lights
hass-cli state list | grep "^light\."
# Find devices by room name
hass-cli state list | grep -i bedroom
# Find all "on" devices
hass-cli state list | grep -E "\s+on\s+"
# Get entity attributes (JSON)
hass-cli --format json state get light.kitchen
Notes
- Empty
[]response from service calls = success - Use exact entity_id from
state list - Multiple arguments: comma-separated (no spaces)
- If hass-cli unavailable, use REST API as fallback:
curl -s -H "Authorization: Bearer $HASS_TOKEN" "$HASS_SERVER/api/states" | jq
No README available.
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
FAQ
How do I install home-assistant?
Run openclaw add @ericarnoldy/hass-cli in your terminal. This installs home-assistant into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/ericarnoldy/hass-cli. Review commits and README documentation before installing.
