TapHome ha un unico linguaggio di script per smart rule, notifiche e integrazioni dei dispositivi. La sintassi e le funzioni sono le stesse ovunque; solo le variabili, le costanti e le funzioni disponibili dipendono da dove viene eseguito lo script. Nell’editor degli script l’app per Android, Windows e macOS evidenzia la sintassi; l’app per iOS mostra lo script senza evidenziazione.
Dove si usano gli script
Lo stesso linguaggio di script viene eseguito nelle smart rule, nelle notifiche e nelle integrazioni Modbus e Packet parser:
| Contesto | Che cosa fa lo script | Specifico del contesto |
|---|---|---|
| Smart rule Equazione | Un’espressione sui valori dei dispositivi. TRUE esegue le azioni per vero, FALSE quelle per falso. | LastState, TriggerName |
| Smart rule Formula | Calcola un valore che viene scritto in ogni dispositivo di uscita. | LastState, TriggerName |
| Smart rule Script | Legge i valori dei dispositivi e ne assegna di nuovi; ogni assegnazione diventa un’azione sul dispositivo. | Variabili di lettura e scrittura, TriggerName |
| Condizione limitante Formula | Decide se una smart rule può essere eseguita. | TRUE lascia eseguire la regola |
| Titolo e messaggio di una notifica | Compone il testo di una notifica. | Deve restituire testo; costanti delle notifiche |
| Script di lettura del modulo Modbus | Interroga il modulo, di solito per generare errori dei dispositivi. | Funzioni MODBUS* |
| Script di lettura e scrittura del dispositivo Modbus | Converte i registri in un valore del dispositivo e un valore richiesto di nuovo in registri. | Il risultato della lettura diventa il valore del dispositivo |
| Script di inizializzazione Modbus | Viene eseguito una volta dopo che il modulo si è connesso. | Di solito MODBUSWNE |
| Script di lettura e scrittura Packet parser | Invia una richiesta o un comando via HTTP, FTP, TCP, UDP o MQTT; per HTTP e FTP elabora anche la risposta. | SENDHTTPREQUEST, SENDDATA, MQTTPUBLISH |
| Script listener Packet parser | Gestisce ogni pacchetto TCP o UDP e ogni messaggio MQTT in arrivo. | RECEIVEDMSG |
| Attributi di servizio e azioni di servizio (Modbus, Packet parser) | Righe diagnostiche e pulsanti con parametri nell’app. | Parametri dell’azione per abbreviazione |
SLEEP viene rifiutato nelle smart rule e nelle notifiche (l’eccezione è la condizione limitante Formula). ADDERROR, ADDWARNING e ADDINFO funzionano solo negli script dei dispositivi. Che cosa passa ogni smart rule al suo script è descritto in Script nelle smart rule e nelle notifiche; le integrazioni hanno pagine proprie, Funzioni Modbus e Funzioni Packet parser.
Risultato dello script
Uno script è un elenco di istruzioni. Il valore dell’ultima istruzione valutata è il risultato dello script. RETURN termina lo script in anticipo con il valore indicato.
VAR a := 1;
VAR b := 2;
a + b;
# Result: 3Il risultato di uno script di lettura del dispositivo deve essere adatto al valore del dispositivo, altrimenti lo script fallisce con Return value 'X' does not match required return type constraint:
| Valore del dispositivo | Risultato consentito |
|---|---|
| Stato dell’interruttore, contatto reed | TRUE o FALSE (i numeri sono accettati), NaN, Null |
| Stato dell’interruttore multivalore | Numero (un numero intero seleziona lo stato; un valore decimale non viene rifiutato), NaN, Null |
| Qualsiasi altro valore | Numero, NaN, Null |
NaN significa “il valore è sconosciuto”, Null significa “non c’è alcun valore”. Come si comportano i due nelle espressioni è descritto in Null e NaN.