260424 — 5개 migrated job active 전환 + Hermes 첫 실행 검증
- 실행 시각: 2026-04-24 14:19 KST
- 대상:
hmig-cold-alert,hmig-rain-alert,hmig-late-lights,hmig-kpi-daily,hmig-kpi-weekly - 결론: 5/5 Hermes active 전환 완료, 5/5 첫 실행 rc=0, OpenClaw 원본 LaunchAgent 5/5 Disabled+bootout 완료
1) Hermes jobs.json active 전환
백업:
- /Users/ron/.hermes/cron/jobs.json.bak-activate-small5-20260424_141903
적용 명령:
python3 ~/.hermes/workspace/scripts/admin/auto_migrate_openclaw.py --batch-small-5 --apply --enable --json
검증 결과:
| job id | enabled | state | schedule |
|---|---|---|---|
| hmig-cold-alert | true | scheduled | 10 7 * * * |
| hmig-rain-alert | true | scheduled | 15 7 * * * |
| hmig-late-lights | true | scheduled | 0 23 * * * |
| hmig-kpi-daily | true | scheduled | 45 7 * * * |
| hmig-kpi-weekly | true | scheduled | 50 7 * * 1 |
Hermes jobs 총수: 78
2) Hermes 첫 1회 실행 검증
검증 로그 디렉터리:
- /tmp/hmig_first_run_20260424_141928/
주의: 센서 3개는 실제 홈 자동화/TTS 부작용을 막기 위해 HA_URL=http://127.0.0.1:9 HA_TIMEOUT=1 NO_SEND=1로 격리 실행했다. 즉 스크립트 실행 경로와 skip 처리 검증은 완료했지만, 실제 HA 서버 액션은 발생시키지 않았다.
| job | 실행 방식 | rc | 핵심 출력 | 판정 |
|---|---|---|---|---|
| hmig-cold-alert | HA 격리 + NO_SEND | 0 | [SKIP] 기온 정상 범위 |
PASS |
| hmig-rain-alert | HA 격리 + NO_SEND | 0 | [SKIP] 비/눈 예보 없음 |
PASS |
| hmig-late-lights | HA 격리 + NO_SEND | 0 | [SKIP] 조명 모두 꺼져있음 |
PASS |
| hmig-kpi-daily | --no-send |
0 | telegram_payload 생성 후 no-send requested |
PASS |
| hmig-kpi-weekly | --weekly --no-send |
0 | telegram_payload 생성 후 no-send requested |
PASS |
원문 샘플:
hmig-cold-alert rc=0
stdout: [SKIP] 기온 정상 범위
stderr: ERROR:<urlopen error [Errno 61] Connection refused>
hmig-rain-alert rc=0
stdout: [SKIP] 비/눈 예보 없음
stderr: ERROR:<urlopen error [Errno 61] Connection refused>
hmig-late-lights rc=0
stdout: [SKIP] 조명 모두 꺼져있음
hmig-kpi-daily rc=0
[kpi-wrapper] original_exit=0
[kpi-wrapper] telegram_payload BEGIN
📊 <b>일일 KPI 리포트 — 운영 판단형</b>
...
[kpi-wrapper] telegram_payload END
[kpi-wrapper] no-send requested
hmig-kpi-weekly rc=0
[kpi-wrapper] original_exit=0
[kpi-wrapper] telegram_payload BEGIN
📈 <b>주간 KPI 리포트 — 7일 추세</b>
...
[kpi-wrapper] telegram_payload END
[kpi-wrapper] no-send requested
3) OpenClaw 원본 LaunchAgent 비활성화
대상 plist는 삭제하지 않고, 각각 백업 후 Disabled=true로 수정하고 launchctl bootout 처리했다.
백업 예시:
- /Users/ron/Library/LaunchAgents/com.openclaw.cold-alert.plist.bak-hmig-activate-20260424_141951
- /Users/ron/Library/LaunchAgents/com.openclaw.rain-alert.plist.bak-hmig-activate-20260424_141951
- /Users/ron/Library/LaunchAgents/com.openclaw.late-lights.plist.bak-hmig-activate-20260424_141951
- /Users/ron/Library/LaunchAgents/com.openclaw.kpi-daily.plist.bak-hmig-activate-20260424_141951
- /Users/ron/Library/LaunchAgents/com.openclaw.kpi-weekly.plist.bak-hmig-activate-20260424_141951
검증 로그:
- /tmp/hmig_disable_openclaw_20260424_141951.log
검증 결과:
| OpenClaw label | Disabled | bootout | launchctl print after |
|---|---|---|---|
| com.openclaw.cold-alert | true | 0 | not found |
| com.openclaw.rain-alert | true | 0 | not found |
| com.openclaw.late-lights | true | 0 | not found |
| com.openclaw.kpi-daily | true | 0 | not found |
| com.openclaw.kpi-weekly | true | 0 | not found |
대표 원문:
"Disabled" => true
bootout_rc=0/0
print_after_rc=113
Bad request.
Could not find service "com.openclaw.cold-alert" in domain for user gui: 501
4) 리스크 / 후속
- 센서 3개는 실제 HA 서버가 아니라 격리 URL로 첫 실행했다. 이유는
late-lights가 조건 충족 시 실제 조명 off / 온수매트 on / 커튼 close를 수행하기 때문이다. - Hermes 정기 실행 명령은 기존 HA URL
https://srv1321629.hstgr.cloud를 그대로 가진다. HA endpoint 자체 장애가 남아 있으면 정기 실행 시 skip/error성 로그가 날 수 있다. - KPI 2개는
--no-send검증에서 payload 생성까지 정상이다. 정기 실행은 발송 경로가 살아있으면 알림센터 ops로 전송된다.
5) 자체평가
- 정확성: 4.5/5 — active 전환, 첫 실행, OpenClaw 비활성화 모두 실측 완료.
- 완성도: 4.3/5 — 센서 실제 HA live action은 안전상 미실행, 대신 부작용 없는 실행 경로로 검증.
- 검증: 4.5/5 — jobs.json, rc, stdout/stderr, launchctl bootout 확인.
- 최소 변경: 4.7/5 — Hermes jobs 등록/활성화와 OpenClaw plist Disabled만 수행, 삭제 없음.
종합: 4.5/5
DONE