본문 바로가기
IOT스마트홈 만들기 (Home Assistant)/기타

[wyze cam v2 설정기] 1. 다팡 펌웨어 업로드부터 모션 감지, 야간 적외선 촬영까지!

by ProjectDH 2021. 1. 29.

먼저 wyze cam v2 사진을 올려봅니다.

 

크기도 작고, usb 전원으로 동작합니다. 5v 1a

실제로는 1~2W 정도로 전원을 먹습니다. 이거는 계속 쓰더라도 전기비가 비싸지는 않겠네요. 안심!!

 

드디어... 어느정도 wyze cam v2 설정을 완료한 것 같아 설정 후기를 좀 올려보려고 합니다.

IOT 카페에 직구해서 구매할 수 있는 wyze cam v2 (샤오팡 보다 좋은 버전)이 올라왔길래..

관심있어서 검색해보니 rtsp 로도 송출이 가능하더라고요.. 게다가 미개봉에 착한가격이었습니다. 25,000원

가격이 저렴할수가.. 가성비에 사겠다!!

단순히 rtsp만 필요하면 되겠다 해서 구매한 캠이 wyze cam v2인데, 알고보니 다팡 핵펌 이라는게 있었습니다.

이게 내 캠을 내부에서만 사용할 수 있도록 만들어주는 커스텀 펌웨어인줄 알았지만, 정말 다양한 기능이 있어서.. 다 만져볼 시간도 없네요.

요 3일간 다팡 핵펌을 올리고, 필요한 부분은 수정하고 보완하면서,, 드디어 원하는 기능을 모두 구현한 것 같습니다.

 

저는 이 펌웨어를 기준으로 설정했습니다. https://github.com/01kbpatel/Xiaomi-Dafang-Hacks

 

01kbpatel/Xiaomi-Dafang-Hacks

Contribute to 01kbpatel/Xiaomi-Dafang-Hacks development by creating an account on GitHub.

github.com

다팡 핵 업데이트 될게 뭐가 있겠어 하면서.. 깃헙에 올라온 구버전을 선택했어요.. 이게 맞나??

 

일단 아무래도 다팡 핵펌이 리눅스 os 이기 때문에 설정하는데는 많이 익숙했습니다.

 

- 오토 나이트 모드 (내장 auto night 모드는 별로라서, 스크립트로 만들었습니다. 

부팅시 자동으로 스크립트를 실행시키구요, 노출값, 빛 세기, 화이트 밸런스 값에 따라 동작하도록 스크립트를 구현했습니다.

오늘은 아침에 9시 30분 쯤에 나이트 모드가 꺼지고 그 이후로 값이 왔다갔다 안 한것 같더라고요. 아마 잘 작동하는 것 같네요. 혹시 몰라서 로그도 작성시키도록 만들었습니다. (자동으로 전환 시에 로그 파일에 언제 무슨 동작을 했는지 텍스트를 추가합니다.)

- 모션 감지 후 mqtt로 메세지 송출 및 스냅샷 HA에 전송 + HA에서 녹화 명령어를 실행 + crontab으로 모션 감지 특정 시간에만 작동하도록 설정

모션 감지되면 mqtt를 이용해서 ON 과 스냅샷(절반크기, 70프로 압축??)파일을 HA에 전송합니다.

다팡 웹에 들어가서 모션 감지쪽 설정에서 특정 부분만 모션 감지 하도록 영역을 지정할 수도 있습니다.

이부분은 편리하고 좋은 기능입니다. 다른 부분에 움직임이 감지되어도 모션으로는 감지가 안 되기 때문입니다.

또 스냅샷도 전송 되어서 움직인 장면을 알 수도 있겠습니다. 민감도도 매우 낮음 ~ 매우 높음까지 총 5가지 옵션이 있습니다.

저에게 그럴리는 없겠지만 cctv 사용 하시는 분들은 밤에 아무도 없는 매장이나 인적이 드문 거리쪽에 설치할 수도 있기 때문에

야간에만 모션 감지를 키도록 crontab에서 예약 작업을 설정할 수도 있는거죠. 낮에 사람 왔다갔다 하면 계속 모션 감지 되는데 무슨 의미겠습니까

차라리 낮에는 상시녹화를 돌리는게 낫겠지요.

그래서 저는 밤 시간인 22시~오전10시까지만 모션 감지를 켜놓도록 크론작업 설정했습니다.

 

야간 촬영도 생각보다 잘 보입니다. ir led가 켜지고 적외선 촬영을 지원하는 것 같습니다..

 

 

또한! HA에서 모션 감지시 발송되는 mqtt메세지를 트리거로 ffmpeg 녹화를 돌리는 커맨드 라인 동작을 자동화로 만들었습니다. 모션 감지되고나서 15초 정도 녹화가 되고 20초 후 모션 센서는 이상없음 상태로 변경됩니다. 생각보다 빠르게 감지 및 녹화를 시작합니다.

샤오팡의 내부 sd카드에는 최소한으로 저장하고 상시 녹화나 모션 녹화들은 모두 외부 서버에 저장되게 하려고 합니다. 스냅샷은 내부 sd카드에도 저장되지만 20일 후에 삭제됩니다.

 

 

- 상시 녹화 관련은 TVHeadend로 넘겼습니다.

TVHeadend는 원래 티비 서버인데, ffmpeg의 pipe 를 통해 rtsp 입력으로도 채널을 만들 수 있습니다.

제 티비 안드로이드 셋톱박스인 U5 mini에 TVH가 설치되어 있습니다.

여기서 예약녹화를 제어하거나 이제 밖에 나갔을 때에도 tvh에 접속해서 cctv 영상을 볼 수 있습니다. TVHeadend는 외부 접속 포트 변경 + 암호 걸어놓고 사용하기 때문에 외부에서 다른사람은 접속하기가 힘들겁니다. 해킹도 힘들어지고요.

 

- wyze cam은 내부에서만 이용할 수 있게 방화벽 보호를 걸었습니다.

1우선 순위를 172.30.1.254만 허용 2우선 순위를 전체 ip 차단으로 했습니다. (iptime 공유기 설정에서)

이렇게 하면 집에있는 같은 ip 이지만 다른 공유기에서도 외부 ip를 통해서 웹과 rtsp 영상에 접근할 수 있게 되고, 그 외에 집 밖의 모든 사람들은 wyze 캠에 접근할 수도 없습니다.

완전 해킹 방지입니다. 내부 웹서버, rtsp 영상 모두 암호 변경을 했고, 영상은 포트 변경까지 해놓았습니다.

 

wyze는 미국회사지만, 아무리 핵펌 올렸다 해도 해킹이 들어오면 안되니깐 보안은 철저히ㅎㅎ

 

- wyze 캠과 외부와 통신(즉 인터넷)을 막았기 때문에 캠의 전원을 끄고 키면 시간이 초기화 되는데요?

음.. 재시작 해버리면 시간은 1970년 9시로 바뀌어져 있습니다. 그래서 라즈베리파이에 ntp 타임 서버를 구축했습니다.

생각보다 금방 작업이 되었습니다.

ntp 서버주소 란에 라즈베리파이 ip를 적으면 되기 때문에 인터넷 안된다고 걱정할 것 없습니다. 이제 캠 끄고 다시 켜도 시간은 초기화 되지 않습니다. 이게 안 되었으면 재부팅시 마다 date -s 202101292230 과 같이 시간을 입력하여서 수동으로 지정해줄 뻔했네요.

 

 

- 부팅 후에는 후면에 들어오는 blue led를 off 시키도록 스크립트를 만들었습니다.

부팅 후에 10초 정도 테스트 녹화, 블루 led off, 나이트 감지 스크립트 실행 총 세가지를 커스텀화 했습니다.

ntp 서버는 서버 주소만 넣으면 알아서 부팅 시에 동기화 하더라고요.

 

- mqtt control을 키고 검색할 수 있는 곳을 homeassistant로 설정했더니 (주석해제)

HA에서 mqtt 장치로 검색되었고, 이제 일부 설정을 HA에서도 제어가 가능합니다.

 

생각보다 많이 제어할 수 있습니다.

웹서버에서 제어하든, HA에서 제어하든 설정 값은 모두 반영됩니다. 단, 웹서버에서 제어시 HA에 반영되기 까지 30초 정도는 걸리더라고요. 이정도는 양호합니다.

 

자주 사용하는 기능만 남기고 나머지는 정리했습니다.

 

 

data-full-width-responsive="true">

 

추가로 모션 감지 관련 영상입니다.

모션 감지 영역은 이렇게 설정해놓았고 (저 점선으로 된 사각형 박스로 영역 조절 가능)

 

 

감지되고 스냅샷 HA로 전송 및 15초간 녹화입니다.

먼저 HA에서 모션 감지 속도를 보여드리기 위한 영상입니다.

 

 

www.youtube.com/watch?v=w1RyMA3jwcc&feature=youtu.be

 

다음은 같은 시간에 HA에서 자동화로 ffmpeg 녹화 명령어 실행되어 녹화된 영상입니다.

 

www.youtube.com/watch?v=zSc3u6UPdt4&feature=youtu.be

 

 

 

 

 

타임 스탬프도 잘 뜨고요, 카메라 송출 화질은 720p에 1500kbps, 15fps로 설정하였습니다.

화질 너무 높으면 송출 잘 안됩니다.

녹화된 영상에서 4초 정도 쯤에 영상이 잠시 멈춥니다. 그 다음부터 영상과 소리 싱크가 같아집니다. (제가 올린 영상은 소리를 제거했습니다.) 녹화측 ffmpeg에서 vsync와 async 옵션을 1로 설정하였고, 조금 뒤부터 영상, 소리 동기화가 되는 것 같습니다.

 

2일간 1시간 단위로 TVHeadend에서 상시녹화를 밤동안에 진행되도록 해보았는데, 영상은 잘 나오고 1시간 다 나오네요.

1시간당 용량은 평균적으로는 약 900MB ~ 1GB 정도 됩니다.. 꽤나 차지하네요.

 

1시간 단위로 녹화한 파일 용량 정보 올립니다. (움직임, 영상 화질 설정에 따라 용량은 달라질 수 있습니다. 720p 1500kbps, 15fps 참고용입니다.)

 

 

 

야간 중에 모션 감지를 설정하여서 스냅샷이 도착했는데, 사진은 다음과 같습니다. 두 번째 사진은 진짜 어두운건데, 약간 촬영 능력이 뛰어나죠?

 

 

 

data-full-width-responsive="true">

 

 

제 긴 글을 읽어주셔서 감사하고.. 차차 스크립트 파일 과 설정 방법 정리해서 올려보도록 하겠습니다.

그냥 제가 수정한 파일들을 적용해서 펌웨어 모드 폴더를 통체로 공유해드릴까 생각중에 있습니다.

과연 얼마나 캠이 죽지 않을 것인가.. 안정성에 대한 부분은 아직 완벽하지는 못하지만, 제 기준에서는 만족입니다.

 

댓글