일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- RS-485
- Espressif
- 현대통신
- 나스닥
- ConnectedHomeIP
- MQTT
- matter
- cluster
- 국내주식
- homebridge
- raspberry pi
- Bestin
- 애플
- SK텔레콤
- Apple
- 티스토리챌린지
- 해외주식
- 오블완
- Home Assistant
- 매터
- 미국주식
- 홈네트워크
- esp32
- 공모주
- Python
- 코스피
- 배당
- 파이썬
- 월패드
- 힐스테이트 광교산
- Today
- Total
YOGYUI
힐스테이트 광교산::도어폰 카메라 - 애플 홈킷 연동 (2) 본문
2. FFServer + FFMpeg 환경 구축
광교아이파크때와 마찬가지로 라즈베리파이에 FFMpeg와 FFServer를 설치하고, 도어폰 Composite 비디오 신호를 웹으로 스트리밍해보자
Raspberry Pi - ffmpeg + ffserver 동작환경 설정하기
라즈베리파이로 Apple HomeKit 카메라 만들기 (Homebridge)
ffserver 환경설정 파일 역시 아이파크때와 유사하게 작성해주자
$ sudo nano /etc/ffserver_hillstate_door.conf
HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
maxClients 1000
MaxBandwidth 10000
<Feed feed.ffm>
File /tmp/ff_feed_hillstate_door.ffm
FileMaxSize 200M
</Feed>
<Stream main>
Feed feed.ffm
Format mpjpeg
VideoFrameRate 30
VideoSize 480x320
VideoBufferSize 80000
VideoBitRate 10000
NoAudio
</Stream>
<Stream stat.html>
Format status
</Stream>
<Redirect index.html>
URL http://www.ffmpeg.org/
</Redirect>
스트리밍 포트로 8090을 잡아준 뒤, nginx 설정 파일에서 8091 포트로 SSL 접속이 가능하게 설정해주자
(homebridge는 SSL이 필요없긴 하지만..)
$ sudo nano /etc/nginx/sites-available/home_network_server.conf
server {
listen 8091;
listen [::]:8091;
server_name {공유기의 DDNS}
ssl on;
ssl_certificate {SSL 인증서 파일 경로}
ssl_certificate_key {SSL 키 파일 경로}
proxy_buffering off;
location / {
proxy_pass http://localhost.8090;
proxy_set_header Host $host;
proxy_redirect http:// https://;
proxy_http_version 1.1;
}
}
nginx 관련 설정 및 방화벽 설정법은 다음 링크 참고
광교아이파크::Bestin 현관카메라 애플 홈킷 연동 (2) - Final
3. Homebridge 액세서리 추가
{
"platform": "Camera-ffmpeg",
"mqtt": 127.0.0.1,
"portmqtt": 1883,
"usermqtt": "mqtt auth id",
"passmqtt": "mqtt auth password",
"cameras": [
{
"name": "doorphone",
"manufacturer": "Hyundai HT",
"model": "HDC-100S",
"motion": true,
"switches": true,
"videoConfig": {
"source": "-i 127.0.0.1:8091/main",
"maxStreams": 2,
"maxWidth": 480,
"maxHeight": 320,
"maxFPS": 30
},
"mqtt": {}
}
]
}
Homebridge config 파일을 위와 같이 수정후 재시작해준 뒤, 아이폰으로 도어폰 비디오 영상이 잘 들어오는지 확인해보자 (월패드 '현관보기' 기능을 켜둔 채로)
영상이 잘 보인다! ㅎㅎ
인증용(?) 동영상도 하나 찍어봤다
4. 월패드 조작 없이 카메라 전원 켜기 기능 추가
힐스테이트 광교산::도어폰 카메라 - 애플 홈킷 연동 (1)
앞서 도어폰 UTP 케이블을 분석했을 때, 카메라 전원에 해당하는 6번선 (라벨명 CPWR)의 전압 레벨은 월패드 '현관보기' 기능이 꺼져있을 때는 0V, 켜져있을 때는 DC +12V였다
그런데, 3번선 (라벨명 SUB12V)는 카메라 전원 On/Off 유무와 상관없이 항상 DC +12V가 월패드로부터 인가되고 있었기 때문에 3번선을 6번선에 단락(short)시켰을 때 카메라 전원이 월패드 조작없이 켜지는 것을 확인할 수 있었다!
항상 단락시켜둘 수는 없기에, 라즈베리파이의 GPIO와 릴레이(Relay)를 사용해서 월패드 조작없이 외부에서 카메라에 전원을 On/Off할 수 있는 기능을 만들어보기로 했다
UTP케이블 - 릴레이 - 라즈베리파이를 다음과 같은 결선도로 구성해봤다
그리고 기존 홈네트워크 파이썬 코드에 'DoorPhone' 클래스를 추가하고 단순히 GPIO로 릴레이를 동작시켜 카메라 전원을 On/Off할 수 있게 구현~ (RPi.GPIO 모듈 활용하면 코드 한줄로 I/O 제어가 가능하다)
import json
from Device import *
import RPi.GPIO as GPIO
class DoorPhone(Device):
gpio_cam_relay: int = 0
def __init__(self, name: str = 'DoorPhone', **kwargs):
super().__init__(name, **kwargs)
self.state_cam_relay = 0
self.setParams(18)
def __repr__(self):
repr_txt = f'<{self.name}({self.__class__.__name__} at {hex(id(self))})'
repr_txt += '>'
return repr_txt
def publish_mqtt(self):
obj = {"cam_power": self.state_cam_relay}
if self.mqtt_client is not None:
self.mqtt_client.publish(self.mqtt_publish_topic, json.dumps(obj), 1)
def setParams(self, gpio_cam_relay: int):
self.gpio_cam_relay = gpio_cam_relay
GPIO.setmode(GPIO.BCM)
GPIO.setup(self.gpio_cam_relay, GPIO.OUT)
def updateState(self, state: int, **kwargs):
if not self.init:
self.publish_mqtt()
self.init = True
def turn_on_camera(self):
self.state_cam_relay = 1
GPIO.output(self.gpio_cam_relay, GPIO.HIGH)
self.publish_mqtt()
def turn_off_camera(self):
self.state_cam_relay = 0
GPIO.output(self.gpio_cam_relay, GPIO.LOW)
self.publish_mqtt()
월패드 조작없이 카메라 전원 제어가 가능한지 테스트해보자
Very Good~!!
이제 남은건 EXTDEV-1A, 1B 선에서 오가던 시리얼 패킷 후킹, 그리고 DPLN 신호로 오가는 음성 신호까지 연동해보는 작업들... 일단 쉬워보이는 시리얼 통신부터 해보기로 ㅎㅎ
To be continued...
'홈네트워크(IoT) > 힐스테이트 광교산' 카테고리의 다른 글
현관문 도어락 - 게이트맨 스마트 리빙 블루투스 팩 + 브릿지 장착 (8) | 2022.08.04 |
---|---|
힐스테이트 광교산::도어폰 카메라 - 애플 홈킷 연동 (3) (0) | 2022.07.29 |
힐스테이트 광교산::도어폰 카메라 - 애플 홈킷 연동 (1) (2) | 2022.07.25 |
힐스테이트 광교산::홈IoT SmartThings(스마트싱스) 연동 (0) | 2022.07.17 |
힐스테이트 광교산::월패드 관리자 모드 진입 방법 (0) | 2022.07.13 |