1. Home Assistant 설정 준비
Home Assistant와 Google 스피커를 이용하여 특정 MP3 파일을 재생하려면 아래 조건을 충족해야 합니다.
- Home Assistant와 Google 스피커가 같은 네트워크에 연결되어 있어야 합니다.
- MP3 파일은 Home Assistant가 접근 가능한 위치에 저장되어야 하며, 기본적으로
/media
폴더를 활용합니다. - Google 스피커는 정상적으로 작동 중이어야 하며, Home Assistant에서 해당 스피커가 발견될 수 있어야 합니다.
/media 폴더 사용 이유
Home Assistant는 /media
폴더를 미디어 관리의 기본 경로로 지정합니다. 이를 통해 파일 접근 및 재생이 보다 간단해집니다. 이 폴더에 저장된 모든 파일은 "media-source://media/local" 경로로 쉽게 참조할 수 있습니다.
참고사항
- 네트워크 설정에서 Google 스피커와 Home Assistant 간의 연결이 차단되지 않았는지 확인하세요.
- Home Assistant가 실행 중인 장치에서
/media
폴더가 올바르게 마운트되었는지 확인하세요.
2. MP3 파일 Home Assistant에 추가
- 원하는 MP3 파일을
/media
디렉토리에 업로드합니다.- 예:
example.mp3
파일을 업로드
- 예:
- 업로드한 파일의 경로 확인
- 파일 경로:
/media/example.mp3
- 파일 경로:
파일 업로드 방법
- Home Assistant 웹 UI를 통해 파일 관리 플러그인을 사용하여 업로드
- FTP 또는 SFTP를 사용하여
/media
디렉토리에 파일 복사 - Home Assistant가 Docker 컨테이너에서 실행 중인 경우, Docker 볼륨을 통해 파일을 복사
파일 접근 확인
Home Assistant Developer Tools에서 media_source
서비스 호출을 테스트하여 업로드된 파일이 올바르게 감지되는지 확인합니다.
3. Google Cast 통합 설정
Google 스피커와 Home Assistant를 연결하려면 Google Cast 통합을 설정해야 합니다.
- Home Assistant 메뉴로 이동
설정 > 장치 및 서비스 > 통합
- "Google Cast"를 검색하여 추가
- 통합이 완료되면 네트워크 내 Google 스피커가 자동으로 검색됩니다.
Google Cast 통합 과정에서 주의점
- 네트워크에 동일한 이름의 Google 스피커가 여러 개 있을 경우, 특정 엔터티 ID를 확인하여 혼동을 방지하세요.
- Google Cast 통합이 실패하는 경우, Home Assistant 로그를 확인하여 문제를 진단하세요.
이미 통합된 경우
설정을 생략해도 됩니다. 기존에 설정된 스피커의 엔터티 ID를 확인하세요. 이를 위해 Home Assistant의 설정 > 장치 및 서비스
에서 해당 스피커를 찾아 엔터티 ID를 확인합니다.
4. 특정 MP3 파일 재생 스크립트 작성
Google 스피커에서 MP3 파일을 재생하려면 아래 스크립트를 사용합니다.
예제 스크립트
script:
play_example_mp3:
alias: Example MP3 재생
sequence:
- service: media_player.play_media
data:
entity_id: media_player.YOUR_GOOGLE_SPEAKER_ENTITY_ID # Google 스피커 엔터티 ID
media_content_id: "media-source://media/local/example.mp3" # MP3 파일 경로
media_content_type: "music"
entity_id
: Google 스피커의 엔터티 ID (예:media_player.living_room_speaker
)media_content_id
: MP3 파일 경로를media-source://media/local/파일명
형식으로 입력media_content_type
: "music"으로 설정
추가 테스트
스크립트 실행 후 Google 스피커에서 음악이 제대로 재생되지 않으면 다음 사항을 확인하세요.
- Google 스피커의 볼륨 설정
- MP3 파일 형식이 스피커에서 지원되는지 여부
- 네트워크 연결 상태
5. MP3 파일 재생 자동화 설정
특정 시간에 MP3 파일을 자동으로 재생하려면 아래와 같이 설정합니다.
자동화 예제
automation:
- alias: 특정 시간에 MP3 재생
trigger:
- platform: time
at: "08:00:00" # 매일 오전 8시에 재생
action:
- service: script.play_example_mp3
트리거 조건
time
: 특정 시간event
: 센서나 버튼 이벤트로도 트리거 설정 가능
자동화 추가 설정
- 자동화를 한정된 날짜나 요일에만 동작하도록 설정하려면
condition
을 추가하세요.condition: - condition: time weekday: - mon - wed - fri
6. 여러 MP3 파일 순차 재생 설정
여러 개의 MP3 파일을 순차적으로 Google 스피커에서 재생하려면, 파일 리스트를 순환하며 재생할 수 있는 스크립트를 설정할 수 있습니다.
MP3 파일 리스트 작성
/media
폴더에 여러 MP3 파일을 저장 (예:song1.mp3
,song2.mp3
,song3.mp3
)
순차 재생 스크립트
여러 MP3 파일을 순차적으로 재생하려면, repeat 기능을 사용해 리스트를 순환할 수 있습니다. 아래 예시에서는 MP3 파일 경로 리스트를 설정하고 순차적으로 재생합니다.
script:
play_multiple_mp3:
alias: 여러 MP3 파일 순차 재생
sequence:
- repeat:
count: 3 # 파일 수
sequence:
- service: media_player.play_media
data_template:
entity_id: media_player.YOUR_GOOGLE_SPEAKER_ENTITY_ID
media_content_id: >
{% set files = ['song1.mp3', 'song2.mp3', 'song3.mp3'] %}
media-source://media/local/{{ files[repeat.index - 1] }}
media_content_type: "music"
- delay: "00:03:00" # 각 파일 재생 시간 (예: 3분)
위 스크립트를 직접 실행하거나 특정 시간에 자동으로 시작하도록 자동화 설정을 추가할 수 있습니다. 아래와 같이 설정하여 매일 아침 8시에 지정된 MP3 파일들이 순차적으로 Google 스피커에서 재생할 수 있습니다.
automation:
- alias: 아침에 여러 MP3 파일 재생
trigger:
- platform: time
at: "08:00:00" # 매일 오전 8시에 시작
action:
- service: script.play_multiple_mp3
repeat.count
: 재생할 파일 개수로 설정합니다. 위 예시에서는 3개의 파일이므로count: 3
으로 설정했습니다.delay
: 각 파일 재생 후 대기 시간을 설정합니다. 예를 들어, 3분으로 설정하여 파일이 끝난 후 다음 파일로 이동하게 설정합니다.
조건부 순차 재생
특정 상황에서만 MP3 파일을 순차 재생하려면 조건을 추가합니다.
condition:
- condition: state
entity_id: binary_sensor.motion_sensor_1
state: "on"
7. Python 스크립트를 이용한 동적 파일 재생
특정 폴더 내의 MP3 파일을 동적으로 불러와 순차적으로 재생하려면, python_script
또는 template
을 사용하여 폴더 내 파일 목록을 가져오는 방법을 사용할 수 있습니다.
Python 스크립트 활성화
Home Assistant 설정 파일인 configuration.yaml
에 python_script
를 활성화합니다.
configuration.yaml
에 추가python_script:
python_scripts
폴더 생성 후 스크립트 작성
Home Assistant 구성 폴더의 python_scripts
디렉토리에 play_mp3_list.py
파일을 생성하고, 아래와 같은 코드를 작성합니다. 이 스크립트는 특정 폴더 내의 MP3 파일을 순차적으로 재생하도록 설정합니다.
Python 스크립트 예제
import os
media_folder = "/media/your_mp3_folder"
media_player_id = "media_player.YOUR_GOOGLE_SPEAKER_ENTITY_ID"
mp3_files = [f for f in os.listdir(media_folder) if f.endswith(".mp3")]
mp3_files.sort()
for mp3_file in mp3_files:
media_content_id = f"media-source://media/local/{mp3_file}"
hass.services.call(
"media_player",
"play_media",
{
"entity_id": media_player_id,
"media_content_id": media_content_id,
"media_content_type": "music"
}
)
time.sleep(180)
mp3_files.sort()
: 파일 이름 기준 정렬time.sleep(180)
: 파일 재생 시간을 조정
자동화로 스크립트 실행
automation:
- alias: 동적 MP3 파일 순차 재생
trigger:
- platform: time
at: "08:00:00"
action:
- service: python_script.play_mp3_list
- 폴더 내 파일 목록 가져오기: Python 스크립트에서 특정 폴더의 모든 MP3 파일을 불러옵니다.
- 파일 정렬:
sort()
를 통해 파일 이름 순으로 정렬하여 재생 순서를 지정할 수 있습니다. - 재생 시간 대기: 각 파일이 재생될 동안
time.sleep()
으로 대기 시간을 설정합니다. 이 시간을 각 MP3 파일의 평균 길이에 맞추어 조정할 수 있습니다.
위 방법을 통해 Home Assistant와 Google 스피커를 활용하여 MP3 파일을 자동화하고 동적으로 재생할 수 있습니다. 이 설정으로 스마트 홈 경험을 더욱 풍부하게 만들어보세요.
댓글