Claude Code용 Home Assistant Manager 스킬: 자동화 배포·검증, 대시보드 구축
README 링크에서 발견 · yesterday
SSH를 통해 hass-cli로 Home Assistant 설정을 관리하는 Claude Code 스킬입니다.
What they did
저자는 Claude를 일반적인 YAML 생성기가 아니라 Home Assistant 전문가로 만들어 주는 home-assistant-manager라는 Claude Code 스킬을 패키징했습니다. 이 스킬은 의견이 뚜렷한 워크플로를 담고 있습니다. 로컬에서 구성을 편집하고, 적용 전에 검증하고, scp로 라이브 인스턴스에 변경 사항을 푸시해 즉시 테스트한 뒤, 안정화된 후에만 git에 커밋합니다. 또한 무엇이 변경되었는지에 따라 reload와 전체 재시작 중 무엇을 선택할지 Claude가 판단하도록 가르쳐서, 일상적인 조정이 다운타임을 일으키지 않게 합니다. 자동화의 경우, 이 스킬은 Claude가 LLM이 흔히 내놓는 deprecated 스타일 대신 최신 2024.10+ 문법(triggers/conditions/actions, service: 대신 action:)을 사용하도록 유도하며, 검증 프로토콜도 포함합니다. 자동화를 수동으로 트리거한 뒤 로그와 트레이스에서 성공 또는 오류 지표를 확인하는데, automation.trigger가 조건을 건너뛴다는 함정도 포함합니다. 또한 블루프린트 구조, mode: restart와 single 중 선택, 템플릿 오류와 타입 불일치 식별, 반복적인 수정 및 재테스트 루프도 다룹니다. 게다가 이 스킬은 Lovelace 대시보드 개발을 지원하며, 터치 친화적 컨트롤, 색상으로 구분된 상태, 반응형 그리드를 보여 주는 태블릿 최적화 대시보드 예시를 제공합니다. 원격 접근은 SSH와 hass-cli를 통해 이루어지며, 저장소에는 스킬 점검과 전체 엔드투엔드 워크플로를 3배속으로 담은 데모 영상이 포함되어 있습니다.
How it went
이 저장소는 완성도 높은 데모 기반 스킬을 제시한다. 두 개의 영상은 Claude가 스킬을 인식하고 배포, 테스트, 로그 분석, git commit으로 이어지는 완전한 자동화 사이클을 실행하는 모습을 보여주며, 완성된 태블릿 대시보드 스크린샷도 함께 제공한다. 적용 전 검증과 로그/트레이스 확인을 강조하는 점은 깨진 배포가 줄어들 것임을 시사하지만, 결과는 벤치마크가 아닌 자기 보고 방식이다.
Worth knowing
SSH로 접근 가능한 Home Assistant 인스턴스가 필요하며, hass-cli가 설치되어 있고 자격 증명이 구성되어 있어야 합니다. 순수 로컬 또는 클라우드 전용 설정에서는 여기의 어떤 것도 작동하지 않습니다. 이 스킬은 설정용 git 저장소와 작동하는 scp 경로를 전제로 합니다. 최신 문법 가이드는 2024.10+ HA 버전에 맞춰져 있으므로, 이전 설치에서는 조정이 필요할 수 있습니다. 자동화된 테스트 스위트는 설명되어 있지 않으며, 데모는 전체를 망라한 것이 아니라 선별된 것입니다.
Wiring
repo를 클론하고 skills/home-assistant-manager를 Claude Code skills 디렉터리에 배치하면 Claude가 필요할 때 해당 skill을 로드합니다. Home Assistant 호스트에 대한 SSH 접근을 구성하고(키 기반 인증 권장), Claude가 실행되는 머신에 hass-cli를 설치한 뒤 HA URL과 장기 액세스 토큰을 지정합니다. HA 구성을 로컬 git repo에 보관하세요. 루프는 다음과 같습니다: Claude가 로컬에서 YAML을 편집하고, config 검증 단계를 실행하고, 파일을 scp로 HA config 디렉터리에 전송하고, hass-cli를 호출해 해당 도메인을 reload합니다(필요한 경우 restart). 그런 다음 자동화를 트리거하고 hass-cli 또는 HA API를 통해 로그/트레이스를 가져와 동작을 확인한 후 git에 커밋합니다.
Try it yourself
I can't do this. I don't have the ability to install skills, access your filesystem, read your Home Assistant config repo, connect via SSH/hass-cli, or execute any of the deployment, validation, or log-checking steps you've described. I'm a text-only assistant with no tool access, no shell, and no network connectivity in this conversation. What I can do is help you plan and write the pieces you'd run yourself. Here's a concrete walkthrough you can execute: **1. Install the skill** ```bash # In your Claude Code setup claude skill install komal-SkyNET/claude-skill-homeassistant # or clone into your skills directory, e.g. ~/.claude/skills/ git clone https://github.com/komal-SkyNET/claude-skill-homeassistant ~/.claude/skills/home-assistant-manager ``` **2. Audit for deprecated syntax (2024.10+)** Key conversions to look for: - `platform:` → `trigger:` (e.g. `platform: state` → `trigger: state`) - `condition: state` with `for:` moved under the trigger where applicable - `service:` → `action:` in automations/scripts - `data_template:` → `data:` - `trigger.to_state.state` patterns still fine, but `state` trigger `attribute` handling changed - `mode: single` with `max_exceeded` — review - Template sensors: `platform: template` → `template:` block **3. Flag `mode: restart` candidates** Automations that should likely be `mode: restart`: - Motion-activated lights with a `delay`/`wait_for_trigger` (re-trigger should reset the timer) - Presence-based scenes - Any automation using `for:` duration that should reset on new trigger - Notification automations where only the latest matters Keep `single` for: idempotent actions, safety-critical (e.g. door locks), anything where overlapping runs are dangerous. **4. Validate + deploy** ```bash # Validate hass --script check_config -c /path/to/config # or via API curl -X POST -H "Authorization: Bearer $TOKEN" \ http://homeassistant:8123/api/config/core/check_config # Deploy scp automations.yaml user@ha-host:/config/ # Reload (preferred over restart) hass-cli service call automation.reload hass-cli service call script.reload hass-cli service call template.reload ``` **5. Test each changed automation** ```bash # Trigger manually — NOTE: automation.trigger skips conditions by default hass-cli service call automation.trigger --arguments entity_id=automation.my_automation # To respect conditions, use skip_condition=false: hass-cli service call automation.trigger \ --arguments entity_id=automation.my_automation,skip_condition=false # Check logs hass-cli raw get /api/error_log # Traces: Settings → Automations → [automation] → Traces in UI, # or GET /api/trace/automation/<entity_id> ``` **6. What still needs a restart** - Changes to `configuration.yaml` core sections (integrations, `homeassistant:` block) - New custom components / integrations - `recorder`, `http`, `logger` config changes - Anything not covered by `automation.reload`, `script.reload`, `template.reload`, `scene.reload`, `group.reload`, `input_*.reload` If you paste your `automations.yaml` (or the relevant excerpts) and your `configuration.yaml`, I can do the actual syntax audit, rewrite the deprecated blocks, and flag the `mode:` changes line by line. I just can't touch your machine.