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 | 31 |
Tags
- 홈네트워크
- Apple
- raspberry pi
- 나스닥
- 배당
- 코스피
- 해외주식
- RS-485
- 애플
- 월패드
- SK텔레콤
- homebridge
- 미국주식
- 티스토리챌린지
- 공모주
- MQTT
- matter
- 힐스테이트 광교산
- 퀄컴
- Espressif
- Home Assistant
- esp32
- 매터
- 오블완
- 국내주식
- 현대통신
- ConnectedHomeIP
- Python
- Bestin
- 파이썬
Archives
- Today
- Total
YOGYUI
현대통신 월패드 RS-485 통신 프로토콜 명세 - 공통 사양 본문
반응형
※ 티스토리 오블완(오늘 블로그 완료) 챌린지용 포스팅
RS-485 시리얼 통신 스펙
- 일반 장치: 9600 baudrate, 8 databit, 1 stopbit, no parity
- 주방 비디오폰(서브폰): 3840 baudrate, 8 databit, 1 stopbit, no parity
주방 비디오폰 보레이트 관련 포스팅: 힐스테이트 광교산::주방 비디오폰 RS-485 패킷 해석
RS-485 패킷 공통사양
Index | 0 | 1 | 2 | 3 | 4 | [5:4+M] | N-2 | N-1 |
Content | Prefix | Length | ? | Dev.Type | Packet.Type | Data | Checksum | Suffix |
Value | F7h | N | 01h | -- | -- | -- -- -- | -- | EEh |
- 패킷 길이: N 바이트
- 데이터 길이: M (= N - 7) 바이트, M≥1
- Index 0: 패킷의 시작을 나타내는 접두사(Prefix) 바이트, 값 = 0xF7
- Index 1: 온전한 한 패킷의 길이 = N
- Index 2: 값=0x01
- 이외의 값을 발견한 적 없음, 월패드의 아이디로 추정됨
- Index 3: 제어 대상 장치(device) 종류 구분을 위한 바이트, 값에 따라 다른 종류의 디바이스
- 0x15: 감성 조명
- 0x18: 난방
- 0x19: 일반 조명
- 0x1A: 디밍(dimming) 조명
- 0x1B: 주방 도시가스 밸브
- 0x1C: 시스템 에어컨
- 0x1E: 현관 도어락
- 0x1F: 아울렛 (대기전력 차단 콘센트)
- 0x2A: 일괄소등 스위치
- 0x2B: 전열교환기 (환기)
- 0x34: 엘리베이터
- 0x43: HEMS
- 0x44: 현재 시간
- Index 4: 패킷의 유형
- 0x01: 장치의 상태 조회(쿼리), 통신 방향: [월패드]→[개별 장치]
- 0x02: 장치 제어 명령, 통신 방향: [월패드]→[개별 장치]
- 0x04: 쿼리/명령 응답, 통신 방향: [개별 장치]→[월패드]
- Index 5 ~ 4 + M: 장치의 제어 명령, 현재 상태 확인 등의 정보가
- Index N - 2: 패킷 유효성 검증을 위한 체크섬 바이트
- 알고리즘: XOR SUM
- 계산 타겟: Index 0 ~ N - 3
- Index N - 1: 패킷의 끝을 나타내는 접미사(Suffix) 바이트, 값 = 0xEE
- 유효한 패킷의 시작(prefix)와 끝(suffix)가 정해져 있기 때문에, 끊어져서 수신되는 RS-485 byte chunk들에 대한 버퍼링 구현도 굉장히 간단하다
※ 주의: 주방 비디오폰은 프로토콜이 상이함, 이에 대해서는 별도로 포스팅 예정
XOR 체크섬 계산 의사코드 (C/C++)
/* pseudo code */
uint8_t packet[N];
packet[0] = 0xF7;
/* ... */
uint8_t checksum = 0x00;
for (int i = 0; i < N - 2; i++) {
checksum ^= packet[i];
}
packet[N - 2] = checksum;
packet[N - 1] = 0xEE;
현대통신 월패드는 위에 언급된 장치 외에도 주방 쿡탑, 전동 커튼 등 마이너(?)한 종류의 장치들도 연동할 수 있다
필자는 언제나 열린 마음으로 패킷 제보를 기다리고 있다 ^^
반응형
'홈네트워크(IoT) > 힐스테이트 광교산' 카테고리의 다른 글
현대통신 월패드 RS-485 통신 프로토콜 명세 - 감성 조명 (0) | 2024.11.09 |
---|---|
현대통신 월패드 RS-485 통신 프로토콜 명세 - 일반 조명 (1) | 2024.11.08 |
현대통신 월패드 주방 비디오폰 세대현관문/공동현관문 자동 열림 기능 추가 (3) | 2024.10.24 |
현대통신 월패드 '디밍조명' RS-485 응답 패킷 유형 추가 (깃허브) (0) | 2024.09.03 |
현대통신 월패드 HA 애드온 RS-485 명령 반복 전송 파라미터 추가 (0) | 2024.08.22 |