
Per usare Node-RED su iHost (ma è similare anche per Home Assistant e su un PC), ci sono alcuni semplici passaggi da fare spiegati in questa pagina.
To use Node-RED on iHost there are a few simple steps to follow, explained on this page.
- Variabili Locali, Globali, Persistenti, ecc, vedere qui e qui
- INJECT
- DEBUG
- CHANGE
- FUNCTION
- Complete, Status ed Error, vedere questo video
- Link, InOut e Call per realizzare chiamate a funzione, vedere questo video
- SWITCH per creare degli if come in un normale linguaggio di programmazione
- Range utile per effettuare delle Proporzioni, vedi questo video.
- TEMPLATE utile per messaggi personalizzati complessi, vedi questo video.
- Delay utile per introdurre un ritardo o filtrare messaggi troppo frequenti, vedi questo video.
- Trigger utile avviare un’azione e anche fermala dopo un certo tempo o semplicemente usarlo come timer, vedi questo video.
- Realizzare un semplice CONTATORE, vedi questo video.
- EZTIMER per creare ad esempio un avviso se è Giorno o Notte
- Usa Node-RED sul PC per connetterlo a Shelly Cloud (i tuoi dispositivi Shelly) – Use Node-RED on PC to connect it with Shelly Cloud (your shelly devices)
- Riferimenti – Resources
NOTE:
payload – si riferisce normalmente al messaggio in ingresso a un nodo
topic – è l’argomento
msg – è il messaggio in uscita dal nodo
INJECT

INJECT viene usato per iniettare un PayLoad sia manualmente che in automatico in un flusso di controllo che creiamo.
qando si inserisce inject in un flow prende la forma sotto, timestamp.

Aprendo inject lo si potrà configurare decidendo sia il payload, ovvero come il messaggio verrà inviato che il topic ovvero che cosa verrà inviato.
Vedere sotto.

Si può anche usare inject per inviare ciclicamente un messaggio, la configurazione sotto invia ciclicamente ogni 5 secondi il payload che contiene START.

La visualizzazione cambia e viene mostrata come sotto per indicare che è un’azione ripetuta automaticamente con la cadenza che abbiamo selezionato.

Clicca qui per tornare al menù delle funzioni.
DEBUG

DEBUG è molto importante per vedere in un punto che tipo di messaggio sta circolando.
Clicca qui per tornare al menù delle funzioni.
CHANGE

Quando viene cercato change compare come sopra ma quando viene inserito in un flow compare come sotto.
Vedere questo video in Italiano per spiegazioni più approfondite.

change può essere usato in casi semplici al posto di function per modificare il payload in uscita di una funzione.
Si possono inserire più Rules ovvero regole che creeranno comportamenti diversi sul payload d’usita.
Nell’esempio sotto il payload in uscita sarà associato (Set) al valore della variabile del flow chiamata Temp.

Altro esempio è questo sotto al payload in ingresso viene aggiunto world! e quindi l’uscita ci darà il payload originale seguito da world!

Per un uso reale vedere l’esempio di FUNCTION.
Clicca qui per tornare al menù delle funzioni.
FUNCTION

FUNCTION ci permette di fare innumerevoli cose, definire variabili globali, locali o a livello del singolo nodo, ancora possiamo generare numeri random, inserire pezzi di codice in formato similare al java script, ecc.
Sotto vi è un esempio e qui vi è un video in Italiano.

Cliccando due volte sul box: function 1
ci comparirà la pagina sotto dove la riga 1 e 2 sono vuote e le riempiremo come mostrato sotto.

- Riga 1) Viene definita una variabile “Temp” che vale solo all’interno della pagina dove ci troviamo anche detta FLOW.
flow.set(“Temp“, 23); - Riga 2) Viene definita una variabile globale “Ora“
global.set(“Ora“, 12);
Ora apriamo: set msg.payload
e siccome nella finestra di debug 1 vogliamo vedere il valore che abbiamo assegnato a Temp dovremo compilare la pagina come mostrato sotto.
In pratica si assegna al payload in uscita il valore Temp, la scelta si fa premendo sulla freccetta (rivolta verso il basso) dopo la scritta: to the value.

Ora se clicchiamo sul pulsante di inject

che nel flow viene nominato come timestamp (vedere sotto)

in uscita (finestra di debug a sinistra in alto)

vedremo il valore che abbiamo assegnato a Temp ovvero 23.

Esempi di codice da usare in function
Ecco come generare un numero random intero.

Modulo di un numero per sapere se è PARI o DISPARI

Clicca qui per tornare al menù delle funzioni.
SWITCH

Questo nodo è molto utile per ricreare la funzione if di un normale programma di programmazione.
La cosa si può fare usando l’ingresso (payload) sia su stringhe che su variabili, ecc.
Vedere questo video (in Italiano) per dettagli più approfonditi.
Un esempio pratico è riportato qui sotto dove viene generato un numero random e viene detto se è PARI o DISPARI.

Più in dettaglio qui sotto ci sono le varie configurazioni.
In function 2 viene generato il numero random RND.

In function 3 viene estratto il MODULO del numero per sapere se PARI o DISPARI.

In switch viene ricreata la funzione if come mostrato sotto.
nota che per aggiungere una seconda comparazione si deve aggiungere una nuova regola cliccando su: + add

change – DISPARI dovrà essere compilato come mostrato sotto.

change – PARI dovrà essere compilato come mostrato sotto.

Clicca qui per tornare al menù delle funzioni.
eZtimer

eztimer permette di fare molteplici cose tra cui una utilissima è quella di segnalarci se è Giorno o Notte in base alla nostra posizione geografica.
Qui sotto vediamo un esempio reale che funziona su iHost e usa un relè ZigBee di SonOff.

Giorno(0) – Notte(1) è eztimer rinominato e configurato come mostrato qui sotto.
Qui viene rinominato eztimer e viene specificato il periodo di validità del controllo (sempre).

Qui sotto viene specificata la nostra latitudine e longitudine ma soprattutto l’evento viene ritrasmesso ogni 5 secondi.
La ripetizione costante dell’evento NON è normalmente necessaria ma è molto utile se si hanno componenti da comandare che hanno un segnale scarso (ZigBee), in questa situazione critica potrebbe succedere che al momento dell’evento (giorno e/o notte) il nostro oggetto non riceva il messaggio perdendo l’automazione. In questo modo ripetendo ogni 5sec l’avvenuto evento riusciremo prima o poi a raggiungere il nostro attuatore.
Le condizioni radio sono molto mutevoli e dipendono dalle condizioni climatiche, più c’è umido e più il segnale radio sarà attenuato.

Qui gli si dice che all’alba (sunrise) deve spedire il valore numerico 0
Volendo si può impostare anche un ritardo o un anticipo sull’alba: Offset (mins).
-30 significa 30 minuti prima dell’alba
30 significa 30 minuti dopo l’alba

Questa è la parte per il tramonto (sunset) e valgono le considerazioni fatte sopra e stavolta si spedisce il numero 1

Qui sotto c’è il comando di OFF inviato al relè: OFF – RL101

Stesso comando ma di ON inviato al relè: ON – RL101

Clicca qui per tornare al menù delle funzioni.
Risorse – Resources
- Basic Node-RED introduction are here
- Basic Node-RED introduzione in ITALIAN language are here
- Riferimenti base e/o Spiegazioni di Node-RED in ITALIAN language è qui e here
- Node-RED User Guide