🔌 ESP32-EPEX

Inteligentní monitoring spotových cen elektřiny z OTE-CR.cz

Verze 8.0 | 2025

📊 Co je ESP32-EPEX?

ESP32-EPEX je pokročilé IoT zařízení na bázi mikrokontroléru ESP32, 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 elektřiny po 15minutových intervalech (96 hodnot denně) a umožňuje je archivovat na vlastní server pro další analýzu a optimalizaci spotřeby energie.

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

✨ Klíčové funkce a výhody

🛜

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 (obvykle dostupná po 12:00).

💾

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í

Nastavitelný čas denní aktualizace (hodina a minuta) 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.

🔬 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
  • Data interval: 15 minut (96 hodnot/den)
  • Měna: EUR/MWh (přepočet na CZK možný)
  • HTTP knihovna: HTTPClient (pro stahování dat)
  • JSON parser: ArduinoJson
  • Verzování: Verze 8.0 (říjen 2025)

🛜 WiFi konfigurace

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 (např. /xxxxxxxxxxxxxxxxxxx.asp)
  • Hodina aktualizace: Hodina denního stahování (0-23)
  • Minuta aktualizace: Minuta denního stahování (0-59)
  • 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)

⚠️ 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í

1. Příprava hardware:

// Připojte ESP32 k USB portu // Nahrajte kód ESP32-EPEX08.ino přes Arduino IDE // Otevřete sériový monitor (115200 baud)

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 čas denní aktualizace
  5. Klikněte na "Uložit nastavení"
  6. ESP32 se restartuje s novým nastavením

4. Monitoring v provozu:

  • ESP32 automaticky stahuje data podle nastaveného času
  • Data se odesílají na archivační server (pokud je zapnuto)
  • Aktuální ceny se zobrazují v sériovém monitoru
  • Konfigurace je trvale uložena v SPIFFS

📡 API a datová struktura

Zdroj dat:

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

URL: https://www.ote-cr.cz/cs/kratkodobe-trhy/elektrina/denni-trh/@@chart-data Formát: JSON Interval: 15 minut (PT15M) Hodnoty: 96 hodnot denně Měna: EUR/MWh

Datové pole:

  • 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/GET požadavku s JSON payload:

{ "date": "2025-10-25", "data": [ {"hour": 0, "quarter": 0, "price": 45.23}, {"hour": 0, "quarter": 1, "price": 43.87}, ... ] }

🔒 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í.

💡 Praktické využití

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:

  • Připojení k Home Assistant, Node-RED, Domoticz
  • Zobrazení grafů spotových cen v reálném čase
  • 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 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)

Užitečné odkazy:

❓ Často kladené otázky (FAQ)

Q: Jak často se data aktualizují?

A: V normálním režimu jednou denně v nastavený čas (např. 13:00). V historickém režimu podle nastaveného intervalu (doporučeno 720 minut = 12 hodin).

Q: Potřebuji vlastní server pro archivaci?

A: Ne, archivace je volitelná. ESP32 může pracovat i bez odesílání dat na server a zobrazovat ceny pouze v sériovém monitoru.

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

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

Q: Co když zapomenu IP adresu ESP32?

A: 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.

Q: Jsou data z OTE-CR.cz spolehlivá?

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

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

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

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

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

📞 Kontakt a podpora

  • Autor: Pavel Kunor
  • Web: https://easun.eu
  • Email: info@easun.eu
  • Verze: 8.0 (říjen 2025)
  • Licence: Open Source (MIT License)

💝 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!