No description
Find a file
cw2007 0728e45894 fix(sms): 경보 쿨다운을 에피소드 인지로 전환 — 복구 직후 재발 누락 수정
누수/온습도 경보 쿨다운이 경보 태그만 조회해, 직전에 [누수복구]/[정상복귀]가
있었어도 이전 경보 발송 시각만 보고 억제했다. 그 결과 복구 직후 재발한 새 사고
(별개 에피소드)가 쿨다운 창(기본 30분) 동안 통째로 누락됐다.

- alert_cooldown_suppresses(): 경보/복구 중 "최신"이 경보이고(=미복구) 쿨다운
  이내일 때만 억제하는 순수 헬퍼 추가. 최신이 복구면 새 에피소드로 즉시 발송.
- send_leak_alert_sms / send_metric_alert_sms: 쿨다운 조회를 (경보|복구) 최신
  1건 기준으로 교체하고 위 헬퍼로 판정. 지속 경보 폭주 방지는 그대로 유지.
- tests/cooldown_episode_test.php: 복구 직후 재발 발송 등 9종 회귀 추가,
  run_tests.sh 에 등록.
- tests/security_hardening_test.php: dew_point_c 의 forecast.php 단일출처 이동에
  맞춰 낡은 단언 갱신(정의는 forecast.php, sms_send.php 는 사용 확인).

작업 트리에 있던 dew_point_c 중복정의 제거(forecast.php 단일출처화)도 sms_send.php
변경에 함께 포함된다.
2026-07-09 12:41:05 +09:00
.claude docs: 문서 현행화(leak_ 접두사·경로 스크럽) + 코드 투어 + settings deny 수정 2026-07-02 18:52:15 +09:00
.tours docs: 문서 현행화(leak_ 접두사·경로 스크럽) + 코드 투어 + settings deny 수정 2026-07-02 18:52:15 +09:00
docs docs: 문서 현행화(leak_ 접두사·경로 스크럽) + 코드 투어 + settings deny 수정 2026-07-02 18:52:15 +09:00
firmware docs: 문서 현행화(leak_ 접두사·경로 스크럽) + 코드 투어 + settings deny 수정 2026-07-02 18:52:15 +09:00
php fix(sms): 경보 쿨다운을 에피소드 인지로 전환 — 복구 직후 재발 누락 수정 2026-07-09 12:41:05 +09:00
raspberry_pi4 fix(security): Pi 노드 하드닝 6종 medium 갭 보완 + 회귀 수정 2026-07-03 09:28:44 +09:00
raspberry_pi4_sht30 fix(security): Pi 노드 하드닝 6종 medium 갭 보완 + 회귀 수정 2026-07-03 09:28:44 +09:00
scripts refactor(db)!: DB 테이블 전체 leak_ 접두사 통일 + 구 마이그레이션 폐기 2026-07-02 18:50:56 +09:00
sql refactor(db)!: DB 테이블 전체 leak_ 접두사 통일 + 구 마이그레이션 폐기 2026-07-02 18:50:56 +09:00
tests fix(sms): 경보 쿨다운을 에피소드 인지로 전환 — 복구 직후 재발 누락 수정 2026-07-09 12:41:05 +09:00
tools feat: cafe24 관리자 UI "Slate NOC Console" 디자인시스템 통합 + 적대리뷰 18건 반영 2026-07-04 22:32:16 +09:00
(20260518)_IoT_기반_모니터링_체계_구축을_위한_보안대책서.hwp chore: import codebase with security hardening 2026-06-20 09:37:40 +09:00
(Y수정)_(20260520)_IoT_기반_모니터링_체계_구축을_위한_보안대책서.hwp chore: import codebase with security hardening 2026-06-20 09:37:40 +09:00
(Y수정)_(20260528)_IoT_기반_모니터링_체계_구축을_위한_보안대책서.hwp chore: import codebase with security hardening 2026-06-20 09:37:40 +09:00
.gitignore chore: 실수로 커밋된 tools/__pycache__ 제거 + __pycache__ gitignore 2026-07-02 18:56:33 +09:00
CHANGELOG.md feat: RPi4 누수+온습도 2-모듈 단일 서버 통합 + 보안 하드닝 2026-06-23 16:21:11 +09:00
PR_BODY.md docs: PR 본문 추가 (PR_BODY.md) 2026-06-24 09:01:56 +09:00
README.md docs: 문서 현행화(leak_ 접두사·경로 스크럽) + 코드 투어 + settings deny 수정 2026-07-02 18:52:15 +09:00
report_leak_detection_system.md feat: RPi4 누수+온습도 2-모듈 단일 서버 통합 + 보안 하드닝 2026-06-23 16:21:11 +09:00
run_tests.sh fix(sms): 경보 쿨다운을 에피소드 인지로 전환 — 복구 직후 재발 누락 수정 2026-07-09 12:41:05 +09:00
SYSTEM_OVERVIEW.md docs: 문서 현행화(leak_ 접두사·경로 스크럽) + 코드 투어 + settings deny 수정 2026-07-02 18:52:15 +09:00
VERSION chore: import codebase with security hardening 2026-06-20 09:37:40 +09:00

서버실 통합 모니터링 시스템 (누수 + 온습도)

Raspberry Pi 4 센서 모듈 2대 — 1번: 누수 감지 + 카메라, 2번: SHT30 온습도 — 와 선택적 3번째 노드(신규 지점, sensor_id 3)가 동일한 cafe24 PHP 서버로 HTTPS 보고 (raw-body 서명 X-Signature = HMAC-SHA256(API_KEY, 요청본문))를 하고, 서버가 MySQL 저장, 임계/누수 판정, SMS 발송, 통합 대시보드(dashboard.php) 표시를 담당하는 단일 시스템입니다.

모듈 구성

폴더 역할 sensor_id
raspberry_pi4/ 누수 감지(e-con 5C-08) + Pi Camera 촬영·사진 업로드 1 (신규 지점 노드는 3)
raspberry_pi4_sht30/ SHT30 온습도 측정(I2C) 2
php/ cafe24 서버 — API 수신, DB 저장, 판정/SMS, 대시보드 —
sql/ DB 스키마(schema_sht30.sql = 신규 설치 완결) + 마이그레이션 —
firmware/ STM32F407 마이그레이션 트랙(별도) — RPi4 배포와 무관 —

문서