Node-RED – Criando a primeira automação

Já instalou o NR? Já entendeu um pouco como funciona? Que tal começar a criar a sua primeira automação?

Vamos passar um exemplo para apagar a luz após a mesma ficar ligada por 60 minutos direto.

Para isso você precisará que seu HA esteja com o NR instalado e tenha uma luz integrada com o seu HA (seja um switch ou light).

Para iniciar basta você arrastar um nó (node) para o seu flow. Como queremos que a automação inicie de uma ação onde a luz fica ligada, vamos utilizar o node “ events state “.

Para configurar o nó que você acabou de arrastar, clique duas vezes sobre o nó.

Quando você abre a configuração do nó, percebe que tem alguns campos que você pode preencher. Para cada nó, esse painel de configuração é diferente, com mais ou menos campos, etc.

Percebe-se também que muitos nós tem o campo “Server”. Para quem instalou o NR pelo Add-on, automaticamente o NR já configura o servidor Home Assistant, sem você precisar realizar nenhum tipo de configuração. Com isso, você pode acessar todos os seus dispositivos ( switchs, light, scripts, inputs, binary_sensors, sensors, entre outros ).

Mas você pode adicionar outros servidores e inclusive um outro Home Assistant, por exemplo: Se você tem um HA configurado em sua casa e outro HA configurado no seu escritório você pode criar automações entre eles no mesmo ambiente de desenvolvimento do Node-RED,

Mas a intensão aqui nesse momento não é essa, então vamos continuar com a nossa automação.
Ainda na configuração do node, você tem o campo “ Entity ID “, nesse campo você vai colocar a sua luz configurada no seu HA.

Após você definir o seu dispostivo no campo Entity ID, você pode dar um nome para o nó para poder identificar melhor dentro do seu flow, e depois clicar em Done .

O resultado deve ser conforme a imagem abaixo.

Agora vamos configurar o time que a luz ficará acesa e irá desligar após ultrapassar esse time definido. Para isso vamos usar o node “ stoptimer ” que fica dentro do tipo function.

Arraste o nó para dentro do flow, e clique duas vezes para configurar assim como o nó anterior para poder definir o tempo que será de 60 minutos.

Após configurar, clique em Done. Agora temos o nó da luz, temos o nós do tempo que queremos que a luz apague quando ultrapassar esse tempo.

Agora precisamos do nó que verifique se a luz foi ligada ou desligada. E para isso vamos utilizar o nó “ switch ” que serve como um IF. Com ele você pode configurar para receber várias entradas, porém na luz, as entradas são apenas “ on ” e “ off “, por isso vamos configurar apenas essas duas entradas.

Com o nó switch já dentro do flow, vamos configurar. Clique duas vezes no nó e defina os valores que o nó irá receber, nesse caso “ on ” e “ off “, e além disso, coloque um nome para o nó para facilmente identificar para que serve quando você visualizar. O resultado deve ser assim:

Agora que já configuramos o nó, que tal realizarmos um teste com o debug ? Arraste o nó debug e ligue os nós um nos outros, mude o nó stoptimer para 5 segundos para podermos realizar o teste, se não você terá que aguardar 60 minutos para concluir o teste.

Para esse caso, vamos testar quando ligar a luz. Por isso o nó switch (on ou off) foi ligado na primeira saída com o nó de debug, pois a primeira saída é a saída ON conforme configuramos no nó. Portando no debug irá mostrar apenas quando a luz mudar o status para ON.

Após realizar o procedimento de ligar um nó no outro e colocar o debug, vamos testar. Para isso pressione o botão Deploy . A partir do momento que seus nós mostrar “ connected ” após clicar em deploy, quer dizer que já está funcionando e pode inicializar os testes/fluxos.

Para poder realizar o teste, ligue a luz que você configurou no node. Você pode ligar tanto pelo HA quanto pelo dispositivo físico. Após ligar a luz, depois de 5 segundos ( tempo configurado no nó timer ) o debug receberá o resultado, que deve ser semelhante a imagem abaixo:

Se você apagar a luz, o nó debug não deve receber nenhuma informação, a não ser que você ligue a segunda saída do nó switch que é de valor off.

OK, se você chegou até aqui está indo bem. Agora vamos apagar o nó debug ou tirar a ligação caso você queira utilizar esse nó mais para frente. Para isso clique no nó e clique em delete no teclado, ou clique na linha de ligação e clique em delete .

Vamos agora configurar para desligar a luz. Primeiro, vamos manter o nó timer com 5 segundos. Então após 5 segundos com a luz ligada, deve apagar automaticamente.

Para isso vamos usar o node “ call service ” do home assistant.

Clique duas vezes sobre o nó para poder configurar. Você irá perceber que esse nó terá muito mais campos para preencher.

  • Name: É o nome que você dará para poder visualizar no seu flow. Nesse campo você pode aplicar o nome que preferir.
  • Server: Já vem preenchido Home Assistant automaticamente, você não precisa fazer nada.
  • Domain: É o domínio do serviço que você irá chamar para executar a ação. O que queremos fazer? Apagar a luz. Qual o domínio da sua luz? light ou switch? Coloque conforme está configurado no seu HA.
  • Service: O serviço que você vai querer executar. No nosso caso é apagar a luz, então é turn_off.
  • Entity id: Entidade, ainda no nosso exemplo o que queremos é desligar é a lâmpada configurada para apagar após 60 minutos. Então nesse caso é a mesma entidade configurada no primeiro node “events states”. No meu exemplo é a luz da cozinha, então ficará: “ light.luz_cozinha “. Perceba que colocará uma virgula, isso porque você pode colocar mais de uma entidade.
  • Data: É o campo que utiliza as informações no formado JSON, Porém para o nosso exemplo não vamos precisar preencher esse campo.

O resultado deve ser o seguinte:

Após isso, você deve ligar o último nó no switch na saída ON e pronto. Sua automação estará concluída. Basta agora alterar o stoptimer para 60 minutos ou para o tempo que você desejar. Você pode colocar 5 ou 10 segundos para poder testar, basta alterar as informações sempre que desejar, e clicar em deploy, esperar seus nodes ficarem com connected e testar.

Resultado final será:

Se você deseja saber mais sobre Node-RED ou alguma automação especifica, deixe seu comentário.

1 Curtida

Pessoal, parabéns pela iniciativa! Muito bom ver o envolvimento de todos! :slight_smile:

Vamos a uma dúvida que eu tenho enfrentado… Como eu poderia iniciar um fluxo, baseado no valor de um atributo de uma entidade e não apenas no Status? No exemplo ai do tutorial, poderia ser baseado no Brilho da Lâmpada, caso ela tenha essa opção.

No meu cenário, gostaria de iniciar o fluxo baseado na Elevação do Sol.

Alguem já fez ou sabe como fazer?

Fala Thomé, na paz?

Seguinte…

Para atender sua necessidade, primeiro tem-se que criar um SENSOR:
sensors:

  • platform: template
    sensors:
    sun_elevation:
    friendly_name: Elevação do Sol
    value_template: “{{ state_attr(‘sun.sun’, ‘elevation’) }}”

Após reiniciar o HA para o SENSOR passar a existir, você vai no NODE-RED e cria o seguinte fluxo:
image

image

Veja um teste que fiz “cuspindo” a elevação conforme o tempo passa (e a Terra rotaciona)…
image

Boa sorte aí e espero que sua automação brilhe! :sunny::sunny::sunny:

Abraço,
José Henrique.

Quando se trata de node-red, praticamente tudo é possível hehe. E tem um node mágico que é o debug. Ou vou dar um exemplo com a luz que tem o brilho como atributo por exemplo.

Se você colocar um nó de debug e colocar o output do nó como “complete msg object” após um nó da luz, vai perceber que quando ligar a luz, aparece várias informações, e uma delas é atributo brilho, conforme a imagem abaixo:
image

Sendo assim, é possível receber essa informação em um nó como um switch e realizar ação conforme seu valor, você só tem que percorrer o caminho da mensagem para receber o valor do atributo que você deseja, nesse meu exemplo ficaria assim, ao invés de payload:

data.new_state.attributes.brightness

Poderia então colocar isso no switch, e fazer as comparações.

image

2 Curtidas

Obrigado Srs!! Vou aproveitar ambas as soluções!!! :grinning:

2 Curtidas

Olá Douglas, depois de tudo configurado e funcionando, tem como colocar um botão em um cartão para acionar essa automação? Ou teria que desligar o último nó para desativar? Quando não queremos usar.

Desligar um nó. Ou criar um input boolean, só ativa essa automação quando o input estiver ON, ae vc pode controlar dentro de um card.