TapHome are un singur limbaj de scripting pentru smart rules, notificări și integrările dispozitivelor. Sintaxa și funcțiile sunt aceleași peste tot; doar variabilele, constantele și funcțiile disponibile depind de locul în care rulează scriptul. Aplicația evidențiază sintaxa în editorul de scripturi.
Unde se folosesc scripturile
Același limbaj de scripting rulează în smart rules, în notificări și în integrările Modbus și Packet parser:
| Context | Ce face scriptul | Specific contextului |
|---|---|---|
| Smart rule Ecuație | O singură expresie peste valorile dispozitivelor. TRUE execută acțiunile pentru adevărat, FALSE acțiunile pentru fals. | LastState, TriggerName |
| Smart rule Formulă | Calculează o valoare care se scrie în fiecare dispozitiv de ieșire. | LastState, TriggerName |
| Smart rule Script | Citește valorile dispozitivelor și atribuie valori noi; fiecare atribuire devine o acțiune a dispozitivului. | Variabile de citire/scriere, TriggerName |
| Condiția de limitare Formulă | Decide dacă smart rule poate rula. | TRUE permite rularea regulii |
| Titlul și mesajul notificării | Compune textul notificării. | Trebuie să returneze text; constantele notificării |
| Scriptul de citire al modulului Modbus | Interoghează modulul, de regulă pentru a semnala erori ale dispozitivelor. | Funcțiile MODBUS* |
| Scripturile de citire și scriere ale dispozitivului Modbus | Convertesc registrele în valoarea dispozitivului și valoarea cerută înapoi în registre. | Rezultatul citirii devine valoarea dispozitivului |
| Scriptul de inițializare Modbus | Rulează o singură dată după conectarea modulului. | De regulă MODBUSWNE |
| Scripturile de citire și scriere Packet parser | Trimit o cerere sau o comandă prin HTTP, FTP, TCP, UDP sau MQTT; la HTTP și FTP prelucrează și răspunsul. | SENDHTTPREQUEST, SENDDATA, MQTTPUBLISH |
| Scriptul listener Packet parser | Tratează fiecare pachet TCP sau UDP primit și fiecare mesaj MQTT. | RECEIVEDMSG |
| Atribute și acțiuni de service (Modbus, Packet parser) | Rânduri de diagnostic și butoane cu parametri în aplicație. | Parametrii acțiunii după abrevierea lor |
SLEEP este respins în smart rules și în notificări (excepția este condiția de limitare Formulă). ADDERROR, ADDWARNING și ADDINFO funcționează doar în scripturile dispozitivelor. Ce transmite fiecare smart rule scriptului său se găsește pe pagina Scripturi în smart rules și notificări; integrările au paginile lor proprii, Funcții Modbus și Funcții Packet parser.
Rezultatul scriptului
Un script este o listă de instrucțiuni. Valoarea ultimei instrucțiuni evaluate este rezultatul scriptului. RETURN încheie scriptul mai devreme cu valoarea dată.
VAR a := 1;
VAR b := 2;
a + b;
# Result: 3Rezultatul scriptului de citire al unui dispozitiv trebuie să corespundă valorii dispozitivului, altfel scriptul eșuează cu Return value 'X' does not match required return type constraint:
| Valoarea dispozitivului | Rezultat permis |
|---|---|
| Starea întrerupătorului, contact reed | TRUE sau FALSE (se acceptă și numere), NaN, Null |
| Starea comutatorului cu mai multe valori | Număr (un număr întreg selectează starea; o valoare zecimală nu este respinsă), NaN, Null |
| Orice altă valoare | Număr, NaN, Null |
NaN înseamnă „valoarea este necunoscută", Null înseamnă „nu există nicio valoare". Cum se comportă cele două în expresii este descris în Null și NaN.
Paginile acestei secțiuni
Referința limbajului de scripting are patru grupe de pagini: un ghid al limbajului, funcțiile pe domenii, funcțiile integrărilor și listele de referință.
Ghid
- Sintaxă și controlul fluxului — instrucțiuni, comentarii, literali,
IF,SWITCH, bucleleWHILEșiDO,RETURN. - Tipuri de date — numere, text, tipuri structurate și enumerări, colecții,
.Type, promovarea tipurilor,NullșiNaN. - Variabile și constante — variabilele dispozitivelor, valorile grupurilor, variabilele modulului,
VARși declarațiile cu tip, proprietăți, constantele contextului. - Statistici și Value info — statisticile unui dispozitiv, Value info cu momentul ultimei modificări, valoarea anterioară și valorile perioadelor încheiate.
- Operatori — lista operatorilor, precedența, evaluarea prin scurtcircuitare, echivalentele din Excel.
- Scripturi în smart rules și notificări — Ecuație, Formulă, Script, condiția de limitare Formulă și notificările.
Funcții
- Logică și diagnostic —
ISNULL,ISNAN,EQUALS,SLEEP,ADDERROR,ADDWARNING,ADDINFO,DEBOUNCE. - Funcții matematice —
MIN,MAX,AVG(omit valorile necunoscute, variantele…STRICTnu),ABS,SIGN,SQRT,POWER,MOD,LOG,LN,DEWPOINT. - Rotunjire și numere aleatoare —
ROUND,CEIL,FLOOR,RAND,RANDINT. - Interpolare și praguri —
LINEARtranspune o valoare dintr-un interval în altul (de exemplu o curbă de reglare a intensității),HYSTERESIS. - Operații pe biți —
GETBIT,GETBITS,SETBIT,SETBITS,GETBYTE,SETBYTE,TOBCD,FROMBCD. - Text și colecții —
LENGTH,GETAT,SETAT,APPEND,INSERT,REMOVEAT,COPY,INDEXOF,REPLACE,SPLIT,COMPARE,BYTECOLLECTION,UINT16COLLECTION,BOOLCOLLECTION. - Sortare —
ORDER,ORDERINDEXși variantele lor descrescătoare și stricte. - Data și ora —
NOW,DATETIME,DATETIMEADD,TIMESPAN,LOCALTIMEZONE. - Conversii de tipuri de date —
TOSTRING,TODOUBLE,TOBYTES,ENCODE,DECODE. - Culori —
HSVTORGB,RGBTOHSV. - Funcții de parsare —
PARSETEXT,PARSEJSON(citește o valoare din JSON după calea ei),PARSEXML. - Date binare —
PACKVALUE,UNPACKVALUE. - Criptare și hash-uri —
AESENCRYPT,AESDECRYPT,HASH,HMAC,RANDBYTES. - Codificări de octeți și sume de control —
TOBASE64,FROMBASE64,TOHEX,FROMHEX,CRC16,CRC32.
Integrări
- Funcții Modbus — tipuri de registre,
MODBUSR,MODBUSW,MODBUSWNE,MODBUSRBLOCK,MODBUSWBLOCK,MODBUSWBLOCKNE. - Tipuri de date Modbus — tipurile de date ale funcțiilor Modbus, variantele ordinii octeților, tipuri pe 64 de biți, text.
- Scripturi Modbus și prefetch — ce scripturi au un modul și un dispozitiv Modbus, când rulează, prefetch și memorarea în cache.
- Funcții Packet parser —
HTTPREQUEST,SENDHTTPREQUEST,SENDDATA,MQTTPUBLISH,FTPDOWNLOAD,FTPUPLOAD,COMPLETESERVICEATTRIBUTE,COMPLETESERVICEACTION. - Scripturi listener — scriptul listener al unui modul Packet parser,
RECEIVEDMSGșiRECEIVEDBYTES.
Referință
- Exemple de scripturi — scripturi complete din șabloane reale de dispozitive.
- Erori de script și depanare — mesajele de eroare la parsare și la rulare și cum se remediază.
- Cerințe de versiune pentru scripturi — versiunea Core de care are nevoie fiecare funcție.
- Funcții de script A–Z — fiecare funcție cu o propoziție și un link.