Script con orari di alba e tramonto da API online

Come creare in Ilevia Manager uno script che ricava gli orari di alba e tramonto da un’API online e aziona un componente Lucchetto in base all’ora attuale.

INTRODUZIONE

La seguente guida spiega in dettaglio come costruire lo script e come funziona. Lo script recupera le informazioni online tramite richieste HTTP a delle API, quindi le elabora e aziona i componenti impostati.

Configurazione componenti

Passo 1:

Apri il software di configurazione Ilevia Manager e accedi alla sezione Componenti. Apri il menù Home automation e aggiungi i seguenti componenti:

Componenti necessari per costruire lo script in Ilevia Manager

Passo 2:

Apri l’editor del componente Script.

Come aprire l'editor del componente Script in Ilevia Manager

Panoramica dello script

Panoramica dello script

Passo 3:

Crea la prima variabile, che contiene la richiesta HTTP per gli orari di alba e tramonto.

Variabile che contiene la richiesta HTTP per gli orari di alba e tramonto

Passo 4:

Aggiungi la prima funzione, chiamata Sunrise_sunset, che eseguirà il Parse del payload, rappresentato in questo esempio dalla variabile “Payload”. Crea poi una variabile chiamata “Sunrisetime_ok”, che contiene il parse dell’ora dell’alba derivante dalla richiesta HTTP. Infine, stampa il valore nel componente con ID 18.

Prima parte della prima funzione: lettura dell'ora dell'alba dal JSON della richiesta HTTP

Passo 5:

Lo stesso processo viene applicato all’ora del tramonto: la nuova variabile chiamata “sunsettime” conterrà il parse dell’ora del tramonto ricavato dal JSON della richiesta HTTP, a partire dalla variabile “Payload”. Infine, imposta il valore nel componente con ID 19.

Seconda parte della prima funzione: lettura dell'ora del tramonto dal JSON della richiesta HTTP

Passo 6:

Crea la variabile “currenttime”, che farà una richiesta HTTP per ottenere l’ora attuale in base al tuo fuso orario. Crea poi la variabile “timesettings”, che farà il parse del JSON derivante dalla richiesta HTTP ed estrarrà da esso l’ora attuale.

Richiesta HTTP per l'ora attuale

Passo 7:

Il passo successivo è estrarre i valori di ore, minuti e secondi: vengono quindi create tre nuove variabili, ciascuna delle quali prende una parte dell’informazione dal JSON. Poi si assemblano questi valori in un unico valore di tempo, nella variabile todayTime. Infine il risultato viene scritto nel componente con ID 20.

Estrazione di ore, minuti e secondi dal JSON della richiesta HTTP

Passo 8:

Il passo successivo determina se l’ora è AM o PM. La nuova variabile “period” serve a impostare la sigla AM o PM all’ora attuale. Poi si converte l’ora attuale dal formato 24 ore a quello a 12 ore. Infine si assembla l’ora attuale e si scrive il valore nel componente con ID 21.

Conversione dell'ora dal formato 24 ore a quello a 12 ore

Passo 9:

Per aggiornare periodicamente la funzione “Sunrise_sunset”, crea una nuova funzione chiamata “Over”. Questa funzione imposta un Intervallo sulla funzione principale, che la eseguirà ripetutamente.

Intervallo di tempo per rieseguire periodicamente la funzione Sunrise_sunset

Passo 10:

L’ultima funzione dello script cambia il valore di un componente Lucchetto se l’ora attuale corrisponde all’ora del tramonto. La prima variabile, “Time digest”, contiene l’ora attuale; la seconda, “IF_Pm”, contiene l’ora del tramonto; l’ultima, “lock”, contiene il valore del componente Lucchetto. Infine la funzione si completa con una logica If Else che cambia lo stato del componente Lucchetto se l’ora attuale è prima dell’ora del tramonto.

Funzione che verifica se l'ora del tramonto è passata e aziona il lucchetto

Passo 11:

Infine imposta i setTrigger: sono obbligatori per l’esecuzione delle funzioni. Il primo setTrigger fa eseguire la funzione “Sunrise_sunset” solo se il componente ID 12 cambia il suo stato in ON. Il secondo setTrigger esegue la funzione “Over” ogni volta che il componente ID 12 cambia stato. L’ultimo setTrigger esegue la funzione “Locking_home” ogni volta che il componente ID 23 cambia stato.

Impostazione dei setTrigger che avviano le funzioni al cambio di stato dei componenti

Clicca il link sottostante per scaricare il progetto demo e provarlo.

Scarica il progetto demo!

Ultimo aggiornamento: