Reconhecimento de voz Alexa Media + Node Red

Vou mostrar aqui uma integração que eu fiz com o Alexa Media + Node Red.

A ideia aqui é mostrar a parte de segurança dessa integração, onde permite que tenhamos mais segurança ao acionar a nossa “skill personalizada” ou qualquer outra que criemos… Não achei isso em lugar nenhum… e se tratando de segurança achei um pouco falho o Alexa Media Player…

Trata-se da skill prosseguir com reconhecimento de voz. Estou usando já algumas semanas e não tive nenhum problema.

Para fazer essa integração é necessário ter instalado
ALEXA MEDIA PLAYER
Alexa Actions - Batendo papo com a Alexa! - #5 por douglas - Tutoriais - Fórum Home Assistant Brasil

Dado que todas as integrações foram realizadas, vamos primeiro habilitar na “SKILL PERSONALIZADA” o reconhecimento de voz.

HABILITAR ID DA VOZ NA SUA SKILL
Para fazer isso entre em sua “SKILL PERSONALIZADA” → “PERMISSIONS” habilite a opção “SKILLS PERSONALIZATION” via https://developer.amazon.com/

Para capturar o ID da sua voz precisamos criar um nó no NODE RED do tipo “EVENT ALL” para escutar os eventos do tipo “alexa_actionable_notification” amarrado com um nó do tipo “DEBUG”
image

Precisamos que seja trigado o evento, e vamos ter uma saída parecida com essa:

O dado q nos importa agora é a saída o valor do campo “payload.event.event_person_id”.

Capture o ID de todas as pessoas da sua casa (OBS: Uma dica, fale varias vezes em diferentes cômodos da sua casa, pois para uma mesma pessoa pode ter 2 IDS… eu por exemplo tenho 3 ids um que falo da sala e outro do quarto hehehehehe)

UFA até aqui tudo bem?

SECRETS.YAML
Agora vamos pegar esses Ids e ir no secrets.yaml e colocar lá…

Reinicie seu H.A…
Agora vamos voltar no NODE RED…

Vamos primeiro criar um SUBFLOW para capturar as variáveis do secrets… para isso vou deixar um tutorial aqui…
Eu criei um SUBFLOW… fica mais fácil… ai fica a preferencia de cada um…

Estamos quase chegando galera…

CONFIGURANDO CONFORME SUA NECESSIDADE

No meu caso galera… a skill que eu tenho eu falo “Alexa me ajude” e ela me pergunta o que eu quero… e nessa eu vou passando vários comandos para Alexa e ela executa para mim até eu falo “não quero mais”… algo parecido com essa automação que achei na internet…

Então para a minha necessidade, eu criei um Subflow que:
1 – Carrega os Secrets
2 – Fica ouvindo todos eventos da alexa
3 – Toda resposta diferente de NONE (ou seja SIM, NÃO ou SELECT)
4 – Função se eu eu tenho permissão
5 – Switch para CONTINUAR O FLUXO ou DAR A MENSAGEM DIZENDO Q NÃO TENHO ACESSO A SKILL

SUBFLOW

FLOW PRINCIPAL

Como disse, isso depende de cada aplicação e necessidade… o core do negocio da segurança é a ideia… vou deixar o código da função (item 4 descrito um pouco acima) VERIFICA SE TEM PERMISSÃO

var personId = msg.payload.event.event_person_id;
for (let item of global.get(“event_person_id”)) {
if(item == personId)
{
msg.permissao = “true”;
}
}
return msg;

Espero que tenha contribuído e ajudado alguem do fórum galera…

3 Likes

Fiz esse tutorial, aqui em casa temos 2 ids, o meu e o da minha esposa. porém todas vozes de homem que falam ela reconhece como sendo eu e todas as vozes de mulher ela reconhece como sendo a minha esposa.

Que estranho, Aqui em casa somos em 2 ids tbm… testei com outras pessoas e não tive problemas… até peguei ID’s da minha mãe e sogra depois para colocar certas funcionalidades…

O que de fato achei estranho na Alexa é que eu por exemplo tenho 3 Ids…

olá.

coloquei dentro do config.yaml.
mas tem erros

@luisfpadovani e possivel voce compartilha seu skill pq a minha eu dou comando ele ja para de execulta e desliga.

Desculpe a pergunta leiga, mas não entendi como que eu configuro para qual ID é de cada voz aqui em casa.
Jogo no secrets.yaml mas se eu simplesmente jogar lá, como faço para fazer a identificação?