나란 사람은 배워서 한다는 게 어떻게 더 게을러질까를 연구하는 것 같다.
사실 요즘 IT 트렌드도 IoT 같이 인간의 게으르고 불완전한 부분을 채워주는 것이니
내가 하는 삽질도 그러한 부분이 아닐까,,?
구글 홈은 전부터 잘 이용하고 있었다
예를 들어 'OK Google? 잘 잤어?' 하면 날씨가 어떻고 미세먼지가 어떻고.. 노래를 틀어주는 등등
여러 매크로 작업이 가능했으나, 전등 같은 녀석들은 태생부터가 그냥 기계적으로 연결이 되어있을 뿐이라
네트워크를 접목하려면 필수적으로 그 사이에 뭔가의 작업이 필요했다.
물론 전등의 경우 Sonoff라는 좋은 녀석이 있지만 나는 만들어진 기성품을 사다 쓰는 건 별로 선호하지 않는다.
내가 아예 할 수 없는 부분이면 모를까 삽질 한 번은 해봐야 하지 않을까 하는 생각에..
그렇게 해서 구매한 것이 바로 RaspBerry Pi였다. 전부터 관심은 있었는데 이게 정말 필요할까? 라는 생각에
구매를 망설이고 있었지만 이 상황에서 필요한 녀석은 라즈베리 파이 말고는 사실 떠오르는 게 없다.
사실 전등을 제어하려고 릴레이 모듈 등을 이것저것(근데 Sonoff 모듈을 사는 게 결과적으로는 더 저렴했다. 젠장) 구매했으나 주말에 도착한 건 가장 중요한 부분인 릴레이 모듈이 없었다.. 작업 불가.. 나는 그동안 할 삽질이 필요했다.
생각한 끝에 '자다가 일어남 -> 컴퓨터 전원을 킴 -> 화장실을 감 -> 자리에 앉음' 이런 프로세스에서
내가 '컴퓨터 전원을 킴'을 굉장히 귀찮아한다는 것을 인지했다.
찾아본 결과 라즈베리 파이와 구글 홈을 연동하여 PC로 WoL 신호를 보내는 것이 가능하다는 것을 발견,
바로 삽질에 돌입했다. OK Google? Main PC 켜줘! 하면 켜지는 내 컴퓨터.. 상상만 해도 가슴이 웅장해진다.
https://www.home-assistant.io/
Home Assistant
Open source home automation that puts local control and privacy first.
www.home-assistant.io
처음에 시도한 것은 HomeAssistant였으나 구글 어시던트 API와 연동이 무슨 이유에서인지 되지를 않아서 포기.. (이거만 3일 걸렸다.) 물론 메리트는 있었다. 어느 특정 서버를 거치는 것이 아닌 내 서버(라즈베리 파이)가 직접 구글 API를 호출하는 방식이니 서비스를 종료하더라도 내가 그 서버를 삭제하거나 하지 않는 이상은 계속 유지가 될 것이었다.
근데 안되는 걸 내가 되게 할 능력은 없었기에.. 다른 방법을 찾았다.
openHAB
a vendor and technology agnostic open source automation software for your home
www.openhab.org
두 번째로 시도한 것이 OpenHab.
이 포스트에서 소개할 녀석이 바로 OpenHab이다.
대표적으로 3개의 스마트 홈 서버가 있는데 앞서 말한 홈 어시던트는 불안정하다는 게 주요 단점이었고, OpenHab은 오픈소스, 그리고 안정화될 때까지 업데이트를 안 한다는 게 나에겐 크게 다가왔다.
(사실 내가 안되는 이유가 안정되지 않은 서버 때문이라고 포장하고 싶은 부분도 있다.)
OpenHAB2 설치
설치 방법은 간단하다.
설치는 아래 링크를 참고했다.
https://www.openhab.org/docs/installation/rasppi.html
https://www.openhab.org/docs/installation/linux.html
라즈베리 파이에 접속 후 터미널을 열어준다.
$ wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo apt-key add -
$ echo 'deb https://dl.bintray.com/openhab/apt-repo2 stable main' | sudo tee /etc/apt/sources.list.d/openhab2.list
$ sudo apt-get update
$ sudo apt-get install openhab2
$ sudo apt-get install openhab2-addons
차례로 타이핑해 주면 기본적인 설치는 끝난다.
기본적으로 OpenHab의 포트는 HTTP의 경우 8080, HTTPS의 경우 8443이다.
만약 이미 라즈베리 파이에서 8080 포트를 사용 중이라면
$ sudo nano /usr/share/openhab2/runtime/bin/setenv를 열어서
if [ ! -z ${OPENHAB_HTTP_PORT} ]; then
HTTP_PORT=${OPENHAB_HTTP_PORT}
else
HTTP_PORT=8080
8080을 다른 포트로 변경해준다.
포트 변경을 마쳤으면 아래와 같은 순서대로 명령어를 실행해 준다.
# 1. Taking changed configurations from filesystem and regenerating dependency trees
$ sudo systemctl start openhab2.service
# 2. Start the openHAB background service
$ sudo systemctl start openhab2.service
# 3. Learn about the current service status
$ sudo systemctl status openhab2.service
# 4. Make openHAB automatically start after booting the Linux host
$ sudo systemctl enable openhab2.service
물론 본인이 원하지 않는 부분이 있다면 빼고 진행해도 좋다.
(자동 실행이라던지? 하지만 Reboot 할 때마다 명령어를 치고 싶어 하는 변태는 없을 것 같다.)
여기까지 마쳤다면 라즈베리에서 해야 할 부분은 50% 정도 마무리가 되었다.
HomeAssistant 하던 거 생각하면 피눈물이 흐른다.. 이렇게 쉬운 걸 3일씩이나..
구글 홈 연동
사실 HomeAssistant를 사용하고, 클라우드 서비스를 가입하면 월 5000원에 해결 가능했다.
그러면 OpenHAB2처럼 쉽게 연동도 가능하고 뭣보다 UI를 직접 만들지 않아도 되는 귀찮음에서 해방될 수 있었으나..
나는 월 5000원에 삽질을 버리는 사람이 아니었기 때문에 포기했다.
먼저 http://[RASPBERRY PI IP]:[OpenHAB PORT]를 인터넷 브라우저에 입력한다.
그러면 위와 같은 웹페이지가 뜰 텐데 먼저 Paper UI를 클릭해 준다.
아무것도 없다.
아무것도 추가하지 않았으니까.(끄덕)
이제 추가를 할 것이니까.(끄덕)
먼저 Add-ons -> Binding에서 WOL (Wake-on-LAN) Binding을 설치해 준다.
INSTALL을 누르고 조금 기다리면 문구가 UNINSTALL로 바뀌는데 이러면 설치가 끝난 것이다.
마찬가지로 Add-ons -> Misc에서 openHAB Cloud Connector도 설치를 해준다.
이제 https://myopenhab.org/login에서 회원가입을 해준다.
회원가입 시에 UUID와 secret을 묻는데
UUID : /var/lib/openhab2/uuid
Secret : /var/lib/openhab2/openhabcloud/secret
에서 찾아서 넣어주면 된다.
이렇게 하면 https://home.myopenhab.org/
접속 후 로그인을 했을 때 자신의 OpenHAB 페이지가 뜨게 된다.
만약 Offline이 뜬다면 설치가 아직 안 끝났거나 로딩이 안되었을 가능성이 있으니 위에서 나온 명령어로
OpenHAB 서버를 재부팅 해주자.
ClickClick here to access your openHAB's dashboard/를 클릭하면
http://[RASPBERRY PI IP]:[OpenHAB PORT]/를 입력했을 때와 같은 화면이 뜬다.
하지만 속도가 매우 느림... 해결하는 방법이 있지만 이건 다음 포스팅 때 하도록 하겠다.
이제는 WoL을 추가할 차례다.
바인딩은 추가했으니 스위치만 만들어주면 된다.
etc/openhab2/items/의 경로에 default.items 파일을 생성해 주고
Switch MainPC "MainPC" [ "Switchable" ] { wol="192.168.0.255#00-00-00-00-00-00" }
이렇게 한 줄 써 주는데, 당연히 들어가는 내용은
이름과 MAC 주소, 그리고 자신이 사용하는 IP의 대역에서 마지막 숫자만 255로 바꿔서 넣어준다
(Ex. Switch PC "PC" [ "Switchable" ] { wol="192.168.10.355#AA-AA-AA-AA-AA-AA" })
이제 다시 OpenHAB2에 접속하여 Configuration -> Items에 아래와 같이 스위치가 추가 되었다면 할 일은 끝났다.
이제 구글 홈 앱 상단의 + 버튼 -> 기기 설정 -> 이미 설정된 기기가 있습니까? -> OpenHAB 로그인
그러면 본인이 설정한 버튼이 뜰 것이다.
이제 다 끝났다.
가슴이 웅장해지는 것 같다..
빨리 구글에게 MainPC를 켜달라고 하자.
만약 망할 구글이 못 알아 처먹고 닐로의 넋두리를 계속 틀어주면 MainPC -> Main PC로 이름을 바꿔주면 된다.
이제 릴레이 모듈 오면 GPIO를 사용해서 제어하면 될 것 같다.
오타 지적, 내용에 이상이 있으면 댓글로
'공부 > RaspBerry Pi' 카테고리의 다른 글
구글 홈과 RaspBerry Pi를 이용한 WoL, GPOI 설정(HomeAssistant) (0) | 2020.07.12 |
---|