Neste exemplo vamos utilizar um sensor de movimento para acender uma luz e apagá-la se não existir movimento durante 2 minutos. A luz só deve acender entre as 21:00 e as 08:45
O primeiro node é um mqtt input uma vez que o sensor de movimento é mqtt
Se ainda não usaram nenhum node mqtt, têm de configurar o server. Basta uma vez, e depois fica gravado para todos os que utilizarem a seguir.
Este node vai escutar o tópico zigbee2mqtt/motion_cozinha, e enviar o payload correspondente para o flow
De seguida o horário que desejamos com um time range node
json node : Este é importante para extrair o payload de forma a podermos no node seguinte isolar a informação
Switch node : Aqui vamos escolher a property do payload que contém a informação que queremos
call service node : Vai chamar o serviço ‘turn_on’ para a _light.kitchen_stripe
Fazemos deploy do Flow
E neste momento se activarmos o sensor a luz light.kitchen_stripe vai acender.
Para a fazermos apagar, vamos duplicar o call service node (Podem fazer copy&paste) e alterar o Service para _turn_off. Alterem também o Name para não se baralharem.
Ficamos com isto:
stoptimer node: vamos colocar um stoptimer para 2 minutos, que vai arrancar cada vez que é detetado o movimento, e vai ligar ao _light_turn_off
Cada vez que é detetado movimento, e partindo do princípio que nos encontramos dentro do horário permitido, vai ser enviada uma mensagem ao _light.kitchen_on e ao 2_minute_timer. Quando o timer acabar, envia a mensagem ao _light.kitchen_off e desliga a luz. Sempre que existir movimento, a mensagem que chega ao timer faz com que este faça reset e comece de novo, o que quer dizer que desde que exista movimento a cada 1m e 59s, a luz mantêm-se acesa.
Não se esqueçam que cada vez que alteram alguma coisa, têm de fazer deploy para que seja assumida a alteração