관리 메뉴

나모를 찾아라

Hue bridge '소프트웨어 업데이트'가 안될 때... API를 이용해서 해결. 본문

생활/메이커(Maker)

Hue bridge '소프트웨어 업데이트'가 안될 때... API를 이용해서 해결.

나모찾기 2017. 4. 29. 22:46

지난 번 '스마트한 조명? 필립스 휴(HUE) 구입, 전구 하나 반품!'의 후속 글


아이폰에서 HUE 앱을 설치해서 사용하는데, 알림이 보여서 확인해보니 '소프트웨어 업데이트'에 (1)이 보여서 누르면 앱이 죽는 일이 계속 벌어졌다. 나만 그런줄 알았는데 아내도 마찬가지라고 한다.


이럴 때 해결하는 방법은 아래와 같다.

HUE API를 이용해서 하면 된다.


HUE가 있는 네트워크내에서 PC에서 하면 된다.


1. HUE 브릿지의 IP를 확인한다.

 주소: https://www.meethue.com/api/nupnp

에 접속하면 아래와 같이 현재 HUE의 내부주소가 보인다.

2. #1에서 얻은 IP로 API debug 툴에 들어간다.

 주소: 본인의 internalipaddress 로 사용한다.

 나의 경우 내부 IP가 이므로, http://192.168.25.5/debug/clip.html 로 접속을 하였다.

이 페이지는 개발을 할 때 테스트를 위한 일종의 Restful 도구라고 보면된다.

웹 브라우저에서는 GET 밖에 할 수 없으므로 PUT, POST, DELETE같은 다른 메소드(verb)를 수행할 수 있게 해준다.

메세지 바디랑 결과까지 입력/확인 할 수 잇는 영역이 있는 셈이다.


우선 개발 도구를 사용하기 위해서는 개발 키가 필요하다.



3. 개발 키 받기.

 주소: http://<bridge ip address>/api

CLIP API Debugger의 URL 부분에 /api를 넣고

Message Body:에는 아래와 같은 내용을 넣고

{"devicetype":"my_hue_app#iphone namo"}


 POST 버튼을 누른다.


그러면 아래와 같이 '링크 버튼이 눌리지 않았다'는 결과를 받게 되는데,


브릿지의 버튼을 한 번 눌러주고 POST를 하면 아래와 같은 결과를 받게 된다.


해당 username 이 바로 API를 이용하기 위한 KEY이다.


4. 브릿지의 현재 상태 확인하기.

 주소: /api/{username}/config

 HTTP: GET

나의 경우 

"swupdate": { "updatestate": 2, ... } 로 받았다.

위의 그림에서 updatestate가 3인 것은 캡쳐를 업데이트 명령을 내린 후에 캡쳐한 것이라서 상태가 이미 3으로 바뀐 것이 찍혔다.



updatestate가 2라는 것은 업데이트가 가능하다는 것이다.

관련 상태 다이어그램은 아래와 같다.


5. 업데이트 명령을 내리기

updatestate가 3이되면 브릿지가 업데이트를 하게 된다. (전제조건: updatestate가 2 [업데이트가 가능]여야 한다.)


 주소: /api/{username}/config

 Message Body: {"swupdate": {"updatestate":3}}

 HTTP: PUT





6. 상태 확인. (바로는 아니고 시간이 좀 지나야 한다)

 주소: /api/{username}/config

 HTTP: GET


를 해보면 updatestate가 1로 바뀌었음을 알 수 있다.

1의 의미는 현재 시스템 업데이트를 위한 다운로드가 진행중인 것이라는 의미이다.



자세한 것은 개발자 문서 https://developers.meethue.com/documentation/software-update 를 참고하면 된다.