POSA_LEAKSMS/docs/INDEX.md
cw2007 6da90ccb36 docs(index): 화재 전환·SMS 단문화·배선도 정정 세션 기록
2046b2f(배선/리포트) + f7fbeac(화재/단문/고착/대시보드) 기록. 운영 잔여작업 명시.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015Dj4n17ZvGAhga6D4pNRjn
2026-07-19 23:35:52 +09:00

4.5 KiB

프로젝트 진행 INDEX

작업 단락(커밋·빌드·배포·결정) 완료 기록. 완료 결과만.

2026-07-19

  • 미커밋 노드 통합 작업 정리 + 커밋 (feat/pi-c-sensor3-leak-node)

    • 86960a8 test(threshold): 결로 판정 단언 운영설정 독립 가드 (테스트 스위트 RED→green)
    • ec78be0 feat(pms7003): 누수 노드 미세먼지(PM2.5/PM10) 통합 — Pi 노드+서버 수집+SQL+마이그레이션
    • 42a6ee4 feat(display): Zero 2 W ST7789 상태 디스플레이 노드 (렌더 11종 선검증)
    • 6f8bf94 feat(dashboard): v2 재테마 + status_summary API + 미세먼지 카드
    • 90b93f8 chore(deploy+docs): 번들 생성기·하드닝·설계문서
    • f5313a6 chore(gitignore): dist/ 배포판 zip 차단
    • 테스트: 9 run / 0 skip / PASS. secret 유출 없음(config_local.py·config.local.php gitignore 확인).
  • 배포판 빌드 (서버 번들)

    • 산출물: dist/leak-sms-server-v2606-20260719.zip (VERSION=v2606, 40파일, 166KB)
    • API_KEY 보존: prefix bbf737d8… 전/후 동일 — 배포노드 orphan 없음
    • 서버 번들 PHP 전수 php -l 통과. status_summary.php·dash-v2.css 반영. schema.sql 멱등+pms7003 컬럼 포함.
    • 배포 방식: 수동(체크리스트) · DB 초기화 후 새 설치 결정
    • 체크리스트: dist/DEPLOY-CHECKLIST-server-v2606.md
  • 배포 setup.sh 위치-독립화 (flatten 제거) — 3fda1f2

    • systemd 유닛 /home/pi/<sub> 경로를 설치 시 $BASE=$(pwd) 로 sed 치환 → 번들 폴더를 이름 그대로 /home/pi 아래 어디든(USB 통째 복사) 두고 실행 가능. flatten 단계 삭제.

    • 부수 버그 수정: zero2w 유닛 /home/pi/display 하드코딩이 실제 설치경로와 불일치(서비스 기동 실패)하던 것 해소.

    • 검증: BASE 시뮬레이션으로 유닛 경로 정합 확인, 4개 번들 setup.sh 전부 BASE 주입, 88개 스크립트 CRLF/BOM 0(전부 LF).

    • 산출물: dist/leak-sms-pi-nodes-v2606-20260719.zip (4개 Pi 번들, 127파일, 406KB)

    • 잔여 작업(운영):

      • cafe24 서버 업로드 + DB 초기화/schema.sql (운영자 수동 — 체크리스트 참조)
      • 노드 4종 배포 (USB: 폴더째 /home/pi 복사 → cd /home/pi/<folder> && bash setup.sh)
      • feat/pi-c-sensor3-leak-node push / PR
      • 1.png·2.png (repo 루트 스트레이 스크린샷) 정리 결정
  • 센서 형태·내용 보고서 (납품 HTML)

    • 산출물: docs/센서_형태_내용_보고서-v2606-20260719.html (자기완결 단일 파일, 125KB)
    • 내용: 누수(e-con 5C-08/GPIO17)·SHT30(I2C)·PMS7003(UART)·카메라(CSI)·디스플레이(ST7789V/SPI) 형태·인터페이스·핀·서버 임계값 + 노드 구성(id1/2/3). 배선도 6종(핀맵+회로도) base64 SVG 임베드.
    • 소스: WIRING.html 인라인 SVG 6종 추출 → xmlns 주입·&rarr; 엔티티 정정·클래스 CSS를 presentation 속성으로 인라인화(주석 스트립 포함)·viewBox 아웃워드 패딩.
    • 검증: 브라우저 실렌더 6종 전부 정상(레일 회색·사용핀 색상·라벨 판독), XML well-formed, 수평 오버플로 없음. 무관 대시보드 PNG(1·2.png) 미포함 확인.
  • 화재 전환·SMS 단문화·배선도 정정 (feat/pi-c-sensor3-leak-node)

    • 2046b2f docs(wiring): 누수 저항식 2선 프로브(전극 A→3V3, 전극 B→GPIO17; 10MΩ 풀다운=보드 부품)· SHT30 모듈 4선 직결(외부 풀업 제거)로 배선도 §4 + 납품 리포트 정정. 브라우저 렌더 텍스트/선 겹침 0.
    • f7fbeac feat: PM 급상승 → 화재의심 전환. 서버실/항온항습 화재 프록시(여과·양압 평상 PM≈0).
      • 임계 하향 75/150 → 35/75(연기 조기감지), SMS 태그 [미세먼지경보]→[화재의심].
      • SMS 단문화: 전 본문 EUC-KR ≤90B(관리주체 제거·날짜 m-d H:i·태그+위치 1줄). 실측 45~70B → 단문 절단 해소.
      • 센서고착 검출 기본 비활성(STUCK_DETECT_ENABLED=false): 항온항습 문서고 평탄값 오탐 차단.
      • 대시보드 라벨 통일(경보=화재의심, PM 측정=화재감시). metric_status(high_pm25/10) 코드·값·판정 불변 — 표시단만.
    • 결정: PMS7003 = 화재 보조 조기징후(광학 먼지센서, 인증 화재감지기 아님 — 연기/열 감지기 병행 권장).
    • 검증: 회귀 스위트 PASS(9 run/0 fail), 편집 PHP php -l 통과.
    • 잔여(운영): php/ 트리 cafe24 업로드 · 배선 HTML Pi 번들 재생성 · 배포 후 대시보드 브라우저 확인.