YOGYUI

현대통신 월패드 RS-485 통신 프로토콜 - 전열교환기(환기) 본문

홈네트워크(IoT)/힐스테이트 광교산

현대통신 월패드 RS-485 통신 프로토콜 - 전열교환기(환기)

요겨 2024. 11. 24. 10:07
반응형

 

※ 티스토리 오블완(오늘 블로그 완료) 챌린지용 포스팅
※ 프로토콜 공통 명세 참고 링크: 현대통신 월패드 RS-485 통신 프로토콜 명세 - 공통 사양

Hi-oT 앱 전열교환기 제어 예시

1. 현재 상태 조회 패킷 (query)

Index 0 1 2 3 4 5 6 7 8 9 10
Content Prefix Length - Dev
Type
Packet
Type
Category Dev / 
Room
- - Checksum Suffix
Value F7h 0Bh 01h 2Bh 01h 40h 11h 00h 00h ??h EEh
  • 통신 방향: [월패드] → [개별 장치]
  • 패킷 길이: 11 (= 0x0B)
  • 이터 길이: 4
  • Device Type (Index 3): 0x2B
  • Packet Type (Index 4): 0x01
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x40: 전열교환기 작동 상태
    • Data[1] (Index 6): 상위 4비트 = 공간 인덱스, 하위 4비트 = 장치 인덱스
      • 장치/공간 인덱스 = one-based index
      • 집안에 전열교환기가 2대 이상일 경우 다른 값이 쓰일 것으로 예상됨 (0x11 외 다른 값은 발견하지 못함)
    • Data[2] (Index 7): 0x00 (이 외의 값은 발견하지 못함)
    • Data[3] (Index 8): 0x00 (이 외의 값은 발견하지 못함)

2. 상태 변경 명령 패킷 (command)

Index 0 1 2 3 4 5 6 7 8 9 10
Content Prefix Length - Dev
Type
Packet
Type
Category Dev / 
Room
Command - Checksum Suffix
Value F7h 0Bh 01h 2Bh 02h ??h 11h ??h 00h ??h EEh
  • 통신 방향: [월패드] → [개별 장치]
  • 패킷 길이: 11 (= 0x0B)
  • 데이터 길이: 4
  • Device Type (Index 3): 0x2B
  • Packet Type (Index 4): 0x02
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x40: 전열교환기 작동 ON/OFF 명령
      • 0x42: 회전속도 변경 명령
    • Data[1] (Index 6): 상위 4비트 = 공간 인덱스, 하위 4비트 = 장치 인덱스
      • 장치/공간 인덱스 = one-based index
      • 집안에 전열교환기가 2대 이상일 경우 다른 값이 쓰일 것으로 예상됨 (0x11 외 다른 값은 발견하지 못함)
    • Data[2] (Index 7): 명령값
      • Data[0]가 0x40일 경우: 작동 ON/OFF 명령값
        • 0x01: 전원 ON
        • 0x02: 전원 OFF
      • Data[0]가 0x42일 경우: 회전속도 변경 명령값
        • 0x01: 바람세기
        • 0x03: 바람세기
        • 0x07: 바람세기
    • Data[3] (Index 8): 0x00 (이 외의 값은 발견하지 못함)
  • 예시
    • 전열교환기 작동 시작: F7 0B 01 2B 02 40 11 01 00 84 EE
    • 젼열교환기 작동 종료: F7 0B 01 2B 02 40 11 02 00 87 EE
    • 전열교환기 바람세기 중으로 변경: F7 0B 01 2B 02 42 11 03 00 84 EE

3. 응답 패킷 (response)

3.1. 명령 응답

Index 0 1 2 3 4 5 6 7 8 9 10 11
Content Prefix Length - Dev
Type
Packet
Type
Category Dev / 
Room
Command On/Off R.S Checksum Suffix
Value F7h 0Ch 01h 2Bh 04h ??h 11h ??h ??h ??h ??h EEh
  • 통신 방향: [개별 장치] → [월패드]
    • 명령 패킷 수신 후 상태를 변경한 뒤 이에 대한 응답 패킷을 곧바로 송신
    • 명령 타입(카테고리)에 상관없이 해당 난방 장치의 On/Off 상태, 회전 속도 상태를 반환
  • 패킷 길이: 12 (= 0x0C)
  • 데이터 길이: 5
  • Device Type (Index 3): 0x2B
  • Packet Type (Index 4): 0x04
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x40: 전열교환기 작동 ON/OFF 명령
      • 0x42: 회전속도 변경 명령
      • 카테고리에 상관없이 응답 데이터는 동일함
    • Data[1] (Index 6): 상위 4비트 = 공간 인덱스, 하위 4비트 = 장치 인덱스
      • 장치/공간 인덱스 = one-based index
    •  Data[2] (Index 7): 명령값
      • Data[0]가 0x40일 경우 작동 ON/OFF 명령값
      • Data[0]가 0x42일 경우 회전속도 설정값
    • Data[3] (Index 8): 전열교환기의 현재 작동 상태
      • 0x01: 전원 ON 상태
      • 0x02: 전원 OFF 상태
    • Data[4] (Index 9): 전열교환기의 현재 회전 속도 상태
      • 0x00: 전원 OFF된 경우 0x00값 반환
      • 0x01: 약풍으로 동작 중
      • 0x03: 중풍으로 동작 중
      • 0x07: 강풍으로 동작 중

3.2. 조회 응답

Index 0 1 2 3 4 5 6 7 8 9 10 11
Content Prefix Length - Dev
Type
Packet
Type
Category Dev / 
Room
- On/Off R.S Checksum Suffix
Value F7h 0Ch 01h 2Bh 04h 40h 11h 00h ??h ??h ??h EEh
  • 통신 방향: [개별 장치] → [월패드]
    • 월패드로부터 조회(쿼리) 패킷 수신 후, 작동 여부/회전 속도 정보가 담긴 응답 패킷을 송신
  • 패킷 길이: 12 (= 0x0C)
  • 데이터 길이: 5
  • Device Type (Index 3): 0x2B
  • Packet Type (Index 4): 0x04
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x40: 전열교환기 상태 쿼리에 대한 응답
    • Data[1] (Index 6): 상위 4비트 = 공간 인덱스, 하위 4비트 = 장치 인덱스
      • 장치/공간 인덱스 = one-based index
    • Data[2] (Index 7): 0x00 (이 외의 값은 발견하지 못함)
    • Data[3] (Index 8): 전열교환기의 현재 작동 상태
      • 0x01: 전원 ON 상태
      • 0x02: 전원 OFF 상태
    • Data[4] (Index 9): 전열교환기의 현재 회전 속도 상태
      • 0x00: 전원 OFF된 경우 0x00값 반환
      • 0x01: 약풍으로 동작 중
      • 0x03: 중풍으로 동작 중
      • 0x07: 강풍으로 동작 중
  • 예시
    • 전열교환기가 OFF 상태: F7 0C 01 2B 04 40 11 00 02 00 86 EE
    • 전열교환기가 작동 중이며 강풍으로 설정된 상태: F7 0C 01 2B 04 40 11 00 01 07 82 EE

반응형