Integração da Alexa com o Assistente de voz do Home assistant

Pessoal, depois de procurar e não encontrar nada parecido, criei por conta própria uma SKILL para a Alexa que integra o Home Assistant Assist Conversation com a Alexa. Agora, podemos usar a Alexa diretamente com o Home Assistant, emitindo comandos em linguagem natural. Esses comandos serão analisados e respondidos pelo Assist configurado no Home Assistant.

No meu caso, ativei o GPT-4 da OpenAI no Home Assistant, e já estava funcionando 100% localmente e no aplicativo do Home Assistant. Porém, eu queria que a Alexa pudesse fazer o mesmo, diretamente. Com essa skill, a Alexa recebe a solicitação por voz, converte em texto, envia para o Home Assistant usando a API Conversation, que executará o comando necessário, e retorna o resultado em texto para a Alexa, que então lê o resultado para nós.

Ex.: “Alexa, peça ao modo casa para listar as luzes acesas.”

Ficou muito interessante e funcional! Não sei se já existia algo (skill) similar pronto antes, mas estou animado para compartilhar com vocês.

O endereço para acessar e configurar a Skill está em GitHub - rodrigoscoelho/skill-alexa-chatgpt4-assistpipeline-HomeAssistant: Skill para ser usado no Alexa que permite conversar usando os Conversation Assist do Home Assistant..

Espero que gostem e que seja útil para muitos de vocês!

13 curtidas

Rodrigo. Parabens pela iniciativa. Estava justamente procurando uma skill dessas e achei seu post. Vou testar em breve. Um forte abraço e mais uma vez obrigado por compartilhar

1 curtida

Muito bom.
Parabéns pelo trabalho.
Vou testar.

Mas uma dúvida, porque “Modo casa” e não “Home Assistant” ou “Assistente doméstica” traduzindo literalmente e tal, não soaria mais natural falar para algo como: “Alexa, peça ao Home Assistant para listar as luzes acesas.”?

Muito bom!
Estou utilizando e funciona perfeitamente.

1 curtida

Já mudei no código do Git Hub, mas isso é personalizável facilmente pelo usuário.

cara que sensacional isso, funcionando perfeitamente aqui e ficou bom demais

Boa noite a todos, tem algum vídeo no youtube ensinando a configurar ?

parabéns pelo belo trabalho, funcionando perfeitamente.

o que seria esse: * home_assistant_url: URL da API de conversação do seu Home Assistant (incluindo a porta padrão 8123).

onde pego esse dado?

Essa é a URL externa do seu home assistant, fica algo como:

https://seuhomeassistant.seudominio.com.br/api/conversation/process

Mais ou menos assim, obviamente, seu home assistant precisa estar exposto pra Internet!

Um ponto de atenção, no tutorial do Rodrigo no Github, ele ensina a obter o agent_id de uma forma que acho que não funciona mais nas versões mais recentes do Home Assistant, aí uma forma que encontrei de obter o agent_id foi a seguinte:

Ir em "Ferramentas de desenvolvedor > Ações:

Depois que preencher o formulário e executar a ação, altere para o modo YAML:

Espero que tenha ajudado!

Parabéns, ficou muito bom, consegui aplicar a meu HA, porém após executar o comando de alguma rotina, responde em inglês, o que faltou fazer?

Fala gente, preciso de uma ajudinha. eu fiz tudo como esta no tutorial mas sempre ao testar e mandar executar um comando ela retorna erro de solicitação. segue abaixo meu arquivo de configuração.
home_assistant_url=https://#####.duckdns.org:8443/api/conversation/process
home_assistant_token=token_home_assistant
home_assistant_agent_id=conversation.google_generative_ai
home_assistant_language=pt-BR
home_assistant_room_recognition=False
home_assistant_dashboard=lovelace
home_assistant_kioskmode=False

a porta esta 8443, mas, ja tentei com 8123, ja tentei sem porta e nada. Se alguem puder me ajudar eu ficaria muito grato.

Excelente trabalho!
Para funcionar no meu ambiente, alterei o home_assistant_url, removendo o caminho “api/conversation/process” e deixando apenas o host do HA.
Tenho uma sugestão também, seria legal alterar a voz da alexa quando ativar o modo.

Aqui também! Conseguiu resolver?

Boa noite

Acabei de seguir o tutorial aqui. Qualquer comando que eu dou a alexa responde: Desculpe, não consegui processar sua solicitação.

Alguem já passou por isso e poderia me ajudar?

Boa tarde a todos!

Encontrei o problema, e vou compartilhar como fiz para caso aconteça com mais alguém.

Primeiro, observei o lambda_function.py e vi que tem várias linhas com o comando logger.info (obrigado @rodrigocoelho , me salvou).
Encontrei o local onde os logs ficam salvos. Basta clicar neste botão CloudWatch Logs.

Feito isso, rolem a tela e cliquem no link que tem a data e hora que ocorreu o erro. (No meu caso, 2025-03-16 10:54:30 (UTC))

Na próxima tela vai aparecer uma lista de respostas dos comandos. No meu caso, a linha com erro está sinalizada de amarelo abaixo. Cliquem na setinha ao lado dela.

No meu caso em especifico, o erro foi o que está grifado de amarelo na tela abaixo ([SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version):

Agora, como eu fiz pra resolver…
Meu domínio é gerenciado pelo cloudflare. Acessei a pagina de gerenciamento do domínio e fui na opção SSL/TLS, depois em Edge Certificates. Rolei a pagina até Minimun TLS Version e estava marcado TLS 1.3. Alterei pra TLS 1.0 e funcionou certinho.

Espero com isso enriquecer a discussão e ajudar quem mais tiver o mesmo problema.

Outra coisa…

No meu caso eu tive que retirar o “api/conversation/process” também.