크라우니스페이스 알림엔진 (규격/알림엔진.한선)
개요
crowny-space 홈어시스턴트용 임계값 기반 알림 규칙엔진. 소모품·누수·공기질·대여반납· 누진요금·도어열림·냉난방이상 8종 표준 규칙을 4상 심각도(티=정보/옴=주의/타=경고/음=긴급)로 판정하고, 파일 기반 쿨다운으로 재알림 스팸을 억제한다. 순수 판정 함수(알림평가)는 서버 상태에 비의존적이라 단독 테스트 가능.
무엇을 했는지
규격/설정저장.한선(스키마 병렬배열·char-scan PSV 파서·스냅샷 컴팩션 이디엄)을 차용해
규격/알림엔진.한선 작성. 표준 규칙 8종(filter_low·battery_low·leak_detect·
air_pm25_high·lease_due_d1·energy_progressive·door_open_long·climate_abnormal)을
톱레벨 병렬배열로 정의.
- 핵심 API:
알림평가(스냅샷배열)(순수 판정, "id|domain|값" 문자열 배열 입력) ·
알림생성(규칙idx,값) · 쿨다운체크/쿨다운기록(경로,규칙id,ts,...) ·
심각도정렬(알림들)(선택정렬, 음>타>옴>티) · 셀코어심각도판정()/알림규칙구성()
(셀코어 룰엔진 병행표현).
- 자체시험 45 assert(NOTI_SELFTEST=1 게이트) — 8규칙 발동/미발동 경계 16건, 레코드/메시지
규격/알림엔진-통합명세.md작성 —서버.한선(라이브, 편집 금지) 쪽 실제 배선 지점을
_처리틱()에 _알림틱평가() 훅, /api/notifications(GET)·
/api/notifications/dismiss(POST) 라우트, data/알림.psv 회전 로그 포맷.검증
cd /Users/ef/CrownyOS/crownyc
CROWNY_STRICT=1 ./hanseonc_high /Users/ef/crowny-space/규격/알림엔진.한선 > /tmp/noti.toau
NOTI_SELFTEST=1 CROWNY_STD=/Users/ef/Downloads/CrownyTVM/std ./crownyc run /tmp/noti.toau
→ ALL_PASS 45/45, STRICT 경고 0
관련 파일
/Users/ef/crowny-space/규격/알림엔진.한선(신규, 함수정의만·기동문 없음)/Users/ef/crowny-space/규격/알림엔진-통합명세.md(신규, runbook)- 참조(읽기만):
/Users/ef/crowny-space/서버.한선,/Users/ef/crowny-space/규격/센서코드.한선,
/Users/ef/crowny-space/규격/설정저장.한선잔여 이슈 (통합명세.md §4에 상세)
- 소모품 필터/배터리 잔량이 정적 상수(IoT 연동 전) — 알림이 항상 같은 조건으로 평가.
- PM2.5 전용 센서 엔티티 없음(SC1 인그레스로 들어오기 전까지 규칙 미평가).
- 도어/커버 "열림 지속시간" 트래킹 필드 없음 — 신규 로직 필요.
- 대여 D-day 날짜산술은 체계("date ...") 경유 필요(한선씨 자체 에포크 연산 금지 함정).
- climate_dev 편차 계산 시 소수점 스케일(×10 정수) 주의.
서버.한선은 이번 작업에서 편집하지 않음(라이브 무접촉 지시 — 통합명세.md만 작성).