라즈베리파이에 homebridge 설치하기 - 애플홈킷과 Smartthings와 연동하기

이전 포스팅: 라즈베리파이 설치 및 초기 설정

이전 포스팅: 라즈베리파이에 docker설치하는 방법

이전 포스팅을 완료하였다면 이번에는 도커를 이용하여 애플홈킷과 smartthings를 연동하기 위한 homebridge를 설치해 보도록 하겠다.



1. homebridge 도커 이미지 설치

위와 같은 명령어로 설치할 수 있다. 여기에서 유의해야 할점 두가지를 설명하면

  1. 9번라인: 설정파일의 위치를 세팅하는 것인데, 1번 라인에서 만든 디렉토리를 9번라인과 맞춰야 한다.
  2. 7번라인: $id pi 를 입력하면 아래와 같은 결과가 나오는데 이때 uid=xxx 값을 PUID로 gid=xxx 값을 PGID로 입력하면 된다.





2. Smartthings에 JSON Complete API 설치

smartthings ide로 이동한다. 그 후 my location탭 선택 -> List SmartApps 선택 -> 최 상단 My SmartApps 선택 -> + New Smart App 선택 -> From code탭 선택 후 이 코드를 붙여넣고 "Create"를 누른다.


다시 My SmartApps탭으로 이동하여 아래의 캡쳐부분을 클릭한 후



oauth항목을 클릭하면 나타나는 enable OAuth in Smart APP을 클릭한 후 Update를 누른다.


그후 다시 My SmartApps 탭으로 돌아와 SmartApp이름을 선택 한후 publish를 누르면 내 스마트폰의 smarttings 앱에 해당 앱이 나타나게 된다.




이제 스마트폰의 smartthings 앱을 실행하자.

 Automation탭 선택 -> SmartApps 선택 -> 하단의 + Add a SmartApp 선택 -> 스마트 앱 나의 항목 선택 을 하면 위에 작업해준 "JSON Complete API"가 보인다. 이걸 선택한다.


여러항목이 있는데 makelism님의 블로그를 참조하여 설정한다. 블로그에 따르면 

  • Most Devices : 리프레쉬가 필요한 센서

  • Sensor Devices: 리프레쉬가 필요없는 센서

  • All Switches: 가상 스위치, 물리적인 스마트 스위치

에 따라 애플 홈킷에 노출될 기기들을 선택한다. 그리고 아래의 Config 항목을 선택하면 아래와 같은 json이 나타난다. 해당 내용은 나중에 homebridge를 설정하는데 필요한 내용임으로 잘 저장해 둔다.



3. homebridge 설정

다시 라즈베리파이로 돌아와 맨처음 도커로 homebridge를 설치할때 지정한 설정디렉토리(필자는 /etc/homebridge)의 config.json을 수정한다.
원래 내용은 싹 지워버리고 필지와 같이 수정한다.

위의 부분에서 수정할 부분은

  1. 4번라인 : username부분에 라즈베리파이의 mac address를 입력한다. 맥 어드레스는 ifconfig 명령어를 이용하거나 공유기에서 확인할 수 있다. 이때 중요한 점은 맥어드레스 입력시 반드시 대문자로 입력해야 한다.
    ex ) a1:00:cb:1a:02:8f => A1:00:CB:1A:02:8F
  2. 6번 라인 : pin은 애플 홈 앱에 브릿지를 등록할때 사용하는 번호로 원하는 데로 입력한다.
  3. 9번 라인: 9번 라인부터 끝까지는 아까 스마트폰의 Smartthings app에서 복사해 뒀던 내용을 복사하면 된다.
  4. 설정파일을 생성하다가 json포멧에 안맞게 입력하는 경우가 있다. 설정파일을 저장하기 전 https://jsonlint.com/로 이동하여 설정파일을 복사 & 붙여넣기 하고 json 포멧이 잘못된 곳이 없는지 체크하고 config.json에 저장한다.



그 후 /etc/homebridge/package.json에 homebridge-smarttings를 추가한다.


이후 홈브릿지를 재시작 하고 로그를 찍어서 아래와 같이 나오는지 확인한다.


로그에 나오는 핀번호를 아이폰의 홈앱에 입력하여 홈브릿지를 입력하면 연동 작업은 끝난다. 그 뒤 앱 실행 내용은 생략하도록 하겠다.


TAGS.