Script per dispositivi VMC
Come funziona lo script che attiva una VMC il giorno successivo alla stessa ora in cui è stata registrata la temperatura massima.
Introduzione
Questo script registra il valore del componente Setpoint, considerato come temperatura massima, in un componente Info che viene poi usato da una funzione. Allo stesso tempo, l’ora della temperatura massima viene registrata in un altro componente Info, che serve ad attivare il dispositivo VMC il giorno successivo alla stessa ora in cui è stata registrata la temperatura massima.
Spiegazione dello script
Variabili

Per prima cosa vanno create le variabili per gli elementi che compongono le funzioni.
var setpoint: questa prima variabile contiene il valore del componente Setpoint, impostato con l’ID componente 13;
var tempmax: questa seconda variabile viene usata per registrare il valore proveniente dal componente Setpoint, cioè la temperatura massima registrata dal setpoint, con l’ID componente 12;
var time: questa terza variabile contiene l’ora del giorno in cui è stata registrata la temperatura massima, con l’ID componente 14;
var enable: questa quarta variabile permette all’utente di abilitare o disabilitare l’intera funzione a suo piacimento, con l’ID componente 16;
var reset: questa quinta variabile permette all’utente di reimpostare l’ora, se necessario, con l’ID componente 17.
Esecuzione dello script
Prima funzione

function setpointchanged(): questa prima funzione registra il valore corrente del Setpoint e il valore corrente della temperatura. Entrambi i valori vengono elaborati nella seconda parte della funzione: la condizione if verifica se la temperatura massima corrente è minore del valore del componente Setpoint e, in tal caso, la temperatura viene salvata nel componente Info corrispondente alla variabile temp_max.
La funzione contiene altre variabili, che servono a ricavare l’ora da salvare nel componente Info associato alla variabile time, in modo da registrare l’ora in cui viene registrata la variabile temp_max.

Variabili della funzione
var d = new Date(): questa variabile contiene la data e l’ora correnti.
var t = d.getTime(): questa variabile contiene il tempo corrente in millisecondi trascorsi dal 1 gennaio 1970.
var hour = d.getHours(): questa variabile contiene l’ora corrente.
var minutes = d.getMinutes(): questa variabile contiene i minuti correnti.
setValue(time,hour+":"+minutes): questa funzione “setValue” imposta l’ora esatta nel componente Info associato alla variabile time.
Seconda funzione

function checkTime(): questa funzione legge l’ora corrente del sistema e il valore corrente della variabile temp_max, e imposta di conseguenza il componente Setpoint.
Variabili della funzione
var d = new Date(): questa variabile contiene la data e l’ora correnti.
var t = d.getTime(): questa variabile contiene il tempo corrente in millisecondi trascorsi dal 1 gennaio 1970.
var hour = d.getHours(): questa variabile contiene l’ora corrente.
var minutes = d.getMinutes(): questa variabile contiene i minuti correnti.
var maxTime = getValueAsString(time): questa variabile registra il valore (testo) della variabile time, cioè l’ora della temperatura massima.
var currentTempMax = getValueAsDouble(temp_Max): questa variabile registra il valore, con i decimali, della variabile temp_max.
setValue(setpoint, currentTempMax): questo setValue imposta il setpoint con il valore della variabile currentTempMax.
Terza funzione

function resetChanged(): se necessario, questa funzione reimposta l’ora registrata dalla variabile maxTime; è collegata alla variabile “var reset”.
Variabili della funzione
var currentSetPoint = getValueAsDouble(setpoint): questa variabile contiene il valore corrente del componente Setpoint, con i decimali.
var d = new Date(): questa variabile contiene la data e l’ora correnti.
var t = d.getTime(): questa variabile contiene il tempo corrente in millisecondi trascorsi dal 1 gennaio 1970.
var hour = d.getHours(): questa variabile contiene l’ora corrente.
var minutes = d.getMinutes(): questa variabile contiene i minuti correnti.
setValue(time,hour+":"+minutes): questa funzione “setValue” imposta l’ora esatta nel componente Info associato alla variabile time.
Set triggers

setTrigger(setpoint,"setpointchanged"): questa azione esegue la funzione setpointchanged quando cambia il componente Setpoint.
setTriggerEdge(reset,"on","resetChanged"): questa azione reimposta l’ora del componente Info tramite un componente Pulse una volta premuto, permettendo di registrare un nuovo valore di ora.
setInterval(10,"checkTime"): questa azione esegue la funzione checkTime a intervalli di 10 secondi.
Interfaccia utente

Così funziona l’intero script nell’interfaccia utente dell’app Ilevia Control quando è abilitato.

Questo è un esempio di come si comporta lo script quando l’interruttore è impostato su OFF, quindi inattivo.