---
title: "Funkcje Packet parser"
description: "Skrypty Packet parser w TapHome: wysyłanie żądań HTTP i odczyt odpowiedzi, wysyłanie danych TCP i UDP, publikowanie wiadomości MQTT i przesyłanie plików przez FTP."
url: "https://taphome.com/pl/docs/script/packet-parser/"
language: pl
lastmod: 2026-10-13
generator: hugo
ai:
  topics: ["packet-parser","http-requests","mqtt","ftp","tcp-udp","scripting-language"]
  questions: ["Jakie funkcje są dostępne w Packet parser TapHome?","Jak wysłać żądanie HTTP ze skryptu TapHome?","Co zwraca SENDHTTPREQUEST?","Jak dodać nagłówki HTTP do żądania?","Jak opublikować wiadomość MQTT w TapHome?","Jak pobrać lub wysłać plik przez FTP w TapHome?","Gdzie znajdę dokumentację Packet parser?","Jak skonfigurować Modbus w TapHome?"]
---

# Funkcje Packet parser

Funkcje Packet parser w skryptach TapHome — HTTPREQUEST, SENDHTTPREQUEST, SENDDATA, MQTTPUBLISH, FTPDOWNLOAD, FTPUPLOAD, COMPLETESERVICEATTRIBUTE i COMPLETESERVICEACTION — dla HTTP, TCP, UDP, MQTT i FTP.

Ostatnia aktualizacja: 2026-10-13

Funkcje Packet parser komunikują się z urządzeniami przez HTTP, TCP, UDP, MQTT i FTP. Działają tylko w skryptach modułu lub urządzenia Packet parser, którego protokół pasuje do funkcji; gdzie indziej skrypt zatrzymuje się błędem *PacketParserFunction - PacketParserContext is null*. Wymagana wersja dla wszystkich: Core 2022.2 lub nowszy. Konfigurację modułu Packet parser opisuje strona [Packet parser](https://taphome.com/pl/docs/integration/packet-parser/); wiadomości przychodzące obsługują [skrypty listener](https://taphome.com/pl/docs/script/listener-scripts/), a urządzenia Modbus mają własne [funkcje Modbus](https://taphome.com/pl/docs/script/modbus/).

## Protokoły i skrypty

Każdy protokół ma własne funkcje i typowy podział pracy między skryptami.

| Protokół | Funkcje | Typowe skrypty |
|---|---|---|
| HTTP | `HTTPREQUEST`, `SENDHTTPREQUEST` | Skrypt odczytu modułu wysyła jedno żądanie i zapisuje odpowiedź w zmiennej modułu; skrypty odczytu urządzeń ją parsują. |
| TCP, UDP | `SENDDATA` | Skrypty odczytu lub zapisu wysyłają żądanie; odpowiedź przychodzi w [skrypcie listener](https://taphome.com/pl/docs/script/listener-scripts/). |
| MQTT | `MQTTPUBLISH` | Skrypt listener przetwarza wiadomości przychodzące; skrypt zapisu publikuje polecenia. |
| FTP | `FTPDOWNLOAD`, `FTPUPLOAD` | Skrypty odczytu i zapisu przesyłają pliki. |

**Przykład — jedno żądanie HTTP dla wszystkich urządzeń modułu**

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

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

Pierwszy skrypt to skrypt odczytu modułu, drugi to skrypt odczytu urządzenia; `StatusJson` jest zmienną modułu.

## HTTPREQUEST

`HTTPREQUEST` tworzy wartość `httprequest`, której ścieżkę, metodę, treść i nagłówki można zmienić przed wysłaniem przez [SENDHTTPREQUEST](https://taphome.com/pl/docs/script/packet-parser/#sendhttprequest).

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

**Uwagi** — Domyślna metoda to `GET`. Właściwości `PATH`, `METHOD`, `BODY` i `HEADERS` można odczytywać i zapisywać; `HEADERS` to kolekcja tekstów `"Name: value"`. Funkcja tylko tworzy wartość, więc działa w każdym skrypcie.

**Przykład**

```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` wysyła żądanie HTTP, czeka na odpowiedź i zwraca ją jako wartość `httpresponse` z właściwościami `Content`, `StatusCode`, `ReasonPhrase`, `IsSuccess` i `Headers`.

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

| Nazwa | Typ | Opis |
|---|---|---|
| `path` | tekst | Ścieżka na urządzeniu ustawionym w module, na przykład `"/status"`. |
| `method` | tekst, opcjonalny | `GET` (domyślnie), `POST`, `PUT`, … |
| `body` | tekst, opcjonalny | Treść żądania. |
| `header1` … | tekst, opcjonalny | Do 27 nagłówków w postaci `"Name: value"`. |
| `request` | `httprequest` | Żądanie zbudowane przez [HTTPREQUEST](https://taphome.com/pl/docs/script/packet-parser/#httprequest). |

**Zwraca** — `httpresponse`:

| Właściwość | Znaczenie |
|---|---|
| `Content` | Treść odpowiedzi jako tekst. |
| `StatusCode` | Kod statusu HTTP, na przykład 200. |
| `ReasonPhrase` | Tekst statusu, na przykład `OK`. |
| `IsSuccess` | `TRUE` dla kodów statusu 200 – 299. |
| `Headers` | Nagłówki odpowiedzi jako tekst JSON — tablica `{"Key": …, "Value": [ … ]}` — czytelne przez `PARSEJSON`. |

**Uwagi** — Tylko dla modułu z protokołem HTTP. Odpowiedź może mieć najwyżej 128 kB.

**Przykład**

```taphome
VAR response := SENDHTTPREQUEST("/status", "GET");   # wysłanie żądania
IF response.IsSuccess
    StatusJson := response.Content;   # przy sukcesie zapisuje treść odpowiedzi
ELSE
    ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");   # przy błędzie zgłasza kod statusu
END
```

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

**Błędy** — *Response is too long (Nbytes). Maximum supported length is 128KB*; *PacketParserFunction - unable to use 'SENDHTTPREQUEST' with …* (moduł używa innego protokołu).

## SENDDATA

`SENDDATA` wysyła tekst lub kolekcję bajtów przez TCP lub UDP i zwraca `TRUE`; odpowiedź przychodzi w [skrypcie listener](https://taphome.com/pl/docs/script/listener-scripts/).

```text
SENDDATA(data)
```

**Uwagi** — Tekst jest wysyłany jako bajty `iso-8859-1`. Kolekcja musi być `collection<uint8>`. Dane przychodzące są dostarczane do skryptu listener w porcjach po najwyżej 4096 bajtów.

**Przykład**

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

## MQTTPUBLISH

`MQTTPUBLISH` publikuje wiadomość z podanym tematem do brokera MQTT modułu i zwraca `Null`.

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

**Uwagi** — `data` to tekst lub `collection<uint8>`. Błąd zgłoszony przez broker zatrzymuje skrypt z jego tekstem. Broker konfiguruje się w [MQTT Broker](https://taphome.com/pl/docs/integration/packet-parser/mqtt-broker/).

**Przykład**

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

## FTPDOWNLOAD

`FTPDOWNLOAD` pobiera plik z serwera FTP modułu i zwraca jego zawartość jako kolekcję bajtów (`collection<uint8>`).

```text
FTPDOWNLOAD(path)
```

**Przykład**

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

## FTPUPLOAD

`FTPUPLOAD` zapisuje dane do pliku na serwerze FTP modułu — zastępując plik przy `"write"` (domyślnie) lub dopisując na jego końcu przy `"append"`.

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

**Uwagi** — `data` to tekst lub `collection<uint8>`. `mode` musi być pisany małymi literami.

**Przykład**

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

**Błędy** — *FTPUPLOAD - invalid argument, upload mode must be 'append' or 'write'*.

## COMPLETESERVICEATTRIBUTE

`COMPLETESERVICEATTRIBUTE` dostarcza wartość atrybutu serwisowego do aplikacji ze skryptu listener TCP lub UDP, po tym jak skrypt atrybutu wysłał żądanie przez `SENDDATA`.

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

**Uwagi** — `name` to nazwa atrybutu serwisowego. Z `error` atrybut zamiast wartości wyświetla tekst błędu. Zwraca `Null`.

**Przykład**

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

## COMPLETESERVICEACTION

`COMPLETESERVICEACTION` zgłasza wynik akcji serwisowej do aplikacji ze skryptu listener TCP lub UDP, po tym jak skrypt akcji wysłał żądanie przez `SENDDATA`.

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

**Przykład**

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

**Błędy** — *No service action with name X*.

**Zobacz też** — [Skrypty listener](https://taphome.com/pl/docs/script/listener-scripts/), [Funkcje parsowania](https://taphome.com/pl/docs/script/parsing-functions/), [Konwersje typów danych](https://taphome.com/pl/docs/script/data-type-conversions/).
