오늘 해보려고 하는 것
오늘은 위의 화면처럼, Homekit의 도어벨 기능을 만드는 이야기를 적어보려고 한다.
방식
방식은 주방TV 시스템을 통해 사용 한다. 주방 TV에는 공동현관/현관을 여는 기능이 있다.
범용적이게 납품을 해야하니, 시스템적으로 통일을 하고 있을 것이라고 생각을 하고 보드를 보았다.
TV-PHONE 이라고 적힌 부분이 주방으로 가는 신호 선이다.
음~ 3/6번은 RS485 연결을 위한 데이터 통신 라인인듯하다.
그리고 VD 라인이 무엇일까 고민을 해보다가, 아날로그 비디오 신호라는 것을 알게 되었다.
그럼 패킷을 캡쳐 하기 위하여, 장비를 구매 해보자.
먼저 아날로그 비디오 라인을 위하여, RCA라인을 구매했다.
라인이 있으면 당연히 캡쳐보드도 있어야 하니 캡쳐보드도 구매 하였다.
나 같은 경우에는 리눅스 장비에 연결을 해야 하기 때문에, EasyCAP 장비를 구매 하였다.
자 그럼 아날로그 비디오를 이제 연결 하여 보자.
아날로그 비디오를 연결 했지만 응답이 없었다.
자 그럼 아날로그 비디오를 이제 연결 하여 보자. 배선도를 보고 열심히 결선을 했는데..
응답이 없었다.. 왜 영상이 안들어오는걸까 문제를 알아보았는데 두가지 문제가 있었다.
첫 번째, 보드의 결선도와 실제 장비의 결선도는 다르다.
보드에서는 7번이 비디오 라인이었는데 실제 연결시에는 2번이 연결 라인이었다.
알고 봤더니 RJ45 라인이 표준대로 만들어지지 않았고 TV 장비에 맞춰서 랜 케이블이 만들어져있었다.
거의 대부분 주방 TV 뒷면에 결선도가 있으니, 보고 참고 하도록 하자
두번째, VD라인만 연결 하면 안되고, GND도 꼭 연결을 해주자.
사진은 없는데 비디오 선은 신호선과 GND라인이 있어야 한다.
처음에는 라인이 하나 밖에 없어서 당연히 하나로 해결 될 줄 알았는데, 그것이 아니었다.
외부에 보호용으로 있는 것 같은 줄이, GND 라인이었다.
보드 상에 있는 GND라인에 같이 연결을 해주자.
드디어 영상이 보인다.
드디어 영상이 보인다. 이제 영상을 스트리밍 해보자.
나 같은 경우에는 위에서 이야기한 EasyCap을 라즈베리파이에 연결 하여 사용 하고 있다.
여러가지를 사용 해보았는데 아래의 패키지가 가장 괜찮았다.
설치 방법은 나보다 잘 적은 분이 많으니 링크를 남긴다.
이제 이벤트를 수신 해보자.
COMMAX는 홈 조명과 보일러를 제어하는 RS485라인과 문을 열어주는 RS485 라인이 물리적 분리가 되어있다.
그 라인이 주방TV에 연결된 TRX -/+ 이고, 이를 통해 현관 초인종, 공동현관 초인종이 울리는 이벤트를 받아야 한다.
방식은 이전 글에서 참고를 하도록 하자
우리집의 Commax 장비 기준으로는 아래와 같다.
# 현관 카메라 ON/OFF
CAMERA_ON = ["02", "11", "00", "00", "00", "00", "02", "01", "14", "03", "04", "50", "00", "07", "86", "03"]
CAMERA_CALL_START = ["02", "11", "00", "00", "00", "00", "02", "01", "14", "03", "04", "40", "00", "07", "76", "03"]
CAMERA_OFF = [
"02", "11", "00", "00", "00", "00", "02", "01", "14", "03", "06", "40", "00", "07", "78", "03"
]
# 현관문 관련 이벤트
MAIN_DOOR_OPEN_EVENT = ['02', '10', '02', '01', '14', '03', '02', '01', '14', '03', '00', '00', '00', '00', '44', '03', '02',
'10',
'02', '01', '14', '03', '02', '01', '14', '03', '10', '00', '00', '00', '54', '03']
MAIN_DOOR_END_EVENT = ['02', '10', '02', '01', '14', '03', '02', '01', '14', '03', '00', '00', '00', '00', '44', '03']
MAIN_DOOR_OPEN = [
"02", "11", "00", "00", "00", "00", "02", "01", "14", "03", "05", "00", "00", "07", "37", "03"
]
# 공동현관 이벤트
COMMON_DOOR_START_EVENT = ['02', '10', '02', '01', '14', '03', '02', '01', '14', '03', '00', '00', '00', '00', '44', '03',
'02', '10', '02', '01', '14', '03', '02', '01', '14', '03', '04', '00', '00', '00', '48', '03']
COMMON_DOOR_SESSION_START = ['02', '11', '00', '00', '00', '00', '02', '01', '14', '03', '04', '30', '00', '07', '66', '03']
COMMON_DOOR_END_EVENT = [
"02", "10", "02", "01", "14", "03",
"02", "01", "14", "03", "00","00", "00", "00", "44", "03"
]
COMMON_DOOR_SESSION_END = ['02', '11', '00', '00', '00', '00', '02', '01', '14', '03', '06', '30', '00', '07', '68', '03']
# 지하주차장과 지상출입문의 패킷이 다르다.
COMMON_DOOR_SESSION_END2 = [
'02','12','00','00','00','00','02','01','14','03','41','30','00','07','a4','03',
'02','15','02','01','14','03','02','01','14','03','03','00','00','00','4c','03',
'02','10','02','01','14','03',
'02','01','14','03','00','00','00','00','44','03'
]
COMMON_DOOR_OPEN = ['02', '11', '00', '00', '00', '00', '02', '01', '14', '03', '05', '00', '00', '07', '37', '03']
캡쳐한 패킷을 기반으로, sound type의 binary_sensor로 데이터를 받을 수 있게 커스텀 컴포넌트를 개발 하였다.
그리고 도어 오픈 의 경우에도 Lock Entity를 통해 사용 할수 있도록 커스텀 컴포너트를 개발 하였다.
HomeAssistant 설정하기
먼저 EASYCap에서 RTSP로 카메라를 연결 해보자.
camera:
- platform: generic
stream_url: RTSP주소
name: "현관"
그리고 이어서, 홈킷에서 알림을 받기 위하여, 트리거 관련 설정을 해보자.
homekit:
- name: Home
port: 21066
safe_mode: true
entity_config:
camera.gongdonghyeongwan: // 카메라 이름
linked_doorbell_sensor: binary_sensor.doorbell // 위에서 개발한 현관 도어벨 이벤트를 수신하는 바이너리센서
이렇게 한 뒤 HomeAssistant 를 재시작 해주면 준비 끝!
HomeKit 알림 받기
위의 설정이 잘 되었다면 홈앱에 위와 같이 카메라들이 나오기 시작 할 것 입니다.
카메라에 들어가서 설정으로 간 다음
알림을 클릭하고
초인종 알림을 선택하게 되면 이제 홈킷에 알림이 연동되게 됩니다.
예상되는 질문 QNA
Q. 공동현관도 지원이 되나요? 라인이 따로 있나요?
A. 아니요 라인이 따로 있지는 않고, VD라인을 통해 넘어옵니다. 기본적으로는 현관 화면이 나오게 되는데 공동현관이 울린 경우에는 공동현관 화면이 나옵니다. 추정하기로는 공동현관 <---> 집 월패드 (TCP) -----> 주방TV (아날로그) 로 넘어오는것으로 추정 됩니다.
Q. 현관문은 도어를 눌러야 열리나요?
A. 코맥스 장비의 경우는 통화 세션과 상관없이 문열림 패킷으로 문을 열 수 있습니다.
공동현관은 통화 세션이 필요합니다.
Q. 커스텀 컴포넌트를 공유 해 주 실 수 있나요?
A. 따로 공유 계획은 없습니다.
Q. 쓸만한가요?
A. 쓸만합니다
마치며
애플 생태계 속에서는 TV를 보는 중에도 현관에 문을 열어 줄 수 도 있고, 외부에서 손님이 와도 먼저 들어갈 수 있게 해줄 수 있다.
애플의 홈 생태계는 정말 최고다.
마음 같아서는, 현관벨을 로지텍에서 FHD급으로 지원해주는 카메라로 바꾸고 싶지만,
아직 내집이 아닌 전세 난민이기에... 최대한 공사 없이 그리고 이사갈때 가볍게 띠어 갈 수 있는 구성으로 한번 대리 만족 해보았다.
빔 프로젝트를 보면서 월패드가 항상 눈에 거슬리는데, 상황을 보고 저 월패드도 가려버리던가 해야겠습니다.
홈 IOT는 언제나 재미있네요.
'IOT & 홈랩' 카테고리의 다른 글
[홈네트워크] 우리집엔 광고가 안나옵니다. DNS 광고 차단기 (1) | 2023.02.19 |
---|---|
[홈네트워크] 저희 집 홈 네트워크를 소개 합니다. (0) | 2023.02.19 |
IOT 시리즈 (2) - 기존 장비에서 패킷 캡처를 해보자 (0) | 2022.02.05 |
IOT 시리즈 (1) - EW11로 패킷을 캡쳐 해보자. (1) | 2022.02.03 |
IOT 시리즈 (0) - 내 꿈은 집에 자비스 같은 집사 두기 (0) | 2022.01.25 |
댓글