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
- 미국주식
- Python
- 공모주
- Apple
- RS-485
- 매터
- MQTT
- 홈네트워크
- Home Assistant
- raspberry pi
- 코스피
- cluster
- Bestin
- 애플
- 해외주식
- 나스닥
- 월패드
- 국내주식
- 티스토리챌린지
- ConnectedHomeIP
- Espressif
- 현대통신
- 파이썬
- SK텔레콤
- 오블완
- esp32
- 힐스테이트 광교산
- 배당
- homebridge
- matter
Archives
- Today
- Total
YOGYUI
현대통신 월패드 RS-485 통신 프로토콜 - 난방(보일러) 본문
반응형
※ 티스토리 오블완(오늘 블로그 완료) 챌린지용 포스팅
※ 프로토콜 공통 명세 참고 링크: 현대통신 월패드 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 | 18h | 01h | 46h | 10h | 00h | 00h | ??h | EEh |
- 통신 방향: [월패드] → [개별 장치]
- 패킷 길이: 11 (= 0x0B)
- 데이터 길이: 4
- Device Type (Index 3): 0x18
- Packet Type (Index 4): 0x01
- Data
- Data[0] (Index 5): 카테고리
- 0x46: 난방(보일러) 온도 상태
- Data[1] (Index 6): 상위 4비트 = 장치 인덱스, 하위 4비트 = 공간(방) 인덱스
- 장치/공간 인덱스 = one-based index
- 장치 인덱스는 난방 제어기를 가리킴 (제어기가 하나밖에 없다면 값은 1로 고정)
- 공간 인덱스 값이 0일 경우, 해당 난방 제어기에서 제어 가능한 최대 8개 공간의 개별 난방 상태값을 반환
(반드시 공간 1개당 방 1개가 배정된다고 할 수는 없음.. 방이 넓은 경우 난방 장치 2개를 사용할지도?) - 공간 인덱스 값이 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 | 18h | 02h | ??h | 1?h | ??h | 00h | ??h | EEh |
- 통신 방향: [월패드] → [개별 장치]
- 패킷 길이: 11 (= 0x0B)
- 데이터 길이: 4
- Device Type (Index 3): 0x18
- Packet Type (Index 4): 0x02
- Data
- Data[0] (Index 5): 카테고리
- 0x45: 설정(희망) 온도값 변경
- 0x46: 난방 ON/OFF 변경
- Data[1] (Index 6): 상위 4비트 = 장치 인덱스, 하위 4비트 = 공간(방) 인덱스
- 장치/공간 인덱스 = one-based index
- 장치 인덱스는 난방 제어기를 가리킴 (제어기가 하나밖에 없다면 값은 1로 고정)
- 공간 인덱스는 난방 제어기가 제어할 수 있는 개별 공간을 가리킴 (첫번째 공간 = 1)
- Data[2] (Index 7): 명령값
- Data[0]가 0x45일 경우 희망온도 설정 변경
- 온도값 단위는 섭씨(℃)이며, 1도 단위로 조절
- 정수값을 그대로 바이트 단위로 입력 (예: 20도 = 0x14)
- Data[0]가 0x46일 경우 ON/OFF 제어
- 0x01: 난방 ON
- 0x04: 난방 OFF
- Data[0]가 0x45일 경우 희망온도 설정 변경
- Data[3] (Index 8): 0x00 (이 외의 값은 발견하지 못함)
- Data[0] (Index 5): 카테고리
- 예시
- 4번째 방의 난방 ON: F7 0B 01 18 02 46 14 01 00 B4 EE
- 4번째 방의 난방 희망 온도를 23도로 설정: F7 0B 01 18 02 45 14 17 00 A1 EE
3. 응답 패킷 (response)
3.1. 명령 응답
Index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
Content | Prefix | Length | - | Dev Type |
Packet Type |
Category | Dev / Room |
Command | On/Off | T.C | T.S | Checksum | Suffix |
Value | F7h | 0Dh | 01h | 18h | 04h | ??h | ??h | ??h | ??h | ??h | ??h | ??h | EEh |
- 통신 방향: [개별 장치] → [월패드]
- 명령 패킷 수신 후 상태를 변경한 뒤 이에 대한 응답 패킷을 곧바로 송신
- 명령 타입에 상관없이 해당 난방 장치의 On/Off 상태, 현재 온도값, 설정 온도값을 반환
- 패킷 길이: 13 (= 0x0D)
- 데이터 길이: 6
- Device Type (Index 3): 0x18
- Packet Type (Index 4): 0x04
- Data
- Data[0] (Index 5): 카테고리
- 0x45: 설정(희망) 온도값 변경 명령에 대한 응답
- 0x46: 난방 ON/OFF 변경 명령에 대한 응답
- 카테고리에 상관없이 응답 데이터는 동일함
- Data[1] (Index 6): 상위 4비트 = 장치 인덱스, 하위 4비트 = 공간(방) 인덱스
- 장치/공간 인덱스 = one-based index
- 장치 인덱스는 난방 제어기를 가리킴 (제어기가 하나밖에 없다면 값은 1로 고정)
- 공간 인덱스는 난방 제어기가 제어할 수 있는 개별 공간을 가리킴 (첫번째 공간 = 1)
- Data[2] (Index 7): 명령값
- Data[0]가 0x45일 경우 희망온도 설정 변경값
- Data[0]가 0x46일 경우 ON/OFF 제어값
- Data[3] (Index 8): 난방의 ON/OFF 상태
- 0x01: 난방 ON된 상태
- 0x04: 난방 OFF된 상태
- Data[4] (Index 9): 공간(방)의 현재 온도값
- 개별 공간의 써미스터 측정값을 반환
- Data[5] (Index 10): 난방 희망 온도 설정
- 온도값 단위는 섭씨(℃)이며, 정수(integer) 형태 (1도 단위)
- Data[0] (Index 5): 카테고리
3.2. 조회 응답
Index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | [8:31] | 32 | 33 |
Content | Prefix | Length | - | Dev Type |
Packet Type |
Category | Dev / Room |
- | State | Checksum | Suffix |
Value | F7h | 22h | 01h | 18h | 04h | 46h | 10h | 00h | -- -- -- | ??h | EEh |
- 통신 방향: [개별 장치] → [월패드]
- 난방 제어기가 월패드로부터 조회(쿼리) 패킷 수신 후, 최대 8개 공간의 난방 상태를 담은 응답 패킷을 송신
- 패킷 길이: 34(=0x22)
- 데이터 길이: 27
- Device Type (Index 3): 0x18
- Packet Type (Index 4): 0x04
- Data
- Data[0] (Index 5): 카테고리
- 0x46: 난방(보일러) 온도 상태 쿼리에 대한 응답
- Data[1] (Index 6): 상위 4비트 = 장치 인덱스, 하위 4비트 = 공간(방) 인덱스
- 공간 인덱스 값이 0일 경우 난방 장치가 제어 가능한 최대 8개 공간의 난방 상태값을 반환
- Data[2] (Index 7): 0x00 (이 외의 값은 발견하지 못함)
- Data[3:26] (Index [8:31]): 24바이트로 구성
- 8개 공간의 난방 상태값을 표현
- 각 공간의 난방 상태값은 3바이트로 구성
- K = 0, 1, 2, ... , 7: 공간 인덱스
- Data[3 + K × 3]: 난방의 ON/OFF 상태
- 0x01: 난방 ON된 상태
- 0x04: 난방 OFF된 상태
- 0x00: 해당 공간은 난방이 지원되지 않음
- Data[3 + K × 3 + 1]: 공간의 현재 온도값
- 0x00: 해당 공간은 난방이 지원되지 않음
- Data[3 + K × 3 + 2]: 난방 설정(희망) 온도값
- 0x00: 해당 공간은 난방이 지원되지 않음
- Data[0] (Index 5): 카테고리
- 예시
- F7 22 01 18 04 46 10 00 04 19 15 04 19 17 04 19 16 04 1A 12 00 00 00 00 00 00 00 00 00 00 00 00 9B EE
- 난방기기 1번은 총 '4공간'의 난방 제어 가능
- 1번 공간의 난방은 꺼져있으며(0x04), 현재 온도는 25도(0x19), 설정 온도는 21도(0x15)
- 2번 공간의 난방은 꺼져있으며(0x04), 현재 온도는 25도(0x19), 설정 온도는 23도(0x17)
- 3번 공간의 난방은 꺼져있으며(0x04), 현재 온도는 25도(0x19), 설정 온도는 22도(0x16)
- 4번 공간의 난방은 꺼져있으며(0x04), 현재 온도는 26도(0x1A), 설정 온도는 18도(0x12)
- F7 22 01 18 04 46 10 00 04 19 15 04 19 17 04 19 16 04 1A 12 00 00 00 00 00 00 00 00 00 00 00 00 9B EE
반응형
'홈네트워크(IoT) > 힐스테이트 광교산' 카테고리의 다른 글
현대통신 월패드 RS-485 통신 프로토콜 - 시스템 에어컨 (0) | 2024.11.23 |
---|---|
현대통신 월패드 RS-485 통신 프로토콜 - 일괄소등 스위치 (0) | 2024.11.22 |
현대통신 월패드 RS-485 통신 프로토콜 - 가스 밸브 (0) | 2024.11.17 |
현대통신 월패드 RS-485 통신 프로토콜 - 아울렛(콘센트) (1) | 2024.11.16 |
현대통신 월패드 RS-485 통신 프로토콜 명세 - 디밍 조명 (0) | 2024.11.10 |