---
title: "Výrazy / Skriptovací jazyk"
description: "Reference skriptovacího jazyka TapHome: kontexty ve smart rules, oznámeních, Modbus a Packet parser, výsledek skriptu, datové typy, operátory a všech 104 funkcí."
url: "https://taphome.com/cs/docs/script/"
language: cs
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["scripting-language","expressions","functions","data-types","smart-rules","parsing"]
  questions: ["Jak v TapHome napsat víceřádkový skript?","Kde mohu použít skriptovací jazyk TapHome?","Jak ve výrazech TapHome použít podmínky IF/ELSE?","Jak ve skriptu TapHome zpracovat data JSON?","Jaký je rozdíl mezi funkcemi MIN a MINSTRICT?","Jak ve skriptech TapHome pracovat s datem a časem?","Jak použít funkci LINEAR pro interpolaci hodnot?","Jakou hodnotu vrací skript TapHome?","Co smí vrátit skript pro čtení zařízení?"]
---

# Výrazy / Skriptovací jazyk

Poslední aktualizace: 2026-11-06

![TapHome Icon](https://taphome.com/documentation/script/script-icon.png)

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](https://taphome.com/cs/docs/script/smart-rules/); integrace mají vlastní stránky [Funkce Modbus](https://taphome.com/cs/docs/script/modbus/) a [Funkce Packet parser](https://taphome.com/cs/docs/script/packet-parser/).

## Výsledek skriptu

Skript je seznam příkazů. Hodnota posledního vyhodnoceného příkazu je výsledkem skriptu. [`RETURN`](https://taphome.com/cs/docs/script/basics/#return) ukončí skript předčasně se zadanou hodnotou.

```taphome
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ý 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](https://taphome.com/cs/docs/script/data-types/#null-and-nan).

## Referenční stránky

### Základy jazyka

- [Syntaxe a řízení toku](https://taphome.com/cs/docs/script/basics/) — Příkazy, komentáře, literály, `IF`, `SWITCH`, cykly `WHILE` a `DO`, `RETURN`
- [Datové typy](https://taphome.com/cs/docs/script/data-types/) — Čísla, text, strukturované a výčtové typy, kolekce, `.Type`, povýšení typu, `Null` a `NaN`
- [Proměnné a konstanty](https://taphome.com/cs/docs/script/variables/) — Proměnné zařízení, hodnoty skupin, proměnné modulu, `VAR` a typované deklarace, vlastnosti, konstanty kontextu
- [Operátory](https://taphome.com/cs/docs/script/operators/) — Seznam operátorů, priorita, zkrácené vyhodnocení, ekvivalenty v Excelu

### Smart rules a diagnostika

- [Smart rules a oznámení](https://taphome.com/cs/docs/script/smart-rules/) — Rovnice, Vzorec, Skript, omezující podmínka Vzorec a oznámení
- [Logika a diagnostika](https://taphome.com/cs/docs/script/logic-and-diagnostics/) — `ISNULL`, `ISNAN`, `EQUALS`, `SLEEP`, `ADDERROR`, `ADDWARNING`, `ADDINFO`, `DEBOUNCE`
- [Chyby](https://taphome.com/cs/docs/script/errors/) — Chybová hlášení při parsování a za běhu a jak je opravit

### Čísla a čas

- [Statistiky a Info o hodnotě](https://taphome.com/cs/docs/script/value-info/) — Statistiky zařízení, Info o hodnotě s časem poslední změny, předchozí hodnotou a hodnotami ukončených období
- [Matematické funkce](https://taphome.com/cs/docs/script/mathematical-functions/) — `MIN`, `MAX`, `AVG` (neznámé hodnoty přeskakují, varianty `…STRICT` ne), `ABS`, `SIGN`, `SQRT`, `POWER`, `MOD`, `LOG`, `LN`, `DEWPOINT`
- [Zaokrouhlení a náhodná čísla](https://taphome.com/cs/docs/script/rounding-and-random/) — `ROUND`, `CEIL`, `FLOOR`, `RAND`, `RANDINT`
- [Interpolace a prahy](https://taphome.com/cs/docs/script/interpolation-and-thresholds/) — `LINEAR` převede hodnotu z jednoho rozsahu do jiného (například křivku stmívání), `HYSTERESIS`
- [Datum a čas](https://taphome.com/cs/docs/script/date-and-time/) — `NOW`, `DATETIME`, `DATETIMEADD`, `TIMESPAN`, `LOCALTIMEZONE`

### Text, kolekce a barvy

- [Text a kolekce](https://taphome.com/cs/docs/script/text-string-and-byte-array/) — `LENGTH`, `GETAT`, `SETAT`, `APPEND`, `INSERT`, `REMOVEAT`, `COPY`, `INDEXOF`, `REPLACE`, `SPLIT`, `COMPARE`, `BYTECOLLECTION`, `UINT16COLLECTION`, `BOOLCOLLECTION`
- [Třídění](https://taphome.com/cs/docs/script/sorting/) — `ORDER`, `ORDERINDEX` a jejich sestupné a striktní varianty
- [Převody datových typů](https://taphome.com/cs/docs/script/data-type-conversions/) — `TOSTRING`, `TODOUBLE`, `TOBYTES`, `ENCODE`, `DECODE`
- [Barvy](https://taphome.com/cs/docs/script/colours/) — `HSVTORGB`, `RGBTOHSV`
- [Funkce pro parsování](https://taphome.com/cs/docs/script/parsing-functions/) — `PARSETEXT`, `PARSEJSON` (přečte hodnotu z JSON podle její cesty), `PARSEXML`

### Binární data a zabezpečení

- [Bitové operace](https://taphome.com/cs/docs/script/bit-operations/) — `GETBIT`, `GETBITS`, `SETBIT`, `SETBITS`, `GETBYTE`, `SETBYTE`, `TOBCD`, `FROMBCD`
- [Binární data](https://taphome.com/cs/docs/script/binary-data/) — `PACKVALUE`, `UNPACKVALUE`
- [Šifrování a haše](https://taphome.com/cs/docs/script/encryption-and-hashes/) — `AESENCRYPT`, `AESDECRYPT`, `HASH`, `HMAC`, `RANDBYTES`
- [Kódování bajtů a kontrolní součty](https://taphome.com/cs/docs/script/byte-encodings/) — `TOBASE64`, `FROMBASE64`, `TOHEX`, `FROMHEX`, `CRC16`, `CRC32`

### Integrace zařízení

- [Funkce Modbus](https://taphome.com/cs/docs/script/modbus/) — Typy registrů, `MODBUSR`, `MODBUSW`, `MODBUSWNE`, `MODBUSRBLOCK`, `MODBUSWBLOCK`, `MODBUSWBLOCKNE`
- [Skripty Modbus](https://taphome.com/cs/docs/script/modbus-scripts/) — Které skripty má modul a zařízení Modbus, kdy běží, prefetch a ukládání do mezipaměti
- [Datové typy Modbus](https://taphome.com/cs/docs/script/modbus-data-types/) — Datové typy funkcí Modbus, varianty pořadí bajtů, 64bitové typy, text
- [Funkce Packet parser](https://taphome.com/cs/docs/script/packet-parser/) — `HTTPREQUEST`, `SENDHTTPREQUEST`, `SENDDATA`, `MQTTPUBLISH`, `FTPDOWNLOAD`, `FTPUPLOAD`, `COMPLETESERVICEATTRIBUTE`, `COMPLETESERVICEACTION`
- [Listener skripty](https://taphome.com/cs/docs/script/listener-scripts/) — Listener skript modulu Packet parser, `RECEIVEDMSG` a `RECEIVEDBYTES`

### Příklady a reference

- [Příklady](https://taphome.com/cs/docs/script/examples/) — Kompletní skripty ze skutečných šablon zařízení
- [Požadavky na verzi](https://taphome.com/cs/docs/script/version-requirements/) — Sestavení Core, které každá funkce potřebuje
- [Funkce A–Z](https://taphome.com/cs/docs/script/functions-a-z/) — Každá funkce s jednou větou a odkazem

