왜 했을까?
집에 컴퓨터 있겠다. 구글 홈 있겠다. 라우터 역할해주는 공유기 있겠다. 이거 완전 홈 iot 구성 가능한 거 아냐? 침대에 누워서 컴퓨터 켤 수 있는 거 아냐?라는 생각에 시작했다.
이때만 해도 엄청나게 고생할 줄 몰랐다
일단 준비물은 다음과 같다.
준비물 : 구글홈, 구글 계정, 휴대폰
조건
- 무료로 환경을 구성할 것
- 참고하는 자료는 적어도 20년 이후 자료를 참고할 것
1회 차
되게 안일하게 생각했다. 구글에 검색만 해도 예시가 많았고 예시를 따라 하기만 하면 될 줄 알았다.
1회 차는 다음 블로그를 참고했다. sejongdekang의 블로그
간단히 정리하면
- iptime이나 공유기에 원격으로 접속 가능하게 한다
- Wake On Lan 패킷을 뜯어서 http요청을 알아낸다.
- action on google의 스마트 식세기 소스를 수정해서 firebase에 배포 후 자신의 폰에 action on google로 만든 앱을 설치 한 뒤 구글 어시스턴트와 연결한다.
과정만 따지고 보면 할만해 보였다.
정말 할만해 보였다
19년도 자료지만 설명이 잘 돼있었고 따라 하기 쉬웠기 때문이다.
제목을 보면 알 수 있듯이 1회 차인 이유가 있다. 이 블로그의 결정적인 문제점은 Action On Google 샘플은 node.js로 작성돼있다. 나는 node.js를 완전히 모른다. 그래서 참고할 코드가 필요했다. 근데 블로그에서 iptime설정은 상세하게 나와있지만 코드 이미지만 잘려있었다. 코드 부분은 스스로 해보려 했지만 부족한 실력과 부실한 예제로 다음 방법으로 넘어갔다.
2회 차
1회 차 실패 이후 곰곰이 생각해봤다.
패킷을 뜯어서 http요청 확인했으면 그냥 외부에서 공유기로 패킷 보내서 포트 포워딩만 해주면 되는 거 아닌가?
그래서 예제를 찾아보니 나왔다. 예제 블로그
IFTTT와 iptime 두 개만 있으면 정말 간단하게 끝낼 수 있다.
- IFTTT에서 GoogleAssitant로 신호를 받는다.
- WebHook으로 공유기의 DDNS에 GET방식으로 요청한다.
1회 차와 다르게 어플을 만들 필요도 없고 서버를 쓸 필요도 없이 정말 간단하게 만들 수 있다.
큰 기대를 부풀고 시도했지만 webHook 부분에서 막혔다.
이유는 다음과 같다.
우선 wol(Wake On Lan) 기술은 브로드캐스트 방식으로 Lan뿐만 아니라 인터넷 전역에서 사용 가능하다. 다만 최신 펌웨어의 Iptime 공유기의 경우 포트 포워딩 시 이를 막는다. 해킹 시도와 유사하기 때문에 보안상의 이유로 차단했다고 한다.
그리고 POST방식이 아니라 GET방식으로 로그인도 같이 요청하는 게 보안상으로 안 좋아 보여서 다음 방법을 찾아봤다.
3회 차
IFTTT를 만지작 거리다 보니 앱으로 notification을 보낼 수 있게 됐다. 그래서 블로그를 참고해서 구현했다.
- IFTTT에서 GoogleAssitant를 받고
- IFTTT앱으로 notification을 날린다.
- Automate앱으로 IFTTT앱에 notification이 올 때마다 LAN에 MAC 주소로 WOL신호를 날린다.
IFTTT 설정
1. IFTTT서비스에 가입 후 애플릿을 생성해준다.
2. IF부분에 구글 어시스턴트를 등록해준다.
3. 어시스턴트에서 받을 메시지와 응답할 메시지를 설정해준다.
4. Then에 Notification을 등록한다.
5. 휴대폰으로 갈 메시지 등록해주면 된다.(아무거나 상관없음)
이후 애플릿을 생성해주면 된다.
폰에서 IFTTT어플을 다운로드 한 뒤 로그인해주면 2번까지 됐다. 테스트를 해보면 정상적으로 알림이 오는 것을 알 수 있다.
Automate 설정
1. Google Play Store에서 Automate앱을 다운로드하여 준다.
2. 플로팅 버튼을 눌러서 새 Flow를 추가한다.
3. 추가 버튼을 눌러서 Notification Posted?를 추가해준다.
4. 정보를 입력해준다.
- Proceed : when transition(받았을 때)
- package : com.ifttt.ifttt(IFTTT 어플을 찾아서 등록하면 된다)
- title : IFTTT(notification에 입력한 메시지가 아니라 알림의 타이틀을 입력해주면 된다.)
5. 저장 후 추가 버튼을 눌러서 Wake-on-Lan send를 추가해준다.
6. mac address : 본인 PC 맥주소를 입력해주면 완성이다.
7. 마지막으로 start를 누르면 작동하는 것을 볼 수 있다.
단 privileges을 모두 등록해줘야 한다.
이렇게만 해주면 작동된다. 정말 슬프게도 블로그에서 Flow파일의 다운로드 링크가 만료되어 받을 수 없다.
침대에 누워서 포기하지 않고 혼자 만지작거린 결과 만들어냈다!!!!
앞선 1, 2번째와 다르게 3번째가 된 이유를 추측해보자면 외부에서 Wol패킷을 보내는 게 아니라 LAN에서 보내기 때문에 포트 포워딩 자체가 안 일어나므로 작동되는 것 같다.
주의사항
다만, LAN 환경에서 이뤄지는 만큼 휴대폰이 와이파이를 벗어나면 작동이 안 된다. 또한 PC를 껐을 때 전원을 남겨두면 다시 켤 수 있지만 멀티탭을 끈다던지, 완전히 전원을 차단하게 되면 작동 안 한다.
그렇다면 이 기능은 쓸모없는 걸까?
그렇지 않다!!
절전모드를 했을 때 물을 따르면서 컴퓨터를 킬 수 있다.
다음 포스트는 구글 홈에서 절전모드와 종료를 구현하는 방법이다.
단점
PC 전원을 끈 뒤 본체에 들어가는 전력을 차단해 버리면 WOL자체가 작동하지 않아서 해당 기능을 쓸 수 없다. 전원을 완전히 차단만 안 하면 정상적으로 쓸 수 있다.
'일상' 카테고리의 다른 글
GTS4 Mini 한 달 사용 후기 (0) | 2023.01.09 |
---|---|
커피 내리는 시간을 줄여보자 (feat. 브레빌 밤비노 플러스) (0) | 2022.10.16 |
치킨 한 마리 == 하만카돈 블루투스 스피커 2탄 (0) | 2022.08.14 |
치킨 한 마리 == 하만카돈 블루투스 스피커 (0) | 2022.08.03 |
구글홈으로 컴퓨터를 켜보자!! 2탄 (0) | 2022.06.13 |