YOGYUI

현대통신 월패드 RS-485 통신 프로토콜 - 가스 밸브 본문

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

현대통신 월패드 RS-485 통신 프로토콜 - 가스 밸브

요겨 2024. 11. 17. 10:05
반응형

 

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

RS-485 통신으로 제어 가능한 주방 가스밸브 (Kfire)

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 1Bh 01h 43h ??h 00h 00h ??h EEh
  • 통신 방향: [월패드] → [개별 장치]
  • 패킷 길이: 11 (= 0x0B)
  • 이터 길이: 4
  • Device Type (Index 3): 0x1B
  • Packet Type (Index 4): 0x01
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x43: 장치의 OPEN/CLOSE 상태
    • Data[1] (Index 6): 상위 4비트 = 공간(방) 인덱스, 하위 4비트 = 장치 인덱스
      • 공간/장치 인덱스 = one-based index
      • 집에 주방이 2개 이상(!!) 혹은 가스레인지가 2개 이상일 경우 구분하기 위한 용도로 추측됨
      • 주방 1개, 가스레인지 1개인 일반적인 가정집의 경우 값은 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 1Bh 02h 43h ??h ??h 00h ??h EEh
  • 통신 방향: [월패드] → [개별 장치]
  • 패킷 길이: 11 (= 0x0B)
  • 데이터 길이: 4
  • Device Type (Index 3): 0x1B
  • Packet Type (Index 4): 0x02
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x43: 장치의 OPEN/CLOSE 상태
    • Data[1] (Index 6): 상위 4비트 = 공간(방) 인덱스, 하위 4비트 = 장치 인덱스
      • 공간/장치 인덱스 = one-based index
      • 주방 1개, 가스레인지 1개인 일반적인 가정집의 경우 값은 0x11
    • Data[2] (Index 7): 명령값
      • 0x03: 가스 밸브 CLOSE
      • 월패드를 통해서는 밸브 '닫기' 제어만 가능 (열기 위해서는 사람이 직접 밸브를 제어해야 함)
    • Data[3] (Index 8): 0x00 (이 외의 값은 발견하지 못함)
  • 예시
    • 가스 밸브 닫기 명령: F7 0B 01 1B 02 43 11 03 00 B5 EE

3. 응답 패킷 (response)

3.1. 명령 응답

Index 0 1 2 3 4 5 6 7 8 9 10
Content Prefix Length - Dev
Type
Packet
Type
Category Dev / 
Room
Command State Checksum Suffix
Value F7h 0Bh 01h 1Bh 04h 43h ??h ??h ??h ??h EEh
  • 통신 방향: [개별 장치] → [월패드]
    • 명령 패킷 수신 후 상태를 변경한 뒤 이에 대한 응답 패킷을 곧바로 송신
  • 패킷 길이: 11 (= 0x0B)
  • 데이터 길이: 4
  • Device Type (Index 3): 0x1B
  • Packet Type (Index 4): 0x04
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x43: 장치의 OPEN/CLOSE 상태
    • Data[1] (Index 6): 상위 4비트 = 공간(방) 인덱스, 하위 4비트 = 장치 인덱스
      • 공간/장치 인덱스 = one-based index
      • 주방 1개, 가스레인지 1개인 일반적인 가정집의 경우 값은 0x11
    • Data[2] (Index 7): 명령값
      • 0x03: 가스 밸브 CLOSE 명령
    • Data[3] (Index 8): 상태값
      • 0x03: 가스 밸브가 CLOSE된 상태
      • 0x04: 가스 밸브가 OPEN된 상태

3.2. 조회 응답

Index 0 1 2 3 4 5 6 7 8 9 10 11 12
Content Prefix Length - Dev
Type
Packet
Type
Category Dev / 
Room
- State - - Checksum Suffix
Value F7h 0Dh 01h 1Bh 04h 43h ??h 00h ??h 00h 00h ??h EEh
  • 통신 방향: [개별 장치] → [월패드]
    • 개별 장치가 월패드로부터 조회(쿼리) 패킷 수신 후, 현재 장치(들)의 상태를 담은 응답 패킷을 송신
  • 패킷 길이: 13 (= 0x0D)
  • 데이터 길이: 6
  • Device Type (Index 3): 0x1B
  • Packet Type (Index 4): 0x04
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x43: 장치의 OPEN/CLOSE 상태
    • Data[1] (Index 6): 상위 4비트 = 공간(방) 인덱스, 하위 4비트 = 장치 인덱스
      • 공간/장치 인덱스 = one-based index
      • 주방 1개, 가스레인지 1개인 일반적인 가정집의 경우 값은 0x11
    • Data[2] (Index 7): 0x00 (이 외의 값은 발견하지 못함)
    • Data[3] (Index 8): 장치의 현재 상태값
      • 0x03: 가스 밸브가 CLOSE된 상태
      • 0x04: 가스 밸브가 OPEN된 상태
    • Data[4] (Index 9): 0x00 (이 외의 값은 발견하지 못함)
    • Data[5] (Index 10): 0x00 (이 외의 값은 발견하지 못함)

 

-- 제보를 받습니다 !! --
가스 밸브의 조회 응답 패킷에서 OPEN/CLOSE 외 다른 상태값에 대한 정보를 아시는 분께서는 lee2002w@gmail.com으로 정보 공유 부탁드립니다 ^^

 

반응형