Diversas formas de enviar mensagens, tocar sons e músicas (inclusive mp3/wav/etc) localmente e online em dispositivos Echo/Alexa e PC pelo Node-Red!

Neste tutorial será mostrado como enviar mensagens, tocar sons e músicas (inclusive mp3/wav/etc) localmente e online em dispositivos Echo/Alexa e PC pelo Node-Red.

Foram utilizadas configurações somente para Echo porque já existe tutorial para utilizar em dispositivo Google, mas, ainda não havia principalmente para tocar mp3 em dispositivo Amazon.

1) Mensagens com Node “call service” em dispositivos Echo:

Esta é a opção mais usada, como por exemplo, emitir avisos pela Alexa na execução de automações.
Obs.: já existe tutorial similar no Forum para este item 1.

a) Modo 1:

Nodes utilizados:

01 node “inject”
01 node “call service”

image

Configuração do “call service” e “Data” do “call service”:

{
    "data": {
        "type": "announce",
        "method": "all"
    },
    "title": "Luz da Garagem",
    "message": "Luz da Garagem ligada automaticamente no horário do pôr do sol",
    "target": [
        "alexa_media_echo_dot_4_sala"
    ]
}

b) Modo 2:

Configuração do “Data” do “call service”:

{
    "message": "Luz da Garagem ligada automaticamente no horário do pôr do sol",
    "data": {
        "type": "tts"
    }
}

Obs.: A configuração do “call service” é igual ao anterior. Altera somente o “Data”.

2) Áudios da Biblioteca de sons Alexa Skills Kit com node “call service” em dispositivos Echo:

Nodes utilizados:

01 node “inject”
01 node “call service”

image

Configuração do “call service” e “Data” do “call service”:

a) Áudio exemplo 01 no “Data”:

{
  "entity_id": "media_player.echo_show_8_wilton",
  "media_content_id": "amzn_sfx_rooster_crow_01",
  "media_content_type": "sound"
}

b) Áudio exemplo 02 no “Data”:

{
  "entity_id": "media_player.echo_show_8_wilton",
  "media_content_id": "amzn_sfx_scifi_alarm_04",
  "media_content_type": "sound"
}

Os sons da Biblioteca de sons Alexa Skills Kit, para preenchimento no “media_content_id” são encontradas no link:

Alexa Skills Kit Sound Library | Alexa Skills Kit

3) Arquivos “mp3”, “wav”, etc, localmente com nodes “file in” e “audio out” ou “play audio” (node-red-contrib-play-audio):

Instale o node-red-contrib-play-audio em “Configurações” (menu sanduíche), “Manage palette”, “Install”:

image

Nodes utilizados:

01 inject
01 file in
01 play audio ou audio out

Ou:

Configure o node “file in”:

image

O “Filename” deve ser configurado com o caminho e nome do arquivo.

No exemplo: “/config/www/sounds/08 God Will Make a Way.mp3”

Utilizo Integração do Node-Red no Home Assistant instalado em VM no Windows, então esta configuração do caminho pode alterar de acordo com a instalação de cada um.

Os arquivos a serem tocados (mp3, wav, etc) devem ser copiados para o diretório de áudios do seu “config” no Home Assistant. Se não tiver este diretório deve cria-lo.

Configure o node “play audio” ou o node “audio out”:

image

Ou:

image

A voz TTS não necessariamente precisa ser a voz do Google português do Brasil.

Observações:

a) Utilizando o node “play audio” há a opção de parar tocado clicando no quadradinho à frente e no node “audio out” não há esta opção, mas há opção de selecionar para tocar o áudio quando a janela não estiver em foco.

b) O áudio tocará em todas as máquinas onde houver instância do Node-Red aberta quando utilizando o “play audio” e somente na máquina em uso utilizando o “audio out”.

b) Se não aparecer voz TTS na configuração da voz TTS deverá fazer esta configuração.

c) Diversos formatos de arquivos podem ser tocados. Utilizei até o momento somente “mp3” e “wav”.

4) Arquivos “mp3” online com nodes “http request” e “play audio” (node-red-contrib-play-audio) [ou “audio out” conforme anterior]:

Se ainda não estiver instalado, instale o “node-red-contrib-play-audio” conforme informações anteriores (ou utilize o “audio out”).

Nodes utilizados:

01 inject
01 http request
01 play audio (ou audio out)

image

Configure o node “http request”:

O campo “URL” deve ser configurado com a url e nome do arquivo.

No exemplo: https://www.thesoundarchive.com/email/mp_grail.mp3

Configure o node “play audio”:

image

Observações:

Ver observações do item anterior.

Observações gerais:

  1. Há outras opções para tocar sons e músicas, utilizando outros nodes, porém, exigem mais configurações e/ou instalações, ficando para algum outro tutorial.

  2. Foram utilizadas configurações somente para Echo porque já existe tutorial para utilizar o Google Home e ainda não havia, principalmente para tocar mp3/wav, em Echo (itens 3 e 4).

  3. A partir dos exemplos poderá utilizá-los em alguma automação ou criar um dashboard no Node-Red para controle das músicas.

Espero que seja útil! :sunglasses:

7 curtidas

Não consegui fazer os Áudios da Biblioteca de sons Alexa Skills Kit com node “call service” em dispositivos Echo: funcnionarem.

Sabe dizer se alguma coisa foi alterada?

Testei aqui e está funcionando normal.
Refaça a configuração conforme o tutorial e não esqueça de instalar o node auxiliar.

1 curtida

Ótimo tutorial, meu amigo.
Gostaria de saber algo com relação aos áudios online… eu consegui capturar o mp3 de podcasts que gosto pelo multiscrape daí o link fica em um sensor… há como usar a informação desse sensor para pegar o link do áudio e colocar naquele node http request que você mostrou? Grato

Não sei se entendi direito, mas qualquer coisa informa aí.
Este link que você utiliza no Multiscrape não tem como você colocá-lo diretamente no nó “http request”? Senão estará fazendo trabalho duplicado, pegando o link no sensor e após este mesmo link para o “http request”.
Caso necessite realmente pegar o link pelo sensor crie um fluxo com um nó “state” e um “debug” configurando esse último com a opção “complete message” e verifique nas mensagens de debug o path do link e utilize como URL.
De qualquer forma precisará obter antes este link ou desse sensor, se ele já informar, ou de alguma entidade relacionada a automação que já tem e que indica este link.

1 curtida

sim, não dá para colocar diretamente pq ele muda quando atualiza a página lá… aí não queria colocar manualmente…
quando eu conecto o current state no play audio ela só lê o link

Entendi.
Após o seu sensor coloque um nó “change”, e nas regras mude para “Set” e no campo “msg” coloque “url” e no “value”, também em “msg” coloque “payload”.
Em seguida ligue o nó “change” no “http request” e este no “play audio”.
Deve funcionar assim. Teste sem o “change” também.
Utilize nó “debug” nas saídas para verificar.
Não vou estar no PC agora.
Qualquer coisa fala aí.

1 curtida

Obg. Irei tentar aqui

Tentei daquele modo e não deu tbm… mas parece que nem colocando so o link mp3 não foi… fica só esse request um bom tempo aqui…
será que tem a ver com o tamanho do áudio?

Veja abaixo um exemplo que corresponde ao que pretende:

image

O inject, no caso, é o seu sensor, que já contém a URL.

Ligue no “change”, configurado dessa forma:

image

Np “http request” configure assim:

E finalmente ligue no “play audio”.

1 curtida

Qual é esse node auxiliar que vc se refere, pois no tutorial tem apenas o Inject e o Call Service…

Amigo, obrigado pelo tutorial, agora estou com uma dúvida, não consegui fazer funcionar para executar o arquivo mp3 localmente, pois não vi onde seta qual dispositivo echo o som do arquivo mp3 vai sair.

Desde já, agradeço

Na realidade o som local, nesse tipo de configuração, será reproduzido no dispositivo de instação do HA.
Em meu caso, por exemplo, utilizo um mini PC, então o som é enviado para a saída de áudio desse mini PC.
Então, o som localmente não é reproduzido na Echo.

Obrigado amigo pelo feedback, só o Google nest mini é capaz de fazer isso, ainda bem que tenho um aqui

1 curtida

Haaaa… Agora eu tb entendi, pois já estou a tempos tentando fazer um mp3 ser reproduzido localmente em um determinado dispositivo echo e não consegui de jeito nenhum.

Se alguém souber como fazer, posta ai pra gente, pois irá ajudar muita gente.

1 curtida