본문 바로가기
Hardware/Home Assistant(라즈베리파이)

Home Assistant에서 PC 원격 부팅(WOL)하고 켜졌는지 확인하기 (IOT Link)

by lovey25 2021. 3. 12.
반응형

2022-03-30 update log: HA 버튼 요소의 업그레이드로 WOL요소와 IOT Link를 하나의 버튼에 묶기 위해서 더 이상 group.yaml 설정이 필요 없어져서 해당 부분 수정하였습니다.


오늘도  Home Assistant 관련 팁입니다. Wake on Lan(WOL)은 PC를 원격으로 사용하는데 꼭 필요한 기능입니다. 종일 컴퓨터를 켜놓을 수는 없으니 필요할 때 외부에서 컴퓨터를 켜야 합니다.

저는 ipTime공유기를 사용하고 있는데요. ipTime의 경우 자체적으로 내부 네트워크에 매직 패킷을 날려주는 기능이 있어서 이 기능을 이용하면 간단히 WOL를 사용할 수 있습니다. 하지만 단점이 한 가지 있는데 바로 컴퓨터가 켜졌는지 아닌지 확인하는 기능이 없다는 겁니다. 대신 컴퓨터가 가상 IP 할당을 받았는지 확인해보거나 원격 접속이 되는지 안되는지 계속 접속 시도를 해보면 알 수는 있지만 뭔가 불편하고 이쁘지 않습니다. ipTime공유기를 사용하지 않는다면 WOL 어플을 이용하는 방법도 있지만 ipTime공유기가 외부 매직 패킷을 모두 차단해 버리기 때문에 아쉽지만 사용할 수 없었습니다.

그런데 HA를 이용하면 깔끔하게 이 아쉬움을 해소할 수 있는데요 그 방법 알아보겠습니다.

먼저 WoL 설정하는 방법입니다.

"configuration.yaml"파일을 열어서 다음의 스위치 코드를 추가해 줍니다. 스위치가 눌려지면 네트워크로 매직 패킷을 송출하는 코드입니다. 맥 주소 부분은 켜고자 하는 컴퓨터의 네트워크 카드 맥주소로 변경해 주시면 되겠죠.

# Wake On Lan
switch:
  - platform: wake_on_lan
    name: lance
    mac: "00:00:00:00:00:00"

변경한 설정 파일을 적용하고 나서 구성요소에서 지정한 이름으로 검색을 해 보면 다음과 같이 추가된 스위치를 찾을 수 있습니다.

이제 이 스위치 요소를 이용해서 컴퓨터를 켤 수 있게 되었습니다.

다음으로는 컴퓨터의 상태를 읽어와서 켜져 있는지 꺼져있는지 확인을 하고 싶은데요. 이때 아주 유용한 프로그램이 있습니다. "IOT Link"라는 프로그램인데 상태를 확인하고 싶은 컴퓨터에 설치가 필요합니다.

 

IOT Link | Service to provide Internet Of Things (IOT) integration with Windows using MQTT.

Downloads Here you can find the latest binaries for IOT Link Service. IOT Link - v2.2.2 Released by Alexandre Leites on 2020-10-08 Download IOTLink_Installer_v2.2.2.exe Release Notes: Fixed LWT not sending causing sensors to display as unavailable. Fixed m

iotlink.gitlab.io

위 링크로 가서 설치 파일을 다운로드하여 설치를 진행해 줍니다.

설치 과정에서 애드온을 추가로 설치할 건지 물어보는 과정이 있는데요. 여기서 "Windows Monitor"를 선택하고 설치를 해 줍니다.

설치가 완료되면 프로그램 목록에 IOT Link가 추가됩니다. 이 프로그램은 컴퓨터의 어려가지 정보를 MQTT프로토콜로 전송하는 역할을 하는데요. HA에서 정보를 받을 수 있도록 서버 정보를 IOT Link설정 파일에 추가해 줍니다. 새로 생성된 바로가기들 중에서 "Open Configuration File"를 선택해 줍니다. 

그러면 yaml스크립트가 열리는데요. 여기서 위 그림에 표시된 3개 username, password, hostname을 HA MQTT 서버 정보에 맞게 수정하고 저장합니다. 설정 내용은 수정만 하면 별도 과정 필요 없이 바로 변경사항이 적용됩니다.

이제 HA구성요소에서 컴퓨터 이름으로 검색해보면 수십 가지의 새로운 요소들이 추가된 것을 확인할 수 있습니다.  

컴퓨터의 전원 상태뿐만 아니라 CPU, 메모리, 저장장치, 네트워크의 상태까지 모두 확인 가능하며 심지어 현재 화면을 캡처해서 볼 수도 있습니다.

이제 마지막으로 컴퓨터를 원격으로 켤 수 있는 버튼을 Lovelace에 추가하고 동시에 컴퓨터 전원 상태가 표시되도록 다음과 같은 버튼을 만들어 보겠습니다.

버튼 만들기에 앞서 앞에서 만든 WOL요소와 IOT Link의 power_status 요소를 그룹으로 묶어줍니다. "/config/group.yaml"파일에 아래 내용을 추가합니다.

마지막으로 Lovelace에 버튼 카드를 다음과 같이 구성합니다.

예전에는 버튼카드에 서로 다른 요소를 묶어주기 위해서 group.yaml설정을 이용했었는데, 언제부터였는지 기억이 나지는 않지만 이제는 버튼 카드에서 탭 액션에 다양한 명령을 지정할 수 있어져서 한 번에 필요한 기능을 구현할 수 있습니다.

이제 버튼을 눌러서 원격으로 컴퓨터를 켤 수 있고 컴퓨터가 켜지고 나면 아래 그림처럼 버튼에 상태가 반영됩니다.

 

끝!

반응형

댓글