📊 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.
(15min intervaly)
non-stop
přes web
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):
- ESP32 se spustí a pokusí se připojit k uložené WiFi síti
- Pokud nenajde uloženou síť, automaticky vytvoří vlastní WiFi: "EaSun-EPEX"
- Připojte se k této WiFi (žádné heslo - otevřená síť)
- Otevřete prohlížeč a přejděte na:
http://192.168.4.1 - Vyberte WiFi síť, zadejte heslo a klikněte na "Uložit a připojit"
- ESP32 se restartuje a připojí k vybrané WiFi síti
- IP adresa se zobrazí v sériovém monitoru
Změna WiFi během provozu:
- Otevřete
http://[IP-ESP32]/config - Klikněte na "🔄 Aktualizovat seznam WiFi sítí" (volitelně)
- Vyberte novou WiFi síť a zadejte heslo
- 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:
2. První konfigurace WiFi:
- ESP32 vytvoří WiFi síť "EaSun-EPEX"
- Připojte se k této síti
- Přejděte na http://192.168.4.1
- Vyberte WiFi síť a zadejte heslo
- Po restartu se ESP32 připojí k WiFi
3. Nastavení OTE parametrů:
- Otevřete http://[IP-ESP32]/ote-config
- Nastavte archivaci (zapnuto/vypnuto)
- Zadejte URL serveru a cestu k API
- Nastavte čas denní aktualizace
- Klikněte na "Uložit nastavení"
- 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
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:
🔒 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:
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!