YOGYUI

현대통신 월패드 RS-485 통신 프로토콜 명세 - 감성 조명 본문

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

현대통신 월패드 RS-485 통신 프로토콜 명세 - 감성 조명

요겨 2024. 11. 9. 06:44
반응형

※ 티스토리 오블완(오늘 블로그 완료) 챌린지용 포스팅

※ 프로토콜 공통 명세 참고 링크: 현대통신 월패드 RS-485 통신 프로토콜 명세 - 공통 사양
※ '감성 조명' 장치 타입은 개인적으로 직접 테스트해본 적은 없으며, 제보(?)를 통해 코드만 구현

※ 관련 글 링크: 현대통신 월패드 '감성조명' 제어 기능 추가 (HA 애드온)

현대통신 월패드 HDHN-3000에서의 감성조명 제어 예시

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 15h 01h ??h ??h 00h 00h ??h EEh
  • 통신 방향: [월패드] → [개별 장치]
  • 패킷 길이: 11 (= 0x0B)
  • 데이터 길이: 4
  • Device Type (Index 3): 0x15
  • Packet Type (Index 4): 0x01
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x40: 장치의 ON/OFF 상태
      • 다른 값일 경우 밝기/색상 등을 담당할 것으로 추측되나, 패킷을 발견하지 못함
    • Data[1] (Index 6): 상위 4비트 = 공간(방) 인덱스, 하위 4비트 = 장치 인덱스
      • 공간/장치 인덱스 = one-based index
      • 첫 번째 방의 첫 번째 조명의 경우 0x11, 두 번째 방의 첫 번째 조명의 경우 0x21
      • 감성 조명의 경우 특정 공간에 2개 이상의 조명이 설치된 경우는 아직 발견하지 못함 (하위 4비트가 1인 패킷만 발견)
    • 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 15h 02h ??h ??h ??h 00h ??h EEh
  • 통신 방향: [월패드] → [개별 장치]
  • 패킷 길이: 11 (= 0x0B)
  • 데이터 길이: 4
  • Device Type (Index 3): 0x15
  • Packet Type (Index 4): 0x02
  • Data
    • Data[0] (Index 5): 카테고리
      • 0x40: 장치의 ON/OFF 상태
    •  Data[1] (Index 6): 상위 4비트 = 공간(방) 인덱스, 하위 4비트 = 장치 인덱스 
      • 공간/장치 인덱스 = one-based index
    • Data[2] (Index 7):
      • Data[0]가 0x40일 경우 조명 ON/OFF 명령
        • 0x01: 조명 ON
        • 0x02: 조명 OFF
    • Data[3] (Index 8):
      • Data[0]가 0x40일 경우 값은 0x00
      • Data[0]가 0x40이 아닐 경우 밝기/색상 등 다른 명령값이 사용될 것으로 추측됨
  • 예시
    • 첫 번째 공간의 첫 번째 조명 전원 ON 명령: F7 0B 01 15 02 40 11 01 00 BA EE
    • 세 번째 공간의 첫 번째 조명 전원 OFF 명령: F7 0B 01 15 02 40 31 02 00 99 EE 

3. 응답 패킷 (response)

3.1.  조회 응답

Index 0 1 2 3 4 5 6 7 [8:10] 11 12
Content Prefix Length - Dev
Type
Packet
Type
Category Dev / 
Room
- State Checksum Suffix
Value F7h 0Dh 01h 15h 04h ??h ??h 00h -- -- -- ??h EEh
  • 통신 방향: [개별 장치] → [월패드]
  • 패킷 길이: 13 (= 0x0D)
  • 데이터 길이: 6
  • Device Type (Index 3): 0x15
  • Packet Type (Index 4): 0x04
  • Data
    • Data[0] (Index 5): 카테고리
      • Data[0]가 0x40일 경우 조명 ON/OFF 상태 (아직 파악되지 않은 다른 상태값도 포함되어 있긴 함)
    • Data[1] (Index 6): 상위 4비트 = 공간(방) 인덱스, 하위 4비트 = 장치 인덱스
    • Data[2] (Index 7): 0x00 (다른 값 발견하지 못함) 
    • Data[3] (Index 8): 
      • 0x01: 조명이 ON된 상태
      • 0x02: 조명이 OFF된 상태
    • Data[4:5] (Index [9:10]): 밝기/색상 등의 정보로 추측됨

3.2. 명령 응답 

지금까지 발견된 바로는 명령 응답과 조회 응답의 구조는 차이가 없음 (ON/OFF 제어 한정)

※ 일반 조명은 조회 시 공간에 존재하는 모든 조명들의 상태를 한꺼번에 패킷에 담으나, 감성 조명은 현재까지 발견된 바에 따르면 공간당 1개씩밖에 존재하지 않으며 조회 패킷에서도 해당 장치 인덱스를 특정해서 상태를 조회함

추후 새로운 유형의 패킷 발견 시 업데이트 예정

'감성 조명'은 단순 조명 ON/OFF 뿐만 아니라 hue, saturation 등 조명의 밝기 색상을 제어 가능한 것으로 추정된다
블로그 독자 중 현대 통신의 '감성 조명'의 밝기/색상 제어 관련 기능을 IoT에 연동하고 싶거나 패킷 구조를 알고 계신 분들의 제보를 기다립니다
(이메일: lee2002w@gmail.com) 갑분 그것이 알고싶다

 

반응형