TapHome má jeden skriptovací jazyk pro smart rules, oznámení i integrace zařízení. Syntaxe a funkce jsou všude stejné; podle toho, kde skript běží, se liší jen dostupné proměnné, konstanty a funkce. Aplikace v editoru skriptu zvýrazňuje syntaxi.
Kde se skripty používají
Stejný skriptovací jazyk běží ve smart rules, v oznámeních a v integracích Modbus a Packet parser:
| Kontext | Co skript dělá | Specifické pro kontext |
|---|---|---|
| Smart rule Rovnice | Jeden výraz nad hodnotami zařízení. TRUE spustí akce pro pravdu, FALSE akce pro nepravdu. | LastState, TriggerName |
| Smart rule Vzorec | Vypočítá hodnotu, která se zapíše do každého výstupního zařízení. | LastState, TriggerName |
| Smart rule Skript | Čte hodnoty zařízení a přiřazuje nové; z každého přiřazení se stane akce zařízení. | Proměnné pro čtení / zápis, TriggerName |
| Omezující podmínka Vzorec | Rozhoduje, zda smart rule smí běžet. | TRUE pravidlo pustí |
| Oznámení — název a zpráva | Sestaví text oznámení. | Musí vrátit text; konstanty oznámení |
| Modbus skript pro čtení modulu | Dotazuje modul, typicky kvůli vyvolání chyb zařízení. | Funkce MODBUS* |
| Modbus skripty pro čtení a zápis zařízení | Převádí registry na hodnotu zařízení a požadovanou hodnotu zpět na registry. | Výsledek čtení se stane hodnotou zařízení |
| Modbus inicializační skript | Běží jednou po připojení modulu. | Typicky MODBUSWNE |
| Packet parser skripty pro čtení a zápis | Posílá požadavek nebo příkaz přes HTTP, FTP, TCP, UDP nebo MQTT; u HTTP a FTP zpracuje i odpověď. | SENDHTTPREQUEST, SENDDATA, MQTTPUBLISH |
| Packet parser listener skript | Zpracuje každý příchozí paket TCP nebo UDP a každou zprávu MQTT. | RECEIVEDMSG |
| Servisní atributy a akce (Modbus, Packet parser) | Diagnostické řádky a tlačítka s parametry v aplikaci. | Parametry akce podle jejich zkratky |
SLEEP je ve smart rules a oznámeních odmítnut (výjimkou je omezující podmínka Vzorec). ADDERROR, ADDWARNING a ADDINFO fungují jen ve skriptech zařízení. Co která smart rule předává svému skriptu, popisuje stránka Skripty ve smart rules a oznámeních; integrace mají vlastní stránky Funkce Modbus a Funkce Packet parser.
Výsledek skriptu
Skript je seznam příkazů. Hodnota posledního vyhodnoceného příkazu je výsledkem skriptu. RETURN ukončí skript předčasně se zadanou hodnotou.
VAR a := 1;
VAR b := 2;
a + b;
# Result: 3Výsledek skriptu pro čtení zařízení musí odpovídat hodnotě zařízení, jinak skript selže s hlášením Return value 'X' does not match required return type constraint:
| Hodnota zařízení | Povolený výsledek |
|---|---|
| Stav spínače, stavový kontakt | TRUE nebo FALSE (čísla jsou přijata), NaN, Null |
| Stav vícehodnotového spínače | Číslo (celé číslo vybere stav; desetinná hodnota odmítnuta není), NaN, Null |
| Jakákoli jiná hodnota | Číslo, NaN, Null |
NaN znamená „hodnota je neznámá“, Null znamená „hodnota neexistuje“. Jak se obě chovají ve výrazech, popisuje Null a NaN.
Stránky této sekce
Reference skriptovacího jazyka má čtyři skupiny stránek: průvodce jazykem, funkce podle oblasti, funkce integrací a referenční seznamy.
Průvodce
- Syntaxe a řízení toku — příkazy, komentáře, literály,
IF,SWITCH, cyklyWHILEaDO,RETURN. - Datové typy — čísla, text, strukturované a výčtové typy, kolekce,
.Type, povýšení typu,NullaNaN. - Proměnné a konstanty — proměnné zařízení, Info o hodnotě, proměnné modulu,
VARa typované deklarace, vlastnosti, konstanty kontextu. - Operátory — seznam operátorů, priorita, zkrácené vyhodnocení, ekvivalenty v Excelu.
- Skripty ve smart rules a oznámeních — Rovnice, Vzorec, Skript, omezující podmínka Vzorec a oznámení.
Funkce
- Logika a diagnostika —
ISNULL,ISNAN,EQUALS,SLEEP,ADDERROR,ADDWARNING,ADDINFO,DEBOUNCE. - Matematické funkce —
MIN,MAX,AVG(neznámé hodnoty přeskakují, varianty…STRICTne),ABS,SIGN,SQRT,POWER,MOD,LOG,LN,DEWPOINT. - Zaokrouhlení a náhodná čísla —
ROUND,CEIL,FLOOR,RAND,RANDINT. - Interpolace a prahy —
LINEARpřevede hodnotu z jednoho rozsahu do jiného (například křivku stmívání),HYSTERESIS. - Bitové operace —
GETBIT,GETBITS,SETBIT,SETBITS,GETBYTE,SETBYTE,TOBCD,FROMBCD. - Text a kolekce —
LENGTH,GETAT,SETAT,APPEND,INSERT,REMOVEAT,COPY,INDEXOF,REPLACE,SPLIT,COMPARE,BYTECOLLECTION,UINT16COLLECTION,BOOLCOLLECTION. - Třídění —
ORDER,ORDERINDEXa jejich sestupné a striktní varianty. - Datum a čas —
NOW,DATETIME,DATETIMEADD,TIMESPAN,LOCALTIMEZONE. - Převody datových typů —
TOSTRING,TODOUBLE,TOBYTES,ENCODE,DECODE. - Barvy —
HSVTORGB,RGBTOHSV. - Funkce pro parsování —
PARSETEXT,PARSEJSON(přečte hodnotu z JSON podle její cesty),PARSEXML. - Binární data —
PACKVALUE,UNPACKVALUE.
Integrace
- Funkce Modbus — typy registrů,
MODBUSR,MODBUSW,MODBUSWNE,MODBUSRBLOCK,MODBUSWBLOCK,MODBUSWBLOCKNE. - Datové typy Modbus — datové typy funkcí Modbus, varianty pořadí bajtů, 64bitové typy, text.
- Skripty Modbus a prefetch — které skripty má modul a zařízení Modbus, kdy běží, prefetch a ukládání do mezipaměti.
- Funkce Packet parser —
HTTPREQUEST,SENDHTTPREQUEST,SENDDATA,MQTTPUBLISH,FTPDOWNLOAD,FTPUPLOAD,COMPLETESERVICEATTRIBUTE,COMPLETESERVICEACTION. - Listener skripty — listener skript modulu Packet parser,
RECEIVEDMSGaRECEIVEDBYTES.
Reference
- Příklady skriptů — kompletní skripty ze skutečných šablon zařízení.
- Chyby skriptů a jejich řešení — chybová hlášení při parsování a za běhu a jak je opravit.
- Požadavky skriptů na verzi — sestavení Core, které každá funkce potřebuje.
- Funkce skriptu A–Z — každá funkce s jednou větou a odkazem.