본문 바로가기
IOT스마트홈 만들기 (Home Assistant)/HA설정

[HA] HA를 이용해서 구글 홈으로 인터넷 라디오 빠르게 재생하기

by ProjectDH 2021. 3. 8.

안녕하세요. 오늘은 Home Assistant와 구글 홈을 이용해서 실시간 인터넷 라디오 재생을 하는 방법을작성해보려 합니다.

 

우선 sbs 라디오와 mbc 라디오로 한정된다는 점을 알려드립니다..

kbs 라디오는 구글 홈에 직접 재생 url을 넘기면 코덱 문제인지

재생이 안 되네요. 최근에 mbc도 코덱이 바뀌면서

mbc mini에서 현재 사용하는 추출 방법으로는

구글 홈에서 재생이 안 됩니다.

그래서.. 예전 추출 방법으로 간신히 이용 중입니다.

 

준비물: HA가 설치된 서버 (리눅스여야 합니다. sh 커맨드 센서를 이용하고, php도 설치되어 있어야 합니다.)

 

예제로 mbc fm 을 알려드리겠습니다.

스크립트를 실행 방식으로 라디오 재생을 요청하실 수 있는데

그 과정을 먼저 공개합니다.

 

저의 shell_command는 다음과 같습니다.

shell_command:

radio_mbc_fm_url: 'php /home/radio/mbc_fm.php'

 

php 쉘에서 이루어집니다.

 

뭐.. 뻔하죠. shell_command에서 실행하는 php 쉘에서는

mbc 라디오 서버에 접근해서 m3u8 url을 불러오고

mbc_fm_1.txt에 250자 기준으로 전반부, mbc_fm_2.txt에 250자 기준으로 후반부 부분이 저장됩니다.

이렇게 자르는 이유는 HA에서 센서의 값 최대 길이는 255자이기 때문입니다. 안전하게 250자 내에서 자릅니다.

 

그리고 mbc_fm_url, mbc_fm_urls에서 커맨드 센서로 250자 기준으로 잘라진 url을 불러옵니다.

 

 

 

sh 쉘에서 이뤄 지는데요, 단순히 잘라진 url이 담긴 txt 파일을 읽어서 출력시키므로써 변수에 저장시키기 위한 쉘입니다.

열어보시면 다음과 같습니다.

 

 

 

이제 스크립트에서 라디오 재생시마다 shell_command 실행, 센서 업데이트를 해주고, 구글 홈에 캐스트 하면 끝입니다.

 

구글 홈에서 명령을 내려서 호출 하는 방법은

구글 홈의 기기 설정 => 구글 호환 가능에 들어가서

HA와 연동한 [test] 테스트 앱을 누릅니다.

 

그리고 계정 다시 연결을 누릅니다.

 

연결 성공을 했다면

루틴에 들어가서 작업 추가에서 스마트 홈 기기 조정 => 테마 조정에서  오늘 추가한 스크립트를 동작으로 지정해주시면 됩니다.

 

과정은 생각보다 간단하지만, 저는 개발하는데 조금 오래 걸렸습니다. ㅠㅠ

 

다른 라디오를 추출하려면 echo($res); 윗 부분에 각 라디오 추출 소스를 넣으면 되는데

이건 제가 깃허브로 공유해보겠습니다.

mbc fm의 최신 호출 방식은 재생 코덱이 달라져서 구글 홈에 직접 전송이 불가능한데,

이건 예전 코드라서 구글 홈에서 직접 재생이 됩니다.

따라서 언제 막힐지는 모르겠습니다.

 

가끔씩 호출해도 토큰 값이 안 나오고, 안되는 ip 대역도 있어서

강제로 토큰 값 나올 때까지 호출하고, ip도 지정해놓았습니다.

구글 홈에서 되는 ip 대역도 올려놓겠습니다.

 

모든 소스는 제 깃허브에서 다운로드 가능합니다.

https://github.com/projectdhs/ha/tree/main/HA_radio

 

projectdhs/ha

HomeAssistant installation and config repo. Contribute to projectdhs/ha development by creating an account on GitHub.

github.com

구글 홈에서 생각보다 재생 속도가 매우(?) 빠릅니다!!

그리고, 외부로 추출 방법 공유는 삼가해주시면 합니다... 잘 사용해보세요!

 

사용해보는 영상입니다.

https://drive.google.com/file/d/1s0bSgcE5xiKGyItB8CzAPdeaHShAxAPK/view?usp=sharing

 

HA 라디오 추출.mp4

 

drive.google.com

 

====================================================

궁금하신 점은 1대1 채팅 주시면 가능할 때 답변 드리겠습니다.

 

- 1:1 오픈채팅방: https://open.kakao.com/o/sjdstfkc

- 문의 이메일: admin@projectdh.link

 

 

 

댓글