개요
월패드·홈넷서버에서 “이 세대에 이런 일이 생겼다”고 알려오면 APW가 DB에 남기고 입주민에게 문자(SMS) 또는 푸시를 보냄. 어느 수단으로 가는지는 이벤트 코드마다 정해져 있음.
흐름: 홈넷서버 → POST /api/hn2lh/event(APW) → 수신 이력 저장 → 이벤트 코드별로 SMS 또는 푸시 발송. 서버 구조는 공개노트/개발/모듈/APW 연계 서버.
이벤트 코드별 발송 방식
| 코드 | 의미 | 수단 | 받는 사람 | 앱 이동 화면 | 문구 |
|---|---|---|---|---|---|
SA | 방범 경보 | SMS | 세대원 본인 휴대폰 | - | ”우리집 방범장치에서 경보가 울렸습니다.” |
SB | 비상호출 | SMS | 비상연락처 | - | ”○동 ○호 입주민이 비상호출하였습니다” |
SC | 안전확인 경보(장시간 무동작) | SMS | 비상연락처 | - | ”○동 ○호 입주민이 장시간 움직임이 없습니다” |
C1 | 차량 입차 | 푸시(topic HSH_CAREL) | 세대 토픽 구독자 | 입출차 | ”우리집 차가 입차하였습니다” |
C2 | 차량 출차 | 푸시(topic HSH_CAREL) | 세대 토픽 구독자 | 입출차 | ”우리집 차가 출차하였습니다” |
E1 | 월간 에너지 목표 초과 | 푸시(topic ENGCNS_AMUSOV) | 세대 토픽 구독자 | 에너지 목표 | ”에너지 사용량이 목표를 초과하였습니다” |
F1 | 층간소음 1단계 | 푸시(token) | 세대원 각자 토큰 | 층간소음 | ”우리집에서 층간소음이 발생했어요…” |
F2 | 층간소음 2단계 | 푸시(token) | 세대원 각자 토큰 | 층간소음 | ”…기준치 이상 발생했어요…” |
CA | 전기차 충전완료 | 푸시(topic HSH_EV) | 세대 토픽 구독자 | 차량 충전 | ”전기차 충전이 완료되었습니다” |
핵심 규칙
- 방범·비상호출·안전확인(SA/SB/SC)은 푸시가 아니라 문자임. 홈넷사가 보낸 메시지 내용은 무시하고 2024-07-23부터 고정 문구를 씀. SA는 세대원 휴대폰, SB/SC는 비상연락처(
cmn.tb_emcrt_l)로 감 - 층간소음(F1/F2)만 token 방식 푸시. 나머지 푸시는 topic 방식(
["HSH", 세대ID, 토픽]). 방식 차이는 공개노트/개발/push 알림 - 홈넷 이벤트 코드 → 스마트홈 이벤트 변환 기준은
cmn.tb_evn_m임. 매핑이 없는 코드가 오면 발송하지 않고1999(실패)로 응답함. 로그정의 되지 않은 코드를 수신하였습니다 - 발송 실패 시 홈넷서버에
5999로 오류를 돌려줌. 즉 푸시·SMS 실패가 홈넷사 쪽에서는 API 실패로 보임 - 과거 숫자 코드(
00,10,21,22,30,40,51,52,80)에서 영문 코드로 바뀜. 홈넷 연동규격 V1.1 개선안 적용 시 또 바뀔 예정
층간소음 센서 (홈넷 경유 안 함)
층간소음 알리미 센서는 홈넷서버를 거치지 않고 APW /api/fns로 직접 보고함.
| 경로 | 하는 일 | 테이블 |
|---|---|---|
POST /api/fns/heartbeat | 센서 생존 신고. 응답에 아직 전송 안 된 제어 설정을 실어 내려줌 | cmn.tb_nsba_dvc_m(조회), tb_nsba_dvc_brf_h, tb_nsba_dvc_cont_h |
POST /api/fns/noiseEvent | 소음 이벤트 수신 → F1/F2와 같은 경로로 세대원에게 푸시 | cmn.tb_nsba_dvc_nc_h |
- 센서는 MAC 주소로 식별함.
tb_nsba_dvc_m에 등록 안 된 MAC이면4011(인증정보 불일치) - 푸시 이미지 URL은
tb_cstt_m의SMAH_APP_NOISE_LEVEL_1_PUSH_IMAGE_URL,..._2_.... 앱은 이 URL을 쓰지 않고 내장 이미지를 씀
반대 방향 — 스마트홈에서 생긴 일을 홈넷(월패드)에 알림
위는 홈넷 → LH 방향임. 반대로 공지·투표·관리비·전출입처럼 스마트홈에서 생긴 일은 SCW 스케줄러가 주기적으로 모아 홈넷서버로 밀어 넣음. 스케줄러 구조는 공개노트/개발/모듈/SCW 스케줄러 서버.
지금 - pod_hr분 ~ 지금 사이에 생긴 것을 모아 보내므로 실시간이 아니라 주기 단위로 늦게 감.
| 구분 | 이벤트 | 홈넷 경로 |
|---|---|---|
| 세대별 | 전입·전출(H1/H2, 구 코드 40/41 병행), 관리비 등록(NT010), 임대료 등록(NT011) | POST /api/lh2hn/lhHouseholdEvent |
| 단지별 | 신규 공지사항(NT005), 신규 전자투표, 투표 시작(NT006), 신규 안전서비스 세대 | POST /api/lh2hn/commonEvent |
- 성공 판정은 홈넷 응답
result_code가2000인지임. 아니면 실행 이력(cmn.tb_proc_run_h)의 오류 메시지에notice no:{번호} sended error:{코드}형태로 누적됨 - 전입·전출이 신·구 코드 2종으로 병행 발송됨(연동규격 V1.0 → V1.1 전환 중). 홈넷사가 둘 다 처리하면 이중 처리될 수 있음
- 건별 순차 호출이라 홈넷서버 1대가 느리면 그 뒤 단지 처리가 밀림
“관리비를 올렸는데 월패드에 안 뜬다” →
NT010전달 실패임.cmn.tb_proc_run_h에서 세대별 이벤트 스케줄러(SCW_SCHEDULER_EVENT_SMARTHOME_NOTIFICATION_HOUSEHOLD)의 실행 결과와 오류 메시지를 볼 것.
기기 이벤트 구독 해지
앱을 오래 안 쓴 사용자(리프레시 토큰 만료)의 기기 상태변경 이벤트 구독을 홈넷서버에서 해지함. 안 쓰는 세대에 이벤트가 계속 오는 것을 막는 목적임. SCW 스케줄러가 APW POST /api/proxy-homenet/subscribeDeviceEvent를 해지 유형으로 호출함.
- 검증 예외를 전부 “만료”로 간주함. 토큰 서명키가 바뀌면 전 사용자의 구독이 해지됨
- 해지되면 파트너 토큰 값만 비우고 행은 남김
- 로그 키워드
토큰 검증 중 예외 발생(만료된 것으로 간주),작업 완료: {n}건 해지됨 - 구독을 거는 쪽은 공개노트/개발/모듈/OAW 인증 서버임
문의별 확인 순서 (관리자)
| 문의 | 확인 | 로그 키워드 |
|---|---|---|
| 방범이 울렸는데 문자가 안 옴 | ① cmn.tb_usr_m에 세대원 휴대폰 번호가 있는지(ARIA 암호화 저장) ② cmn.tb_sms_sndg_l에 발송 이력이 남았는지 ③ 뿌리오 잔액·발신번호. 공개노트/개발/모듈/SMS 발송 | sms 발송요청 실패, [SMS발송]대상 정보가 없습니다 |
| 비상호출·안전확인 문자가 안 옴 | 비상연락처(cmn.tb_emcrt_l) 등록 여부. 세대원 본인이 아니라 비상연락처로 감 | 위와 같음 |
| 입차·출차 알림이 안 옴 | topic 방식이라 앱이 HSH_CAREL 토픽을 구독했는지. 알림 설정 꺼짐, 재로그인 필요 여부 | push 발송을 위한 topic 정보 중, DB에 존재하지 않습니다 |
| 층간소음 알림이 안 옴 | token 방식이라 tb_usr_m의 푸시 토큰이 최신인지 → 재로그인. 센서 직접 보고면 tb_nsba_dvc_m에 MAC 등록 여부 | fcm에 등록되지 않은 토큰입니다 |
| 새 이벤트를 홈넷사가 보내는데 아무 반응 없음 | cmn.tb_evn_m에 해당 코드 매핑이 있는지 | 정의 되지 않은 코드를 수신하였습니다 |
| 수신 자체가 됐는지 | smah.tb_hnet_evn_rcv_l, cmn.tb_evn_occ_l에 이력이 있는지. 없으면 홈넷사가 안 보낸 것 | - |
입주민 응대는 기본매뉴얼/입주민/알림이 안 와요.
확인 필요
확인 필요
cmn.tb_evn_m의 이벤트 코드 매핑이 홈넷 연동규격 V1.1 개선안 적용 시 어떻게 바뀌는지, 기존 코드와 병행 지원이 필요한지 담당자 확인 필요.
관련
공개노트/개발/모듈/APW 연계 서버 공개노트/개발/모듈/SCW 스케줄러 서버 공개노트/개발/모듈/OAW 인증 서버 공개노트/개발/push 알림 공개노트/개발/모듈/SMS 발송 공개노트/기능/방범 공개노트/기능/홈넷 서버 연동 기본매뉴얼/입주민/알림이 안 와요 기본매뉴얼/입주민/입출차와 주차등록이 안 돼요