|
Variabili predefinite o di sistema, e creazione di nuove variabili dentro ad un'Azione (ControlHUB)
|
Il primo dei 3 mattoncini di base di ControlHUB sono i dati/variabili, che vengono mostrati nella home page di ControlHUB.
In questa pagina elenchiamo solo le variabili predefinite, che sono sempre accessibili e create automaticamente dal sistema.
Variabili predefinite
$timedate$ - data e ora in formato standard unix (secondi dal 1-1-1970)
$time$ - ora specificata come un unico numero, per es. 1400 per le ore 14:00 (è utile averla così tutta in un pezzo per poter usare > < = ecc nelle
condizioni)
$thour$ - ora, es. 14
$tminute$ - minuti, es. 00
$tmonth$ - mese (da 1 a 12)
$tday$ - giorno del mese (da 1 a 31)
$ip$ - se una URL di aggiornamento IP è stata definita, questa variabile contiene il corrente IP; si può usare per esempio per
sfruttare un servizio Dyn DNS
Solo per le versioni MX MY:
$i1$ $i2$ - lo stato degli ingressi F1 e F2, normalmente è 1, se vengono cortocircuitati è 0; il cambio di stato viene valutato come vengono valutati gli invii da sensori esterni (tutte le
Condizioni che contengono $i1$ e $i2$ vengono quindi valutate e le relative azioni, nel caso, chiamate) e viene anche inviato un messaggio
MQTT (se MQTT abilitato)
$ih$ $ig$ - lo stato dei relè H e G
$itemp$ - la temperatura (se la versione di ControlHUB include il sensore di temperatura); un cambio di temperatura di almeno 1.5°C provoca la valutazione di tutte le condizioni cercando se qualcuna contiene $itemp$ (scatenando le relative azioni, se il caso)
$icall$ - (per MY GSM) l'ultimo numero che ha chiamato o inviato un SMS
Variabili automatiche di sistema di IP ovvero $i_nomeperiferica$
In questo esempio abbiamo una chiamata che arriva da un DoorSwitch appoggiato a ControlHUB tramite HTTP (ovvero con IP/Server e Pass impostate, nell'apposita sezione):
http://chub_ip/x?pw=pass&w=ch&r={"RY2":1,"F2":1,"Name":"Salotto1"}
Ma potrebbe essere qualunque altra periferica che tra i suoi parametri manda periodicamente via HTTP anche il suo nome.
Se tra i dati del JSON è presente una variabile
Name,
ControlHUB creerà la variabile di sistema ricavata mettendo
$i_ davanti al nome (ridotto in minuscolo e tagliato a max 8 caratteri), in questo esempio ricaverà
$i_salotto1$
Dentro questa variabile metterà l'IP del chiamante ovvero nell'esempio del nostro DoorSwitch di nome Salotto1.
Per esempio avremo:
$i_salotto1$= 192.168.1.3
La
variabile è poi utilizzabile in qualsiasi Azione.
Se fosse presente anche la variabile ServerOrIP essa sarà utilizzata al posto dell'IP ricavato automaticamente dalla chiamata HTTP.
Nota che queste variabili vengono "dimenticate" all'eventuale spegnimento di ControlHUB, ma non appena una periferica chiama vengono ricostruite; le nostre periferiche chiamano una volta ogni 2/3/4 minuti a seconda del tipo, in modo che la variabile automatica di IP sia così sempre aggiornata; periferiche di terze parti possono fare allo stesso modo.
L'IP è ricavato al momento della chiamata stessa in automatico e non c'è bisogno quindi di passarlo esplicitamente.
Creazione nuove variabili temporanee, o assegnazione di variabili esistenti dentro a un'Azione
Se hai già provato a creare delle
Azioni avrai già familiarizzato con il box in cui si può scrivere il nome di una o più URL da chiamare, oppure topic/messaggio MQTT, oppure un comando ASCII o HexAscii da inviare tramite interfaccia Seriale RS232 o interfaccia RS485/ModBus.
Nello stesso box si possono usare anche (uno per linea, andando a capo), dei comandi speciali "controlhub", alcuni di questi comandi permettono di definire/assegnare variabili
controlhub $prevtemp$=$temp$
controlhub $abc$=1.234
controlhub $pippo$=$pluto$*$paperino$+2
controlhub $pippo$=$pippo$+1
assegna (e in caso che non esistano già, inoltre crea) le variabili a sinistra dell'uguale mettendoci dentro quello che sta a destra dell'uguale (come normale convenzione); il nome delle variabili deve essere alfanumerico minuscolo e max 8 caratteri.
Es. $abc$=1.234 mette in $abc$ il valore 1.234. Se prima $abc$ non esisteva, adesso esiste come nuova variabile temporanea.
NOTA che eventuali
nuove variabili create qui diventano immediatamente a disposizione per l'uso (ovunque), ma
non vengono visualizzate in Homepage ed hanno vita temporanea (in caso di spegnimento o blackout vengono cancellate; si può comunque usare
l'azione iniziale per dar loro un preset, servisse).