HuevenEco DL 각실제어 대시보드 ↔ ERV 메인보드 통신 프로토콜
- 물리계층 : RS-485 (또는 USB-Serial), 115200 bps, 8 Data, None Parity, 1 Stop (N81)
- 역할 : PC 대시보드(Host) ↔ ERV 메인보드(Main Board)
- 본 프로토콜은
Protocol/Each_Room_Jushin_protocol_RS485_Rev1.2 의 프레임 형식(0xAA 시작 + CRC)을
참고하여, PC 모니터링/제어 전용으로 재정의한 것이다. 펌웨어(UART1 / HOMENET_485)도 본 규격에 맞춰 수정한다.
1. 공통 프레임
| 필드 |
크기 |
설명 |
| STX |
1 |
고정 0xAA |
| CMD |
1 |
명령/응답 코드 (아래 표) |
| LEN |
1 |
PAYLOAD 바이트 수 (0~255) |
| PAYLOAD |
LEN |
명령별 데이터 |
| CRC |
2 |
CRC-16/MODBUS (poly 0xA001, init 0xFFFF), CMD~PAYLOAD까지, 리틀엔디안 |
- 멀티바이트 수치는 모두 빅엔디안(상위 바이트 먼저) 으로 표기한다. (CRC만 리틀엔디안)
- 프레임 간 구분은 STX(0xAA) 탐색 + LEN/CRC 검증으로 처리한다.
2. 명령 코드 (CMD)
2.1 PC → ERV (제어)
| CMD |
이름 |
PAYLOAD |
설명 |
| 0x01 |
CTRL_POWER |
[onoff] |
전원 0=OFF / 1=ON |
| 0x02 |
CTRL_RUNMODE |
[mode] |
운전모드 (3.1 참조) |
| 0x03 |
CTRL_FAN |
[speed] |
풍량 0~4 (자동모드에서는 무시) |
| 0x04 |
CTRL_SUBMODE |
[type][onoff] |
부가모드 토글 (3.2 참조) |
| 0x05 |
CTRL_HOOD |
[onoff] |
연동후드 0=OFF / 1=ON |
| 0x06 |
CTRL_HYST_PRESET |
[preset] |
히스테리시스 프리셋 0=ECO/1=NORMAL/2=TURBO |
| 0x07 |
CTRL_HYST_VALUE |
[preset][pm25(2)][pm10(2)][voc(2)][co2(2)] |
프리셋별 히스테리시스 임계값 설정 (preset 0 ECO/1 NORMAL/2 TURBO, 값 BE) |
| 0x08 |
CTRL_DAMPER |
[room][type][onoff] |
각실 댐퍼 type 0=급기(SA)/1=배기(EA), 0=닫힘 / 1=열림 |
| 0x09 |
CTRL_LED |
[room][dim] |
각실 LED 디밍 0~9 |
| 0x0A |
REQ_STATUS |
(없음) |
상태 1회 즉시 요청 |
| 0x0B |
CTRL_RESET |
[onoff] |
ERV 리셋 토글 0/1 |
| 0x0C |
CTRL_VSP |
[group][index][sa(2)][ea(2)] |
풍량 VSP 값 설정 (3.5 참조, sa/ea BE) |
room : 1=거실, 2=침실1, 3=침실2, 4=침실3
2.2 ERV → PC (상태/응답)
| CMD |
이름 |
PAYLOAD |
설명 |
| 0x81 |
STATUS |
134 byte (4장 참조) |
전체 상태 스냅샷 (주기 송신 + REQ_STATUS 응답) |
| 0x82 |
ACK |
[echoCmd][result] |
제어 명령 수신 응답 result 0=OK / 1=ERR |
3. 값 정의
3.1 운전모드 (RunMode)
| 코드 |
의미 |
펌웨어 매핑 |
| 0x00 |
OFF |
Power_On = 0 |
| 0x01 |
환기 |
MODE_VENTILATION (0) |
| 0x02 |
자동 |
MODE_AUTO (1) |
| 0x03 |
공청 |
MODE_AIRCLEAN (2) |
| 0x04 |
바이패스 |
MODE_BYPASS (3) |
3.2 부가모드 (SubMode)
CTRL_SUBMODE 의 type :
| type |
의미 |
펌웨어 매핑(예정) |
| 0x01 |
스마트수면 |
(신규) |
| 0x02 |
쾌적조리 |
SamKeopSal_Mode_Flag |
| 0x03 |
안심회복 |
Focus_Mode |
STATUS 의 subMode 는 비트맵 : bit0=스마트수면, bit1=쾌적조리, bit2=안심회복
3.3 공기질 상태 (AirQuality) — 판단 기준은 힘펠 협의 예정, 임시값
| 코드 |
등급 |
색상 |
| 0x01 |
매우나쁨 |
빨강 |
| 0x02 |
나쁨 |
주황 |
| 0x03 |
보통 |
초록 |
| 0x04 |
좋음 |
파랑 |
3.4 자동운전 상태 (AutoState)
3.5 풍량 VSP (CTRL_VSP 0x0C / STATUS VSP 블록)
급기(SA)/배기(EA) 풍량 설정값. CTRL_VSP 로 한 엔트리씩 설정, STATUS 로 전체 표시.
group : 0=환기(Vent), 1=바이패스(Bypass), 2=공청(AirClean)
index : 환기/공청 1~4, 바이패스 1
sa,ea : 각 u16 빅엔디안 (풍량 설정값/RPM·duty)
STATUS VSP 9 엔트리 순서 (각 SA,EA): 환기1, 환기2, 환기3, 환기4, 바이패스, 공청1, 공청2, 공청3, 공청4
4. STATUS(0x81) PAYLOAD 레이아웃 (73 byte)
4.1 글로벌 (offset 0~16, 17 byte)
| off |
크기 |
필드 |
비고 |
| 0 |
1 |
power |
Power_On |
| 1 |
1 |
runMode |
3.1 |
| 2 |
1 |
autoState |
3.4 (분산/집중) |
| 3 |
1 |
fanMode |
0~4 (Fan_Mode) |
| 4 |
1 |
subMode |
비트맵 (3.2) |
| 5 |
1 |
hood |
Hood_YeunDong_Enable / Hood_Status |
| 6 |
1 |
hystPreset |
0 ECO / 1 NORMAL / 2 TURBO |
| 7 |
2 |
hystPM25 |
히스테리시스 PM2.5 |
| 9 |
2 |
hystPM10 |
히스테리시스 PM10 |
| 11 |
2 |
hystVOC |
히스테리시스 VOC (m_VOC_Level) |
| 13 |
2 |
hystCO2 |
히스테리시스 CO2 (m_CO2_Level) |
| 15 |
2 |
errorCode |
비트맵 (프로토콜 xlsx Error Code) |
4.2 각실 블록 (offset 17~, 14 byte × 4실 = 56 byte)
순서: 거실 → 침실1 → 침실2 → 침실3
| off(상대) |
크기 |
필드 |
비고 |
| +0 |
1 |
damper |
비트맵 bit0=급기(SA) 열림 / bit1=배기(EA) 열림 |
| +1 |
2 |
pm25 |
SEN66_pm2p5 |
| +3 |
2 |
pm10 |
SEN66_pm10p0 |
| +5 |
2 |
voc |
SEN66_VOC_value |
| +7 |
2 |
co2 |
SEN66_CO2_value |
| +9 |
1 |
airQuality |
3.3 |
| +10 |
1 |
ledDim |
0~9 (Light_Bright) |
| +11 |
2 |
loadScore |
각실 부하점수 |
| +13 |
1 |
finalVolume |
최종 풍량 (ROOM_air_volume) |
4.3 ERV 리셋 (offset 73, 1 byte)
| off |
크기 |
필드 |
비고 |
| 73 |
1 |
reset |
ERV 리셋 토글 0/1 |
4.4 풍량 VSP 블록 (offset 74~109, 9엔트리 × u16 SA·EA = 36 byte)
순서(3.5): 환기14 → 바이패스 → 공청14. 각 엔트리 SA(2) + EA(2), 빅엔디안.
| off(상대) |
크기 |
필드 |
| +0 |
2 |
환기1 SA |
| +2 |
2 |
환기1 EA |
| +4 |
2 |
환기2 SA |
| +6 |
2 |
환기2 EA |
| +8 |
2 |
환기3 SA |
| +10 |
2 |
환기3 EA |
| +12 |
2 |
환기4 SA |
| +14 |
2 |
환기4 EA |
| +16 |
2 |
바이패스 SA |
| +18 |
2 |
바이패스 EA |
| +20 |
2 |
공청1 SA |
| +22 |
2 |
공청1 EA |
| +24 |
2 |
공청2 SA |
| +26 |
2 |
공청2 EA |
| +28 |
2 |
공청3 SA |
| +30 |
2 |
공청3 EA |
| +32 |
2 |
공청4 SA |
| +34 |
2 |
공청4 EA |
4.5 히스테리시스 프리셋 테이블 (offset 110~133, 3프리셋 × PM2.5/PM10/VOC/CO2 u16 = 24 byte)
프리셋(ECO/NORMAL/TURBO)별 임계값. 현재 적용값은 글로벌의 hystPM25~hystCO2(off 7~14) = 본 테이블의 [hystPreset] 행.
| off(상대) |
크기 |
필드 |
| +0 |
2 |
ECO PM2.5 |
| +2 |
2 |
ECO PM10 |
| +4 |
2 |
ECO VOC |
| +6 |
2 |
ECO CO2 |
| +8 |
2 |
NORMAL PM2.5 |
| +10 |
2 |
NORMAL PM10 |
| +12 |
2 |
NORMAL VOC |
| +14 |
2 |
NORMAL CO2 |
| +16 |
2 |
TURBO PM2.5 |
| +18 |
2 |
TURBO PM10 |
| +20 |
2 |
TURBO VOC |
| +22 |
2 |
TURBO CO2 |
총 PAYLOAD = 17(글로벌) + 56(각실) + 1(reset) + 36(VSP) + 24(히스테리시스) = 134 byte
5. 동작 시나리오
- PC 연결 후
REQ_STATUS(0x0A) 송신 → ERV 가 STATUS(0x81) 응답.
- ERV 는 약 500ms~1s 주기로
STATUS(0x81) 를 자동 송신 (대시보드 실시간 갱신).
- PC 가 토글/슬라이드/선택 시 해당
CTRL_* 송신 → ERV 가 ACK(0x82) + 다음 STATUS 에 반영.
- PC 는 STATUS 수신 시마다 로그(날짜·시간 + 전체 상태)에 적재/저장.
본 문서는 PC 대시보드 작성 기준 초안이며, 펌웨어(UART1) 구현 시 세부 필드는 상호 합의하여 조정한다.