---
title: "Funkcie Packet parsera"
description: "Skripty Packet parsera TapHome: odoslanie HTTP požiadavky a čítanie odpovede, odoslanie TCP a UDP dát, publikovanie MQTT správ a prenos súborov cez FTP."
url: "https://taphome.com/sk/docs/script/packet-parser/"
language: sk
lastmod: 2026-10-13
generator: hugo
ai:
  topics: ["packet-parser","http-requests","mqtt","ftp","tcp-udp","scripting-language"]
  questions: ["Aké funkcie sú dostupné v Packet parseri TapHome?","Ako odošlem HTTP požiadavku zo skriptu TapHome?","Čo vracia SENDHTTPREQUEST?","Ako pridám k požiadavke HTTP hlavičky?","Ako publikovať MQTT správu v TapHome?","Ako stiahnem alebo nahrám súbor cez FTP v TapHome?","Kde nájdem dokumentáciu k Packet parseru?","Ako nakonfigurujem Modbus v TapHome?"]
---

# Funkcie Packet parsera

Funkcie Packet parsera v skripte TapHome — HTTPREQUEST, SENDHTTPREQUEST, SENDDATA, MQTTPUBLISH, FTPDOWNLOAD, FTPUPLOAD, COMPLETESERVICEATTRIBUTE a COMPLETESERVICEACTION — pre HTTP, TCP, UDP, MQTT a FTP.

Posledná aktualizácia: 2026-10-13

Funkcie Packet parsera komunikujú so zariadeniami cez HTTP, TCP, UDP, MQTT a FTP. Fungujú iba v skriptoch modulu alebo zariadenia Packet parsera, ktorého protokol zodpovedá funkcii; inde sa skript zastaví chybou *PacketParserFunction - PacketParserContext is null*. Všetky potrebujú Core 2022.2 alebo novší. Nastavenie modulu Packet parsera opisuje stránka [Packet parser](https://taphome.com/sk/docs/integration/packet-parser/); prichádzajúce správy spracúvajú [listener skripty](https://taphome.com/sk/docs/script/listener-scripts/) a Modbus zariadenia majú vlastné [funkcie Modbus](https://taphome.com/sk/docs/script/modbus/).

## Protokoly a skripty

Každý protokol má vlastné funkcie a typické rozdelenie práce medzi skriptmi.

| Protokol | Funkcie | Typické skripty |
|---|---|---|
| HTTP | `HTTPREQUEST`, `SENDHTTPREQUEST` | Skript na čítanie modulu pošle jednu požiadavku a odpoveď uloží do premennej modulu; skripty na čítanie zariadení ju parsujú. |
| TCP, UDP | `SENDDATA` | Skripty na čítanie alebo na zápis pošlú požiadavku; odpoveď príde do [listener skriptu](https://taphome.com/sk/docs/script/listener-scripts/). |
| MQTT | `MQTTPUBLISH` | Listener skript spracúva prichádzajúce správy; skript na zápis publikuje príkazy. |
| FTP | `FTPDOWNLOAD`, `FTPUPLOAD` | Skripty na čítanie a na zápis prenášajú súbory. |

**Príklad — jedna HTTP požiadavka pre všetky zariadenia modulu**

```taphome
VAR response := SENDHTTPREQUEST("/status", "GET");
StatusJson := response.Content;
```

```taphome
PARSEJSON(StatusJson, "temperature");
```

Prvý skript je skript na čítanie modulu, druhý skript na čítanie zariadenia; `StatusJson` je premenná modulu.

## HTTPREQUEST

`HTTPREQUEST` zostaví hodnotu `httprequest`, ktorej cestu, metódu, telo a hlavičky možno pred odoslaním funkciou [SENDHTTPREQUEST](https://taphome.com/sk/docs/script/packet-parser/#sendhttprequest) zmeniť.

```text
HTTPREQUEST(path [, method [, body]])
```

**Poznámky** — Predvolená metóda je `GET`. Vlastnosti `PATH`, `METHOD`, `BODY` a `HEADERS` sa dajú čítať aj zapisovať; `HEADERS` je kolekcia reťazcov v tvare `"Name: value"`. Funkcia iba vytvára hodnotu, takže funguje v každom skripte.

**Príklad**

```taphome
VAR request := HTTPREQUEST("/api/v1/state", "POST", "{\"on\":true}");
request.HEADERS := {"Content-Type: application/json", "Authorization: Bearer " + token};
VAR response := SENDHTTPREQUEST(request);
```

## SENDHTTPREQUEST

`SENDHTTPREQUEST` pošle HTTP požiadavku, počká na odpoveď a vráti ju ako hodnotu `httpresponse` s vlastnosťami `Content`, `StatusCode`, `ReasonPhrase`, `IsSuccess` a `Headers`.

```text
SENDHTTPREQUEST(path [, method [, body [, header1, header2, …]]])
SENDHTTPREQUEST(request)
```

| Názov | Typ | Popis |
|---|---|---|
| `path` | reťazec | Cesta na zariadení nastavenom v module, napríklad `"/status"`. |
| `method` | reťazec, voliteľný | `GET` (predvolené), `POST`, `PUT`, … |
| `body` | reťazec, voliteľný | Telo požiadavky. |
| `header1` … | reťazec, voliteľný | Až 27 hlavičiek v tvare `"Name: value"`. |
| `request` | `httprequest` | Požiadavka zostavená funkciou [HTTPREQUEST](https://taphome.com/sk/docs/script/packet-parser/#httprequest). |

**Návratová hodnota** — `httpresponse`:

| Vlastnosť | Význam |
|---|---|
| `Content` | Telo odpovede ako text. |
| `StatusCode` | Stavový kód HTTP, napríklad 200. |
| `ReasonPhrase` | Text stavu, napríklad `OK`. |
| `IsSuccess` | `TRUE` pre stavové kódy 200 – 299. |
| `Headers` | Hlavičky odpovede ako text JSON — pole `{"Key": …, "Value": [ … ]}` — ktorý sa dá čítať funkciou `PARSEJSON`. |

**Poznámky** — Iba pre modul s protokolom HTTP. Odpoveď môže mať najviac 128 kB.

**Príklad**

```taphome
VAR response := SENDHTTPREQUEST("/status", "GET");   # odoslanie požiadavky
IF response.IsSuccess
    StatusJson := response.Content;   # pri úspechu uloží telo odpovede
ELSE
    ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");   # pri chybe nahlási stavový kód
END
```

```taphome
SENDHTTPREQUEST("/doSomething", "POST", "someData", "header1: value1", "header2: value2");
```

**Chyby** — *Response is too long (Nbytes). Maximum supported length is 128KB*; *PacketParserFunction - unable to use 'SENDHTTPREQUEST' with …* (modul používa iný protokol).

## SENDDATA

`SENDDATA` pošle reťazec alebo bajtovú kolekciu cez TCP alebo UDP a vráti `TRUE`; odpoveď príde do [listener skriptu](https://taphome.com/sk/docs/script/listener-scripts/).

```text
SENDDATA(data)
```

**Poznámky** — Reťazec sa pošle ako bajty `iso-8859-1`. Kolekcia musí byť `collection<uint8>`. Prichádzajúce dáta sa doručujú listener skriptu po častiach s veľkosťou najviac 4096 bajtov.

**Príklad**

```taphome
SENDDATA(BYTECOLLECTION("0a dd ef a2"));
SENDDATA("STATUS?\r\n");
```

## MQTTPUBLISH

`MQTTPUBLISH` publikuje správu so zadaným topicom na MQTT broker modulu a vráti `Null`.

```text
MQTTPUBLISH(topic, data)
```

**Poznámky** — `data` je reťazec alebo `collection<uint8>`. Chyba, ktorú hlási broker, zastaví skript s jej textom. Broker sa nastavuje podľa stránky [MQTT broker](https://taphome.com/sk/docs/integration/packet-parser/mqtt-broker/).

**Príklad**

```taphome
MQTTPUBLISH("shellies/" + plugTopic + "/relay/0/command", IF(St > 0, "on", "off"));
```

## FTPDOWNLOAD

`FTPDOWNLOAD` stiahne súbor z FTP servera modulu a vráti jeho obsah ako bajtovú kolekciu (`collection<uint8>`).

```text
FTPDOWNLOAD(path)
```

**Príklad**

```taphome
VAR data := FTPDOWNLOAD("/export/values.csv");
VAR csv := TOSTRING(data, "utf-8");
```

## FTPUPLOAD

`FTPUPLOAD` zapíše dáta do súboru na FTP serveri modulu — s `"write"` (predvolené) súbor nahradí, s `"append"` pridá dáta na jeho koniec.

```text
FTPUPLOAD(path, data [, mode])
```

**Poznámky** — `data` je reťazec alebo `collection<uint8>`. `mode` musí byť napísaný malými písmenami.

**Príklad**

```taphome
FTPUPLOAD("/path/to/file", "some data", "write");
FTPUPLOAD("/path/to/file", BYTECOLLECTION("a7 ff e2"), "append");
```

**Chyby** — *FTPUPLOAD - invalid argument, upload mode must be 'append' or 'write'*.

## COMPLETESERVICEATTRIBUTE

`COMPLETESERVICEATTRIBUTE` doručí hodnotu servisného atribútu do aplikácie z TCP alebo UDP listener skriptu potom, čo skript atribútu poslal požiadavku funkciou `SENDDATA`.

```text
COMPLETESERVICEATTRIBUTE(name, value [, error])
```

**Poznámky** — `name` je názov servisného atribútu. S argumentom `error` atribút namiesto hodnoty zobrazí text chyby. Vracia `Null`.

**Príklad**

```taphome
COMPLETESERVICEATTRIBUTE("Uptime", "2d:21h:43m");
COMPLETESERVICEATTRIBUTE("Status", "", "Device is offline");
```

## COMPLETESERVICEACTION

`COMPLETESERVICEACTION` ohlási výsledok servisnej akcie do aplikácie z TCP alebo UDP listener skriptu potom, čo skript akcie poslal požiadavku funkciou `SENDDATA`.

```text
COMPLETESERVICEACTION(name, result)
```

**Príklad**

```taphome
COMPLETESERVICEACTION("Reboot", "Rebooted successfully");
```

**Chyby** — *No service action with name X*.

**Pozrite aj** — [Listener skripty](https://taphome.com/sk/docs/script/listener-scripts/), [Parsovacie funkcie](https://taphome.com/sk/docs/script/parsing-functions/), [Konverzie dátových typov](https://taphome.com/sk/docs/script/data-type-conversions/).
