TapHome má jeden skriptovací jazyk pre smart rules, notifikácie a integrácie zariadení. Syntax a funkcie sú všade rovnaké; od miesta, kde skript beží, závisia iba dostupné premenné, konštanty a funkcie. Aplikácia v editore skriptu zvýrazňuje syntax.
Kde sa skripty používajú
Ten istý skriptovací jazyk beží v smart rules, notifikáciách a v integráciách Modbus a Packet parser:
| Kontext | Čo skript robí | Špecifické pre kontext |
|---|---|---|
| Smart rule typu Rovnica | Jeden výraz nad hodnotami zariadení. TRUE spustí akcie pre pravdu, FALSE akcie pre nepravdu. | LastState, TriggerName |
| Smart rule typu Vzorec | Vypočíta hodnotu, ktorá sa zapíše do každého výstupného zariadenia. | LastState, TriggerName |
| Smart rule typu Skript | Číta hodnoty zariadení a priraďuje nové; z každého priradenia sa stane akcia na zariadení. | Premenné na čítanie a zápis, TriggerName |
| Obmedzujúca podmienka typu Vzorec | Rozhoduje, či smart rule smie bežať. | TRUE dovolí smart rule bežať |
| Názov a text notifikácie | Zostavuje text notifikácie. | Musí vrátiť text; konštanty notifikácií |
| Modbus skript na čítanie modulu | Dopytuje modul, typicky kvôli chybám zariadení. | Funkcie MODBUS* |
| Modbus skripty na čítanie a zápis zariadenia | Prevedie registre na hodnotu zariadenia a požadovanú hodnotu späť na registre. | Výsledok skriptu na čítanie sa stane hodnotou zariadenia |
| Modbus inicializačný skript | Spustí sa raz po pripojení modulu. | Typicky MODBUSWNE |
| Packet parser skripty na čítanie a zápis | Pošle požiadavku alebo príkaz cez HTTP, FTP, TCP, UDP alebo MQTT; pri HTTP a FTP spracuje aj odpoveď. | SENDHTTPREQUEST, SENDDATA, MQTTPUBLISH |
| Packet parser listener skript | Spracuje každý prichádzajúci TCP alebo UDP paket a každú MQTT správu. | RECEIVEDMSG |
| Servisné atribúty a akcie (Modbus, Packet parser) | Diagnostické riadky a tlačidlá s parametrami v aplikácii. | Parametre akcie podľa ich skratky |
SLEEP je v smart rules a notifikáciách odmietnutý (výnimkou je obmedzujúca podmienka typu Vzorec). ADDERROR, ADDWARNING a ADDINFO fungujú iba v skriptoch zariadení. Čo jednotlivé smart rules odovzdávajú svojmu skriptu, popisuje stránka Skripty v smart rules a notifikáciách; integrácie majú vlastné stránky, Funkcie Modbus a Funkcie Packet parsera.
Výsledok skriptu
Skript je zoznam príkazov. Výsledkom skriptu je hodnota posledného vyhodnoteného príkazu. RETURN ukončí skript predčasne so zadanou hodnotou.
VAR a := 1;
VAR b := 2;
a + b;
# Result: 3Výsledok skriptu na čítanie zariadenia musí zodpovedať hodnote zariadenia, inak skript skončí chybou Return value 'X' does not match required return type constraint:
| Hodnota zariadenia | Povolený výsledok |
|---|---|
| Stav spínača, stavový kontakt | TRUE alebo FALSE (akceptujú sa aj čísla), NaN, Null |
| Stav viachodnotového prepínača | Číslo (stav vyberá celé číslo; desatinná hodnota sa neodmietne), NaN, Null |
| Akákoľvek iná hodnota | Číslo, NaN, Null |
NaN znamená „hodnota je neznáma“, Null znamená „hodnota neexistuje“. Ako sa obe správajú vo výrazoch, popisuje časť Null a NaN.
Stránky v tejto sekcii
Referencia skriptovacieho jazyka má štyri skupiny stránok: sprievodcu jazykom, funkcie podľa oblastí, funkcie integrácií a referenčné zoznamy.
Sprievodca
- Syntax a riadenie toku — príkazy, komentáre, literály,
IF,SWITCH, cyklyWHILEaDO,RETURN. - Dátové typy — čísla, text, štruktúrované a enum typy, kolekcie,
.Type, povýšenie typov,NullaNaN. - Premenné a konštanty — premenné zariadení, Info o hodnote, premenné modulu,
VARa typované deklarácie, vlastnosti, kontextové konštanty. - Operátory — zoznam operátorov, priorita, skrátené vyhodnocovanie, ekvivalenty v Exceli.
- Skripty v smart rules a notifikáciách — Rovnica, Vzorec, Skript, obmedzujúca podmienka typu Vzorec a notifikácie.
Funkcie
- Logika a diagnostika —
ISNULL,ISNAN,EQUALS,SLEEP,ADDERROR,ADDWARNING,ADDINFO,DEBOUNCE. - Matematické funkcie —
MIN,MAX,AVG(preskakujú neznáme hodnoty, varianty…STRICTnie),ABS,SIGN,SQRT,POWER,MOD,LOG,LN,DEWPOINT. - Zaokrúhľovanie a náhodné čísla —
ROUND,CEIL,FLOOR,RAND,RANDINT. - Interpolácia a prahy —
LINEARprevedie hodnotu z jedného rozsahu do druhého (napríklad krivka stmievania),HYSTERESIS. - Bitové operácie —
GETBIT,GETBITS,SETBIT,SETBITS,GETBYTE,SETBYTE,TOBCD,FROMBCD. - Text a kolekcie —
LENGTH,GETAT,SETAT,APPEND,INSERT,REMOVEAT,COPY,INDEXOF,REPLACE,SPLIT,COMPARE,BYTECOLLECTION,UINT16COLLECTION,BOOLCOLLECTION. - Triedenie —
ORDER,ORDERINDEXa ich zostupné a striktné varianty. - Dátum a čas —
NOW,DATETIME,DATETIMEADD,TIMESPAN,LOCALTIMEZONE. - Konverzie dátových typov —
TOSTRING,TODOUBLE,TOBYTES,ENCODE,DECODE. - Farby —
HSVTORGB,RGBTOHSV. - Parsovacie funkcie —
PARSETEXT,PARSEJSON(prečíta hodnotu z JSON podľa jej cesty),PARSEXML. - Binárne dáta —
PACKVALUE,UNPACKVALUE.
Integrácie
- Funkcie Modbus — typy registrov,
MODBUSR,MODBUSW,MODBUSWNE,MODBUSRBLOCK,MODBUSWBLOCK,MODBUSWBLOCKNE. - Dátové typy Modbus — dátové typy funkcií Modbus, varianty poradia bajtov, 64-bitové typy, text.
- Skripty Modbus a prefetch — aké skripty má Modbus modul a zariadenie, kedy bežia, prefetch a cache.
- Funkcie Packet parsera —
HTTPREQUEST,SENDHTTPREQUEST,SENDDATA,MQTTPUBLISH,FTPDOWNLOAD,FTPUPLOAD,COMPLETESERVICEATTRIBUTE,COMPLETESERVICEACTION. - Listener skripty — listener skript modulu Packet parser,
RECEIVEDMSGaRECEIVEDBYTES.
Referencia
- Príklady skriptov — kompletné skripty zo skutočných šablón zariadení.
- Chyby skriptov a riešenie problémov — chybové hlásenia pri parsovaní a počas behu a ako ich opraviť.
- Požiadavky skriptov na verziu — build Core, ktorý potrebuje každá funkcia.
- Funkcie skriptu A–Z — každá funkcia s jednou vetou a odkazom.