TapHome

OTE-CR Spotové ceny

Packet Parser → HTTP
Pridal
Posledná aktualizácia: 03. 2026

OTE-CR (Operátor trhu s elektřinou) je český operátor trhu s elektrinou a plynom. Šablóna TapHome načítava spotové ceny z denného trhu z verejného API OTE-CR a sprístupňuje ich ako zariadenia — aktuálna cena, denné štatistiky, poradie a varianty časových okien. Ceny sú publikované v EUR za MWh a šablóna obsahuje vstavanú premennú pre konverziu meny na zobrazenie hodnôt v CZK.

Šablóna dopytuje API OTE-CR raz za hodinu a načítava až 96 hodinových cenových období (4 dni dát). Nie je potrebná žiadna autentifikácia — API endpoint je verejný.

Konfigurácia

Počas importu šablóny sa TapHome pripojí k www.ote-cr.cz cez HTTPS (port 443). Nie je potrebná žiadna IP adresa ani prihlasovacie údaje — endpoint je pevne daný.

Dva voliteľné parametre importu ovládajú zariadenia s časovým oknom:

  • From — počiatočná hodina (0–23, predvolené: 9) pre filter časového okna
  • To — koncová hodina (0–23, predvolené: 17) pre filter časového okna

Predvolené hodnoty (9–17) pokrývajú štandardné pracovné hodiny. Upravte ich podľa preferovaného analytického okna.

Po importe je premenná Výmenný kurz meny (kurz) predvolene nastavená na 1 — to znamená, že všetky cenové zariadenia zobrazujú surové hodnoty v EUR/MWh. Nastavte ju na aktuálny kurz EUR/CZK (napr. 25,2), aby všetky cenové zariadenia zobrazovali hodnoty v CZK. Kurz môžete nastaviť ručne v detaile zariadenia alebo ho prepojiť so šablónou Kurzy ČNB pre automatické denné aktualizácie (pozri nižšie).

Schopnosti zariadení

Aktuálna cena

Zariadenie Aktuálna cena číta spotovú cenu pre aktuálnu hodinu. Šablóna určí aktívne obdobie zo systémových hodín a vynásobí hodnotu v EUR kurzom, aby zobrazila cenu v CZK.

Poradie cien
  • Poradie aktuálneho obdobia — poradie ceny aktuálnej hodiny medzi všetkými obdobiami dňa (1 = najlacnejšie, 24 = najdrahšie)
  • Poradie aktuálneho obdobia v časovom okne — rovnaké poradie, ale obmedzené na používateľom definované časové okno (From–To). Vráti NaN, ak aktuálna hodina leží mimo okno.
Denné cenové štatistiky
  • Najvyššia cena dňa — maximálna spotová cena zo všetkých období, konvertovaná na CZK
  • Najnižšia cena dňa — minimálna spotová cena zo všetkých období, konvertovaná na CZK
  • Priemerná cena dňa — aritmetický priemer zo všetkých období, konvertovaný na CZK
Cenové štatistiky časového okna

Každá denná štatistika má zodpovedajúci variant s časovým oknom, ktorý filtruje obdobia do rozsahu From–To:

  • Najvyššia cena v časovom okne
  • Najnižšia cena v časovom okne
  • Priemerná cena v časovom okne

Všetky zariadenia s časovým oknom vrátia NaN, ak From >= To.

  • Najlacnejšie obdobie dňa — číslo obdobia (od 1) najlacnejšej hodiny v danom dni
  • Najlacnejšie zostávajúce obdobie — najlacnejšia hodina od aktuálneho času ďalej
  • Počet období — celkový počet dostupných cenových období (zvyčajne 96)
  • Počet období v časovom okne — počet období v rozsahu From–To
Výmenný kurz meny

Zariadenie Výmenný kurz meny je jediné zariadenie na čítanie aj zápis v šablóne. Uchováva konverzný kurz EUR na CZK, ktorý používajú všetky cenové zariadenia. Nastavte ho manuálne alebo ho prepojte so šablónou Kurzy ČNB pre automatické denné aktualizácie.

Keď je výmenný kurz nastavený na 1, všetky cenové zariadenia zobrazujú surové hodnoty v EUR.

Servisné atribúty

Šablóna sprístupňuje 96 servisných atribútov (Obdobie 1 až Obdobie 96), z ktorých každý zobrazuje surovú spotovú cenu v EUR pre príslušný hodinový slot. Pokrývajú približne 4 dni dát z denného trhu a sú užitočné na diagnostiku alebo na vytváranie vlastných automatizácií, ktoré kontrolujú konkrétne budúce obdobia.

Prepojenie s kurzom ČNB

Na automatizáciu konverzie EUR na CZK:

  1. Importujte šablónu Kurzy ČNB do TapHome
  2. V šablóne OTE-CR vytvorte vzorec, ktorý číta kurz EUR/CZK zo zariadenia ČNB a zapisuje ho do zariadenia Výmenný kurz meny
  3. Šablóna ČNB aktualizuje kurz denne, takže všetky ceny OTE-CR automaticky odrážajú aktuálny výmenný kurz

Príklady automatizácie

Spotové ceny sú najužitočnejšie v kombinácii s TapHome smart rules:

  • Ohrievanie vody počas najlacnejších hodín — porovnajte poradie aktuálneho obdobia s prahovou hodnotou (napr. poradie <= 4) a zapnite ohrievač vody len počas 4 najlacnejších hodín dňa
  • Nabíjanie batérií mimo špičku — použite zariadenie Aktuálna cena na spustenie nabíjania batérie, keď cena klesne pod nastaviteľný limit
  • Presun záťaže spotrebičov — použite zariadenie Najlacnejšie zostávajúce obdobie na naplánovanie práčok, umývačiek riadu alebo nabíjania EV na ďalší najlacnejší slot
  • Optimalizácia časového okna — obmedzte automatizáciu na konkrétne hodiny (napr. 6:00–22:00) pomocou zariadení s časovým oknom, aby boli nočné obdobia vylúčené z poradia

Riešenie problémov

Všetky ceny zobrazujú nulu alebo NaN
  1. Overte, či má TapHome CCU prístup na internet (šablóna sa pripája k www.ote-cr.cz cez HTTPS)
  2. Skontrolujte zariadenie Počet období — ak zobrazuje 0, odpoveď API je prázdna alebo parsovanie zlyhalo
  3. Uistite sa, že zariadenie Výmenný kurz meny je nastavené na nenulovú hodnotu — kurz 0 vynásobí všetky ceny na nulu
Zariadenia s časovým oknom vracajú NaN
  1. Overte, či sú parametre importu From a To nastavené správne (From musí byť menšie ako To)
  2. Ak je aktuálna hodina mimo rozsah From–To, zariadenie poradia v okne vracia NaN zámerne
Ceny sa zdajú zastarané

Šablóna dopytuje API OTE-CR každú hodinu (3600 sekúnd). Ceny denného trhu sú publikované OTE deň vopred, zvyčajne okolo 12:45 CET. Ak ceny nového dňa ešte nie sú viditeľné, počkajte do času publikácie.

Dostupné zariadenia

OTE-CR Spotové ceny Modul
Servisné atribúty
Period 1Spotová cena pre hodinu 1 (EUR)
Period 2Spotová cena pre hodinu 2 (EUR)
Period 3Spotová cena pre hodinu 3 (EUR)
Period 4Spotová cena pre hodinu 4 (EUR)
Period 5Spotová cena pre hodinu 5 (EUR)
Period 6Spotová cena pre hodinu 6 (EUR)
Period 7Spotová cena pre hodinu 7 (EUR)
Period 8Spotová cena pre hodinu 8 (EUR)
Period 9Spotová cena pre hodinu 9 (EUR)
Period 10Spotová cena pre hodinu 10 (EUR)
Period 11Spotová cena pre hodinu 11 (EUR)
Period 12Spotová cena pre hodinu 12 (EUR)
Period 13Spotová cena pre hodinu 13 (EUR)
Period 14Spotová cena pre hodinu 14 (EUR)
Period 15Spotová cena pre hodinu 15 (EUR)
Period 16Spotová cena pre hodinu 16 (EUR)
Period 17Spotová cena pre hodinu 17 (EUR)
Period 18Spotová cena pre hodinu 18 (EUR)
Period 19Spotová cena pre hodinu 19 (EUR)
Period 20Spotová cena pre hodinu 20 (EUR)
Period 21Spotová cena pre hodinu 21 (EUR)
Period 22Spotová cena pre hodinu 22 (EUR)
Period 23Spotová cena pre hodinu 23 (EUR)
Period 24Spotová cena pre hodinu 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
Vlastné premenné
From (numeric) = 9Start hour (0–23) of the time window for windowed price ranking and statistics
To (numeric) = 17End hour (0–23) of the time window for windowed price ranking and statistics
kurz (numeric) = 1EUR to CZK exchange rate multiplier — all prices are multiplied by this value (set to current rate, e.g. 25.2)

ote-cr

Čítanie (modul)
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
Servisné atribúty
Perioda 1
PARSEJSON(output, "$.data.dataLine[1].point[0].y") + " EUR"
Perioda 2
PARSEJSON(output, "$.data.dataLine[1].point[1].y") + " EUR"
Perioda 3
PARSEJSON(output, "$.data.dataLine[1].point[2].y") + " EUR"
Perioda 4
PARSEJSON(output, "$.data.dataLine[1].point[3].y") + " EUR"
Perioda 5
PARSEJSON(output, "$.data.dataLine[1].point[4].y") + " EUR"
Perioda 6
PARSEJSON(output, "$.data.dataLine[1].point[5].y") + " EUR"
Perioda 7
PARSEJSON(output, "$.data.dataLine[1].point[6].y") + " EUR"
Perioda 8
PARSEJSON(output, "$.data.dataLine[1].point[7].y") + " EUR"
Perioda 9
PARSEJSON(output, "$.data.dataLine[1].point[8].y") + " EUR"
Perioda 10
PARSEJSON(output, "$.data.dataLine[1].point[9].y") + " EUR"
Perioda 11
PARSEJSON(output, "$.data.dataLine[1].point[10].y") + " EUR"
Perioda 12
PARSEJSON(output, "$.data.dataLine[1].point[11].y") + " EUR"
Perioda 13
PARSEJSON(output, "$.data.dataLine[1].point[12].y") + " EUR"
Perioda 14
PARSEJSON(output, "$.data.dataLine[1].point[13].y") + " EUR"
Perioda 15
PARSEJSON(output, "$.data.dataLine[1].point[14].y") + " EUR"
Perioda 16
PARSEJSON(output, "$.data.dataLine[1].point[15].y") + " EUR"
Perioda 17
PARSEJSON(output, "$.data.dataLine[1].point[16].y") + " EUR"
Perioda 18
PARSEJSON(output, "$.data.dataLine[1].point[17].y") + " EUR"
Perioda 19
PARSEJSON(output, "$.data.dataLine[1].point[18].y") + " EUR"
Perioda 20
PARSEJSON(output, "$.data.dataLine[1].point[19].y") + " EUR"
Perioda 21
PARSEJSON(output, "$.data.dataLine[1].point[20].y") + " EUR"
Perioda 22
PARSEJSON(output, "$.data.dataLine[1].point[21].y") + " EUR"
Perioda 23
PARSEJSON(output, "$.data.dataLine[1].point[22].y") + " EUR"
Perioda 24
PARSEJSON(output, "$.data.dataLine[1].point[23].y") + " EUR"
Perioda 25
PARSEJSON(output, "$.data.dataLine[1].point[24].y") + " EUR"
Perioda 26
PARSEJSON(output, "$.data.dataLine[1].point[25].y") + " EUR"
Perioda 27
PARSEJSON(output, "$.data.dataLine[1].point[26].y") + " EUR"
Perioda 28
PARSEJSON(output, "$.data.dataLine[1].point[27].y") + " EUR"
Perioda 29
PARSEJSON(output, "$.data.dataLine[1].point[28].y") + " EUR"
Perioda 30
PARSEJSON(output, "$.data.dataLine[1].point[29].y") + " EUR"
Perioda 31
PARSEJSON(output, "$.data.dataLine[1].point[30].y") + " EUR"
Perioda 32
PARSEJSON(output, "$.data.dataLine[1].point[31].y") + " EUR"
Perioda 33
PARSEJSON(output, "$.data.dataLine[1].point[32].y") + " EUR"
Perioda 34
PARSEJSON(output, "$.data.dataLine[1].point[33].y") + " EUR"
Perioda 35
PARSEJSON(output, "$.data.dataLine[1].point[34].y") + " EUR"
Perioda 36
PARSEJSON(output, "$.data.dataLine[1].point[35].y") + " EUR"
Perioda 37
PARSEJSON(output, "$.data.dataLine[1].point[36].y") + " EUR"
Perioda 38
PARSEJSON(output, "$.data.dataLine[1].point[37].y") + " EUR"
Perioda 39
PARSEJSON(output, "$.data.dataLine[1].point[38].y") + " EUR"
Perioda 40
PARSEJSON(output, "$.data.dataLine[1].point[39].y") + " EUR"
Perioda 41
PARSEJSON(output, "$.data.dataLine[1].point[40].y") + " EUR"
Perioda 42
PARSEJSON(output, "$.data.dataLine[1].point[41].y") + " EUR"
Perioda 43
PARSEJSON(output, "$.data.dataLine[1].point[42].y") + " EUR"
Perioda 44
PARSEJSON(output, "$.data.dataLine[1].point[43].y") + " EUR"
Perioda 45
PARSEJSON(output, "$.data.dataLine[1].point[44].y") + " EUR"
Perioda 46
PARSEJSON(output, "$.data.dataLine[1].point[45].y") + " EUR"
Perioda 47
PARSEJSON(output, "$.data.dataLine[1].point[46].y") + " EUR"
Perioda 48
PARSEJSON(output, "$.data.dataLine[1].point[47].y") + " EUR"
Perioda 49
PARSEJSON(output, "$.data.dataLine[1].point[48].y") + " EUR"
Perioda 50
PARSEJSON(output, "$.data.dataLine[1].point[49].y") + " EUR"
Perioda 51
PARSEJSON(output, "$.data.dataLine[1].point[50].y") + " EUR"
Perioda 52
PARSEJSON(output, "$.data.dataLine[1].point[51].y") + " EUR"
Perioda 53
PARSEJSON(output, "$.data.dataLine[1].point[52].y") + " EUR"
Perioda 54
PARSEJSON(output, "$.data.dataLine[1].point[53].y") + " EUR"
Perioda 55
PARSEJSON(output, "$.data.dataLine[1].point[54].y") + " EUR"
Perioda 56
PARSEJSON(output, "$.data.dataLine[1].point[55].y") + " EUR"
Perioda 57
PARSEJSON(output, "$.data.dataLine[1].point[56].y") + " EUR"
Perioda 58
PARSEJSON(output, "$.data.dataLine[1].point[57].y") + " EUR"
Perioda 59
PARSEJSON(output, "$.data.dataLine[1].point[58].y") + " EUR"
Perioda 60
PARSEJSON(output, "$.data.dataLine[1].point[59].y") + " EUR"
Perioda 61
PARSEJSON(output, "$.data.dataLine[1].point[60].y") + " EUR"
Perioda 62
PARSEJSON(output, "$.data.dataLine[1].point[61].y") + " EUR"
Perioda 63
PARSEJSON(output, "$.data.dataLine[1].point[62].y") + " EUR"
Perioda 64
PARSEJSON(output, "$.data.dataLine[1].point[63].y") + " EUR"
Perioda 65
PARSEJSON(output, "$.data.dataLine[1].point[64].y") + " EUR"
Perioda 66
PARSEJSON(output, "$.data.dataLine[1].point[65].y") + " EUR"
Perioda 67
PARSEJSON(output, "$.data.dataLine[1].point[66].y") + " EUR"
Perioda 68
PARSEJSON(output, "$.data.dataLine[1].point[67].y") + " EUR"
Perioda 69
PARSEJSON(output, "$.data.dataLine[1].point[68].y") + " EUR"
Perioda 70
PARSEJSON(output, "$.data.dataLine[1].point[69].y") + " EUR"
Perioda 71
PARSEJSON(output, "$.data.dataLine[1].point[70].y") + " EUR"
Perioda 72
PARSEJSON(output, "$.data.dataLine[1].point[71].y") + " EUR"
Perioda 73
PARSEJSON(output, "$.data.dataLine[1].point[72].y") + " EUR"
Perioda 74
PARSEJSON(output, "$.data.dataLine[1].point[73].y") + " EUR"
Perioda 75
PARSEJSON(output, "$.data.dataLine[1].point[74].y") + " EUR"
Perioda 76
PARSEJSON(output, "$.data.dataLine[1].point[75].y") + " EUR"
Perioda 77
PARSEJSON(output, "$.data.dataLine[1].point[76].y") + " EUR"
Perioda 78
PARSEJSON(output, "$.data.dataLine[1].point[77].y") + " EUR"
Perioda 79
PARSEJSON(output, "$.data.dataLine[1].point[78].y") + " EUR"
Perioda 80
PARSEJSON(output, "$.data.dataLine[1].point[79].y") + " EUR"
Perioda 81
PARSEJSON(output, "$.data.dataLine[1].point[80].y") + " EUR"
Perioda 82
PARSEJSON(output, "$.data.dataLine[1].point[81].y") + " EUR"
Perioda 83
PARSEJSON(output, "$.data.dataLine[1].point[82].y") + " EUR"
Perioda 84
PARSEJSON(output, "$.data.dataLine[1].point[83].y") + " EUR"
Perioda 85
PARSEJSON(output, "$.data.dataLine[1].point[84].y") + " EUR"
Perioda 86
PARSEJSON(output, "$.data.dataLine[1].point[85].y") + " EUR"
Perioda 87
PARSEJSON(output, "$.data.dataLine[1].point[86].y") + " EUR"
Perioda 88
PARSEJSON(output, "$.data.dataLine[1].point[87].y") + " EUR"
Perioda 89
PARSEJSON(output, "$.data.dataLine[1].point[88].y") + " EUR"
Perioda 90
PARSEJSON(output, "$.data.dataLine[1].point[89].y") + " EUR"
Perioda 91
PARSEJSON(output, "$.data.dataLine[1].point[90].y") + " EUR"
Perioda 92
PARSEJSON(output, "$.data.dataLine[1].point[91].y") + " EUR"
Perioda 93
PARSEJSON(output, "$.data.dataLine[1].point[92].y") + " EUR"
Perioda 94
PARSEJSON(output, "$.data.dataLine[1].point[93].y") + " EUR"
Perioda 95
PARSEJSON(output, "$.data.dataLine[1].point[94].y") + " EUR"
Perioda 96
PARSEJSON(output, "$.data.dataLine[1].point[95].y") + " EUR"
Aktuálna cena Premenná Len na čítanie

Spotová cena aktuálnej hodiny konvertovaná na CZK pomocou premennej výmenného kurzu

numeric Jednotka: CZK json_path

Aktuálna cena

Čítanie
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)
Poradie aktuálneho obdobia Premenná Len na čítanie

Poradie aktuálnej hodiny medzi všetkými dennými obdobiami (1 = najlacnejšie)

numeric json_path

Poradie aktuálneho obdobia

Čítanie
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
Poradie aktuálneho obdobia v časovom okne Premenná Len na čítanie

Poradie aktuálnej hodiny v rámci časového okna From–To (NaN ak je mimo)

numeric json_path

Poradie aktuálneho obdobia v časovom okne

Čítanie
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
Výmenný kurz meny Premenná

Konverzný kurz EUR na CZK — čítanie/zápis, používaný všetkými cenovými zariadeniami

numeric Jednotka: CZK/EUR

Výmenný kurz meny

Čítanie
kurz
Zápis
kurz := Va
Najvyššia cena dňa Premenná Len na čítanie

Maximálna spotová cena zo všetkých období dňa (CZK)

numeric Jednotka: CZK json_path

Najvyššia cena dňa

Čítanie
var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
GETAT(ORDERDESC(prices), 0)*kurz
Najvyššia cena v časovom okne Premenná Len na čítanie

Maximálna spotová cena v rámci časového okna From–To (CZK)

numeric Jednotka: CZK json_path

Najvyššia cena v časovom okne

Čítanie
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žšia cena dňa Premenná Len na čítanie

Minimálna spotová cena zo všetkých období dňa (CZK)

numeric Jednotka: CZK json_path

Najnižšia cena dňa

Čítanie
var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
GETAT(ORDER(prices), 0)*kurz
Najnižšia cena v časovom okne Premenná Len na čítanie

Minimálna spotová cena v rámci časového okna From–To (CZK)

numeric Jednotka: CZK json_path

Najnižšia cena v časovom okne

Čítanie
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
Najlacnejšie obdobie dňa Premenná Len na čítanie

Číslo obdobia (od 1) najlacnejšej hodiny v danom dni

numeric json_path

Najlacnejšie obdobie dňa

Čítanie
var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
GETAT(ORDERINDEX(prices), 0) +1
Najlacnejšie zostávajúce obdobie Premenná Len na čítanie

Číslo obdobia najlacnejšej hodiny od aktuálneho času ďalej

numeric json_path

Najlacnejšie zostávajúce obdobie

Čítanie
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
Počet období Premenná Len na čítanie

Celkový počet dostupných cenových období (zvyčajne 96)

numeric json_path

Počet období

Čítanie
var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
LENGTH(prices);
Počet období v časovom okne Premenná Len na čítanie

Počet období v rámci časového okna From–To

numeric json_path

Počet období v časovom okne

Čítanie
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
Priemerná cena dňa Premenná Len na čítanie

Priemerná spotová cena zo všetkých období dňa (CZK)

numeric Jednotka: CZK json_path

Priemerná cena dňa

Čítanie
var prices := PARSEJSON(output, "$.data.dataLine[1].point..y");
AVG(prices)*kurz
Priemerná cena v časovom okne Premenná Len na čítanie

Priemerná spotová cena v rámci časového okna From–To (CZK)

numeric Jednotka: CZK json_path

Priemerná cena v časovom okne

Čítanie
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
Pripojenie: Packet Parser → HTTP