YOGYUI

현대통신 월패드 RS-485 통신 프로토콜 - 일괄소등 스위치 본문

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

현대통신 월패드 RS-485 통신 프로토콜 - 일괄소등 스위치

요겨 2024. 11. 22. 21:44
반응형

 

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

일괄소등 스위치 예시

일괄소등 스위치는 다른 기기들과는 달리 스위치에 조명 전원 / 가스 밸브 개폐 상태 / 엘리베이터 호출 상태 / 복도등 상태 등 현재 상태를 나타내기 위한 LED가 장착되어 있는데, 이를 켜고 끄기 위해 월패드에서 스위치로 패킷을 보낼 때 일괄소등 기능 뿐만 아니라 다른 기기들의 상태를 함께 패킷에 실어서 보낸다
이 글에서는 일괄소등 기능에 대한 명령과 그에 대한 응답만 다루며, 다른 기기들의 상태값에 대해서는 무시하도록 한다

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

Index 0 1 2 3 4 5 6 7 8 9 10 11 12 13
Content Prefix Length - Dev
Type
Packet
Type
Category Dev / 
Room
- ? - ? - Checksum Suffix
Value F7h 0Eh 01h 2Ah 01h 40h 10h 00h 19h 00h 1Bh ??h ??h EEh
  • 통신 방향: [월패드] → [개별 장치] (확실치 않음)
    • 일괄소등스위치의 경우 다른 기기들과는 특이하게 월패드가 조회 패킷 전송 시에 가스밸브 상태, 엘리베이터 호출 상태, 복도등 ON/OFF 상태 등을 기기로 보낸다 (스위치의 상태 LED ON/OFF를 위한 것으로 추정됨)
  • 패킷 길이: 14 (= 0x0E)
  • 데이터 길이: 7
  • Device Type (Index 3): 0x2A
  • Packet Type (Index 4): 0x01
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x40: 일괄소등 스위치
    • Data[1] (Index 6): 0x10 (일괄소등 스위치가 여러 개일 경우 다른 값이 쓰일 것으로 예상됨)
    • Data[2] (Index 7): 0x00 (이 외의 값은 발견하지 못함)
    • Data[3] (Index 8): 0x19 (엘리베이터 혹은 복도 조명 혹은 다른 기기의 현재 상태값으로 추정됨)
    • Data[4] (Index 9): 0x00 (이 외의 값은 발견하지 못함)
    • Data[5] (Index 10): 0x1B (엘리베이터 혹은 복도 조명 혹은 다른 기기의 현재 상태값으로 추정됨)
    • Data[6] (Index 11): 현재 주방 가스 밸브의 개폐 상태
      • 0x03: 가스 밸브가 닫혀있음 
      • 0x04: 가스 밸브가 열려있음

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

Index 0 1 2 3 4 5 6 7 8 9 10 11
Content Prefix Length - Dev
Type
Packet
Type
Category Dev / 
Room
Command - - Checksum Suffix
Value F7h 0Ch 01h 2Ah 02h 40h 11h ??h 19h 00h ??h EEh
  • 통신 방향: [월패드] → [개별 장치] (확실치 않음)
  • 패킷 길이: 12 (= 0x0C)
  • 데이터 길이: 5
  • Device Type (Index 3): 0x2A
  • Packet Type (Index 4): 0x02
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x40: 일괄소등 스위치
    • Data[1] (Index 6): 0x11 (일괄소등 스위치가 여러 개일 경우 다른 값이 쓰일 것으로 예상됨)
    • Data[2] (Index 7): 일괄소등 상태 변경 명령값
      • 0x01: 일괄소등 기능 ON
      • 0x02: 일괄소등 기능 OFF
      • 일괄소등 기능이 ON되면 집안의 모든 조명이 '꺼지며', 일괄소등 기능을 해제하기 전까지는 개별 조명의 전원이 켜지지 않는다!
    • Data[3] (Index 8): 0x19 (다른 기기의 명령값으로 추정됨)

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 - State Checksum Suffix
Value F7h 0Ch 01h 2Ah 04h 40h 11h ??h 19h ??h ??h EEh
  • 통신 방향: [개별 장치] → [월패드] (확실치 않음)
    • 명령 패킷 수신 후 상태를 변경한 뒤 이에 대한 응답 패킷을 곧바로 송신
  • 패킷 길이: 12 (= 0x0C)
  • 데이터 길이: 5
  • Device Type (Index 3): 0x2A
  • Packet Type (Index 4): 0x04
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x40: 일괄소등 스위치
    • Data[1] (Index 6): 0x11 (일괄소등 스위치가 여러 개일 경우 다른 값이 쓰일 것으로 예상됨)
    • Data[2] (Index 7): 명령값
      • 0x01: 일괄소등 기능 ON 명령
      • 0x02: 일괄소등 기능 OFF 명령
    • Data[3] (Index 8): 0x19 (다른 기기의 명령값 혹은 상태값으로 추정됨)
    • Data[4] (Index 9): 현재 상태값
      • 0x01: 일괄소등 기능이 활성화되어 있음
      • 0x02: 일괄소등 기능이 비활성화되어 있음

3.2. 조회 응답

Index 0 1 2 3 4 5 6 7 8 9 10 11 12 13
Content Prefix Length - Dev
Type
Packet
Type
Category Dev / 
Room
- ? State ? Gas Valve Checksum Suffix
Value F7h 0Eh 01h 2Ah 04h 40h 10h 00h 19h ??h 1Bh ??h ??h EEh
  • 통신 방향: [개별 장치] → [월패드] (확실치 않음)
  • 패킷 길이: 14 (= 0x0E)
  • 데이터 길이: 7
  • Device Type (Index 3): 0x2A
  • Packet Type (Index 4): 0x04
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x40: 일괄소등 스위치
    • Data[1] (Index 6): 0x10 (일괄소등 스위치가 여러 개일 경우 다른 값이 쓰일 것으로 예상됨)
    • Data[2] (Index 7): 0x00 (이 외의 값은 발견하지 못함)
    • Data[3] (Index 8): 0x19 (엘리베이터 혹은 복도 조명 혹은 다른 기기의 현재 상태값으로 추정됨)
    • Data[4] (Index 9): 일괄소등 기능의 현재 상태값
      • 0x01: 일괄소등 기능이 활성화되어 있음
      • 0x02: 일괄소등 기능이 비활성화되어 있음
    • Data[5] (Index 10): 0x1B (엘리베이터 혹은 복도 조명 혹은 다른 기기의 현재 상태값으로 추정됨)
    • Data[6] (Index 11): 현재 주방 가스 밸브의 개폐 상태
      • 0x03: 가스 밸브가 닫혀있음 
      • 0x04: 가스 밸브가 열려있음

일괄소등 스위치의 경우 다른 기기들과는 달리 패킷 분석에 심혈을 기울이지 않아(?) 부정확한 부분이 있을 수 있음
잘못된 부분에 대한 제보: lee2002w@gmail.com
반응형