Il primo passo consiste nel creare uno SCRIPT, procedendo come segue:
Accedi alla sezione di AMMINISTRAZIONE di IKON SERVER
Seleziona la voce "FUNZIONI AVANZATE", quindi "SCRIPTING" ed infine "SCRIPTS"
Premi il pulsante "NUOVO" ed assegna un nome univoco al nuovo script (ad esempio "simulazione.presenza")
Accedi alla scheda del nuovo SCRIPT mediante l'apposito pulsante di MODIFICA (verde)
A questo punto, cancella il contenuto dello SCRIPT ed inserisci il codice seguente:
/* Questo script effettua una simulazione di presenza, eseguendo a rotazione una serie di scenari che devono essere preventivamente creati ed associati allo script runner. Sono necessari i seguenti oggetti in INGRESSO: - Abilitazione -> Identificativo "enable", valore "NEVER" Abilita o meno la simulazione di presenza - Orologio -> Identificativo "clock", valore "$VAL" Deve essere pianificato nei giorni e orari in cui si desidera eseguire la simulazione - Contatore -> Identificativo "counter", valore "NEVER" Memorizza l'indice dell'ultimo scenario eseguito In USCITA devono essere associati tutti gli scenari che, a rotazione, vengono eseguiti ogni volta che scatta una pianificazione sull'oggetto OROLOGIO. */ include_library("surrounding"); //Controllo presenza ingressi obbligatori if(!is_object($enable)) error("Manca abilitazione (enable)",true); if(!is_object($clock)) error("Manca orologio (clock)",true); if(!is_object($counter)) error("Manca contatore (counter)",true); //Se non abilitato, interrompe immediatamente if(intval($enable->value)!=1){ error("Simulazione di presenza non abilitata",true); } //Se viene ricevuto un valore diverso da 1, esce if(intval(input())!=1){ error("Ricevuto valore " . input() . ", uscita",true); } //Identifica il numero di scenari associati; se vuoto, restituisce un errore $scenes_num = count($me->childRelations); if($scenes_num == 0){ error("Nessuno scenario associato",true); } //Identifica indice dello scenario da eseguire (riportandolo a 1 a fine lista) $counter_num = intval($counter->value)+1; if($counter_num > $scenes_num){ $counter_num = 1; } $counter->updateToDb("value",$counter_num); debug("Indice scenario da eseguire su un totale di $scenes_num: $counter_num",true); //Esegue lo scenario $scene_obj = $me->childRelations[$counter_num-1]->child; $scene_obj->run(); debug("Eseguito lo scenario " . $scene_obj->name . " (indice $counter_num)",true); //Uscita output(""); |
Salva mediante l'apposito pulsante SALVA.
A questo punto crea uno SCRIPT RUNNER nel seguente modo:
Seleziona la voce "RUNNERS" nella sezione "SCRIPTING" del menu di amministrazione
Crea un nuovo oggetto mediante il pulsante "AGGIUNGI" della TOOLBAR
Accedi alla scheda del nuovo oggetto tramite il pulsante "MODIFICA" della TOOLBAR
A questo punto inserisci nella sezione "DATI GENERALI" un nome identificativo per il nuovo oggetto, e seleziona lo SCRIPT creato in precedenza nell'omonimo menu a tendina; lascia inalterate le altre opzioni della sezione "ASPETTO".
Nella sezione "INGRESSI" crea 3 nuovi oggetti tramite il pulsante AGGIUNGI; è importante rispettare alla lettera gli "identificativi" riportati sotto, tutti con caratteri minuscoli, altrimenti il codice dello script non funziona correttamente...
Abilitazione (identificativo "enable"): variabile di tipo ON/OFF, se messa ad 1 abilita la simulazione di presenza, in caso contrario il sistema rimane inerte
Orologio (identificativo "clock"): variabile di tipo ON/OFF, va successivamente pianificata per essere messa ad 1 quando si vuole far partire gli scenari a rotazione (es: ogni giorno ad una certa ora)
Contatore (identificativo "counter"): variabile di tipo numerico (modifica la variabile dopo averla creata e seleziona "numerico - intero" come tipo di valore) che conterrà il contatore degli scenari eseguiti, aggiornato ad ogni ciclo dallo script
Specifica "$VAL" come valore per l'oggetto orologio, "NEVER" per gli altri.
Accedi inoltre alle schede degli oggetti "abilitazione" e "contatore", identifica la sezione "CONNESSIONI IN USCITA" e seleziona "MAI" come "condizione":
Infine, tornando alla scheda del runner, trascina nelle USCITE gli scenari che, a rotazione, dovranno essere eseguiti dalla simulazione di presenza (si consiglia di creare scenari di una certa durata, tenendo conto anche della pianificazione assegnata all'orologio).
Per provare la simulazione di presenza, ti consigliamo di mettere tutti gli oggetti in un ambiente provvisorio, e agire sugli oggetti "abilitazione" e "orologio" per simulare l'esecuzione e l'abilitazione del sistema; il contatore deve incrementarsi automaticamente, e gli scenari venire eseguiti a rotazione.