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 pro Android, Windows a macOS v editoru skriptu zvýrazňuje syntaxi; aplikace pro iOS zobrazuje skript bez zvýraznění.
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.