dawiddutoit/custom-claude/ha-operations

Claude Code and agent skill by dawiddutoit/custom-claude

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Interacts with Home Assistant via REST API for health checks, notifications, and service calls. Provides guidance for API access with long-lived tokens, sending notifications, calling services, and troubleshooting common issues. Use when checking HA health, sending HA notifications, calling HA services, or troubleshooting "Home Assistant returns 405", "HA health check failing", "can't access HA API", or "HA notifications not working".

Install

npx vskill@latest install dawiddutoit/custom-claude/ha-operations

SKILL.md

Home Assistant Operations

Quick Start

Check if Home Assistant is healthy:

bash
# ✅ CORRECT: Use GET request
curl -s https://ha.temet.ai/ | grep "Home Assistant"
# ❌ WRONG: HEAD returns 405 (but this is expected behavior, not an error!)
curl -I https://ha.temet.ai/
# Returns: HTTP/2 405 Method Not Allowed - THIS IS NORMAL

Send a notification:

bash
source /Users/dawiddutoit/projects/play/network-infrastructure/.env
curl -X POST "${HA_BASE_URL}/api/services/notify/${HA_NOTIFY_SERVICE#*.}" \
-H "Authorization: Bearer ${HA_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"message": "Test from infrastructure monitoring",
"title": "Infrastructure Alert"
}'

When to Use

Triggers:

  • "Interact with Home Assistant"
  • "Call HA service"
  • "Send HA notification"
  • "Check HA health"
  • "Home Assistant returns 405"
  • "HA health check failing"

Key Concepts

The 405 Situation

Home Assistant does NOT support HEAD requests. It returns HTTP 405 Method Not Allowed for HEAD, which is EXPECTED and NORMAL behavior.

Correct Health Check:

bash
# ✅ Use GET and check content
curl -s https://ha.temet.ai/ --max-time 5 | grep "Home Assistant"

Operations

API Access

Create long-lived token in HA UI → Profile → Long-Lived Access Tokens

Store in .env:

bash
HA_ACCESS_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
HA_BASE_URL=http://192.168.68.123:8123
HA_NOTIFY_SERVICE=notify.mobile_app_your_phone
Send Notifications
bash
curl -X POST "${HA_BASE_URL}/api/services/notify/${HA_NOTIFY_SERVICE#*.}" \
-H "Authorization: Bearer ${HA_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"message": "Alert text", "title": "Title"}'
Call Services
bash
# General pattern
curl -X POST "${HA_BASE_URL}/api/services/<domain>/<service>" \
-H "Authorization: Bearer ${HA_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"entity_id": "entity.name"}'
# Trigger automation
curl -X POST "${HA_BASE_URL}/api/services/automation/trigger" \
-H "Authorization: Bearer ${HA_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"entity_id": "automation.infrastructure_alert_handler"}'
Read Entity States
bash
# Specific entity
curl -s "${HA_BASE_URL}/api/states/sensor.temperature" \
-H "Authorization: Bearer ${HA_ACCESS_TOKEN}" | jq .
# All entities
curl -s "${HA_BASE_URL}/api/states" \
-H "Authorization: Bearer ${HA_ACCESS_TOKEN}" | jq .

Supporting Files

FilePurpose
references/api-endpoints.mdComplete HA REST API endpoint reference

Requirements

  • Home Assistant running at 192.168.68.123:8123
  • Long-lived access token
  • Environment variables: HA_BASE_URL, HA_ACCESS_TOKEN, HA_NOTIFY_SERVICE
  • Tools: curl, jq (optional)

Red Flags

  • [ ] Do not use HEAD requests (always returns 405)
  • [ ] Do not assume 405 means HA is broken
  • [ ] Do not expose access tokens in logs
  • [ ] Do not hardcode tokens in scripts (use .env)
  • [ ] Do not skip token creation

Common Issues

SymptomCauseFix
HTTP 405Used HEAD instead of GETUse GET
401 UnauthorizedInvalid tokenVerify token, recreate
404 Not FoundWrong entity_idCheck entity exists
Connection refusedHA not runningCheck HA server
No notificationWrong service nameVerify HA_NOTIFY_SERVICE

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
2
7-day trend score
5

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/dawiddutoit/custom-claude/ha-operations/badge)](https://verified-skill.com/skills/dawiddutoit/custom-claude/ha-operations)

Something wrong with this skill or its page? Tell us.