crowny-space 기기 페어링/발견 라이브러리 (SC1 규격 엔티티화)
개요
space.crowny.org 홈어시스턴트의 '+ 기기 추가'(현재 토스트만)를 위해 Home
Assistant 페어링 모델(스캔→발견→Area 배정→등록)을 규격화하는 라이브러리
페어링.한선을 신규 작성했다. 발견된 기기는 SC1(센서코드.한선) 규격의
엔티티가 된다.
무엇을 했는지
/Users/ef/crowny-space/규격/페어링.한선신규 작성(함수정의만, 기동문 없음):
페어세션시작(프로토콜) / 페어검증(세션,코드) / 세션사용처리(세션) —
SC1(센서코드.한선) 체크섬 프레임 관례를 재사용한 무상태 세션(문자열
자체에 상태 봉인, 내부 DB 없음).
- 발견시뮬(프로토콜,시드) — zigbee(전구/모션/도어센서 3종), zwave(도어락),
matter(플러그), mqtt(온습도) 대표 기기 카탈로그 + demo 프로토콜로
에어컨(climate+sensor.temp+sensor.filter 3엔티티) 팬아웃 시연.
- 기기등록(공간,기기,영역) — Device 1개→엔티티 n개 팬아웃, SC1
타입코드·초기상태·area 포함 배열 + 서버 엔티티상태.psv 형식과 일치하는
참고용 PSV 라인 반환.
- 어댑터이름/어댑터스캔/어댑터정규화 — zigbee2mqtt 등 실연동 지점
stub(시그니처 확정, 현재는 발견시뮬로 위임).
- 셀코어페어검증(세션,코드) — 룰생성/룰조건추가/룰변경추가로 등록가능
판정을 병행 표현(센서코드.한선 셀코어범위검증과 동일 패턴).
- 자체시험 페어자체시험() 30 assert (PAIR_SELFTEST=1 게이트) — 전부 PASS.
/Users/ef/crowny-space/규격/페어링-통합명세.md— 서버가 추가할 라우트
POST /api/pair/scan, POST /api/pair/register,
GET /api/pair/session/<id>)의 요청/응답 JSON, 엔티티상태.psv 반영 방식
(_엔티티신규등록() 재사용 권장), 가져오기 순서 함정과 해법(서버.한선이
규격/페어링.한선을 가져오기하려면 규격/센서코드.한선을 먼저 가져오기해야
함 — hanseonc_high의 가져오기 경로 해석이 entry file 디렉토리에 고정되는
특성 때문), 무상태 설계의 함의를 정확히 기술.검증
cd /Users/ef/CrownyOS/crownyc
CROWNY_STRICT=1 ./hanseonc_high /Users/ef/crowny-space/규격/페어링.한선 > /tmp/pair.toau
# → STRICT 경고 0
PAIR_SELFTEST=1 ./crownyc run /tmp/pair.toau
# → ALL_PASS 30/30
한 번 실패(치환() 첫 항목만 치환 — 전체치환() 필요)를 잡아 수정 후 재검증
통과. ~/.claude/scripts/crownycode-brain.sh learn "기기페어링발견" 페어링.한선
로 학습 완료.
크라우니코드
- 학습DB
fn_QR페어링_*(사용자계정↔모바일기기 QR 링크, DB조회/DB삽입 CRUD
"PAIR-" 접두 세션ID 표시
(_페어ID생성 idiom → 세션ID표시()), ②"CROWNY_PAIR:v1:..." QR 매직
문자열(페어링QR데이터 idiom → 페어QR데이터()), ③init→pending→
approved/rejected/expired류 상태기계 → 페어검증() 4상(티/옴/타/음).
- lookup MISS(정확 키), search HIT 다수(재사용 사유 상기)/생성 1건(페어링.한선
관련 파일
/Users/ef/crowny-space/규격/페어링.한선(신규)/Users/ef/crowny-space/규격/페어링-통합명세.md(신규)- 참조(읽기 전용, 미수정):
/Users/ef/crowny-space/서버.한선,
/Users/ef/crowny-space/규격/센서코드.한선,
/Users/ef/crowny-space/규격/센서코드규격-v1.md잔여 이슈
- RPN(
.rpn.한선) 동반 미완(센서코드.한선과 동일 이유 — 한 줄 다중 문장 +
clike_to_rpn 변환기가 소화 못함).
- 서버 라우트 3종 실제 배선은 이 작업 범위 밖(서버.한선 편집 금지 지시,
/api/pair/scan의 스캔 시드 카운터,/api/pair/register의 발견목록