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 evidenzia la sintassi.
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.
Pagine di questa sezione
Il riferimento del linguaggio di script ha quattro gruppi di pagine: una guida al linguaggio, le funzioni per area, le funzioni delle integrazioni e gli elenchi di riferimento.
Guida
- Sintassi e flusso di controllo — istruzioni, commenti, letterali,
IF,SWITCH, cicliWHILEeDO,RETURN. - Tipi di dati — numeri, testo, tipi strutturati ed enum, collezioni,
.Type, promozione dei tipi,NulleNaN. - Variabili e costanti — variabili dei dispositivi, Info valore, variabili del modulo,
VARe dichiarazioni tipizzate, proprietà, costanti di contesto. - Operatori — elenco degli operatori, precedenza, valutazione a corto circuito, equivalenti in Excel.
- Script nelle smart rule e nelle notifiche — Equazione, Formula, Script, la condizione limitante Formula e le notifiche.
Funzioni
- Logica e diagnostica —
ISNULL,ISNAN,EQUALS,SLEEP,ADDERROR,ADDWARNING,ADDINFO,DEBOUNCE. - Funzioni matematiche —
MIN,MAX,AVG(saltano i valori sconosciuti, le varianti…STRICTno),ABS,SIGN,SQRT,POWER,MOD,LOG,LN,DEWPOINT. - Arrotondamento e numeri casuali —
ROUND,CEIL,FLOOR,RAND,RANDINT. - Interpolazione e soglie —
LINEARmappa un valore da un intervallo a un altro (per esempio una curva di dimmerazione),HYSTERESIS. - Operazioni sui bit —
GETBIT,GETBITS,SETBIT,SETBITS,GETBYTE,SETBYTE,TOBCD,FROMBCD. - Testo e collezioni —
LENGTH,GETAT,SETAT,APPEND,INSERT,REMOVEAT,COPY,INDEXOF,REPLACE,SPLIT,COMPARE,BYTECOLLECTION,UINT16COLLECTION,BOOLCOLLECTION. - Ordinamento —
ORDER,ORDERINDEXe le loro varianti decrescenti e strict. - Data e ora —
NOW,DATETIME,DATETIMEADD,TIMESPAN,LOCALTIMEZONE. - Conversioni tra tipi di dati —
TOSTRING,TODOUBLE,TOBYTES,ENCODE,DECODE. - Colori —
HSVTORGB,RGBTOHSV. - Funzioni di parsing —
PARSETEXT,PARSEJSON(legge un valore da un JSON tramite il suo percorso),PARSEXML. - Dati binari —
PACKVALUE,UNPACKVALUE.
Integrazioni
- Funzioni Modbus — tipi di registro,
MODBUSR,MODBUSW,MODBUSWNE,MODBUSRBLOCK,MODBUSWBLOCK,MODBUSWBLOCKNE. - Tipi di dati Modbus — tipi di dati delle funzioni Modbus, varianti dell’ordine dei byte, tipi a 64 bit, testo.
- Script Modbus e prefetch — quali script hanno un modulo e un dispositivo Modbus, quando vengono eseguiti, prefetch e cache.
- Funzioni Packet parser —
HTTPREQUEST,SENDHTTPREQUEST,SENDDATA,MQTTPUBLISH,FTPDOWNLOAD,FTPUPLOAD,COMPLETESERVICEATTRIBUTE,COMPLETESERVICEACTION. - Script listener — lo script listener di un modulo Packet parser,
RECEIVEDMSGeRECEIVEDBYTES.
Riferimento
- Esempi di script — script completi da template di dispositivi reali.
- Errori degli script e risoluzione dei problemi — messaggi di errore di analisi e di esecuzione e come risolverli.
- Requisiti di versione degli script — la build del Core richiesta da ogni funzione.
- Funzioni di script dalla A alla Z — ogni funzione con una frase e un collegamento.