Files
HECO2/Simulator/RJ2_RoomConSimulator/사양서.md
T
jeon 096111e983 feat: 06-17 신규 작업본 반영 (개발사양서/기능검토/승인원/Source 등 추가)
.claude/ 제외(.gitignore 추가). 기존 초기커밋(5a96a69) 위에 신규·수정·이동분 커밋.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 07:54:58 +09:00

4.0 KiB

RJ2-232 Simulator 사양서

C# WPF (스타일: HoodSimulator 동일 — Tokyo Night 다크 테마) 최종 수정 : 2026.06.07

UI 기능

통신 설정 전원 ON / OFF (on 시 환기모드, 풍량 1단, off 시 풍량 0) 모드 환기 / 자동 / 공기청정 / 바이패스 (환기, 자동, 공기청정 0 ~ 4단, 바이패스 1단, 자동은 풍량 변경 안됨) 풍량 0 / 1 / 2 / 3 / 4 예약 0 ~ 8 시간 (0은 예약 취소, 1시간 단위, 모드 전환 시 예약 해제) id 설정 vsp 설정

로그 저장 / 지우기


구현 내용 (2026.06.07)

역할 / 통신

  • 룸콘(마스터) 시뮬레이터 — ERVSimulator(ERV, 응답측)와 RS-232로 연동.
  • 규격 : Protocol/ROOMCON/힘펠_환기장치프로토콜V3.7 (펌웨어 My_RJ2.c / ERVSimulator RoomConProtocol.cs)
  • 포트 : RS-232, 9600 8N1
  • 프레임 : AA | CMD | D[2..12] | XOR(byte0~12) | EE (15바이트 고정)
  • COM 페어(가상 널모뎀 또는 어댑터 2개)로 RJ2 ↔ ERVSimulator RoomCon 포트(9600) 연결.

CMD (룸콘 → ERV)

CMD 이름 내용
0x00 NORMAL 상태 폴링(폴링 시작 시 주기 송신) → ERV가 0x07 응답
0x01 EVENT 모드/풍량/예약 변경 → ERV가 0x01 응답(모드·풍량·에러·온도)
0x02 RESTART1 환기 1~4단 preset 조회 → ERV가 0x02 응답
0x12 RESTART2 바이패스/공청 preset 조회 → ERV가 0x12 응답
0x03 VSP 테스트모드 프리셋 설정(select/sa/ea)
0x04 EXIT 테스트모드 종료

모드 코드 (EVENT byte[2]) — ERVSimulator RunMode enum 일치

0 = 환기 / 1 = 자동 / 2 = 바이패스 / 3 = 공기청정

  • 전원 OFF = EVENT 모드 0(환기) + 풍량 0 으로 표현(ERV가 Power OFF 처리)

EVENT 패킷 데이터

byte 내용
2 운전모드
3 풍량(0~4)
5 Heater/UV (미사용 0)
10 예약 flag (항상 1로 전송)
11 예약 시간(시, 0=해제)
12 예약 분(0)

예약 연동 (룸콘 → ERV → 대시보드)

  • 예약(시)을 EVENT [10]=1, [11]=시로 항상 전송 → 설정·해제(0) 모두 전달.
  • ERVSimulator가 수신하여 ReserveHours / ReserveRemainSec 반영 → ERVSim UI 표시 + 1초 카운트다운(0 도달 시 전원 OFF).
  • ERVSim의 HOMENET STATUS(reserve_remain)에 실려 PCDashBoard / WebDashBoard에도 그대로 반영.
  • 모드 전환 시 예약 해제([11]=0) 전송 → ERV·대시보드 함께 해제.

VSP 설정 팝업 (테스트 모드)

  • select 코드(펌웨어 My_RJ2.c) : 14 환기14 / 5 바이패스 / 69 공청14 (공청은 EA 미사용)
  • 환기 조회(RESTART1) / 바이패스·공청 조회(RESTART2)로 현재 preset 읽어 표 갱신
  • 행별 SA/EA 수정 후 '설정' → 해당 select VSP(0x03) 송신, '테스트 종료' → EXIT(0x04)

ID 설정

  • RS-232 점대점이라 프레임에 ID 필드 없음 → UI 입력값은 표시/로그용(전송 안 함).

ERV 응답 표시

  • 운전모드 / 풍량 / 에러코드 / 실내온도 / 외기온도 (0x01·0x07 응답 파싱), 수신 카운트.

알람 / 에러 표시 (ERV ErrorCode 비트 디코드)

ERV 응답의 ErrorCode 바이트(응답 [7])를 비트별로 칩 표시. NORMAL(0x07)/EVENT(0x01) 응답마다 갱신.

  • 알람(노랑) : 필터청소(0x01) / 필터교환(0x02)
  • 에러(빨강, COLD=시안) : E02 온도센서(0x08) / E09 급기팬(0x80) / E10 배기팬(0x20) / COLD 장비보호(0x10) / E07 내부통신(0x40)
  • 알람/에러 소스는 ERVSimulator(에러 카드 + 필터청소/교환 토글) → 같은 ErrorCode가 대시보드(STATUS)에도 반영됨.
비트 항목 구분
0x01 필터청소 알람
0x02 필터교환 알람
0x08 E02 온도센서 에러
0x10 COLD 장비보호 에러
0x20 E10 배기(EA)팬 에러
0x40 E07 내부통신 에러
0x80 E09 급기(SA)팬 에러

참고

  • 본 시뮬레이터는 프로토콜대로 송신하며, ERVSimulator는 모드/풍량/예약/preset 조회를 처리(VSP 설정값 적용은 로그만).