WOL 을 사용할 수 없는 PC의 전원을 제어하기 위해서 Switchbot 으로 PC 전원 버튼을 누르도록 해뒀다.
앱을 통해 실내/실외에서 자유롭게 제어가 가능하다.
그런데 (굳이) Jenkins로 할 수 있으면 더 좋지 않을까? 라는 생각이 들었다.
다행히 Switchbot 에서 제공해주는 API 및 소스를 통해 간단하게 Jenkins 를 통한 자동화가 가능했다.
준비물
Switchbot S1 | 아마존에서 직구하는 편이 저렴하지만 환율 영향으로 국내 정발과 큰 차이가 없다. 국내 정발: https://smartstore.naver.com/wakers/products/4761379644 아마존: https://www.amazon.com/dp/B07B7NXV4R?ref_=cm_sw_r_cp_ud_dp_JAAJRN2KQ4AYDTF5RJFE |
Raspberry Pi 3 | Switchbot 에 블루투스로 연결되어 명령을 전달한다. 이곳에 Jenkins Agent를 설치해서 제어하게 된다. 참고로 Raspberry Pi 4 에서도 되지만, 패키지 설치가 잘 되지 않는 것도 있고, 제어 거리가 1~2m도 채 되지 않아서 실사용이 불가능하다. |
Jenkins | 명령을 Trigger 하는 역할 |
Step
sudo apt-get update
sudo apt-get install python-pexpect
sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev
sudo apt-get install libudev-dev libical-dev libreadline-dev
sudo pip install bluepy
Switchbot 에서 직접 제공하는 소스 다운로드
git clone https://github.com/OpenWonderLabs/python-host.git
cd python-host
블루투스 모듈 검색 실행.
sudo python switchbot.py
블루투스 동글이 정상적으로 동작하고 스위치봇이 범위 안에 있다면 맥어드레스가 스캔되어야 한다.
디바이스 맥어드레스가 스캔되면 다음과 같이 Press 를 명령해서 동작하는지 확인
python switchbot.py f3:a5:79:3d:49:51 Bot Press
Build - Execute shell 에 아래와 같이 앞서 쉘에서 실행했던 명령을 그대로 사용.
(python 버전 및 블루투스 모듈 버전에 따라 실행 파일이 다르므로 주의)
이제 Switchbot 앱 대신 Jenkins 를 통해 스위치봇을 제어할 수 있게 되었다.
영상
참고:https://github.com/OpenWonderLabs/python-host
'IT 기기 팁 & 리뷰' 카테고리의 다른 글
NuPhy Air60 매뉴얼 (0) | 2023.02.25 |
---|---|
[iOS] iOS 14 에 VNC Server 설치 (via screendump) (0) | 2022.06.14 |
리얼포스 87u 키보드 인식 문제 해결 (0) | 2022.05.18 |
MKV 동영상 파일에서 특정 언어 및 자막 제거하기 (0) | 2022.05.05 |
NuPhy Air75 매뉴얼 (1) | 2022.04.02 |