Home Assistant comanda Rádios na Alexa (TuneIn)

Antes de mais um especiail agradecimento aos autores, @maxcalavera e Maurício e ainda ao @pmfernandes pelo apoio na construção de alguns ficheiros.

Fica aqui o link do vídeo de apoio para que consigam acompanhar visualmente o tutorial:

Link dos ficheiros de apoio ao tutorial

ADDONS necessários

A partir do Supervisor – Loja de Addons, instalar:

  • File Editor

A partir do HACS instalar os seguintes Addons no Frontend:

  • Mini média player
  • Button Card

Texto a adicionar ao “configurations.yaml”

downloader:
  download_dir: www

homeassistant:
  packages: !include_dir_named packages

python_script:

Pastas necessárias

Dentro da pasta config, criar as seguintes pastas:
“packages”
“python_scripts”
“www”

Dentro da pasta “packages”

  • Colocar o ficheiro “radio.yaml” editar este ficheiro e alterar o nome do média player para o nome que o vosso tem no home assistant, a parte a vermelho no seguinte texto (podem usar a procura para não escapar nenhum):

entity_id: media_player.echo_dot_sala

Dentro da pasta “python_scripts” colocar os ficheiros:

  • “radio_details_megahits.py” e “radio_details.py”

Dentro da pasta “www”

  • Colocar a pasta “radio_logo” com os ficheiros incluídos
  • Criar a pasta “downloads”

Depois destes procedimentos, vamos verificar a configuração do home assistant para verificar se está tudo OK e reiniciar.

Por fim, só falta criar o cartão na “Visão Geral (Lovelace)”.

Lovelace card

Vamos a “Configurar Painel”

Clicamos em ”ADICIONAR CARTÃO” deslizar para baixo e escolher “MANUAL”.

Apagam o texto e colam o código do card correspondente, no exemplo, estou a colar o texto referente ao media player da sala. Também aqui, devem alterar todos os nomes “echo_dot_sala” para o nome do vosso media_player, podem alterar antes com um editor, e colar aqui já alterado.

Depois de feito, basta guardar e se tudo correu bem, já deve funcionar e podem clicar nas rádios correspondentes para ouvir na vosso player.

Para criar um card para outros media players, o procedimento é o mesmo, alterando para o nome correspondente. Esta configuração está preparada para 3 player’s diferentes: “echo_dot_sala”, “echo_dot_cozinha”, echo_dot_quarto”

Alguma dúvida, já sabem coloquem nos comentários, tanto aqui como no vídeo, ou no canal telegram.

Espero que vos seja útil.
Nuno Faim

5 Curtiram

Obrigado pela partilha

É possível que isto funcione com as echo todas ao mesmo tempo?

Estou a tentar, mas sem sucesso. As echo recebem um sinal sonoro, mas a radio não toca. Individualmente está a funcionar bem

1 Curtiu

Olá, obrigado pelo feedback.

Penso que o que queres, poderás fazer da seguinte forma:
No card, substituis todo o texto do início até:

  • type: ‘custom: button-card’
    com o código abaixo.
    Cola assim e claro, muda para as tuas 2 echos :
type: vertical-stack
cards:
  - type: 'custom:mini-media-player'
    hide_when_off: true
    hide:
      volume: false
      source: false
      power_state: false
      controls: true
    icon_state: true
    toggle_power: true
    group: true
    sound_mode: full
    source: icon
    artwork: none
    name: Alexa um
    volume_stateless: false
    replace_mute: play_pause
    entity: media_player.echo_dot_um
    info: scroll
  - type: 'custom:mini-media-player'
    hide_when_off: true
    hide:
      volume: false
      source: false
      power_state: false
      controls: true
    icon_state: true
    toggle_power: true
    group: true
    sound_mode: full
    source: icon
    artwork: none
    name: Alexa dois
    volume_stateless: false
    replace_mute: play_pause
    entity: media_player.echo_dot_dois
    info: scroll
 

Penso que é o que queres… se bem percebi. Como está dá para 2 Alexas, se tiveres mais, é só adicionar mais código do (- type: ‘custom:mini-media-player’) até (info: scroll)

Só tens que mudar onde diz:
name: Alexa um (aqui dás o nome que quiseres)
entity: media_player.echo_dot_um (aqui a entidade)
entity: media_player.echo_dot_dois (aqui a entidade)

Assim, permite-te até mexer nos volumes separadamente para as várias anexas.

Vê se serve para o que pretendes…
Abraço

Talvez não me tenha explicado bem :slight_smile:

Eu tenho um grupo “toda a casa”, em que estão incluídas todas as alexas. Se pedir para tocar uma musica em “toda a casa”, a musica toca nas alexas todas.

Segui o teu tutorial, e está a funcionar impecável em cada alexa individualmente. Criei um card para o grupo das alexas, e se aumentar o volume, aumenta em todas, se mandar parar, pára em todas, mas se escolher uma rádio, não dá nada (isto só acontece no grupo)

Ah… já sei o que queres.
Penso que temos que acrescentar alguma coisa no rádio.yaml para que quando clicas na rádio ela tocar no “grupo”…
Vou verificar e entretanto digo aqui alguma coisa…

1 Curtiu

@max-men, desculpa só agora responder. Estive a ver a hipótese de ter mais Alexas, mas vou esperar mais um pouco por melhor preço… como só tenho uma, não posso testar.
No entanto, eis o que podes fazer…
Na app da Alexa, vais a “criar grupo” e aqui escolhes a opção “Combine Speakers”. Adicionas as Alexas que queres que façam parte do grupo, e dás nome ao grupo.

Este “grupo” vai aparecer-te automaticamente no HomeAssistant como uma nova entidade “media player”.

Então aqui tratas como uma nova “Alexa” só que esta são várias!
Acho que daqui pra a frente, já sabes como funciona. os exemplos que temos como “Echo Dot Sala”, “Echo Dot Cozinha”, “Echo Dot Quarto”… passamos a ter uma nova “Echo Dot Grupo”… o nome que lhe deres…

Deu para entender!? Espero que sim e que assim consigas resolver…
Quando comprar mais (espero que breve) poderei adicionar essa parte ao Tuturial…

Cumps

Mas é exatamente assim que tenho :slight_smile: Posso é ter alguma coisa mal, que não tenha detetado.

  radio_comercial_home_group:
    alias: Radio Comercial home_group
    sequence:
      - service: media_player.volume_set
        data:
          entity_id: media_player.em_toda_a_casa
          volume_level: '0.20'
      - service: media_player.play_media
        data_template:
          entity_id: media_player.em_toda_a_casa
          media_content_id: Radio Comercial
          media_content_type: TUNEIN

Ao calcar na rádio comercial, as alexas emitem um sinal sonoro, mas depois não tocam a rádio. Mas se eu aumentar ou diminuir o volume, assume esse comando em todas as alexas em simultaneo

O teu grupo na Alexa, chama-se “em toda a casa”?

Tenta assim:

radio_comercial_em_toda_a_casa:
    alias: Radio Comercial em_toda_a_casa
    sequence:
      - service: media_player.volume_set
        data:
          entity_id: media_player.em_toda_a_casa
          volume_level: '0.20'
      - service: media_player.play_media
        data_template:
          entity_id: media_player.em_toda_a_casa
          media_content_id: Radio Comercial
          media_content_type: TUNEIN

Alteraste no card, para a entidade certa!?

Onde aparece o service, tens que ter assim tb:

        tap_action:
          action: call-service
          service: script.radio_comercial_em_toda_a_casa

Não funciona :grimacing:

Funciona tudo, aumentar o som, play e stop (caso peça por voz a Alexa para tocar uma tédio em toda a casa).

Mas se clicar numa rádio, ela não toca em toda a casa

No radio.yaml, também alteraste aqui, para o nome do teu grupo onde diz “home_group”, não me lembrei desta parte que é a que cria o sensor…

 - platform: template
    sensors:
      estacoes_radio_home_group:
        friendly_name: 'Estações radio home_group'
        value_template: >
          {%- if states.media_player.home_group.attributes.media_title == "Radio Comercial" %}
            Comercial home_group
          {% elif states.media_player.home_group.attributes.media_title == "Vodafone.fm" %}
            Vodafone home_group
          {% elif states.media_player.home_group.attributes.media_title == "M80 Rádio" %}
            M80 home_group
          {% elif states.media_player.home_group.attributes.media_title == "RFM" %}
            RFM home_group
          {% elif states.media_player.echo_dot_sala.attributes.media_title == "Cidade fm" %}
            CidadeFM
          {% elif states.media_player.echo_dot_sala.attributes.media_title == "TSF Radio Noticias" %}
            TSFRadioNoticias          
          {% elif states.media_player.echo_dot_sala.attributes.media_title == "Mega Hits" %}  
            MegaHits
          {% elif states.media_player.echo_dot_sala.attributes.media_title == "Radio Nova Era" %}
            NovaEra
          {% else %}
            Desligado
          {%- endif %}

Se continuar a não dar, vem aí o Prime Day da Amazon, é desta que compro 1 ou 2 companheiras para a minha Alexa… nessa altura testo e tento descobrir o que possa estar mal. Há-de ser um pormenor…

Mas verifica bem tanto no radio.yaml como no card, se alteraste tudo o que diz “home_group” para o teu grupo…

Infelizmente o grupo de speakers feitos na alexa não funciona igual a escolher um único device echo, vê aqui um work arround: https://github.com/custom-components/alexa_media_player/wiki#play-in-alexa-groups

Ou então, já que funciona através de comando de voz, pode também funcionar desta maneira:

Só experimentei ainda a 1a hipótese e funciona.

3 Curtiram

Fiz tudo como diz no tutorial, mas algumas das rádios não estão a funcionar. As rádios que não estão a funcionar no meu Home Assistant é a Nova Era, Mega Hits, Vodafone e a Cidade FM. Alguém sabe a razão?

estive há pouco a verificar e já vi o que está mal. O nome com que se chamam essas rádios mudou ligeiramente. Basta ir ao ficheiro “radio.yaml” nos Scripts, logo no início, alterar o seguinte:
“Mega-Hits” para “Mega Hits”,
“Rádio Vodafone.fm” para “Vodafone.fm”,
“Radio-Nova-Era” para “Nova Era s25161”,
“cidade FM” para “Cidade fm 916”.

Entretanto vou corrigir o ficheiro e fazer upload para o GitHub para quem não conseguir alterar. Testa e vê se já funcionam.

1 Curtiu

Está corrigido o ficheiro “radio.yaml” com todas as rádios a funcionar.

Testem e digam se funcionou.

Cumps

1 Curtiu

Boas
A Mega hits e Nova Era ainda não funciona.
Como consigo saber isso de outra rádio?

Bom dia.
Já consegui colocar a Megahits a funcionar.
Em vez de “Mega Hits” deve escrever-se
“Mega Hits Portugal”

1 Curtiu

Já encontrei como se deve colocar para chamar a Rádio Nova Era.
No ficheiro “radio.yaml” nos Scripts, logo no início, colocar seguinte:
“Radio Nova Era 1001”

Falta a RFM :slight_smile:
Não está a trabalhar

Boa noite,

A RFM está a funcionar, testei esta noite em experiências com um novo card e funciona bem.

Verifica se tens: “portugal rfm”

Cumps

No meu a RFM também funciona

1 Curtiu

Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade