← 목록
기타 2026-07-21 3KB 읽기 3분

크라우니스페이스 알림엔진 (규격/알림엔진.한선)

개요

crowny-space 홈어시스턴트용 임계값 기반 알림 규칙엔진. 소모품·누수·공기질·대여반납· 누진요금·도어열림·냉난방이상 8종 표준 규칙을 4상 심각도(티=정보/옴=주의/타=경고/음=긴급)로 판정하고, 파일 기반 쿨다운으로 재알림 스팸을 억제한다. 순수 판정 함수(알림평가)는 서버 상태에 비의존적이라 단독 테스트 가능.

무엇을 했는지

  1. 규격/설정저장.한선(스키마 병렬배열·char-scan PSV 파서·스냅샷 컴팩션 이디엄)을 차용해
규격/알림엔진.한선 작성. 표준 규칙 8종(filter_low·battery_low·leak_detect· air_pm25_high·lease_due_d1·energy_progressive·door_open_long·climate_abnormal)을 톱레벨 병렬배열로 정의.
  1. 핵심 API: 알림평가(스냅샷배열)(순수 판정, "id|domain|값" 문자열 배열 입력) ·
알림생성(규칙idx,값) · 쿨다운체크/쿨다운기록(경로,규칙id,ts,...) · 심각도정렬(알림들)(선택정렬, 음>타>옴>티) · 셀코어심각도판정()/알림규칙구성() (셀코어 룰엔진 병행표현).
  1. 자체시험 45 assert(NOTI_SELFTEST=1 게이트) — 8규칙 발동/미발동 경계 16건, 레코드/메시지
조립, 알림평가 종단 파이프라인, 4단계 전체 정렬, 쿨다운 경계, 셀코어 파리티.
  1. 규격/알림엔진-통합명세.md 작성 — 서버.한선(라이브, 편집 금지) 쪽 실제 배선 지점을
runbook 형태로 명시: _처리틱()_알림틱평가() 훅, /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만 작성).