skills$openclaw/home-assistant
ericarnoldy5.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.

5.5k stars3.5k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026productivity

Skill Snapshot

namehome-assistant
descriptionControl 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.
ownerericarnoldy
repositoryericarnoldy/hass-cli
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @ericarnoldy/hass-cli
last updatedFeb 7, 2026

Maintainer

ericarnoldy

ericarnoldy

Maintains home-assistant in the OpenClaw Skills directory.

View GitHub profile
File Explorer
2 files
.
_meta.json
283 B
SKILL.md
3.9 KB
SKILL.md

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 hostname
  • http://homeassistant:8123 — If using Docker/hostname
  • http://<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

  1. Open Home Assistant in your browser
  2. Click your profile (bottom-left of the sidebar, your name/icon)
  3. Scroll down to Long-Lived Access Tokens
  4. Click Create Token
  5. Give it a name (e.g., "Clawdbot" or "CLI")
  6. 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.* — Lights
  • switch.* — Switches, plugs, relays
  • sensor.* — Temperature, humidity, power, etc.
  • binary_sensor.* — Motion, door/window, presence
  • climate.* — Thermostats, HVAC
  • cover.* — Blinds, garage doors
  • media_player.* — TVs, speakers
  • automation.* — Automations
  • script.* — Scripts
  • scene.* — 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
    
README.md

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.