TapHome Icon

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:

KontextCo skript děláSpecifické pro kontext
Smart rule RovniceJeden výraz nad hodnotami zařízení. TRUE spustí akce pro pravdu, FALSE akce pro nepravdu.LastState, TriggerName
Smart rule VzorecVypočí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 VzorecRozhoduje, zda smart rule smí běžet.TRUE pravidlo pustí
Oznámení — název a zprávaSestaví text oznámení.Musí vrátit text; konstanty oznámení
Modbus skript pro čtení moduluDotazuje 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í skriptBěží jednou po připojení modulu.Typicky MODBUSWNE
Packet parser skripty pro čtení a zápisPosí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 skriptZpracuje 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: 3

Vý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ý kontaktTRUE 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, cykly WHILE a DO, RETURN.
  • Datové typy — čísla, text, strukturované a výčtové typy, kolekce, .Type, povýšení typu, Null a NaN.
  • Proměnné a konstanty — proměnné zařízení, Info o hodnotě, proměnné modulu, VAR a 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 …STRICT ne), ABS, SIGN, SQRT, POWER, MOD, LOG, LN, DEWPOINT.
  • Zaokrouhlení a náhodná čísla — ROUND, CEIL, FLOOR, RAND, RANDINT.
  • Interpolace a prahy — LINEAR př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, ORDERINDEX a 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, RECEIVEDMSG a RECEIVEDBYTES.

Reference