YOGYUI

Homebridge - LG ThinQ 연동하기 (애플 홈 연동) 본문

홈네트워크(IoT)/일반

Homebridge - LG ThinQ 연동하기 (애플 홈 연동)

요겨 2022. 10. 21. 19:46
반응형

Homebridge의 verified된 플러그인 중에 LG전자 ThinQ 앱과 연동할 수 있는 플러그인이 있길래 설치 및 사용 후기를 남겨본다

1. 플러그인 설치

플러그인 검색창에서 'ThinQ' 키워드를 입력한 뒤, Homebridge LG ThinQ 이름의 플러그인을 설치해주자

(10월 21일 기준 최신버전=1.2.19)

깃허브 주소: https://github.com/nVuln/homebridge-lg-thinq#readme

 

GitHub - nVuln/homebridge-lg-thinq: A Homebridge plugin for controlling/monitoring LG ThinQ device via their ThinQ platform.

A Homebridge plugin for controlling/monitoring LG ThinQ device via their ThinQ platform. - GitHub - nVuln/homebridge-lg-thinq: A Homebridge plugin for controlling/monitoring LG ThinQ device via the...

github.com

 

설치 후 Homebridge UI에서 플러그인 설정 창이 열린다

국가 및 언어를 환경에 맞게 설정해주자

ThinQ 앱 로그인 시 사용한 LG전자 계정정보(username, password)를 입력하면 refresh token을 자동으로 가져오며, 이 토큰을 액세서리 제어 시에 사용하게 된다

'GET TOKEN' 버튼을 클릭하면 계정 인증 후 Refresh Token 값을 가져오게 된다

Homebridge Config를 보면 다음과 같이 플러그인 정보가 등록된 것을 볼 수 있다

2. Refresh Token 수동으로 가져오기

구글이나 애플 등 서드파티 계정을 ThinQ 서비스에서 사용할 경우 다음과 같이 수동으로 refresh token 값을 얻어올 수 있다

homebridge 및 Homebridge LG ThinQ 플러그인이 설치된 플랫폼의 터미널에서 thinq 명령어를 다음과 같이 입력하면 된다

-c-l 플래그로 국가 및 언어 설정을 알맞게 해줘야 한다

$ thinq -c KR -l ko-KR auth

명령어를 입력하면 다음과 같이 로그인 웹페이지 URL이 디스플레이된다

※ 아래 URL은 한국 계정용 로그인 URL이다


https://us.m.lgaccount.com/spx/login/signIn?country=KR&language=ko-KR&client_id=LGAO221A02&svc_list=SVC202&svc_integrated=Y&redirect_uri=https%3A%2F%2Fkr.m.lgaccount.com%2Flogin%2FiabClose&show_thirdparty_login=LGE%2CMYLG%2CGGL%2CAMZ%2CFBK%2CAPPL&division=ha&callback_url=https%3A%2F%2Fkr.m.lgaccount.com%2Flogin%2FiabClose&oauth2State=12345&show_select_country=N


해당 URL을 브라우저에 복사-붙여넣기하면 다음과 같이 로그인 화면을 볼 수 있다

여기서 본인이 사용하는 계정 (LG전자 공식계정 / 구글 / 페이스북 / 아마존 / 애플 / 카카오)을 입력하고 로그인하면 토큰 정보가 담긴 URL로 리디렉션된다

URL구조는 다음과 같다

https://kr.m.lgaccount.com/login/iabClose?access_token={...}&refresh_token={...}&oauth2_backend_url=https://kr.lgeapi.com/

이제 URL을 복사해서 터미널에 붙여넣기하면 refresh token값을 얻을 수 있다

(사실 url에서 refresh_token=... 부분의 문자열과 값은 동일하다)

이제 refresh_token 값을 homebridge config에 입력하면 된다

3. ThinQ 기기 등록

Refresh Token 정보 입력 후 Homebridge를 재시작하면 서비스 시작 시 ThinQ API에 접속 후, 내가 ThinQ 앱에 등록해둔 모든 기기 정보들을 자동으로 취합한 뒤 Homebridge 액세서리로 등록해준다 (아주 편리!)

액세서리 이름은 ThinQ 앱에 등록해둔 이름 그대로 가져오게 된다

Homebridge 플러그인 설정 UI에서는 각 디바이스별 ID 및 세부설정 탭이 새로 생성된 것을 확인할 수 있다

- 에어컨은 AC Mode, Swing Mode 등 다양한 옵션을 설정할 수 있다

- 세탁기/건조기의 경우 동작 완료 트리거, 문닫힘 상태 등을 추가 액세서리로 설정할 수 있다

- 스타일러는 설정 가능한 다른 옵션이 없다

- 다른 종류의 기기는 가진게 없어서 확인불가능 ~.,~

Homebridge 액세서리 창에서 각 액세서리를 제어할 수 있으며, 액세서리별 정보도 확인할 수 있다

애플 홈(Apple Home) 앱에서도 액세서리들이 추가된 것을 확인할 수 있다

제어 속도는 ThinQ 앱과 체감상 동일하다 (어차피 Web API 사용하는 건 동일할테니 ㅎㅎ)

 

공기청정기의 경우 미세먼지 센서로 활용 가능하다 (별도 액세서리로 분리 가능)

4. 아쉬운 점

안타깝게도 로봇청소기가 아직 지원되지 않는다... ㅠㅠ

https://github.com/nVuln/homebridge-lg-thinq#readme

현재 해당 플러그인으로 애플 홈 앱과 연동 가능한 디바이스 종류는 총 6가지 (TV는 별도의 플러그인을 사용해야 한다고 한다 - https://github.com/merdok/homebridge-webos-tv)

  • 냉장고 (상태 확인 가능, 제어 가능)
  • 공기청정기(상태 확인 가능, 제어 가능)
  • 세탁기 및 건조기 (상태 확인 가능, 제어 불가능)
  • 식기세척기 (상태 확인 가능, 제어 불가능)
  • 제습기 (상태 확인 가능, 제어 일부 가능)
  • 에어컨 (상태 확인 가능, 제어 가능)

로봇청소기는 디바이스 검색 시 'ROBOT_KING' 카테고리로 검색이 된다 (엄청 옛날 제품명 아닌가 ㅋㅋ)

이 문제는 깃허브 이슈에 다른 사람이 등록한 바 있다

https://github.com/nVuln/homebridge-lg-thinq/issues/15

 

Adding LG HOM-BOT Robot Vacuum Cleaner · Issue #15 · nVuln/homebridge-lg-thinq

Hello, Could it be possible to implement the LG HOM-BOT Robot Vacuum Cleaner to the plugin? Thank you very much

github.com

개발자의 답변을 읽어보니..

애플 홈킷은 로봇청소기와 관련된 공식적인 native 액세서리가 없다는 점이 문제였다..

 

깃허브 저장소 소스코드를 살펴보면

에어로타워, 에어컨, 공기청정기, 제습기, 식기세척기, 레인지후드, 냉장고, 스타일러, 세탁기/건조기 총 9종류의 Device 클래스가 현재 구현되어 있는 걸 확인할 수 있다

(공기청정기랑 에어로타워랑 별개로 다뤄야하나보네? ㅎㅎ...)


로봇청소기 지원이 아쉬운 점은...

지난 번 싱크대 절수페달 IoT 연동 프로젝트를 진행한 이유가 "로봇청소기가 절수 페달을 밟아서 수전에 물이 흐르면 일정 시간 후 자동으로 밸브를 잠그는 기능"을 개발하기 위함이었기 때문이다 ㅠ

힐스테이트 광교산::싱크대 절수페달 IoT 연동하기 - Final

 

힐스테이트 광교산::싱크대 절수페달 IoT 연동하기 - Final

9. PCB 제작 지난주 수요일에 주문한 부품과 PCB가 어제(09/29) 모두 도착했다 (너무 오래 걸려 ㅠㅠ) 야무지게 납땜해주자 CP2102같은 IC들은 손으로 납땜할 때 냉납 발생이 잦으니 광학 검사는 필수!

yogyui.tistory.com

로봇청소기 제어는 안되어도 좋으니 상태 (청소 시작/청소 종료)라도 알 수 있으면 좋으련만 ㅋㅋㅋ

 

깃허브 이슈로 등록할까 하다가...

저장소 소스코드 (typescript)를 대충 훑어보니 ThinQ API를 대충이나마 추출할 수 있을 것 같아서 내가 스스로 개발해보기로 마음먹었다! 

위에서 언급한 방법으로 얻은 Access Token이랑 Refresh Token을 기반으로 세션을 생성한 뒤, GET/POST 방식의 REST API이므로 파이썬으로 후딱후딱 짜볼 수 있을 것 같다 ^^;; 

성공하면 블로그 포스팅도 가능하니 일석이조

5. 마무리

지원되는 디바이스 종류가 한정적이긴 하지만, 애플 홈 앱에서 LG전자 IoT 기기 연동이 안되어서 아쉬웠던 유저들에게는 상당히 유용한 플러그인이라고 생각된다 (특히 에어컨은 애플 홈 앱 네이티브 액세서리가 워낙 잘 만들어져 있어서 ThinQ 앱을 버릴 수 있을 수준!)

어찌됐든 애플 생태계(아이폰/아이패드/애플워치/맥북) 거주자들에게 Siri 음성 연동 제어는 한번 빠지면 헤어나오기 힘든 지독한 늪인 건 분명하다 ㅎㅎ

 

플러그인이 만들어진게 2021년 5월경이니 아주 따끈따끈한 신상이라 할 수 있고, 계속해서 업데이트가 되고 있으니 앞으로 연동되는 기기가 많아질 것으로 기대된다

가장 최근 릴리즈는 2022년 10월 3일~

 

끝~!

반응형