Magic home Smart home 전구 로컬로 조종하기

Myeongwon Choi·2021년 6월 4일
0

스마트홈

목록 보기
2/2

대박 레포

이전 포스트에서 쓰디쓴 패배를 맛보고 전구를 로컬로 컨트롤하는 것을 포기하려던 찰나 금쪽같은 깃 레포지토리가 눈에 들어왔다.

알고 보니깐 브로드링크 칩을 탑재한 스마트 기기들을 파이썬 스크립트를 통해 컨트롤할 수 있는 파이썬 라이브러리가 이미 존재했고, 심지어 그 구현이 어렵지도 않았다. 좀만 골똘히 패킷 모양을 살펴봤더라면 풀어낼 수도 있던 문제일수도 있다는 뜻이다.

써보자

지금 시점에선 뭐 그런 건 아무래도 상관 없고 일단 내 전구를 컨트롤할 수 있는 모듈이 생겼다는 소식이 들어왔으니 이 얼마나 기쁜 일인가. 바로 설치해서 한 번 사용해보도록 했다.

pip3 install broadlink

이렇게 하면 모듈 설치는 끝나고 남은 일은 모듈을 사용하는 거 뿐이다. 내 전구의 경우 AP 모드로 들어가는 방법이 특이했는데, 전구에 버튼이랄 만한 것이 없기 때문에 전구를 연속해서 네 번 껐다켰다 해주면 ap 모드로 들어갔다. 전구를 이 상태로 놓고, 맥북을 2.4G 무선 랜에 연결시킨다.

라이브러리 문서에 나와 있는 설명대로라면 전구가 ap 모드로 들어가면서 미리 지정된 ssid를 가지고 ap로 동작해야 하지만 내 전구는 그러지는 않았다. 대신 magic home 어쩌고 하는 앱에서 전구를 등록하기 직전 스탭까지 가면 전구가 내 공유기에 접속하면서 ip가 할당되는데, 그때를 노려서 다음의 파이썬 스크립트를 실행해보면 된다.

import broadlink

devices = broadlink.discover(timeout=1) # LAN 내부 장치 검색

print(devices)
devices[0].auth() # 뭐 어떻게 인증
devices[0].set_state(pwr=1) # 전구 켜기

와!!!! 잘된다 나이쓰 빠샤

이제 할 일

그럼 이제 이 스크립트는 같은 랜에 있기만 하면 아마 실행이 잘될것이다. 아마도??
나는 HA가 라파이에 돌아가고 있으므로 파이썬 스크립트를 실행해주는 component를 사용해서 전구를 자동화하든지, 아니면 아예 custom component를 만들어가지고 전구로 인식시켜줄 수가 있을 것이다. 나는 고통을 즐기는 개발자니깐 후자의 길을 걸어보려고 한다. 근데 생각보다 안 어려울 수도 있다.


근데 사실 ha core에 broadlink라는 component가 있는데 뭐 게을러서 그런건지 전구를 지원안해줘서 이런 일을 해야하는 것이다. 커스텀 컴포넌트를 잘 만들었으면은 이제 잘 해가지고 PR 해서 이런 대형 프로젝트에다가 한줄 넣어볼 수도 있을 것이다. 근데 사실 라이센스 문제를 어떻게 해결해야하는 지는 잘 모르겠다.

profile
잡식 개발자

0개의 댓글