YOGYUI

광교 아이파크::Bestin 홈네트워크 연동(애플, 안드로이드) 시스템 정리 본문

홈네트워크(IoT)/광교아이파크

광교 아이파크::Bestin 홈네트워크 연동(애플, 안드로이드) 시스템 정리

요겨 2022. 2. 22. 10:35
반응형

6월 이사까지 얼마 남지 않았으니, 떠나기전에 미리미리 이제껏 개발한 시스템을 도식화하고 간단하게 설명도 첨부해놔야겠다

1. Hardware

하드웨어 시스템 schematic

[시스템 구성 하드웨어 품목]

  • 메인 PC: Raspberry Pi 4 Rev 1.2 (RAM 4GB)
  • 네트워크: ipTime 8004NS-M 공유기 (유선 + Wi-Fi 2.4G + 5G 통합)
    공유기는 아무거나 써도 무관 - 포트포워드 혹은 DMZ 기능만 설정할 수 있으면 됨
  • USB to RS485 컨버터 x4
  • USB 4포트 허브
  • UTP 커플러 (Y형 스필리터) + UTP 케이블 2개
  • 거실 월패드 조명 제어 보드 (자체제작, 프로세서: ESP8266)
  • Apple TV 4K - Apple HomeKit 연동을 위한 허브 (Apple HomePot, iPad로 대체 가능)
  • Google Home Mini - Google Assistant 음성 명령 연동을 위한 AI 스피커 (필수사항 아님)

[비용 산출]

※ 직접 구매한 온라인 쇼핑몰 기준 (백원 단위 반올림)

품목 가격 (원)
Raspberry Pi 4 Rev 1.2 (RAM 4GB) 100,000
RS485 to USB converter (x4) 15,000 x 4
Apple TV 4K (64GB) 260,000
Google Home Mini 35,000
UTP Y-splitter 11,000
USB 4 port HUB 25,000
Customized PCB (ESP8266)
(PCB + IC + 수동소자 총 구매)
110,000
총합 601,000

어차피 라즈베리파이/애플 티비/구글 홈 미니 등은 다른 용도로도 활용하고 있어서 직접적인 프로젝트 비용은 아니긴 하지만, 지나치게 돈이 많이 든 프로젝트라는 느낌이 든다 ㅠㅠ

[RS-485 신호선 연결]

  • 신발장 옆 H.N 단자함에서 'ENERGY 485', 'CTRL 485'는 각각 USB-RS485 컨버터의 A, B에 그대로 연결
  • 'SMART SWITCH' RJ-45 포트에 연결된 UTP 케이블(라벨 '스마트')을 뽑은 뒤 Y형 스플리터에 1-1에 연결
    2-1에 UTP 케이블 연결 후 게이트웨이 RJ-45 포트에 연결
    UTP 케이블 절단 후 한 단은 Y형 스플리터 2-2에 연결, 반대 단은 8가닥 분리 후 
    4번 (파란색), 5번 (파란색 + 흰색): USB-RS485 컨버터 A, B에 각각 연결
    7번 (갈색 + 흰색), 8번(갈색): USB-RS485 컨버터 A, B에 각각 연결

2. Software

소프트웨어 시스템 schematic

 

Core Control Method: MQTT

모든 기능은 하나의 라즈베리파이 PC (Raspbian GNU/Linux 10 운영체제)에서 구동할 수 있도록 구성

  • Mosquitto: MQTT broker 
    - 굳이 동일한 PC에서 구동되고 있을 필요 없음
  • Homebridge: Apple HomeKit 연동
    - 굳이 동일한 PC에서 구동되고 있을 필요 없음
  • Home Assistant: Google Cloud Console + Google Assistant 연동
    - 굳이 동일한 PC에서 구동되고 있을 필요 없음
  • 소스코드: GitHub Repository 클론 (링크) - Python::Flask로 웹서버 구동
    RS-485 컨버터가 연결된 PC(=라즈베리파이)에서 구동되어야만 함

[핵심 기능]

  • RS485-to-USB 컨버터로 오고가는 홈네트워크 RS-485 시리얼 패킷 파싱
  • 조명, 난방, 환기(전열교환기) 등 각각에 대한 Device 클래스 구현
  • 각 Device의 현재 상태 및 제어는 모두 MQTT 프로토콜로 구현 (paho.mqtt 패키지 사용)
  • MQTT broker에 내 소스코드와 Homebridge, Home Assistant가 모두 mqtt topic publish, subscribe

제어를 위한 RS485 패킷 송/수신은 모두 네트워크상의 MQTT 프로토콜로 변환되기 때문에, 앞서 언급했듯이 Mosquitto, Homebridge, Home Assistant 모두 별도의 플랫폼 (PC, 랩탑, NAS 등)에서 구동되고 있어도 무관하다

[HTTPS]

Google Assistant와 Home Assistant 연동을 하기 위해서는 HTTPS 로 HA에 접근할 수 있어야 하는데, 이를 위해 SSL 인증서 발급을 위한 인프라 구축이 필요했다

  • DuckDNS에서 공유기 외부 IP 주소에 대한 DDNS 발급 (무료)
    ※ ipTime에서 제공하는 DDNS(iptime.org)는 더이상 Let's Encrypt에서 SSL 발급이 되지 않음
  • Nginx 설치
  • uWSGI 설치해 Nginx와 파이썬 기반 Flask 웹서버와 인터페이스
  • 라즈베리파이 80 포트에 대한 reverse proxy 구성 후 Let's encrypt (certbot)로 SSL 인증서 발급 (.pem 파일)
  • Home Assistant - configuration.yaml 파일에 SSL 인증서 정보 기입

[네트워크 설정]

라즈베리파이의 방화벽 허용, 공유기의 포트포워딩을 다음 포트(모두 TCP)들에 적용

  • 22: SSH
  • 80: HTTP
  • 443: HTTPS
  • 1883: Mosquitto (mqtt broker)
  • 8123: Home Assistant (docker container)
  • 8581: Homebridge

3. Result

[Homebridge]

Apple TV나 HomePot 등 HomeKit 허브를 Homebridge와 동일 네트워크상에 연결하고 브릿지를 추가하면 애플 기기(아이폰, 아이패드, 맥북 등)에서 홈네트워크에 접근할 수 있다

[Home Assistant]

Google Cloud Console에서 테스트를 발행한 뒤 동일 네트워크에서 'Google Home' 어플리케이션으로 브릿지를 추가하면 홈 앱이 설치된 기기(애플, 안드로이드 모두 가능)에서 홈네트워크에 접근할 수 있다


현관문 제어 (열기), CCTV 영상 스트리밍, 지하 주차장 차량 도착 알림 등 아직 구현하지 못한 기능들이 많은데, 6월까지 할 수 있을런지 모르겠다... (CCTV가 SDI인 줄 알았는데 아닌 걸 알게 된 뒤로 약간 반 포기상태 ㅋㅋㅋ)

 

이제 애플, 안드로이드 모두 연동할 수 있는 방법을 블로그에 다 올려뒀으니, Bestin 홈네트워크를 사용하는 아이파크 거주민 분들께 도움이 되었으면 좋겠다 ^^

광교 아아파크 Bestin(베스틴) 홈네트워크 연동 카테고리 바로가기

문의사항
- 블로그 댓글(방명록은 확인이 힘듦 ㅠ)
- 이메일: lee2002w@gmail.com

 

반응형
Comments