YOGYUI

현대통신 월패드 RS-485 통신 프로토콜 - 시스템 에어컨 본문

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

현대통신 월패드 RS-485 통신 프로토콜 - 시스템 에어컨

요겨 2024. 11. 23. 11:11
반응형

 

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

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 1Ch 01h 40h ??h 00h 00h ??h EEh
  • 통신 방향: [월패드] → [개별 장치]
  • 패킷 길이: 11 (= 0x0B)
  • 데이터 길이: 4
  • Device Type (Index 3): 0x1C
  • Packet Type (Index 4): 0x01
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x40: 장치의 ON/OFF 상태 조회
    • Data[1] (Index 6): 상위 4비트 = 공간(방) 인덱스, 하위 4비트 = 장치 인덱스
      • 공간/장치 인덱스 = one-based index
      • 첫 번째 공간의 첫 번째 에어컨일 경우 0x11, 세 번째 공간의 두 번째 에어컨일 경우 0x32
        (거실같이 큰 공간에 시스템 에어컨이 2대 설치된 환경도 존재하는 것으로 파악됨)
    • Data[2] (Index 7): 0x00 (이 외의 값은 발견하지 못함)
    • Data[3] (Index 8): 0x00 (이 외의 값은 발견하지 못함)
  • 예시
    • 네 번째 방의 첫 번째 에어컨의 현재 상태 조회: F7 0B 01 1C 01 40 41 00 00 E1 EE

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 1Ch 02h ??h ??h ??h 00h ??h EEh
  • 통신 방향: [월패드] → [개별 장치]
  • 패킷 길이: 11 (= 0x0B)
  • 데이터 길이: 4
  • Device Type (Index 3): 0x1C
  • Packet Type (Index 4): 0x02
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x40: 에어컨 전원 ON/OFF 명령
      • 0x45: 설정 온도 변경 명령
      • 0x5C: 운전 모드 변경 명령
      • 0x5D: 바람 세기 변경 명령
    • Data[1] (Index 6): 상위 4비트 = 공간(방) 인덱스, 하위 4비트 = 장치 인덱스
      • 공간/장치 인덱스 = one-based index
    • Data[2] (Index 7): 명령값
      • 카테고리가 0x40일 경우 (전원 ON/OFF)
        • 0x01: 전원 ON
        • 0x02: 전원 OFF
      • 카테고리가 0x45일 경우 (설정 온도 변경): 설정 온도 값
        • 온도값 단위는 섭씨(℃)이며, 1도 단위로 조절
        • 정수값을 그대로 바이트 단위로 입력 (예: 20도 = 0x14)
      • 카테고리가 0x5C일 경우 (운전 모드 변경)
        • 0x00: 자동 운전 모드
        • 0x01: 냉방 모드
        • 0x02: 제습 모드
        • 0x03: 공기청정(송풍) 모드
      • 카테고리가 0x5D일 경우 (바람 세기 변경)
        • 0x01: 자동 바람 세기
        • 0x02: 미풍 (low)
        • 0x03: 약풍 (mid)
        • 0x04: 강풍 (high)
    • Data[3] (Index 8): 0x00 (이 외의 값은 발견하지 못함)

3. 응답 패킷 (response)

3.1. 명령 응답

Index 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Content Prefix Length - Dev
Type
Packet
Type
Category Dev / 
Room
CMD On/Off T.C T.S Mode R.S Checksum Suffix
Value F7h 0Fh 01h 1Ch 04h ??h ??h ??h ??h ??h ??h ??h ??h ??h EEh
  • 통신 방향: [개별 장치] → [월패드]
    • 명령 패킷 수신 후 상태를 변경한 뒤 이에 대한 응답 패킷을 곧바로 송신
    • 명령 타입에 상관없이 해당 난방 장치의 On/Off 상태, 현재 온도값, 설정 온도값, 운전 모드, 바람 세기값을 반환
  • 패킷 길이: 15 (= 0x0F)
  • 데이터 길이: 8
  • Device Type (Index 3): 0x1C
  • Packet Type (Index 4): 0x04
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x40: 에어컨 전원 ON/OFF 명령
      • 0x45: 설정 온도 변경 명령
      • 0x5C: 작동 모드 변경 명령
      • 0x5D: 바람 세기 변경 명령
      • 카테고리에 상관없이 응답 데이터는 동일함
    • Data[1] (Index 6): 상위 4비트 = 장치 인덱스, 하위 4비트 = 공간(방) 인덱스
      • 장치/공간 인덱스 = one-based index
    • Data[2] (Index 7): 명령값 (명령 패킷 상세 참고)
    • Data[3] (Index 8): 에어컨 ON/OFF 상태
      • 0x01: 에어컨 전원 ON된 상태
      • 0x02: 에어컨 전원 OFF된 상태
    • Data[4] (Index 9): 현재 온도값
      • 에어컨이 측정한 공간의 온도값을 반환
    • Data[5] (Index 10): 희망(설정) 온도값
      • 온도값 단위는 섭씨(℃)이며, 1도 단위 정수값
    • Data[6] (Index 11): 운전 모드
      • 0x00: 자동 운전 모드
      • 0x01: 냉방 모드
      • 0x02: 제습 모드
      • 0x03: 공기청정(송풍) 모드
    • Data[7] (Index 12): 바람 세기
      • 0x01: 자동 바람 세기
      • 0x02: 미풍 (low)
      • 0x03: 약풍 (mid)
      • 0x04: 강풍 (high)

3.2. 조회 응답

명령 응답 패킷과 큰 차이 없음

  • Data[0] (Index 5): 카테고리 값이 0x40으로 고정
  • Data[2] (Index 7): 명령값이 0x00으로 고정

 

반응형