O Node-Red (NR) e o HA integram-se muito bem pelo que é possível utilizar o HA para controlar alguns parâmetros nas flows no NR.
Neste exemplo vamos utilizar uma flow de NR que liga e desliga uma lâmpada, sendo a hora de ligar e desligar controladas pela interface do HA. É necessária também a instalação do node Schedex que podem encontrar em https://flows.nodered.org/node/node-red-contrib-schedex
No final iremos ter a seguinte flow:
Home Assistant
Do lado do Home Assistant deverá ser colocado o seguinte nos respectivos ficheiros ou package:
Script:
input_datetime:
#### START
time_inicio_modo_nocturno_cozinha:
name: 'Inicio Modo Nocturno'
has_date: false
has_time: true
#### STOP
time_fim_modo_nocturno_cozinha:
name: 'Fim Modo Nocturno'
has_date: false
has_time: true
Input Boolean:
input_boolean:
#### MANUAL MODE
lp_cozinha_manual:
name: Luzes em Manual
icon: mdi:toggle-switch
Relativamente à lâmpada podem utilizar uma que já tenham configurada no vosso HA. Não esqueçam de incluir os input_datetime
e input_boolean
na vossa interface do HA (com Lovelace é muito fácil) e por fim reiniciar o sistema.
Node-Red
O node Schedex é bastante flexível e aceita vários parâmetros à entrada para configuração, podendo ser controlados externamente o parâmetros para ligar, desligar, offset on, offset off, on time, off time entre muitos outros.
Comecem por arrastar os nodes para criar a vossa flow. Neste caso precisam de 2 Poll State
, 2 Template
, 1 Trigger: State
, 1 Schedex
e 1 Call Service
. Liguem-nos conforme está na primeira imagem. O node Schedex irá pedir autorização para saber a vossa localização para poder saber as horas no local e calcular as horas do nascer e pôr-do-sol.
Vamos então iniciar a configuração dos nodes!
-
Poll State
Night Mode ON
-
Poll State
Night Mode OFF
-
Template
Set Night Mode ON
-
Template
Set Night Mode OFF
-
Trigger: State
Manual Override
Schedex
Call Service
Podem copiar toda a flow aqui:
Descrição
A flow é muito simples e fácil de explicar. No HA têm agora dois input_datetime
onde podem introduzir a hore de ligar e desligar da luz e também um input_boolean
para poderem ligar e desligar as luzes de forma manual sem terem de esperar pela hora de ligar (ou desligar). Ao alterarem a hora de inicio ou fim no HA ao fim de 10 segundos (podem alterar este valor) a alteração passa para o NR e como a opção “Output On Changed” está activa nos nodes Poll State
é de imediato injectada no Schedex.
Quando o Schedex recebe um comando manual tem uma particularidade, o comando recebido não é “eterno”. Ou seja, se estiver a luz ligada e vocês quiserem desligar em manual a luz não vai ficar sempre desligada, quando chegar a próxima hora de ligar vai ignorar o comando manual e ligar a luz.
Os nodes Template
usam os valores recebidos pelos input_datetime
e formatam esse valor para alimentar a entrada do Schedex com a hora de ligar e desligar, enquanto o Trigger: State
usa o valor do input_boolean
para forçar o Schedex a ligar/desligar fora das horas configuradas.
O node Schedex utiliza os valores introduzidos pelos nodes Template
para enviar o sinal de ligar ou desligar ao node Call Service
, qua não é mais do que um simples “interruptor”.
Como vêm o NR não é nenhum bicho-de-sete-cabeças e com o tempo torna-se bastante fácil de utilizar.
Se usam o NR e têm flows para o HA partilhem-nos connosco na Categoria Node-Red!