본문 바로가기

IoT

애플 Homekit의 확장 Homebridge 구축하기

아이폰을 사용하다 보면, 기본 앱에 Home 앱이라는 것이 있다.

애플에서 기본 제공하는 스마트홈 플랫폼으로,

애플 기기를 통해 다양한 스마트 기기를 제어하고 자동화 할 수 있게 만들어 준다.

 

하지만, Homekit을 지원하는 기기는 한정적이므로

Homebridge라는 오픈 소스를 이용하여,

지원하지 않는 기기들도 Homekit 생태계에 통합 할 수 있도록 해주도록 해보자

 

설명에 앞서, Homebridge 서버를 구축하기 위해서는 하드웨어와 OS가 필요하다.

대개 Rasberry Pi 와 같은 초소형 컴퓨터에 구축해서 사용하지만,

필자는 개인용 서버에 리눅스가 있으므로, Linux(Ubuntu) 기준으로 기술하도록 하겠다.

Rasberry Pi를 사용하는 사람도 같은 방법으로 따라하면 될 것이다.

 

 

Node.js 설치

 

homebridge는 Node.js 기반으로 동작한다, 따라서 Node.js를 설치를 해주어야 한다.

https://nodejs.org/ko/download

 

Node.js — Node.js® 다운로드

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

현재 LTS 버전은 22, 안정적인 LTS 버전으로 설치하도록 하자

 

먼저, Ubuntu의 패키지 목록 업데이트, build-essential 패키지 설치, curl 도구를 설치한다.

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install curl
 
 

 

curl 명령어로, node.js에서 LTS 버전을 다운 받은 후 설치

curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install nodejs

 

버전 확인 결과, 정상적으로 설치 된 것을 확인할 수 있다.

 

Homebridge, Homebridge UI 구축

 

Node.js가 설치가 완료 됐다면, 홈브릿지를 설치해보도록 하자

homebridge와 함께, 웹에서 쉽게 관리 할 수 있는 homebridge-ui도 함께 다운로드 후 설치해준다.

https://homebridge.io/

 

Homebridge

Homebridge adds HomeKit support to your non-HomeKit smart home devices.

homebridge.io

 

sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-x
sudo hb-service install
 

설치가 완료되었다면, 서비스 시작 후 상태 확인

추가로, sudo systemctl enable homebridge 명령어로

서버 실행 시, 자동으로 homebridge가 실행되게 설정해줄 수 있다.

sudo systemctl start homebridge
sudo systemctl status homebridge  # 상태 확인

sudo systemctl enable homebridge  # 부팅 시 자동 실행
 

 

http://domain:8581 로 접속해서 homebridge가 정상 설치 되었는지 확인한다.

(homebridge-ui 기본포트는 8581이고, 사용자 재량으로 포트를 바꿔서 사용해도 된다.)

 

접속 결과 정상적으로 설치가 완료되었다.

필자는 이미 계정 생성을 마친 상태지만,

기본적으로 초기 설정 시, 계정 생성 화면이 나올 것이다.

 

 

Homebridge 수동 설정

 

추가로 간혹 수동 설정이 필요한 경우,

직접 홈브릿지 설정과, 서비스파일 및 환경변수 설정을 해주어야 한다.

이 과정이 필요 없다면, 넘어가도 좋다.

 

홈브릿지 기본 설정은 다음과 같다.

sudo useradd --system homebridge    # homebridge 전용 사용자 생성
sudo mkdir /var/homebridge          # 디렉터리 생성
sudo cp ~/.homebridge/config.json /var/homebridge/      # config 파일 복사
sudo cp ~/.homebridge/persist /var/homebridge/persist   # persist 파일 복사
sudo chown -R homebridge:homebridge /var/homebridge     # homebridge로 소유권 변경
sudo chmod -R 755 /var/homebridge   # 권한 설정

 

서비스 파일 생성 후, 다음과 같이 작성한다.

sudo nano /etc/systemd/system/homebridge.service
[Unit]
Description=Homebridge
After=syslog.target network-online.target

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process
CapabilityBoundingSet=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target
 

마지막으로 환경 파일 생성후, 환경변수를 설정한다.

sudo nano /etc/default/homebridge
HOMEBRIDGE_OPTS=-U /var/homebridge

 

 

Homekit 연동

 

이제 Homebridge 설정을 마쳤으니, Homekit과 연동을 해보도록 하자

iPhone의 Home앱에서 Add Accessory를 누른 후,

설치된 Homebridge 웹 페이지에 나온 QR코드를 인식해주면 연동이 완료된다.

 

연동이 완료되었다면,

이와 같이 정상적으로 연동이 된 것을 확인할 수 있다.

 

 

이렇게 Homebridge 구축이 완료 됐다.

이제 Homekit에서 지원하지 않는 기기들은 Homebridge에 하나하나 등록 해 보도록 하겠다.

 

원본 게시글

https://blog.naver.com/101artspace/223765541589

 

애플 Homekit의 확장 Homebridge 구축하기

아이폰을 사용하다 보면, 기본 앱에 Home 앱이라는 것이 있다. 애플에서 기본 제공하는 스마트홈 플랫폼으...

blog.naver.com