Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Espressif
- raspberry pi
- 코스피
- esp32
- MQTT
- Bestin
- 애플
- Apple
- cluster
- RS-485
- 미국주식
- 월패드
- 현대통신
- 나스닥
- matter
- 배당
- SK텔레콤
- 힐스테이트 광교산
- 홈네트워크
- Python
- 오블완
- 공모주
- 매터
- 해외주식
- ConnectedHomeIP
- Home Assistant
- 파이썬
- 티스토리챌린지
- 국내주식
- homebridge
Archives
- Today
- Total
YOGYUI
현대통신 월패드 RS-485 통신 프로토콜 명세 - 디밍 조명 본문
반응형
※ 티스토리 오블완(오늘 블로그 완료) 챌린지용 포스팅
※ 디밍 조명: LED의 ON/OFF 및 '밝기' 제어가 가능한 디바이스
※ 프로토콜 공통 명세 참고 링크: 현대통신 월패드 RS-485 통신 프로토콜 명세 - 공통 사양
※ '디밍 조명' 장치 타입은 개인적으로 직접 테스트해본 적은 없으며, 제보(?) 및 깃허브 PR을 통해 코드만 구현
※ 관련 글 링크
현대통신 월패드 '디밍조명' 제어 기능 추가 (깃허브, HA 애드온)
현대통신 월패드 '디밍조명' 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 | 1Ah | 01h | ??h | ??h | 00h | 00h | ??h | EEh |
- 통신 방향: [월패드] → [개별 장치]
- 패킷 길이: 11 (= 0x0B)
- 데이터 길이: 4
- Device Type (Index 3): 0x1A
- Packet Type (Index 4): 0x01
- Data
- Data[0] (Index 5): 카테고리
- 0x40: 장치의 ON/OFF 상태 조회
- 0x42: 장치의 밝기 상태 조회
- Data[1] (Index 6): 상위 4비트 = 공간(방) 인덱스, 하위 4비트 = 장치 인덱스
- 공간/장치 인덱스 = one-based index
- 장치 인덱스 값이 0인 경우, 공간 내에 설치된 모든 디밍 조명 장치들의 상태를 조회 (두 개 이상 설치된 케이스는 아직 발견하지 못함)
- Data[2] (Index 7): 0x00 (이 외의 값은 발견하지 못함)
- Data[3] (Index 8): 0x00 (이 외의 값은 발견하지 못함)
- Data[0] (Index 5): 카테고리
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 | 1Ah | 02h | ??h | ??h | ??h | 00h | ??h | EEh |
- 통신 방향: [월패드] → [개별 장치]
- 패킷 길이: 11 (= 0x0B)
- 데이터 길이: 4
- Device Type (Index 3): 0x1A
- Packet Type (Index 4): 0x02
- Data
- Data[0] (Index 5): 카테고리
- 0x40: 장치의 ON/OFF 상태 제어
- 0x42: 장치의 밝기 제어
- Data[1] (Index 6): 상위 4비트 = 공간(방) 인덱스, 하위 4비트 = 장치 인덱스
- 공간/장치 인덱스 = one-based index
- 첫 번째 방의 첫 번째 조명의 경우 0x11, 네 번째 방의 첫 번째 조명의 경우 0x41
- Data[2] (Index 7):
- Data[0]가 0x40일 경우 조명 ON/OFF 명령
- 0x01: 조명 ON
- 0x02: 조명 OFF
- Data[0]가 0x42일 경우 조명 밝기 변경 명령
- 현재까지 알려진 바로는 밝기의 최대값은 7 (=0x07), 따라서 값의 범위는 0 ~ 7 (0이면 꺼진 것과 동일한 지는 확인하지 못함)
- 현대통신 월패드 내부에서 최대값 초과한 값에 대해서 자체적으로 truncation하여 패킷을 처리하는지 확인하지 못함
- Data[0]가 0x40일 경우 조명 ON/OFF 명령
- Data[0] (Index 5): 카테고리
3. 응답 패킷 (response)
3.1. 조회 응답
Index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | [8:M+7] | M+8 | M+9 |
Content | Prefix | Length | - | Dev Type |
Packet Type |
Category | Dev / Room |
- | Dev State(s) |
Checksum | Suffix |
Value | F7h | 0Dh | 01h | 1Ah | 04h | ??h | ??h | 00h | -- -- -- | ??h | EEh |
- 통신 방향: [개별 장치] → [월패드]
- 공간의 조명 개수: M (≥1)
- 장치 인덱스(Index 6의 하위 4비트) 값이 0이 아닐 경우 M=1로 고정
- M이 1보다 큰 경우는 아직까지 발견하지 못함
- 패킷 길이: 10 + M
- 데이터 길이: 3 + M
- Device Type (Index 3): 0x1A
- Packet Type (Index 4): 0x04
- Data
- Data[0] (Index 5): 카테고리
- 0x40: 장치의 ON/OFF 상태
- 0x42: 장치의 밝기 상태
- Data[1] (Index 6): 상위 4비트 = 공간(방) 인덱스, 하위 4비트 = 장치 인덱스
- 장치 인덱스 값이 0인 경우, 공간에 설치된 모든 디밍 조명들의 ON/OFF 혹은 밝기 상태값을 모두 데이터에 포함
- Data[2] (Index 7): 0x00
- 명령에 대한 응답일 경우 명령값
- Data[3:2+M] (Index [8:7+M]): 각 조명의 현재 상태값
- Data[0]가 0x40일 경우:
- 0x01: 조명이 ON된 상태
- 0x02: 조명이 OFF된 상태
- Data[0]가 0x42일 경우: 조명의 밝기값
- Data[0]가 0x40일 경우:
- Data[0] (Index 5): 카테고리
- 예시
- 첫 번째 공간의 첫 번째 디밍 조명이 켜져있음: F7 0B 01 1A 04 40 10 00 01 B2 EE
- 첫 번째 공간의 첫 번째 디밍 조명의 밝기 레벨이 7로 설정되어 있음: F7 0B 01 1A 04 42 10 00 07 B6 EE
3.2. 명령 응답
명령 응답은 조회 응답과 유의미한 차이를 아직까지 발견하지 못함
※ 차이점: 장치 인덱스 값이 1 이상이다, Index 7 값이 명령값이 반영된다
※ Index 8 값은 상태값이 반영되는 것은 동일
추후 새로운 유형의 프로토콜 발견 시 업데이트 예정
반응형
'홈네트워크(IoT) > 힐스테이트 광교산' 카테고리의 다른 글
현대통신 월패드 RS-485 통신 프로토콜 - 가스 밸브 (0) | 2024.11.17 |
---|---|
현대통신 월패드 RS-485 통신 프로토콜 - 아울렛(콘센트) (1) | 2024.11.16 |
현대통신 월패드 RS-485 통신 프로토콜 명세 - 감성 조명 (0) | 2024.11.09 |
현대통신 월패드 RS-485 통신 프로토콜 명세 - 일반 조명 (1) | 2024.11.08 |
현대통신 월패드 RS-485 통신 프로토콜 명세 - 공통 사양 (1) | 2024.11.07 |