Esempi pratici di flow

Tre logiche Flow complete spiegate passo per passo: luce di cortesia notturna con sensore di movimento, termostato con isteresi in Javascript e allarme porta aperta con conteggio degli allarmi.

Tre logiche complete che combinano i nodi delle altre guide. Le trovi pronte nel progetto di esempio con i nomi che iniziano per Example. Per usarle nel tuo impianto sostituisci i nodi Dummy con i tuoi componenti (Componenti e Dummy).

Luce di cortesia notturna

Obiettivo: di notte il movimento in giardino accende la luce per due minuti; di giorno il movimento non fa nulla.

Flow Example - Night courtesy light: Sun, Night, Garden motion, Night AND motion, Courtesy timer, Garden light
Il flow Example - Night courtesy light

Nodo

Tipo

Configurazione

Ruolo

Sun

Astronomy Clock

Coordinates 45.55, 11.55

Acceso di giorno.

Night

NOT

—

Acceso di notte.

Garden motion

Switch (sensore)

—

Il sensore di movimento.

Night AND motion

AND

Due ingressi

Acceso solo con movimento di notte.

Courtesy timer

Stairs Light

Delay 120, Mode Pulse

Tiene accesa la luce 2 minuti dopo l'ultimo movimento.

Garden light

Switch (luce)

—

La luce del giardino.

Come funziona: di giorno Night è spento, quindi l'AND resta spento qualunque cosa faccia il sensore. Di notte ogni movimento accende l'AND; lo Stairs Light in modo Pulse accende la luce e riparte da 120 secondi a ogni nuovo movimento. Quando non c'è più movimento la luce si spegne da sola.

Varianti: aggiungi un terzo ingresso all'AND con una variabile Cortesia attiva per disattivare la funzione dall'app; usa un Range per accendere un dimmer al 30 % invece che al 100 %.

Termostato con isteresi

Obiettivo: comandare la valvola del riscaldamento con un'isteresi di ±0,5 °C attorno al setpoint, per evitare che la valvola si apra e chiuda continuamente.

Flow Example - Thermostat with hysteresis: Room temperature e Setpoint su un nodo Javascript Hysteresis verso Heating valve
Il flow Example - Thermostat with hysteresis

Il nodo Javascript Hysteresis ha due ingressi (temperatura su IN, setpoint su IN 1) e questo script:

var t = Number(inputs[0]), sp = Number(inputs[1]);
if (t <= sp - 0.5) setOutput(0, true);
if (t >= sp + 0.5) setOutput(0, false);

Come funziona: con setpoint 21 °C la valvola si apre quando la temperatura scende a 20,5 °C e si chiude quando sale a 21,5 °C. Tra 20,5 e 21,5 lo script non chiama setOutput, quindi la valvola resta com'era: è questa la "memoria" che fa l'isteresi. Cambiando il setpoint dall'app la logica si adegua subito.

Varianti: cambia 0.5 con l'ampiezza che vuoi; aggiungi un ingresso Finestra aperta e, se è acceso, chiama setOutput(0, false) prima di tutto il resto.

Allarme porta aperta con conteggio

Obiettivo: se la porta d'ingresso resta aperta più di un minuto scatta un allarme; ogni allarme viene contato.

Flow Example - Door left open: Front door open, Timer 1 minute, Door alarm, Trigger New alarm, Counter Alarms today, Alarm count
Il flow Example - Door left open

Nodo

Tipo

Configurazione

Ruolo

Front door open

Switch (contatto)

—

Il contatto della porta.

1 minute

Timer

Delay Up 60, Delay Down 0

Acceso solo dopo 60 secondi di porta aperta; si spegne subito alla chiusura.

Door alarm

Switch

—

L'allarme (sirena, notifica, spia nell'app).

New alarm

Trigger

Cycle Up

Un impulso per ogni nuovo allarme.

Count enabled

Switch

Acceso

Abilita il conteggio.

Alarms today

Counter

Up, Preset 0

Conta gli allarmi.

Alarm count

Number

—

Il numero di allarmi, da mostrare nell'app.

Come funziona: se la porta si richiude prima di un minuto il Timer annulla il ritardo e non succede nulla. Se resta aperta, dopo 60 secondi l'uscita del Timer accende l'allarme e, attraverso il Trigger, aggiunge 1 al contatore. Quando la porta si chiude l'allarme si spegne subito (Delay Down 0).

Varianti: collega all'ingresso Reset del Counter un impulso a mezzanotte (nodo Date/Hour con IF sull'ora) per avere davvero gli "allarmi di oggi"; metti un Repeat Command sull'allarme per ripetere la notifica.

Ultimo aggiornamento: