Hoy vamos a explorar cómo controlar un reproductor de radio y música en Home Assistant. Este tutorial te guiará a través de los pasos necesarios para integrar y manejar tus estaciones de radio favoritas y listas de reproducción musicales directamente desde la interfaz de Home Assistant. Además, aprenderás a configurar automatizaciones y scripts para mejorar tu experiencia auditiva, permitiéndote disfrutar de tu contenido favorito con solo un par de clics o comandos de voz.
En mi caso tengo instalados varios Google Home, Chromecast y Chromecast audio por casa, por lo que puedo reproducir radio en cualquiera de ellos.
Nota: El reproductor está sacado del community de Home Assistant, pero se ha adaptado para mostrar emisoras locales.
Para crear el reproductor necesitaremos crear dos input selects, un script y un grupo. Además también podemos crear un reproductor universal para reproducir en todos los reproductores a la vez.
Primero empezamos por los input_select. En el fichero configuration.yaml añadimos dos grupos: uno para las emisoras y otro para nuestros dispositivos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
input_select: radio_station: name: 'Emisora:' options: - Europa FM - Cadena Dial - Los 40 - Kiss FM - Radio Marca Barcelona - Cadena Ser chromecast_radio: name: 'Altavoz:' options: - Comedor - TV - Lavabo - Todos initial: Todos icon: mdi:speaker-wireless |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
################################# # # # Script de Radio Online # # # ################################# radio_online: alias: Reproducir radio en chromecast sequence: - service: media_player.volume_set data_template: entity_id: > {% if is_state("input_select.chromecast_radio", "Comedor") %} media_player.googlehome {% elif is_state("input_select.chromecast_radio", "TV") %} media_player.chromecast_tele {% elif is_state("input_select.chromecast_radio", "Lavabo") %} media_player.lavabocast {% elif is_state("input_select.chromecast_radio", "Todos") %} media_player.all_players {% endif %} volume_level: '0.35' - service: media_player.play_media data_template: entity_id: > {% if is_state("input_select.chromecast_radio", "Comedor") %} media_player.googlehome {% elif is_state("input_select.chromecast_radio", "TV") %} media_player.chromecast_tele {% elif is_state("input_select.chromecast_radio", "Lavabo") %} media_player.lavabocast {% elif is_state("input_select.chromecast_radio", "Todos") %} media_player.all_players {% endif %} media_content_id: > {% if is_state("input_select.radio_station", "Europa FM") %} http://212.129.60.86:9968/; {% elif is_state("input_select.radio_station", "Cadena Dial") %} http://20043.live.streamtheworld.com:3690/CADENADIAL_SC?DIST=TuneIn&TGT=TuneIn&maxServers=2 {% elif is_state("input_select.radio_station", "Los 40") %} http://19983.live.streamtheworld.com:3690/LOS40_SC?DIST=TuneIn&TGT=TuneIn&maxServers=2&tdtok=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6ImZTeXA4In0.eyJpc3MiOiJ0aXNydiIsInN1YiI6I {% elif is_state("input_select.radio_station", "Kiss FM") %} http://kissfm.kissfmradio.cires21.com/kissfm.mp3 {% elif is_state("input_select.radio_station", "Radio Marca Barcelona") %} http://radioweb.radiomarcabarcelona.com:9000/stream {% elif is_state("input_select.radio_station", "Cadena Ser") %} http://18973.live.streamtheworld.com/SER_BARCELONA_SC?DIST=TuneIn&TGT=TuneIn&maxServers=2 {% endif %} media_content_type: 'audio/mp4' |
1 2 3 4 5 6 |
radio: name: Radio entities: - input_select.radio_station - input_select.chromecast_radio - script.radio_online |
1 2 3 |
script.radio_online: friendly_name: Reproducir icon: mdi:play |