Icona TapHome

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:

ContestoChe cosa fa lo scriptSpecifico del contesto
Smart rule EquazioneUn’espressione sui valori dei dispositivi. TRUE esegue le azioni per vero, FALSE quelle per falso.LastState, TriggerName
Smart rule FormulaCalcola un valore che viene scritto in ogni dispositivo di uscita.LastState, TriggerName
Smart rule ScriptLegge i valori dei dispositivi e ne assegna di nuovi; ogni assegnazione diventa un’azione sul dispositivo.Variabili di lettura e scrittura, TriggerName
Condizione limitante FormulaDecide se una smart rule può essere eseguita.TRUE lascia eseguire la regola
Titolo e messaggio di una notificaCompone il testo di una notifica.Deve restituire testo; costanti delle notifiche
Script di lettura del modulo ModbusInterroga il modulo, di solito per generare errori dei dispositivi.Funzioni MODBUS*
Script di lettura e scrittura del dispositivo ModbusConverte 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 ModbusViene eseguito una volta dopo che il modulo si è connesso.Di solito MODBUSWNE
Script di lettura e scrittura Packet parserInvia 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 parserGestisce 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: 3

Il 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 dispositivoRisultato consentito
Stato dell’interruttore, contatto reedTRUE o FALSE (i numeri sono accettati), NaN, Null
Stato dell’interruttore multivaloreNumero (un numero intero seleziona lo stato; un valore decimale non viene rifiutato), NaN, Null
Qualsiasi altro valoreNumero, 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, cicli WHILE e DO, RETURN.
  • Tipi di dati — numeri, testo, tipi strutturati ed enum, collezioni, .Type, promozione dei tipi, Null e NaN.
  • Variabili e costanti — variabili dei dispositivi, Info valore, variabili del modulo, VAR e 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 …STRICT no), ABS, SIGN, SQRT, POWER, MOD, LOG, LN, DEWPOINT.
  • Arrotondamento e numeri casuali — ROUND, CEIL, FLOOR, RAND, RANDINT.
  • Interpolazione e soglie — LINEAR mappa 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, ORDERINDEX e 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, RECEIVEDMSG e RECEIVEDBYTES.

Riferimento