Olá, vou explicar como ter o status de um sensor no google assistant pelo node-red!
Para melhor entendimento desse tutorial recomendo os tutoriais:
Tutorial básico para conhecer a interface do node-red!
Tutorial para conhecer o que é payload!
Para utilizar a Alexa é necessário ter integrado o Alexa Media Player!
Exemplo 01:
Como primeiro exemplo vou explicar com um sensor de temperatura para sabermos a temperatura!
Vamos precisar dos nodes:
1x inject
1x current state
1x call service
Vamos linkar os 3 nodes dessa forma!
O node current state vamos configurar colocando a entidade do sensor de temperatura!
O node call service vamos configurar com os dados do tts (text to speak) do google home mini/nest que queremos que saia o audio! No caso coloquei em entity id o google home mini do meu quarto.
Em data vamos preencher com esse código que está embaixo!
{
"message": "A temperatura agora é de {{payload}} graus. Tenha um ótimo dia."
}
Para a configuração com dispositivos Echo. A configuração vai ficar assim no call service:
E no data:
{
"data": {
"type": "announce",
"method": "all"
},
"title": "TESTE ALEXA",
"message": "<voice name=''>A temperatura agora é de {{payload}} graus. Tenha um ótimo dia.</voice>",
"target": [
"media_player.echo_flex_de_leandro"
]
}
Lembrando que o payload é a informação que vamos conseguir do nosso sensor de temperatura quando ativado o node current state.
Então, quando ativado o inject (clicado no quadradinho) o node current state com o sensor vai mandar o payload com a temperatura e o node call service vai pegar a informação e preencher a frase do data com a temperatura e a frase vai sair no google home mini!
Exemplo 02:
Vou usar como exemplo uma automação simples, abriu a porta o google avisa de porta aberta, fechou a porta o google avisa de porta fechada.
Vamos precisar dos nodes:
1x events:state
1x change
1x call service
No node events:state vamos configurar colocando o sensor de porta no entity id.
O payload que é enviado do sensor de porta é on (para porta aberta) e off (para porta fechada), então o node change vamos configurar dessa formar, para quando o payload (a mensagem) for on mudar para aberta e para quando o payload (a mensagem) for off mudar para fechada.
Para o node call service vou usar a mesma configuração do exemplo de cima, só o data que vai ser diferente.
Coloque esse código no data:
{
"message": "A porta da frente está {{payload}}."
}
Agora quando a porta for aberta o events:state vai transmitir o status, o node change vai mudar para o payload para completar a mensagem correta no data do call service e o google home mini/nest vai dizer a frase com o status da porta!
Espero ter ajudado!
Um abraço!