TapHome ima jedan skriptni jezik za smart rules, obavijesti i integracije uređaja. Sintaksa i funkcije svugdje su iste; samo dostupne varijable, konstante i funkcije ovise o tome gdje se skripta izvršava. Aplikacija u uređivaču skripti ističe sintaksu.
Gdje se skripte koriste
Isti skriptni jezik izvršava se u smart rules, obavijestima i u integracijama Modbus i Packet parser:
| Kontekst | Što skripta radi | Specifično za kontekst |
|---|---|---|
| Smart rule Jednadžba | Jedan izraz nad vrijednostima uređaja. TRUE pokreće radnje za istinu, FALSE radnje za laž. | LastState, TriggerName |
| Smart rule Formula | Izračunava vrijednost koja se upisuje u svaki izlazni uređaj. | LastState, TriggerName |
| Smart rule Skripta | Čita vrijednosti uređaja i dodjeljuje nove; svaka dodjela postaje radnja na uređaju. | Varijable za čitanje i pisanje, TriggerName |
| Ograničavajući uvjet Formula | Odlučuje smije li se smart rule izvršiti. | TRUE dopušta izvršavanje smart rule |
| Naslov i tekst obavijesti | Sastavlja tekst obavijesti. | Mora vratiti tekst; konstante obavijesti |
| Modbus skripta za čitanje modula | Ispituje modul, obično radi prijave pogrešaka uređaja. | Funkcije MODBUS* |
| Modbus skripte za čitanje i pisanje uređaja | Pretvara registre u vrijednost uređaja i traženu vrijednost natrag u registre. | Rezultat skripte za čitanje postaje vrijednost uređaja |
| Modbus inicijalizacijska skripta | Izvršava se jednom nakon spajanja modula. | Obično MODBUSWNE |
| Packet parser skripte za čitanje i pisanje | Šalje zahtjev ili naredbu preko HTTP, FTP, TCP, UDP ili MQTT; kod HTTP i FTP obrađuje i odgovor. | SENDHTTPREQUEST, SENDDATA, MQTTPUBLISH |
| Packet parser listener skripta | Obrađuje svaki dolazni TCP ili UDP paket i svaku MQTT poruku. | RECEIVEDMSG |
| Servisni atributi i radnje (Modbus, Packet parser) | Dijagnostički retci i gumbi s parametrima u aplikaciji. | Parametri radnje prema njihovoj kratici |
SLEEP se u smart rules i obavijestima odbija (iznimka je ograničavajući uvjet Formula). ADDERROR, ADDWARNING i ADDINFO rade samo u skriptama uređaja. Što pojedini smart rules prosljeđuju svojoj skripti, opisuje stranica Skripte u smart rules i obavijestima; integracije imaju vlastite stranice, Funkcije Modbus i Funkcije Packet parsera.
Rezultat skripte
Skripta je popis naredbi. Vrijednost posljednje izračunate naredbe rezultat je skripte. RETURN prijevremeno završava skriptu zadanom vrijednošću.
VAR a := 1;
VAR b := 2;
a + b;
# Result: 3Rezultat skripte za čitanje uređaja mora odgovarati vrijednosti uređaja, inače skripta završava pogreškom Return value 'X' does not match required return type constraint:
| Vrijednost uređaja | Dopušteni rezultat |
|---|---|
| Stanje sklopke, magnetski kontakt | TRUE ili FALSE (prihvaćaju se i brojevi), NaN, Null |
| Stanje prekidača s više vrijednosti | Broj (cijeli broj odabire stanje; decimalna vrijednost se ne odbija), NaN, Null |
| Bilo koja druga vrijednost | Broj, NaN, Null |
NaN znači „vrijednost je nepoznata”, Null znači „vrijednost ne postoji”. Kako se oba ponašaju u izrazima, opisano je u odjeljku Null i NaN.
Stranice u ovom odjeljku
Referencija skriptnog jezika ima četiri skupine stranica: vodič kroz jezik, funkcije po područjima, funkcije integracija i referentne popise.
Vodič
- Sintaksa i tijek izvršavanja — naredbe, komentari, literali,
IF,SWITCH, petljeWHILEiDO,RETURN. - Tipovi podataka — brojevi, tekst, strukturirani i enum tipovi, zbirke,
.Type, proširenje tipa,NulliNaN. - Varijable i konstante — varijable uređaja, vrijednosti skupina, varijable modula,
VARi deklaracije s tipom, svojstva, konstante konteksta. - Statistika i Info vrijednosti — statistike uređaja, Info vrijednosti s vremenom posljednje promjene, prethodnom vrijednošću i vrijednostima završenih razdoblja.
- Operatori — popis operatora, prioritet, skraćeno izračunavanje, ekvivalenti u Excelu.
- Skripte u smart rules i obavijestima — Jednadžba, Formula, Skripta, ograničavajući uvjet Formula i obavijesti.
Funkcije
- Logika i dijagnostika —
ISNULL,ISNAN,EQUALS,SLEEP,ADDERROR,ADDWARNING,ADDINFO,DEBOUNCE. - Matematičke funkcije —
MIN,MAX,AVG(preskaču nepoznate vrijednosti, varijante…STRICTne),ABS,SIGN,SQRT,POWER,MOD,LOG,LN,DEWPOINT. - Zaokruživanje i slučajni brojevi —
ROUND,CEIL,FLOOR,RAND,RANDINT. - Interpolacija i pragovi —
LINEARpreslikava vrijednost iz jednog raspona u drugi (na primjer krivulju prigušivanja),HYSTERESIS. - Operacije s bitovima —
GETBIT,GETBITS,SETBIT,SETBITS,GETBYTE,SETBYTE,TOBCD,FROMBCD. - Tekst i zbirke —
LENGTH,GETAT,SETAT,APPEND,INSERT,REMOVEAT,COPY,INDEXOF,REPLACE,SPLIT,COMPARE,BYTECOLLECTION,UINT16COLLECTION,BOOLCOLLECTION. - Sortiranje —
ORDER,ORDERINDEXi njihove silazne i stroge varijante. - Datum i vrijeme —
NOW,DATETIME,DATETIMEADD,TIMESPAN,LOCALTIMEZONE. - Pretvorbe tipova podataka —
TOSTRING,TODOUBLE,TOBYTES,ENCODE,DECODE. - Boje —
HSVTORGB,RGBTOHSV. - Funkcije za raščlambu —
PARSETEXT,PARSEJSON(čita vrijednost iz JSON-a prema njezinoj putanji),PARSEXML. - Binarni podaci —
PACKVALUE,UNPACKVALUE. - Šifriranje i hashevi —
AESENCRYPT,AESDECRYPT,HASH,HMAC,RANDBYTES. - Kodiranje bajtova i kontrolni zbrojevi —
TOBASE64,FROMBASE64,TOHEX,FROMHEX,CRC16,CRC32.
Integracije
- Funkcije Modbus — tipovi registara,
MODBUSR,MODBUSW,MODBUSWNE,MODBUSRBLOCK,MODBUSWBLOCK,MODBUSWBLOCKNE. - Tipovi podataka Modbus — tipovi podataka funkcija Modbus, varijante redoslijeda bajtova, 64-bitni tipovi, tekst.
- Skripte Modbus i prefetch — koje skripte imaju Modbus modul i uređaj, kada se izvršavaju, prefetch i predmemoriranje.
- Funkcije Packet parsera —
HTTPREQUEST,SENDHTTPREQUEST,SENDDATA,MQTTPUBLISH,FTPDOWNLOAD,FTPUPLOAD,COMPLETESERVICEATTRIBUTE,COMPLETESERVICEACTION. - Listener skripte — listener skripta modula Packet parser,
RECEIVEDMSGiRECEIVEDBYTES.
Referencija
- Primjeri skripti — cjelovite skripte iz stvarnih predložaka uređaja.
- Pogreške skripti i rješavanje problema — poruke o pogreškama pri raščlambi i izvršavanju te kako ih ukloniti.
- Zahtjevi skripti za verziju — verzija Core koju treba svaka funkcija.
- Funkcije skripti od A do Ž — svaka funkcija s jednom rečenicom i poveznicom.