---
title: "OTE-CR Ceny spot"
description: "Czeskie ceny spot energii z rynku dnia następnego OTE-CR. Śledź ceny w EUR lub CZK, znajdź najtańsze okresy i automatyzuj zużycie energii z TapHome."
url: "https://taphome.com/pl/compatibility/ote-cr-spot-prices/"
language: pl
lastmod: 2026-10-14
generator: hugo
ai:
  topics: ["http","spot-prices","energy-market","electricity","data-service","data-pp"]
  questions: ["Jak uzyskać czeskie ceny spot energii elektrycznej w TapHome?","Jak działa szablon cen spot OTE-CR?","Jak przeliczyć ceny spot OTE z EUR na CZK?","Jak znaleźć najtańszy 15-minutowy okres energii elektrycznej w ciągu dnia w TapHome?","Jak automatyzować urządzenia na podstawie cen spot energii elektrycznej?","Czym jest urządzenie Kurs wymiany walut w szablonie OTE-CR?","Jak połączyć szablon OTE-CR z kursem wymiany ČNB?"]
---

# OTE-CR Ceny spot

Komunikacja: Packet Parser → HTTP

- [Rynek dnia następnego OTE-CR](https://www.ote-cr.cz/cs/kratkodobe-trhy/elektrina/denni-trh)

## Poradnik integracji

OTE-CR (Operátor trhu s elektřinou) to czeski operator rynku energii elektrycznej i gazu. Szablon TapHome pobiera ceny spot z rynku dnia następnego z publicznego API OTE-CR i udostępnia je jako urządzenia — aktualna cena, statystyki dzienne, ranking i warianty z oknem czasowym. Ceny są publikowane w EUR za MWh, a szablon zawiera wbudowaną zmienną do przeliczania walut w celu wyświetlania wartości w CZK.

Szablon odpytuje API OTE-CR raz na godzinę i odczytuje wyniki rynku dnia następnego dla bieżącego dnia dostawy: 96 cen, po jednej dla każdego 15-minutowego okresu dnia (okresy rozpoczynające się 00:00–23:45; Okres 1 = 00:00–00:15, Okres 96 = 23:45–24:00). Nie jest wymagane żadne uwierzytelnianie — punkt końcowy API jest publiczny.

## Konfiguracja

Podczas importu szablonu TapHome łączy się z `www.ote-cr.cz` przez HTTPS (port 443). Nie jest potrzebny adres IP ani dane logowania — punkt końcowy jest stały.

Dwa opcjonalne parametry importu sterują urządzeniami z oknem czasowym:

- **From** — godzina początkowa (0–23, domyślnie: 9) dla filtra okna czasowego
- **To** — godzina końcowa (0–23, domyślnie: 17) dla filtra okna czasowego

Wartości domyślne (9–17) obejmują standardowe godziny pracy. Dostosuj je do preferowanego okna analizy.

Po imporcie zmienna `kurz` (wyświetlana i edytowalna przez urządzenie **Kurs wymiany walut**) jest domyślnie ustawiona na 1 — co oznacza, że wszystkie urządzenia cenowe wyświetlają surowe wartości w EUR/MWh. Ustaw ją na aktualny kurs EUR/CZK (np. 25,2), aby wszystkie urządzenia cenowe wyświetlały wartości w CZK. Kurs możesz ustawić ręcznie w szczegółach urządzenia lub powiązać go z szablonem **Kurs wymiany ČNB** w celu automatycznych dziennych aktualizacji (patrz poniżej).

## Możliwości urządzeń

### Aktualna cena

Urządzenie **Aktualna cena** odczytuje cenę spot dla bieżącego okresu 15-minutowego. Szablon określa aktywny okres na podstawie zegara systemowego i mnoży wartość w EUR przez kurs wymiany, aby wyświetlić cenę w CZK.

### Ranking cen

- **Ranking bieżącego okresu** — pozycja ceny bieżącego okresu wśród wszystkich 96 okresów dnia (1 = najtańszy, 96 = najdroższy)
- **Ranking bieżącego okresu w oknie czasowym** — ten sam ranking, ale ograniczony do zdefiniowanego przez użytkownika okna czasowego (From–To). Zwraca NaN, jeśli bieżący okres znajduje się poza oknem.

### Dzienne statystyki cenowe

- **Najwyższa cena dnia** — maksymalna cena spot ze wszystkich okresów, przeliczona na CZK
- **Najniższa cena dnia** — minimalna cena spot ze wszystkich okresów, przeliczona na CZK
- **Średnia cena dnia** — średnia arytmetyczna cen ze wszystkich okresów, przeliczona na CZK

### Statystyki cenowe okna czasowego

Każda statystyka dzienna ma odpowiednik z oknem czasowym, który filtruje okresy do zakresu From–To:

- **Najwyższa cena w oknie czasowym**
- **Najniższa cena w oknie czasowym**
- **Średnia cena w oknie czasowym**

Wszystkie urządzenia z oknem czasowym zwracają NaN, jeśli From >= To.

### Nawigacja po okresach

- **Najtańszy okres dnia** — numer (1–96) najtańszego okresu 15-minutowego dnia
- **Najtańszy pozostały okres** — najtańszy okres 15-minutowy od bieżącego momentu
- **Liczba okresów** — łączna liczba 15-minutowych okresów cenowych w odpowiedzi API (96 w zwykły dzień)
- **Liczba okresów w oknie czasowym** — liczba okresów w zakresie From–To

### Kurs wymiany walut

Urządzenie **Kurs wymiany walut** jest jedynym urządzeniem do odczytu i zapisu w szablonie. Przechowuje kurs przeliczeniowy EUR na CZK używany przez wszystkie urządzenia cenowe. Ustaw go ręcznie lub połącz z szablonem **Kurs wymiany ČNB** w celu automatycznych dziennych aktualizacji.

Gdy kurs wymiany jest ustawiony na 1, wszystkie urządzenia cenowe wyświetlają surowe wartości w EUR.

## Atrybuty serwisowe

Szablon udostępnia 96 atrybutów serwisowych (Okres 1–Okres 96), z których każdy pokazuje surową cenę spot w EUR dla jednego okresu 15-minutowego bieżącego dnia dostawy. Są przydatne do diagnostyki lub tworzenia niestandardowych automatyzacji, które sprawdzają konkretne okresy dnia.

## Połączenie z kursem ČNB

Aby zautomatyzować przeliczanie EUR na CZK:

1. Zaimportuj szablon **Kurs wymiany ČNB** (Kurzy ČNB) do TapHome
2. W szablonie OTE-CR utwórz formułę, która odczytuje kurs EUR/CZK z urządzenia ČNB i zapisuje go w urządzeniu **Kurs wymiany walut**
3. Szablon ČNB aktualizuje kurs codziennie, więc wszystkie ceny OTE-CR automatycznie odzwierciedlają aktualny kurs wymiany

## Przykłady automatyzacji

Ceny spot są najbardziej przydatne w połączeniu z TapHome smart rules:

- **Grzanie wody w najtańszych okresach** — porównaj ranking bieżącego okresu z progiem (np. ranking <= 8) i włącz podgrzewacz wody tylko podczas 8 najtańszych okresów 15-minutowych (2 godziny) dnia
- **Ładowanie baterii poza szczytem** — użyj urządzenia Aktualna cena do uruchomienia ładowania baterii, gdy cena spadnie poniżej konfigurowalnego limitu
- **Przesunięcie obciążenia urządzeń** — użyj urządzenia Najtańszy pozostały okres do zaplanowania pralek, zmywarek lub ładowania EV na następny najtańszy slot
- **Optymalizacja okna czasowego** — ogranicz automatyzację do określonych godzin (np. 6:00–22:00) za pomocą urządzeń z oknem czasowym, aby okresy nocne zostały wykluczone z rankingu

## Rozwiązywanie problemów

### Wszystkie ceny pokazują zero lub NaN

1. Sprawdź, czy TapHome CCU ma dostęp do internetu (szablon łączy się z `www.ote-cr.cz` przez HTTPS)
2. Sprawdź urządzenie **Liczba okresów** — jeśli pokazuje 0, odpowiedź API jest pusta lub parsowanie nie powiodło się
3. Upewnij się, że urządzenie **Kurs wymiany walut** jest ustawione na wartość różną od zera — kurs 0 pomnoży wszystkie ceny przez zero

### Urządzenia z oknem czasowym zwracają NaN

1. Sprawdź, czy parametry importu From i To są prawidłowo ustawione (From musi być mniejsze niż To)
2. Jeśli bieżąca godzina jest poza zakresem From–To, urządzenie rankingu w oknie zwraca NaN zgodnie z projektem

### Ceny wydają się nieaktualne

Szablon odpytuje API OTE-CR co godzinę (3600 sekund). Ceny rynku dnia następnego są publikowane przez OTE dzień wcześniej, zazwyczaj około 12:45 CET. Jeśli ceny nowego dnia nie są jeszcze widoczne, poczekaj do czasu publikacji.

## Dostępne urządzenia 14

Te urządzenia pojawią się w TapHome po imporcie.

OTE-CR Ceny spot Moduł

Atrybuty serwisowe

|           |                                         |
|-----------|-----------------------------------------|
| Period 1  | Cena spot za okres 15-minutowy 1 (EUR)  |
| Period 2  | Cena spot za okres 15-minutowy 2 (EUR)  |
| Period 3  | Cena spot za okres 15-minutowy 3 (EUR)  |
| Period 4  | Cena spot za okres 15-minutowy 4 (EUR)  |
| Period 5  | Cena spot za okres 15-minutowy 5 (EUR)  |
| Period 6  | Cena spot za okres 15-minutowy 6 (EUR)  |
| Period 7  | Cena spot za okres 15-minutowy 7 (EUR)  |
| Period 8  | Cena spot za okres 15-minutowy 8 (EUR)  |
| Period 9  | Cena spot za okres 15-minutowy 9 (EUR)  |
| Period 10 | Cena spot za okres 15-minutowy 10 (EUR) |
| Period 11 | Cena spot za okres 15-minutowy 11 (EUR) |
| Period 12 | Cena spot za okres 15-minutowy 12 (EUR) |
| Period 13 | Cena spot za okres 15-minutowy 13 (EUR) |
| Period 14 | Cena spot za okres 15-minutowy 14 (EUR) |
| Period 15 | Cena spot za okres 15-minutowy 15 (EUR) |
| Period 16 | Cena spot za okres 15-minutowy 16 (EUR) |
| Period 17 | Cena spot za okres 15-minutowy 17 (EUR) |
| Period 18 | Cena spot za okres 15-minutowy 18 (EUR) |
| Period 19 | Cena spot za okres 15-minutowy 19 (EUR) |
| Period 20 | Cena spot za okres 15-minutowy 20 (EUR) |
| Period 21 | Cena spot za okres 15-minutowy 21 (EUR) |
| Period 22 | Cena spot za okres 15-minutowy 22 (EUR) |
| Period 23 | Cena spot za okres 15-minutowy 23 (EUR) |
| Period 24 | Cena spot za okres 15-minutowy 24 (EUR) |
| Period 25 |                                         |
| Period 26 |                                         |
| Period 27 |                                         |
| Period 28 |                                         |
| Period 29 |                                         |
| Period 30 |                                         |
| Period 31 |                                         |
| Period 32 |                                         |
| Period 33 |                                         |
| Period 34 |                                         |
| Period 35 |                                         |
| Period 36 |                                         |
| Period 37 |                                         |
| Period 38 |                                         |
| Period 39 |                                         |
| Period 40 |                                         |
| Period 41 |                                         |
| Period 42 |                                         |
| Period 43 |                                         |
| Period 44 |                                         |
| Period 45 |                                         |
| Period 46 |                                         |
| Period 47 |                                         |
| Period 48 |                                         |
| Period 49 |                                         |
| Period 50 |                                         |
| Period 51 |                                         |
| Period 52 |                                         |
| Period 53 |                                         |
| Period 54 |                                         |
| Period 55 |                                         |
| Period 56 |                                         |
| Period 57 |                                         |
| Period 58 |                                         |
| Period 59 |                                         |
| Period 60 |                                         |
| Period 61 |                                         |
| Period 62 |                                         |
| Period 63 |                                         |
| Period 64 |                                         |
| Period 65 |                                         |
| Period 66 |                                         |
| Period 67 |                                         |
| Period 68 |                                         |
| Period 69 |                                         |
| Period 70 |                                         |
| Period 71 |                                         |
| Period 72 |                                         |
| Period 73 |                                         |
| Period 74 |                                         |
| Period 75 |                                         |
| Period 76 |                                         |
| Period 77 |                                         |
| Period 78 |                                         |
| Period 79 |                                         |
| Period 80 |                                         |
| Period 81 |                                         |
| Period 82 |                                         |
| Period 83 |                                         |
| Period 84 |                                         |
| Period 85 |                                         |
| Period 86 |                                         |
| Period 87 |                                         |
| Period 88 |                                         |
| Period 89 |                                         |
| Period 90 |                                         |
| Period 91 |                                         |
| Period 92 |                                         |
| Period 93 |                                         |
| Period 94 |                                         |
| Period 95 |                                         |
| Period 96 |                                         |

Zmienne niestandardowe

|                      |                                                                                                                |
|----------------------|----------------------------------------------------------------------------------------------------------------|
| `From` (numeric) = 9 | Godzina początkowa (0–23) okna czasowego dla rankingu i statystyk cen w oknie                                  |
| `To` (numeric) = 17  | Godzina końcowa (0–23) okna czasowego dla rankingu i statystyk cen w oknie                                     |
| `kurz` (numeric) = 1 | Mnożnik kursu wymiany EUR na CZK — wszystkie ceny są mnożone przez tę wartość (ustaw na aktualny kurs EUR/CZK) |

Odczyt (moduł)

```taphome
VAR today := tostring(NOW(), "yyyy-MM-dd");
VAR response := SENDHTTPREQUEST("/cs/kratkodobe-trhy/elektrina/denni-trh/chart-data");
IF response.IsSuccess
    output := response.Content;
ELSE
    ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
```

Atrybuty serwisowe

Perioda 1

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[0].y") + " EUR"
```

Perioda 2

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[1].y") + " EUR"
```

Perioda 3

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[2].y") + " EUR"
```

Perioda 4

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[3].y") + " EUR"
```

Perioda 5

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[4].y") + " EUR"
```

Perioda 6

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[5].y") + " EUR"
```

Perioda 7

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[6].y") + " EUR"
```

Perioda 8

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[7].y") + " EUR"
```

Perioda 9

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[8].y") + " EUR"
```

Perioda 10

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[9].y") + " EUR"
```

Perioda 11

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[10].y") + " EUR"
```

Perioda 12

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[11].y") + " EUR"
```

Perioda 13

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[12].y") + " EUR"
```

Perioda 14

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[13].y") + " EUR"
```

Perioda 15

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[14].y") + " EUR"
```

Perioda 16

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[15].y") + " EUR"
```

Perioda 17

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[16].y") + " EUR"
```

Perioda 18

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[17].y") + " EUR"
```

Perioda 19

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[18].y") + " EUR"
```

Perioda 20

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[19].y") + " EUR"
```

Perioda 21

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[20].y") + " EUR"
```

Perioda 22

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[21].y") + " EUR"
```

Perioda 23

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[22].y") + " EUR"
```

Perioda 24

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[23].y") + " EUR"
```

Perioda 25

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[24].y") + " EUR"
```

Perioda 26

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[25].y") + " EUR"
```

Perioda 27

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[26].y") + " EUR"
```

Perioda 28

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[27].y") + " EUR"
```

Perioda 29

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[28].y") + " EUR"
```

Perioda 30

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[29].y") + " EUR"
```

Perioda 31

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[30].y") + " EUR"
```

Perioda 32

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[31].y") + " EUR"
```

Perioda 33

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[32].y") + " EUR"
```

Perioda 34

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[33].y") + " EUR"
```

Perioda 35

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[34].y") + " EUR"
```

Perioda 36

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[35].y") + " EUR"
```

Perioda 37

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[36].y") + " EUR"
```

Perioda 38

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[37].y") + " EUR"
```

Perioda 39

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[38].y") + " EUR"
```

Perioda 40

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[39].y") + " EUR"
```

Perioda 41

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[40].y") + " EUR"
```

Perioda 42

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[41].y") + " EUR"
```

Perioda 43

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[42].y") + " EUR"
```

Perioda 44

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[43].y") + " EUR"
```

Perioda 45

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[44].y") + " EUR"
```

Perioda 46

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[45].y") + " EUR"
```

Perioda 47

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[46].y") + " EUR"
```

Perioda 48

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[47].y") + " EUR"
```

Perioda 49

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[48].y") + " EUR"
```

Perioda 50

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[49].y") + " EUR"
```

Perioda 51

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[50].y") + " EUR"
```

Perioda 52

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[51].y") + " EUR"
```

Perioda 53

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[52].y") + " EUR"
```

Perioda 54

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[53].y") + " EUR"
```

Perioda 55

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[54].y") + " EUR"
```

Perioda 56

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[55].y") + " EUR"
```

Perioda 57

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[56].y") + " EUR"
```

Perioda 58

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[57].y") + " EUR"
```

Perioda 59

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[58].y") + " EUR"
```

Perioda 60

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[59].y") + " EUR"
```

Perioda 61

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[60].y") + " EUR"
```

Perioda 62

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[61].y") + " EUR"
```

Perioda 63

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[62].y") + " EUR"
```

Perioda 64

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[63].y") + " EUR"
```

Perioda 65

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[64].y") + " EUR"
```

Perioda 66

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[65].y") + " EUR"
```

Perioda 67

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[66].y") + " EUR"
```

Perioda 68

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[67].y") + " EUR"
```

Perioda 69

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[68].y") + " EUR"
```

Perioda 70

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[69].y") + " EUR"
```

Perioda 71

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[70].y") + " EUR"
```

Perioda 72

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[71].y") + " EUR"
```

Perioda 73

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[72].y") + " EUR"
```

Perioda 74

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[73].y") + " EUR"
```

Perioda 75

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[74].y") + " EUR"
```

Perioda 76

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[75].y") + " EUR"
```

Perioda 77

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[76].y") + " EUR"
```

Perioda 78

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[77].y") + " EUR"
```

Perioda 79

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[78].y") + " EUR"
```

Perioda 80

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[79].y") + " EUR"
```

Perioda 81

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[80].y") + " EUR"
```

Perioda 82

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[81].y") + " EUR"
```

Perioda 83

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[82].y") + " EUR"
```

Perioda 84

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[83].y") + " EUR"
```

Perioda 85

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[84].y") + " EUR"
```

Perioda 86

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[85].y") + " EUR"
```

Perioda 87

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[86].y") + " EUR"
```

Perioda 88

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[87].y") + " EUR"
```

Perioda 89

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[88].y") + " EUR"
```

Perioda 90

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[89].y") + " EUR"
```

Perioda 91

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[90].y") + " EUR"
```

Perioda 92

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[91].y") + " EUR"
```

Perioda 93

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[92].y") + " EUR"
```

Perioda 94

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[93].y") + " EUR"
```

Perioda 95

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[94].y") + " EUR"
```

Perioda 96

```taphome
PARSEJSON(output, "$.data.dataLine[1].point[95].y") + " EUR"
```

Aktualna cena Zmienna Tylko do odczytu

Cena spot bieżącego okresu 15-minutowego przeliczona na CZK za pomocą zmiennej kursu wymiany

numeric Jednostka: CZK json\_path

Odczyt

```taphome
var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
VAR date := NOW();
var periodHour := LENGTH(prices) / 24;	
var actualperiod := FLOOR(((date.hour * 60) + date.minute) * periodHour / 60);

ROUND(GETAT(prices, actualperiod)*kurz)
```

Ranking bieżącego okresu Zmienna Tylko do odczytu

Pozycja bieżącego okresu 15-minutowego wśród wszystkich 96 okresów dnia (1 = najtańszy)

numeric json\_path

Odczyt

```taphome
var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
var byPrice := ORDERINDEX(prices);
VAR date := NOW();
var periodHour := LENGTH(prices) / 24;	
var actualperiod := FLOOR(((date.hour * 60) + date.minute) * periodHour / 60);

INDEXOF(byPrice, actualperiod) + 1
```

Ranking bieżącego okresu w oknie czasowym Zmienna Tylko do odczytu

Pozycja bieżącego okresu 15-minutowego w oknie czasowym From–To (NaN jeśli poza zakresem)

numeric json\_path

Odczyt

```taphome
VAR date := NOW();
IF date.hour < From or date.hour > To or From >= To
	RETURN(NaN);
ELSE
	var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
	var periodHour := LENGTH(prices) / 24;
	var windowPrices := COPY(prices, From * periodHour, (To - From) * periodHour);
	var byPrice := ORDERINDEX(windowPrices);
	
	var actualperiod := FLOOR(((date.hour * 60) + date.minute) * periodHour / 60);

	RETURN(INDEXOF(byPrice, actualperiod - From * periodHour) +1);
END
```

Kurs wymiany walut Zmienna Odczyt i zapis

Kurs przeliczeniowy EUR na CZK — odczyt/zapis, używany przez wszystkie urządzenia cenowe

numeric Jednostka: CZK/EUR

Odczyt

```taphome
kurz
```

Zapis

```taphome
kurz := Va
```

Najwyższa cena dnia Zmienna Tylko do odczytu

Maksymalna cena spot ze wszystkich okresów dnia (CZK)

numeric Jednostka: CZK json\_path

Odczyt

```taphome
var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
GETAT(ORDERDESC(prices), 0)*kurz
```

Najwyższa cena w oknie czasowym Zmienna Tylko do odczytu

Maksymalna cena spot w oknie czasowym From–To (CZK)

numeric Jednostka: CZK json\_path

Odczyt

```taphome
VAR date := NOW();
IF From >= To
	RETURN(NaN);
ELSE
	var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
	var periodHour := LENGTH(prices) / 24;	
	var actualperiod := FLOOR(((date.hour * 60) + date.minute) * periodHour / 60);
	var windowPrices := COPY(prices, From * periodHour, (To - From) * periodHour);
	var byPrice := ORDERDESC(windowPrices);

	RETURN(GETAT(byPrice, 0)*kurz);
END
```

Najniższa cena dnia Zmienna Tylko do odczytu

Minimalna cena spot ze wszystkich okresów dnia (CZK)

numeric Jednostka: CZK json\_path

Odczyt

```taphome
var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
GETAT(ORDER(prices), 0)*kurz
```

Najniższa cena w oknie czasowym Zmienna Tylko do odczytu

Minimalna cena spot w oknie czasowym From–To (CZK)

numeric Jednostka: CZK json\_path

Odczyt

```taphome
VAR date := NOW();
IF From >= To
	RETURN(NaN);
ELSE
	var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
	var periodHour := LENGTH(prices) / 24;	
	#var actualperiod := FLOOR(((date.hour * 60) + date.minute) * periodHour / 60);
	var windowPrices := COPY(prices, From * periodHour, (To - From) * periodHour);
	var byPrice := ORDER(windowPrices);

	RETURN(GETAT(byPrice, 0)*kurz);
END
```

Najtańszy okres dnia Zmienna Tylko do odczytu

Numer (1–96) najtańszego okresu 15-minutowego dnia

numeric json\_path

Odczyt

```taphome
var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
GETAT(ORDERINDEX(prices), 0) +1
```

Najtańszy pozostały okres Zmienna Tylko do odczytu

Numer najtańszego okresu 15-minutowego od bieżącego momentu

numeric json\_path

Odczyt

```taphome
var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
VAR date := NOW();
var periodHour := LENGTH(prices) / 24;	
var actualperiod := FLOOR(((date.hour * 60) + date.minute) * periodHour / 60);
var remainingPrices := COPY(prices, actualperiod, LENGTH(prices) - actualperiod);
var byPrice := ORDERINDEX(remainingPrices);

GETAT(byPrice, 0) + actualperiod +1
```

Liczba okresów Zmienna Tylko do odczytu

Łączna liczba dostępnych okresów cenowych (zazwyczaj 96)

numeric json\_path

Odczyt

```taphome
var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
LENGTH(prices);
```

Liczba okresów w oknie czasowym Zmienna Tylko do odczytu

Liczba okresów w oknie czasowym From–To

numeric json\_path

Odczyt

```taphome
VAR date := NOW();
IF From >= To
	RETURN(NaN);
ELSE
	var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
	var periodHour := LENGTH(prices) / 24;
	var windowPrices := COPY(prices, From * periodHour, (To - From) * periodHour);

	RETURN(LENGTH(windowPrices));
END
```

Średnia cena dnia Zmienna Tylko do odczytu

Średnia cena spot ze wszystkich okresów dnia (CZK)

numeric Jednostka: CZK json\_path

Odczyt

```taphome
var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
AVG(prices)*kurz
```

Średnia cena w oknie czasowym Zmienna Tylko do odczytu

Średnia cena spot w oknie czasowym From–To (CZK)

numeric Jednostka: CZK json\_path

Odczyt

```taphome
VAR date := NOW();
IF From >= To
	RETURN(NaN);
ELSE
	var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
	var periodHour := LENGTH(prices) / 24;	
	#var actualperiod := FLOOR(((date.hour * 60) + date.minute) * periodHour / 60);
	var windowPrices := COPY(prices, From * periodHour, (To - From) * periodHour);

	RETURN(AVG(windowPrices)*kurz);
END
```

**Połączenie:** Packet Parser → HTTP

## Powiązana dokumentacja

- [Integracja Packet Parser](https://taphome.com/pl/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/pl/docs/integration/packet-parser/)
- [Funkcje Packet parser](https://taphome.com/pl/docs/script/packet-parser/)
- [Funkcje parsowania](https://taphome.com/pl/docs/script/parsing-functions/)

