본문 바로가기

IoT HomeNet

Homebridge 설치



HomeBridge 는 node.js 네트워크 플랫폼상에서 작동하는 Apple HomeKit API 지원 서버 프로그램 이다.


이 서버를 이용하면 기성 HomeKit 호환 제품을 구입하지 않고도 Apple Home App 을 통해서 홈오토메이션을 구축할수 있다.

리눅스 상에 올릴 수 있는 오픈프로젝트이기 때문에 라즈베리파이 정도에 가벼운 리눅스 머신이 필요한 부분은 감안하자.

라즈베리파이에 HomeBridge 서버를 올리면 다른 기기들 (전등, 보일러, 온도계, 도어락) 을 연결해서 조작 할 수 있도록 할 수 있다.

물론 HomeBridge 와 집에 있는 기기들을 연결하기 위해서는 또 별도에 장비들이 필요할 수 있으나, 이 역시 열정만 있다면 꼭 구입하지 않고도 집에서 제작 할 수 있다. 



기본 Home App 외에 EVE 라는 프로그램도 있다. 앱스토어에서 HomeKit 으로 검색해보면 여러가지 앱들이 있음을 확인 할 수 있다.

같은 역할을 하지만 기본 앱에서 지원하지 않는 추가 기능을 지원해주기 때문에 같이 사용하는것을 추천한다.

.

라즈베리파이 기준으로 node.js 설치와 homebridge 설치 방법이다


Step 1 : Node.js 와 HomeBridge 설치

wget https://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-armv7l.tar.gz 

tar -xvf node-v4.0.0-linux-armv7l.tar.gz 

cd node-v4.0.0-linux-armv7l


sudo cp -R * /usr/local/


curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

sudo apt-get install -y nodejs

sudo apt-get install npm


sudo apt-get install libavahi-compat-libdnssd-dev


sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp

cd /usr/local/lib/node_modules/homebridge/

sudo npm install --unsafe-perm bignum

cd /usr/local/lib/node_modules/hap-nodejs/node_modules/mdns

sudo node-gyp BUILDTYPE=Release rebuild


npm install -g homebridge-http 



Step 2 : NPM 이나 Node.js 의 최신버전을 설치하려면 아래를 참고 한다.

HomeBridge 최신버전이 설치 되지 않는 경우


//// npm 최신버전으로 업데이트

sudo npm install -g npm


//// node 최신버전으로 업데이트

sudo npm cache clean -f

sudo npm install -g n

sudo n stable


Step 3 : config.json 파일에 user 와 pin code 변경한다.

Pin 코드는 HomeApp 에서 HomeBridge 를 등록 할때 사용하는데 예제로 들어 있는 코드를 쓰는것 보다는 바꾸는 것이 좋다.


Step 4 : 필요한 플러그인들을 설치 한다.

각자 필요한 플러그인을 설치 하면 되는데 아래 주소에서 찾을 수 있다.

https://www.npmjs.com/browse/keyword/homebridge-plugin


아래는 그간 테스트 해봤던 플러그인 들이다. 

https://github.com/rudders/homebridge-http

https://www.npmjs.com/package/homebridge-http

https://www.npmjs.com/package/homebridge-http-temperature

https://github.com/lucacri/homebridge-http-temperature-humidity

https://www.npmjs.com/package/homebridge-thermostat

https://www.npmjs.com/package/homebridge-http-thermostat

https://github.com/benzman81/homebridge-http-webhooks 


이것 저것 해봤지만 http, thermostat, Domoticz 가 유용하다.


https://www.npmjs.com/package/homebridge-edomoticz


Domoticz 를 설치하고 연동하는게 여러모로 편리하다.

하지만 Domoticz 를 사용하더라도 보일러를 끄고 켜거나 연동하는것은 추가 작업이 필요하다.

이 부분은 따로 포스트 하려고 한다.


Step 5 : 자동실행 설정

라즈베리 파이가 재실행 되었을때도 자동으로 HomeBridge 가 실행되도록 설정한다.


sudo npm install pm2 -g


pm2 start homebridge

pm2 save

pm2 startup



* pm2 최고


참고 1 : HomeApp 을 실행 했더니 키체인 문제가 있다고 작동하지 않는 경우

iPhone 설정 >> iCloud  >> 키체인  을 켜서 재시도 한다.


참고 2 : 잘되다가 아무이유 없이 homebridge 가 잡히지 않는 경우 

1. config.json user 의 mac 을 수정

2. .homebridge 폴더의 accessories, persist 를 제거 (다시 생성된다)

3. HomeApp 에서 HomeBridge 를 삭제 하고 재연결

4. 5~10 분정도 기다려 본다.


참고 3 : 참고했던 HomeBridge 를 설치방법 자료 주소

https://github.com/cflurin/homebridge-punt/wiki/Running-Homebridge-on-a-Raspberry-Pi


참고 4 : HomeBridge 관련 Type 정의들

Accessory Type : https://developer.apple.com/reference/homekit/hmservice/1664305-accessory_service_types

Homekit Type :  /usr/local/lib/node_module/homebridge/node_modules/hap-nodejs/lib/gen/HomkitTypes.js

Type 별 UUID : https://github.com/nyata/homebridge-config-server/wiki

EVE type UUID : https://gist.github.com/gomfunkel/b1a046d729757120907c


참고 5 : HomeApp 과 EVE app 를 비교하면 결정적으로 Thermostat 의 설정 단계가 EVE 가 더 세세 하다는 장점이 있다.

목표 온도를 0.5 나 0.1 도 단위로 바꾸고 싶다면 EVE 를 써야 한다.

그리고 Thermostat Plugin 의 index.js 코드를 수정해야 한다. ( minStep = 0.1 0.5 ) >> 요건 따로 다룰 예정


참고 6 : 라즈베리 기준으로 node 모듈 설치시 이 디렉토리에 저장된다.

    /usr/local/lib/node_modules/



'IoT HomeNet' 카테고리의 다른 글

Domoticz Raspberrypi 설치  (0) 2017.01.27
AppleTV HomeHub 구축  (2) 2017.01.14
ESP8266 Online Update 구현  (0) 2016.12.28
ESP8266 를 보일러에 붙여보기 (4/4)  (0) 2016.12.24
ESP8266 를 보일러에 붙여보기 (3/4)  (0) 2016.12.24