homeassistant-skill

Review·Scanned 2/17/2026

This skill controls Home Assistant devices via its REST API using shell curl commands and jq-based templates. It requires HA_URL and HA_TOKEN and therefore executes shell commands and uses stored credentials to make network calls to "$HA_URL/api/...".

from clawhub.ai·v2.0.3·23.5 KB·0 installs
Scanned from 2.0.3 at 6ad1b15 · Transparency log ↗
$ vett add clawhub.ai/anotb/homeassistant-skillReview findings below

Home Assistant Skill

An AI agent skill for controlling Home Assistant devices and automations through natural language. 25 entity domains including lights, climate, locks, presence, weather, calendars, notifications, and more — all via the HA REST API.

Works with Claude Code, OpenClaw, Cursor, and any tool supporting the Agent Skills standard.

Prerequisites

  • Home Assistant instance with API access
  • curl and jq installed

Installation

Claude Code

git clone https://github.com/anotb/homeassistant-skill.git ~/.claude/skills/homeassistant-skill

OpenClaw (via ClawdHub)

clawhub install homeassistant-skill

Cursor / Other

Clone to your agent's skill directory.

Configuration

  1. Create a long-lived access token in Home Assistant: Profile → Long-Lived Access Tokens
  2. Set environment variables:
export HA_URL=http://10.0.0.10:8123
export HA_TOKEN=your-long-lived-access-token

What You Can Do

DomainActions
SwitchesTurn on, off, toggle
LightsOn/off, brightness, color, color temp
ScenesActivate scenes
ScriptsList, run, run with variables
AutomationsTrigger, enable, disable
ClimateSet temperature, HVAC mode
CoversOpen, close, set position (blinds, garage)
LocksLock, unlock (with safety confirmation)
FansOn/off, speed
Media playersPlay, pause, volume
VacuumStart, return to dock
AlarmArm, disarm (with safety confirmation)
NotificationsSend to mobile devices, list targets
Person / PresenceWho is home, device locations
WeatherCurrent conditions, daily/hourly forecast
Input helpersBoolean, number, select, text, datetime
CalendarList calendars, upcoming events
Text-to-SpeechSpeak messages on media players
SensorsRead temperature, humidity, power, etc.
Areas & FloorsDiscover areas, floors, entities by area
HistoryEntity state history, logbook
TemplatesEvaluate Jinja2 templates server-side

Usage Examples

# "Turn on the office light at 80%"
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.office", "brightness_pct": 80}'

# "What's the temperature?"
curl -s "$HA_URL/api/states" -H "Authorization: Bearer $HA_TOKEN" \
  | jq '.[] | select(.attributes.device_class == "temperature") | {name: .attributes.friendly_name, temp: .state, unit: .attributes.unit_of_measurement}'

License

MIT