Script
INTRODUZIONE
Grazie al componente Script è possibile implementare sul sistema logiche nuove e personalizzate, dalle più semplici alle più complesse, attraverso la scrittura di linee di codice con linguaggio di programmazione JavaScript.
CASI D’USO
- L’utente vuole creare un script esterno per creare un ciclo di colori per luci RGB.
- L’utente vuole creare uno script Javascript per creare una condizione personalizzata.
- L’utente vuole creare uno script Javascript per poter controllare e impostare ad un’ora specifica la temperatura di una VMC (Ventilazione Meccanica Controllata). Clicca questo link per saperne di più.
- L’utente vuole creare una logica con javascript per poter cambiare la temperatura di setpoint in base alla stagione selezionata in una lista di opzioni se l’energia è ad un livello accettabile. Clicca questo link per maggiori informazioni riguardo questo script.
PROPRIETA’ DEL COMPONENTE
Titolo e Icona del componente sono personalizzabili. Consulta la guida delle “Proprietà comuni“.
Script Editor: Una volta cliccato il aprirà la finestra di editor dello script, qui potrai sviluppare il tuo script.
Comandi script (getValue)
getValueAsString(IDComponente); Questo metodo andrà a prendere il valore del componente usando l’ID che potrai trovare in EVE Manager come stringa (questa è una stringa);
getValueAsInt(
getValueAsDouble(IDComponente); Questo metodo andrà a prendere il valore del componente usando l’ID che potrai trovare in EVE Manager come cifra (1,5 2,4 3,7 ecc.);
getValueAsBoolean(IDComponente); Questa operazione matematica andrà a prendere il valore del componente come come booleano che rappresenta uno dei due valori: true o false, puoi trovare l’ID del componente in EVE Manager;
Comandi script (setValue)
setValue(IDComponente, Valoredelcomponente); Questo metodo ti permetterà di impostare il valore (per esempio un interruttore che ha i valori 0/1) del componente desiderato ;
setTrigger(IDComponente,“function”); Questo metodo aziona l’evento specifico e il comportamento di un evento, è giusto ricordare che il setTrigger non funzionerà senza un ID Componente e una “Funzione”;
removeTrigger(component ID); Questo metodo ti permetterà di rimuovere la specifica componente di innesco impostato per lo specifico ID Componente.
setInterval(secondi, funzione); Questo metodo continuerà a chiamare la funzione ongi “X” secondi impostati dall’utente.
removeInterval(“funzione”); Questo metodo ti permetterà di rimuovere la funzione specificata che hai usato precedentemente all’interno del setInterval, oggetto utilizzabile per richiedere dati dal Web server.
setTriggerEdge(ID componente,”valore al cambiamento”,”funzione”): Questo metodo permette di avviare una funzione in base al valore di salita o discesa è stato specificato nel campo “Valore del cambiamento” di un componente Interruttore. Questo statement torna utile nel momento in cui la funzione target deve essere eseguita con il valore del componente di trigger inverso.
Funzioni script aggiuntive
log; Permettedi continuare tener traccia di cosa sta succedendo all’interno dello script. Questa funzionalità resta presente e sarà disponibile nella prossima versione di EVE Manager.
HTTPRequest; Questo metodo può essere usato per richiedere dati dal web server. Un esempio può essere:
var x =HTTPRequest(“URL”);
HTTPPost: Il metodo POST è utilizzato per inviare informazioni e richieste verso un server.
var x = HTTPPost(“URL”, data);
Nota: Per ogni richiesta / suggerimento contatta il supporto tecnico.
Promemoria prima di continuare:
- Scarica ed installa EVE Logic plugin per abilitare i plugin (link);
- Dopo aver caricato il progetto ,eve sul server, aspetta un paio di minuti per le logiche che si aviino.
If…Else Statement
ESEMPIO N°1
In questo esempio stiamo usando un interruttore con l’ID “12” e un “Valore regolabile” con l’ID “14”. Usando un if statement darà la possibilità di dire a EVE Manager di abilitare l’interruttore quando il Valore regolabile raggiunge il numore 10 o maggiore. Un perfetto uso di questo script è il far accadere un evento quando un certo valore viene raggiunto.
Scarica qui il progetto esempio e provalo tu stesso!
ESEMPIO N°2
In questo esempio stiamo usando un interruttore con ID “14” e una “Lista a opzioni” con l’ID “13”. Usando un if statement avrai la possbilità di dire a EVE Manager di abilitare l’interruttore quando la Lista a opzioni raggiunge il numero 0 dell’indice, questo vuol dire che se raggiunge il valore 1 “l’air conditioner” si spegnerà. Un perfetto esempio per questo script è il bisogno che qualcosa accada e quindi un valore del componente lista a opzioni venga scelto.
Scarica qui il progetto esempio e provalo tu stesso!
Funzioni JavaScript
ESEMPIO N°3
In questo esempio stiamo usando setInterval(2,”executeAdd”); as you can see the first argument inside the parenthesis is for how long in seconds we should increment by 1 (++) the value of the variable a, in the second argument we simply call the function.
Scarica qui il progetto esempio e provalo tu stesso!
ESEMPIO N°4
in questo esempio possiamo usare due componenti differenti con l’id “11” e “12”. Tramite una funzione andremo avremo la possibilità di aggiungere il valore del primo info di 1 ogni 2 secondi e 1 ogni 10 secondi nel secondo info. In questo caso per richiamare la funzione dovremmo posizionarla all’interno del metodo setInterval(2,”executeAddEvery2S”) e setInterval(10,”executeAddEvery10S”); Come puoi vedere il primo argomento all’interno delle parentesi per quanto tempo in secondi noi dovremo incrementare di 1 (++) il valore della variabile a, nel secondo argomento noi semplicemente richiamiamo una funzione che andrà, come detto pocanzi, ad aggiungere 1 alla variabile a.
Scarica qui il progetto esempio e provalo tu stesso!
ESEMPIO N°5
Scarica qui il progetto esempio e provalo tu stesso!
ESEMPIO N°6
In questo esempio è utilizzato un componente Interruttore con Id componente “26” e un componente info con ID componente “12”. La funzione, in questo caso, stamperà un valore all’interno del componente info una volta che il valore del compoente componente interruttore cambierà il valore in On. Il metodo setTriggerEdge determina le condizioni di esecuzione dela funzione number_counter.
Scarica qui il progetto esempio e provalo tu stesso!