ESP32-EPEX — spotové ceny elektřiny z OTE

IoT monitoring na ESP32 · WiFi konfigurace · archivace MySQL · EaSun Spot kalkulačka

Verze 11.1 | 2026 · dokumentace aktualizována

Co je ESP32-EPEX?

ESP32-EPEX (EaSun-EPEX) je IoT firmware pro mikrokontrolér ESP32 / ESP32-C3, který v reálném čase monitoruje spotové ceny elektřiny z oficiálního zdroje OTE-CR.cz (Operátor trhu s elektřinou). Aplikace automaticky stahuje aktuální i zítřejší ceny po 15minutových intervalech (96 hodnot denně), archivuje je přes Classic ASP do MySQL a umožňuje je prohlížet na spotových cenách EaSun a Spot kalkulačce (ČEZ / EG.D / PRE).

96 hodnot denně
(15min intervaly)
24/7 monitoring
non-stop
100% WiFi konfigurace
přes web
historická data
bez omezení

Aktualizace firmware ESP32-EPEX (verze 11.1)

Níže je přehled novinek a oprav oproti původní dokumentaci (verze 8.0). Základní popis zařízení zůstává platný; doplněny jsou změny z verzí 9–11.1 (ESP32-EPEX11.ino).

🆕 Co je nového ve verzi 11.1

  • Dvojí čas aktualizace — v OTE konfiguraci lze nastavit 2 nezávislé časy denního stahování (1. a 2. aktualizace). Každý slot má vlastní hodinu a minutu; po půlnoci se oba resetují.
  • Doporučené použití — např. 1. slot ráno (dnešní data) a 2. slot odpoledne po DAM (~13:05 pro zítřejší ceny).
  • Stejný čas u obou slotů — pokud jsou oba časy shodné, proběhne jen jedno stahování denně.
  • Uložení v SPIFFS — druhý čas se ukládá do /update_hour2.ea a /update_minute2.ea (výchozí 13:05).

Verze 11.0

  • Nový OTE API endpointhttps://www.ote-cr.cz/pw-data/chart-data/01 (starý @@chart-data vrací HTTP 301)
  • OTA aktualizace firmwaru přes /update (ESP32 i ESP32-C3)
  • Hardwarový watchdog (TWDT) — timeout 120 s, diagnostika na webu
  • Periodický restart — každých N kalendářních dní v zvolený čas
  • Detekce falešných zítřejších dat — před DAM (~13:02) OTE vrací kopii dneška; firmware duplicitu nearchivuje
  • Samostatná archivace dnešních a zítřejších dat
  • HTTP hlavičky pro OTE — User-Agent a další hlavičky prohlížeče

Verze 10.0 (základ pro zítřejší data)

  • Automatické stahování zítřejších dat po dnešních (DAM obvykle ~13:02)
  • Chybějící zítřejší data nejsou chyba — archivace se přeskočí
  • JSON archiv může obsahovat pole quartersToday i quartersTomorrow
  • 15minutové intervaly: 96 hodnot denně

Doporučení při nahrávání (Arduino IDE)

  • Sériový monitor: USB CDC on boot: Enable
  • Pro OTA: partition scheme s OTA sloty (např. „Minimal SPIFFS (1.9MB APP with OTA/240KB SPIFFS)“ u ESP32-C3)
  • Soubor firmware: ESP32-EPEX11.ino (nahrazuje dřívější ESP32-EPEX08.ino)

Klíčové funkce a výhody ESP32-EPEX

🛜

WiFi konfigurace přes web

Kompletní nastavení WiFi připojení přes přehledné webové rozhraní. Žádné hardcoded přihlašovací údaje - vše se konfiguruje pohodlně z prohlížeče.

Real-time monitoring

Aktuální spotové ceny elektřiny z OTE-CR.cz v reálném čase. Automatické stahování dnešních i zítřejších dat (zítřejší ceny obvykle po zveřejnění DAM ~13:02).

💾

Automatická archivace

Možnost odesílání stažených dat na vlastní server pro dlouhodobé uchovávání a analýzu. Konfigurovatelná URL a API cesta.

📅

Historický režim

Stahování historických dat den po dni od libovolného data v minulosti. Ideální pro zpětnou analýzu a porovnání cen.

Flexibilní plánování

Dva časy aktualizace denně (hodina + minuta pro každý slot) a konfigurovatelný interval stahování pro historický režim (1–1440 minut).

🔧

Snadná konfigurace

Všechny parametry nastavitelné přes webové rozhraní bez nutnosti přeprogramování. SPIFFS úložiště pro trvalé uložení konfigurace.

🔄

Automatický restart

Po uložení konfigurace se ESP32 automaticky restartuje za 500ms a aktivuje nové nastavení. Uživatel vidí vizuální feedback.

📡

Access Point mód

Pokud ESP32 nenajde uloženou WiFi síť, automaticky se přepne do AP módu "EaSun-EPEX" pro snadnou první konfiguraci.

🌐

Oficiální zdroj dat

Data pochází přímo z OTE-CR.cz (Operátor trhu s elektřinou) - 100% spolehlivý a oficiální zdroj spotových cen.

📤

OTA aktualizace

Nahrání nového firmwaru přes webové rozhraní na /update bez USB kabelu. Podpora ESP32 i ESP32-C3 s OTA partition scheme.

🐕

Hardwarový watchdog

TWDT s timeoutem 120 s hlídá zaseknutí úloh. Stav, uptime a volná heap paměť jsou viditelné přímo na konfiguračních stránkách.

📆

Zítřejší ceny + ochrana

Automatické stažení zítřejších cen po dnešních. Firmware detekuje, když OTE ještě vrací kopii dneška, a duplicitu nearchivuje.

Dvojí denní aktualizace

Dva nezávislé časy stahování — např. ráno dnešní ceny a odpoledne po DAM zítřejší. Ideální kombinace s detekcí duplicitních dat z OTE.

🔁

Periodický restart

Volitelný plánovaný restart každých N kalendářních dní v nastavený čas — prevence dlouhodobých úniků paměti a stabilnější provoz.

Technické specifikace

  • Hardware: ESP32 (ESP32-C3 nebo ESP32-WROOM)
  • Programovací jazyk: C++ (Arduino framework)
  • WiFi: 802.11 b/g/n (2.4 GHz)
  • Webový server: ESPAsyncWebServer (asynchronní)
  • Úložiště: SPIFFS (SPI Flash File System)
  • Časování: NTP synchronizace (pool.ntp.org)
  • Timezone: GMT+1 (ČR) s automatickým letním časem
  • Data source: OTE-CR.cz JSON API (pw-data/chart-data/01, HTTPS)
  • Data interval: 15 minut (96 hodnot/den)
  • Měna: EUR/MWh (v archivu přepočet na CZK v poli priceCZK)
  • HTTP knihovna: HTTPClient (pro stahování dat)
  • JSON parser: ArduinoJson (buffer až 40 KB)
  • Watchdog: TWDT, timeout 120 s, idle core monitoring
  • OTA: Web upload přes /update (ESP32 Update knihovna)
  • Verzování: Verze 11.1 (červenec 2026) — původní dokumentace v8.0

WiFi konfigurace ESP32 přes web

První spuštění (AP mód):

  1. ESP32 se spustí a pokusí se připojit k uložené WiFi síti
  2. Pokud nenajde uloženou síť, automaticky vytvoří vlastní WiFi: "EaSun-EPEX"
  3. Připojte se k této WiFi (žádné heslo - otevřená síť)
  4. Otevřete prohlížeč a přejděte na: http://192.168.4.1
  5. Vyberte WiFi síť, zadejte heslo a klikněte na "Uložit a připojit"
  6. ESP32 se restartuje a připojí k vybrané WiFi síti
  7. IP adresa se zobrazí v sériovém monitoru

Změna WiFi během provozu:

  1. Otevřete http://[IP-ESP32]/config
  2. Klikněte na "🔄 Aktualizovat seznam WiFi sítí" (volitelně)
  3. Vyberte novou WiFi síť a zadejte heslo
  4. ESP32 se restartuje a připojí k nové síti

💡 Tip pro optimalizaci

WiFi skenování probíhá pouze na požádání (kliknutím na tlačítko), čímž se výrazně zkracuje čas načítání webových stránek a neruší se stávající WiFi připojení.

Konfigurace OTE parametrů

Všechny parametry pro stahování a archivaci dat jsou nastavitelné přes webové rozhraní:

Přístup k OTE konfiguraci:

  • Otevřete http://[IP-ESP32]/config
  • Klikněte na odkaz "⚙️ OTE konfigurace"
  • Nebo přejděte přímo na http://[IP-ESP32]/ote-config

Nastavitelné parametry:

  • Archivace dat: Zapnout/Vypnout odesílání dat na server
  • URL serveru: Adresa serveru pro archivaci (např. http://api.easun.eu)
  • Cesta k API: Cesta k API skriptu (u nás /otecz-spot-archive-receive)
  • 1. aktualizace: Hodina (0–23) a minuta (0–59) prvního denního stahování
  • 2. aktualizace: Hodina (0–23) a minuta (0–59) druhého denního stahování (výchozí 13:05)
  • Historický režim: Zapnout/Vypnout stahování historických dat
  • Počáteční datum: Datum, od kterého začít stahovat historická data (YYYY-MM-DD)
  • Interval stahování: Jak často stahovat historická data (1-1440 minut)
  • Periodický restart: Zapnout/Vypnout automatický restart zařízení
  • Počet dní restartu: Každých N kalendářních dní (1–60)
  • Čas restartu: Hodina a minuta periodického restartu (z NTP)

💡 Tip — dva časy aktualizace

Pro spolehlivé zítřejší ceny nastavte např. 1. aktualizaci na 00:02 (dnešní data) a 2. aktualizaci na 13:05 (zítřejší data po zveřejnění DAM ~13:02). Pokud jsou oba časy stejné, firmware stáhne data jen jednou denně.

OTA aktualizace firmwaru:

  • Otevřete http://[IP-ESP32]/update (odkaz je i na stránkách /config a /ote-config)
  • Vyberte soubor .bin zkompilovaný pro stejný typ ESP32 (ESP32 / ESP32-C3)
  • Po úspěšném nahrání se zařízení automaticky restartuje
  • Volitelné heslo: nastaví se v kódu jako OTA_WEB_PASSWORD (prázdné = bez ověření)

⚠️ Upozornění - Historický režim

Historický režim stahuje data den po dni od zadaného počátečního data až do dnešního dne. Čím kratší interval, tím rychlejší stahování, ale větší zátěž serveru. Doporučený interval: 720 minut (12 hodin).

Postup použití ESP32-EPEX

1. Příprava hardware:

// Připojte ESP32 k USB portu // Nahrajte kód ESP32-EPEX11.ino přes Arduino IDE // Otevřete sériový monitor (115200 baud, USB CDC on boot: Enable)

2. První konfigurace WiFi:

  1. ESP32 vytvoří WiFi síť "EaSun-EPEX"
  2. Připojte se k této síti
  3. Přejděte na http://192.168.4.1
  4. Vyberte WiFi síť a zadejte heslo
  5. Po restartu se ESP32 připojí k WiFi

3. Nastavení OTE parametrů:

  1. Otevřete http://[IP-ESP32]/ote-config
  2. Nastavte archivaci (zapnuto/vypnuto)
  3. Zadejte URL serveru a cestu k API
  4. Nastavte 1. a 2. čas denní aktualizace (doporučeno např. 00:02 a 13:05)
  5. Klikněte na "Uložit nastavení"
  6. ESP32 se restartuje s novým nastavením

4. Monitoring v provozu:

  • ESP32 automaticky stahuje data ve 2 nastavených časech denně (každý slot max. 1× za den)
  • Data se odesílají na archivační server (pokud je zapnuto) — dnešní a zítřejší den zvlášť
  • Aktuální ceny a stav watchdogu se zobrazují v sériovém monitoru a na webu
  • Konfigurace je trvale uložena v SPIFFS
  • MAC adresa a verze firmwaru jsou viditelné v patičce webových stránek

API OTE a datová struktura

Zdroj dat:

OTE-CR.cz — Oficiální operátor trhu s elektřinou v České republice

URL (aktuální, od v11): https://www.ote-cr.cz/pw-data/chart-data/01 Parametry: ?time_resolution=PT15M&date=YYYY-MM-DD&language=cs Formát: JSON (HTTPS) Interval: 15 minut (PT15M) Hodnoty: 96 hodnot denně Měna: EUR/MWh Poznámka: Starý endpoint .../denni-trh/@@chart-data vrací HTTP 301. ESP32 HTTPClient přesměrování nesleduje — používejte novou URL výše.

Stahování dnešních a zítřejších dat:

  • Nejprve se stáhnou dnešní data a (pokud je archivace zapnutá) ihned se odešlou na server
  • Poté firmware stáhne zítřejší data — obvykle dostupná po zveřejnění DAM (~13:02)
  • Před zveřejněním DAM OTE vrací HTTP 200 se stejnými cenami jako dnes — firmware duplicitu detekuje a nearchivuje
  • Chybějící zítřejší data nejsou chyba; v sériovém monitoru je informativní hláška

Datové pole (v paměti / sériový výpis):

  • quarterlyPrices_OTE[96]: Dnešní spotové ceny (96 hodnot)
  • quarterlyPricesTomorrow_OTE[96]: Zítřejší spotové ceny (pokud existují)
  • actualPriceCZK_OTE: Aktuální cena v danou chvíli (přepočet EUR → CZK)
  • priceLevel_OTE: Textový popis cenové úrovně (velmi nízká/nízká/střední/vysoká/velmi vysoká)
  • priceLevelNumber_OTE: Číselná úroveň (1-5)

Archivační API:

ESP32 odesílá data na váš server pomocí HTTP POST (application/x-www-form-urlencoded):

POST parametry: action=save_spot_data date=YYYY-MM-DD json_data={ ... JSON ... } Struktura JSON (15min intervaly): { "quartersToday": [ {"interval": 0, "hour": 0, "minute": 0, "priceCZK": 45.23, "level": "low", "levelNum": 1}, ... ], "quartersTomorrow": [ ... ] // pouze pokud jsou zítřejší data k dispozici } Dnešní a zítřejší den se archivují samostatně (dva POST požadavky s různým datem).

Archivace spotových cen na MySQL server (ASP)

U nás se data z ESP32 ukládají na vlastní server přes Classic ASP skript otecz-spot-archive-receive, který přijme HTTP POST, zpracuje JSON a zapíše ceny do MySQL databáze (15minutové intervaly + denní souhrn).

Tok dat (ESP32 → ASP → MySQL):

  1. ESP32 stáhne ceny z OTE-CR.cz a sestaví JSON (quartersToday / případně quartersTomorrow)
  2. Odešle HTTP POST na http://[váš-server]/otecz-spot-archive-receive
  3. ASP skript ověří akci save_spot_data, připojí se k DB přes ODBC (Application("data"))
  4. Uloží kompletní JSON do denní tabulky a rozparsuje 96 intervalů do hodinové/15min tabulky
  5. Vrátí JSON odpověď {"status":"success","message":"...","date":"YYYY-MM-DD"}

Nastavení na ESP32 (/ote-config):

  • Archivace dat: Zapnuto
  • URL serveru: např. http://api.easun.eu
  • Cesta k API: /otecz-spot-archive-receive

POST požadavek z ESP32:

Content-Type: application/x-www-form-urlencoded action=save_spot_data &date=2026-07-27 &json_data={"quartersToday":[{"interval":0,"hour":0,"minute":0,"priceCZK":45.23,"level":"low","levelNum":1},...]} Poznámka: Firmware od v11 archivuje dnešek a zítřek ve dvou samostatných POST (každý s vlastním datem). Starší kombinovaný JSON s quartersTomorrow ASP stále umí zpracovat.

Co ASP skript dělá po přijetí:

  • 1. LogRequest — zaznamená příchozí požadavek (IP, User-Agent) do logovací tabulky
  • 2. SaveSpotData — uloží celý JSON do spot_archive_daily (INSERT … ON DUPLICATE KEY UPDATE)
  • 3. ProcessHourlyDataFromJSON — rozparsuje quartersToday (96×) a zapíše do otecz_spot_archive_hourly
  • 4. ProcessDailyStatsFromJSON — spočítá min/max/avg a počty low/medium/high intervalů, doplní denní řádek
  • 5. ProcessTomorrowDataFromJSON — pokud JSON obsahuje quartersTomorrow, uloží 15min data pod zítřejší datum
  • 6. SaveTomorrowDailyRecord — vytvoří/aktualizuje denní záznam pro zítřek

MySQL tabulky:

  • spot_archive_daily — 1 řádek na den: date, prices_json, min_price, max_price, avg_price, low_hours, medium_hours, high_hours, updated_at
  • otecz_spot_archive_hourly — 96 řádků na den: date, hour (0–23), minute (0/15/30/45), price_czk, price_level (low/medium/high), level_number, ote-cr=1, created_at, updated_at
  • spot_archive_log — log příjmu: datum, počet záznamů, status, chybová zpráva

Odpověď serveru (úspěch):

{"status":"success","message":"Data úspěšně uložena","date":"2026-07-27"}

ESP32 v sériovém monitoru vypíše potvrzení a uloží datum do SPIFFS. Při chybě ASP vrátí {"status":"error","message":"..."} nebo textovou chybu (DB, chybějící JSON, neznámá akce).

Další podporované akce ASP (volitelné):

  • save_spot_data — hlavní cesta z ESP32 (kompletní den + rozklad na 15min)
  • save_hourly_data — uložení jednoho 15min intervalu (manuální / starší klient)
  • save_daily_stats — uložení denních statistik zvlášť

💡 Nasazení na server

Skript otecz-spot-archive-receive patří na IIS s Classic ASP. Připojení k MySQL jde přes ODBC connection string v Application("data") (globální nastavení aplikace). Na konci skriptu je include !DATA/!StrFunkce (pomocné funkce, např. cDateSql). Opakované odeslání stejného data je bezpečné díky ON DUPLICATE KEY UPDATE.

📋 Shrnutí pro provoz

  • Na ESP zapněte archivaci a nastavte URL + cestu k otecz-spot-archive-receive
  • Po plánovaném stažení OTE dat se automaticky pošle POST
  • V MySQL najdete denní JSON v spot_archive_daily a 96 intervalů v otecz_spot_archive_hourly
  • Zítřejší ceny se uloží až když OTE zveřejní DAM a firmware je ověří (ne duplicita dneška)
  • Archivovaná data se zobrazují na webu EaSun — viz sekce níže

Kde data používáme na webu EaSun

Ceny, které ESP32-EPEX stáhne z OTE a uloží přes ASP do MySQL, se dále využívají na veřejných stránkách easun.eu. Silovka je v archivu v EUR/MWh (případně již jako price_czk); webové stránky je přepočítávají kurzem ČNB do Kč/MWh a nabízejí přehledy i kalkulace s poplatky distributora.

1. Spotové ceny elektřiny — easun.eu/spotove-ceny

Přehled archivovaných cen z denního trhu OTE pro zvolený den. Zobrazuje 96 čtvrthodin (EUR/MWh i Kč/MWh), cenová pásma a srovnání s včerejškem, týdnem a průměrem měsíce.

Ovládání stránky:

  • Datum — výběr dne z archivu EaSun (data z MySQL / ESP32-EPEX)
  • PohledDenní detail (tabulka 15min) nebo Měsíční přehled
  • Zobrazit — načte data pro zvolené datum a pohled
  • Dnes — skok na aktuální den v archivu
  • ← Předchozí den / Další den → — listování po dnech

Co stránka zobrazuje:

  • Kurz EUR/Kč — přepočet OTE do Kč/MWh (kurz ČNB k danému dni)
  • Karty srovnání — vybraný den, včera, před 7 dny, průměr měsíce (AVG / MIN / MAX + % rozdíl AVG)
  • Tabulka dne — Čas · EUR/MWh · Kč/MWh · Pásmo (low / medium / high)
  • Legenda — nízká / střední / vysoká cena

💡 Tip

Zítřejší den bývá v archivu až odpoledne po zveřejnění DAM (~13:02) a úspěšném stažení ESP32 (2. čas aktualizace, např. 13:05). Do té doby stránka ukazuje dostupná data z MySQL.

2. Spot kalkulačka — easun.eu/cez-spot-kalkulacka

Spočítá orientační cenu spotřeby za den / měsíc / rok: silovka OTE z archivu + poplatky distributora (ČEZ / EG.D / PRE) + marže obchodníka. Stejný princip jako Spot Gate na EaSun ESP — limit silovky rozhoduje ANO/NE.

Jak vyplnit (běžný uživatel):

  1. Údaje o distributorovi a sazbě najdete na faktuře za elektřinu (nebo ve smlouvě o připojení)
  2. Marži zvolte podle svého spotového dodavatele — nebo „Jen OTE + regulace“ pro samotný trh
  3. Do výkonu zadejte např. 3 (= 3 kW bojler). Za 15 min to je 0,75 kWh — ne 3 kWh najednou
  4. Limit Spot Gate = maximální silovka OTE, při které by EaSun ještě topil ze sítě (typicky 1500–2500 Kč/MWh)

Ovládání formuláře:

  • Datum Spot OTE — den z archivu; „Dnes“ = aktuální den; zítřek odpoledne po OTE
  • Distributor (PDS) — ČEZ Distribuce / EG.D / PREdistribuce (daný adresou)
  • Distribuční sazba — D01d, D02d (běžná), D25d (akumulace), D57d (TČ / přímotop)
  • Tarif VT / NT — u D25d/D57d podle pásma; u D01d/D02d jen VT
  • Marže obchodníka — bezDodavatele, EnerSpot, marže 0, nebo vlastní Kč/MWh
  • Výkon zátěže (kW) — trvalý výkon spotřebiče pro výpočet kWh/15 min
  • Limit Spot Gate — práh silovky OTE (bez distribuce); nad limitem Gate = NE
  • Ruční úprava poplatků — pokročilé: vlastní marže / distribuce / systém / daň
  • Spočítat / Dnes / ← Den / Den → — výpočet a listování po dnech

Nastavení formuláře (distributor, sazba, marže, výkon, limit…) se ukládá v prohlížeči. Datum se neukládá — při novém otevření je vždy „dnes“.

Výsledky kalkulačky:

  • Shrnutí dne — AVG / MIN / MAX silovky a průměr celkem s poplatky
  • Tabulka 15 min — Silovka OTE · Celkem Kč/MWh · cena za 0,75 kWh · Pásmo · Gate (ANO/NE)
  • Zelený box SPOT — spotřeba a cena jen v intervalech Gate ANO (EaSun by topil)
  • Červený box Mimo Spot — drahé intervaly Gate NE (EaSun by netopil)
  • Modrý box Celý den — součet ANO + NE (nonstop 24 h)
  • Součet za měsíc / rok — stejná logika Gate; kliknutím na den otevřete detail
Vzorec za 1 interval (příklad): (silovka_OTE_Kč/MWh + poplatky_Kč/MWh) × (výkon_kW × 0,25) / 1000 Silovka: tabulka otecz_spot_archive_hourly (archiv z ESP32-EPEX) Kurz: ČNB (EUR → Kč) Poplatky: orientační ceník PDS 2026 + zvolená marže (bez měsíčního jističe)

🔗 Rychlé odkazy

Bezpečnost a stabilita

🛡️

Asynchronní restart

Restart ESP32 probíhá asynchronně (500ms po odeslání HTTP odpovědi), čímž se předchází Task Watchdog Timeout chybám.

🔐

SPIFFS úložiště

Všechny konfigurace jsou trvale uloženy v SPIFFS. Po restartu nebo výpadku napájení se automaticky obnoví.

🔄

Fallback na AP mód

Pokud ESP32 nenalezne uloženou WiFi nebo se nepodaří připojit, automaticky se přepne do AP módu pro rekonfiguraci.

⏱️

NTP synchronizace

Přesný čas je zajištěn synchronizací s NTP servery. Kritické pro správné časování aktualizací dat.

🚫

Prevence konfliktů

První stahování dat je odloženo o 3 sekundy po startu webserveru, čímž se předchází LWIP/TCPIP konfliktům.

📊

Monitoring v serial

Detailní výpis všech operací v sériovém monitoru pro snadné debugování a monitoring stavu zařízení.

🐕

Task Watchdog (TWDT)

Hardwarový watchdog s 120s timeoutem resetuje ESP při zaseknutí. Každých 60 s se vypisuje stav heap a uptime.

🧠

Správa paměti

Po stažení a archivaci dat se explicitně uvolňují HTTP odpovědi a JSON buffery — důležité při dvojím stahování (dnes + zítra).

Praktické využití spotových cen

Domácí automatizace (Smart Home):

  • Automatické spouštění spotřebičů v době nejnižších cen elektřiny
  • Nabíjení elektromobilů v optimálním čase
  • Řízení tepelných čerpadel podle spotových cen
  • Spouštění praček, myček, bojlerů v levných tarifech

Analýza a optimalizace:

  • Dlouhodobá archivace dat pro zpětnou analýzu
  • Porovnání spotových cen v různých obdobích
  • Identifikace vzorců a trendů v cenách elektřiny
  • Plánování spotřeby na základě cenových prognóz

Vizualizace a dashboardy:

  • easun.eu/spotove-ceny — denní a měsíční přehled archivovaných cen OTE
  • easun.eu/cez-spot-kalkulacka — kalkulace se silovkou + poplatky PDS a Spot Gate
  • Připojení k Home Assistant, Node-RED, Domoticz
  • Notifikace při dosažení cenových limitů
  • Integrace s dalšími IoT zařízeními

💰 Úspora nákladů

Díky monitoringu spotových cen a optimalizaci spotřeby energie v době nízkých cen můžete ušetřit až 30-50% nákladů na elektrickou energii, zejména pokud máte tarif vázaný na spotové ceny (TDD tarif).

Download, odkazy a zdroje

Potřebné knihovny:

// Arduino IDE → Nástroje → Správce knihoven // Nainstalujte následující knihovny: - WiFi (vestavěná v ESP32 core) - HTTPClient (vestavěná v ESP32 core) - ArduinoJson (by Benoit Blanchon) - ESPAsyncWebServer (by me-no-dev) - AsyncTCP (by me-no-dev) - SPIFFS (vestavěná v ESP32 core) - Update (vestavěná — OTA nahrávání přes /update)

Užitečné odkazy:

Často kladené otázky (FAQ) — ESP32-EPEX a spotové ceny OTE

Jak často se data aktualizují?

V normálním režimu 2× denně — v každém z nastavených časů (1. a 2. aktualizace). Doporučeno např. 00:02 (dnešní data) a 13:05 (zítřejší po DAM ~13:02). V historickém režimu podle nastaveného intervalu (doporučeno 720 minut = 12 hodin).

Potřebuji vlastní server pro archivaci?

Ne, archivace je volitelná. ESP32 může pracovat i bez odesílání dat na server. U EaSun se při zapnuté archivaci používá ASP skript otecz-spot-archive-receive.asp, který ukládá data do MySQL (denní JSON + 96× 15min intervalů).

Můžu změnit WiFi během provozu?

Ano. Otevřete /config, vyberte novou WiFi síť a ESP32 se automaticky restartuje a připojí k nové síti.

Co když zapomenu IP adresu ESP32?

IP adresa se vždy zobrazí v sériovém monitoru po startu. Případně můžete použít router pro zjištění IP adresy podle MAC adresy.

Jsou data z OTE-CR.cz spolehlivá?

Ano, OTE-CR.cz je oficiální operátor trhu s elektřinou v ČR a poskytuje důvěryhodná data spotových cen denního trhu.

Můžu použít HTTPS pro archivaci?

Ano, ale ESP32 potřebuje správné SSL certifikáty. Pro lokální sítě doporučujeme HTTP.

Jak dlouho trvá stažení historických dat?

Závisí na počtu dnů a nastaveném intervalu. Pro 1 měsíc dat s intervalem 720 minut: cca 2–3 dny.

Jak aktualizuji firmware bez USB?

Otevřete http://[IP-ESP32]/update, nahrajte zkompilovaný .bin soubor. ESP32 se po úspěchu automaticky restartuje. U ESP32-C3 je nutný partition scheme s OTA sloty.

Proč se nearchivují zítřejší ceny ráno?

OTE zveřejňuje ceny na zítřek obvykle kolem 13:02 (DAM). Předtím API vrací kopii dnešních cen — firmware to detekuje a duplicitu neukládá. Nastavte 2. aktualizaci na 13:05 nebo později; 1. slot může být kdykoli dříve (např. 00:02).

K čemu jsou dva časy aktualizace?

První slot typicky stáhne dnešní ceny (ráno nebo v noci). Druhý slot po zveřejnění DAM (~13:02) stáhne skutečné zítřejší ceny. Oba časy jsou nezávislé — každý se spustí max. 1× denně po dosažení nastaveného času.

Proč přestalo fungovat stahování z OTE (HTTP 301)?

OTE změnilo API endpoint. Verze 11.x používá novou URL pw-data/chart-data/01. Starší firmware s @@chart-data je třeba aktualizovat.

Kde si můžu prohlédnout archivovaná data?

Na easun.eu/spotove-ceny.asp (přehled cen OTE) a na easun.eu/cez-spot-kalkulacka.asp (kalkulace s poplatky ČEZ / EG.D / PRE a Spot Gate). Data pocházejí z MySQL archivu plněného ESP32-EPEX.

Co je periodický restart?

Volitelná funkce v OTE konfiguraci — ESP se automaticky restartuje každých N kalendářních dní v nastavený čas. Pomáhá udržet dlouhodobou stabilitu.

Kontakt a podpora ESP32-EPEX

Podpořte projekt

Pokud se vám projekt líbí a využíváte ho, podpořte jeho další vývoj. Každý příspěvek pomáhá udržovat projekt živý a přináší nové funkce!