ESPHome - Chytré zařízení z ESP32 za pár minut
ESPHome je open-source framework, který zásadně zjednodušuje vytváření vlastních chytrých zařízení z levných Wi-Fi mikrokontrolérů. Místo složitého programování v C++ stačí jednoduchý YAML konfigurační soubor a ESPHome se postará o zbytek.

Tenhle článek jsem psal původně na verzi 2025.10 a od té doby se v ESPHome změnilo hodně - nové webové rozhraní Device Builder, ESP-IDF jako výchozí framework a několik breaking changes, které se týkají skoro každého. Všechny postupy a screenshoty jsem ověřil na ESPHome 2026.7.3 (Device Builder 1.7.0) a Home Assistant 2026.7.4.
Pokud jste konfigurace dlouho neaktualizovali, přeskočte prosím rovnou na Co se změnilo od roku 2025 - je tam soupis změn, kvůli kterým vám konfigurace nemusí projít validací.
Co je ESPHome
V podstatě jde o nástroj, který vám umožní:
- ✅ Vytvářet vlastní chytrá zařízení pomocí jednoduchých YAML souborů
- ✅ Bezproblémová integrace s Home Assistant
- ✅ OTA aktualizace - bezdrátové nahrávání firmware
- ✅ Lokální ovládání - žádná závislost na cloudu
- ✅ Téměř 900 komponent - senzory, displeje, relé...
- ✅ Automatizace přímo na zařízení
- ❌ Není potřeba programovat v C++
- ❌ Není potřeba znát Arduino IDE
- ❌ Není potřeba cloud služby
- ❌ Není potřeba složitá konfigurace
ESPHome je součástí Open Home Foundation – stejné organizace, pod kterou spadá i Home Assistant. To zaručuje dlouhodobou podporu a vývoj.
Podporované mikrokontroléry
ESPHome podporuje širokou škálu hardware a za poslední rok se seznam citelně rozrostl:
| Platforma | Popis | Použití |
|---|---|---|
| ESP32 (classic, S2, S3, C3) | Wi-Fi 4 + Bluetooth, umí Arduino i ESP-IDF | Většina projektů |
| ESP32-C6, C5 | Wi-Fi 6 + Bluetooth + Thread/Zigbee, jen ESP-IDF | Moderní projekty, mesh |
| ESP32-H2 | Bez Wi-Fi - jen Thread/Zigbee a BLE | Mesh senzory bez Wi-Fi |
| ESP32-P4 | Výkonný, ale bez vlastního rádia | Displeje, zvuk, kamery |
| ESP8266 | Starší, pouze Wi-Fi, málo paměti | Jednoduché projekty |
| RP2040 / RP2350 | Raspberry Pi Pico, od 2026.3 výrazně vylepšená podpora | Nesíťové i síťové projekty |
| Nordic nRF52 | Zephyr / nRF Connect SDK, Zigbee, Thread, běh na baterii | Bateriové senzory |
| LibreTiny (BK72xx, RTL87xx, LN882x) | Přeflashování čínských Tuya zařízení | Záchrana hotového HW |
Pro nové projekty doporučuji ESP32 - má dost paměti, podporuje Bluetooth a stojí prakticky stejně jako ESP8266.
Pozor ale na jednu věc: Arduino framework je dnes dostupný jen pro ESP32 (classic), C3, S2 a S3. Varianty C2, C5, C6, C61, H2 a P4 umí výhradně ESP-IDF. Pokud v projektu potřebujete komponentu, která existuje jen pro Arduino, nekupujte C6.
ESP32-WROOM
WiFi
Bluetooth
CP2102 USB 2.0 to TTL UART Module
USB
Co se změnilo od roku 2025
Tohle je nejdůležitější část celého článku. Mezi verzemi 2025.11 a 2026.7 proběhla řada změn, které nejsou kosmetické - některé konfigurace prostě přestanou jít zkompilovat a jedna dokáže rozbít nahrávání firmware.
ESPHome v 2026.1 zpřísnilo OTA - MD5 autentizace skončila a SHA256 je povinná, aby nešlo protokol podvodně stlačit na slabší variantu. S tím přišlo jedno omezení, které v changelogu stojí takto:
ESPHome versions before 2025.10.0 that use password authentication cannot OTA to devices running 2026.1.0 or later.
Čtěte to prosím pozorně, protože se to snadno pochopí obráceně (což se stalo i mně): omezení je na straně nástroje, který nahrává, ne na straně zařízení. Pokud instalujete z ESPHome starší než 2025.10, které se autentizuje heslem, nedostanete firmware do zařízení, které už na 2026.1+ běží.
Typicky na to narazíte, když máte ESPHome na víc místech - Device Builder v Home Assistantu, k tomu starou VM nebo notebook s esphome CLI zamrzlým na loňské verzi. Changelog to říká natvrdo: „If you use multiple systems to install and/or update your ESPHome devices, be sure they're all up-to-date!"
Pokud se naopak potřebujete vrátit na verzi starší než 2025.10, jděte na to přes 2025.12.x a teprve z ní OTA na starší. U downgradu na opravdu staré ESPHome navíc nejdřív přepněte ota: na version: 1.
Změny, které se týkají skoro každého
| Verze | Změna | Co s tím |
|---|---|---|
| 2025.11 | PSRAM se už neaktivuje sama | Přidejte blok psram:, u ESP32-S3 je navíc povinný mode (octal / quad) |
| 2025.11 | Skripty s mode: queued mají defaultně max_runs: 5 místo neomezeně | Zabraňuje pádům z nedostatku paměti. Skriptů s mode: parallel se to netýká |
| 2025.11 | priority u Wi-Fi bere jen celá čísla | priority: 5.5 změňte na priority: 5 |
| 2026.1 | ESP-IDF je výchozí framework pro ESP32/C3/S2/S3 | Binárky až o 40 % menší, kompilace 2-3× rychlejší. Kdo potřebuje Arduino, musí ho napsat explicitně |
| 2026.1 | api: password: bylo odstraněno | Nutná migrace na api: encryption: key: - jinak konfigurace neprojde validací |
| 2026.1 | OTA vyžaduje SHA256, MD5 skončilo | Viz varování výše - týká se to instancí, ze kterých nahráváte |
| 2026.4 | ESP32, S2, S3 a C5 jedou defaultně na 240 MHz | Rychlejší API, ale vyšší spotřeba. Na baterii nastavte cpu_frequency: 160MHZ |
| 2026.5 | api: max_connections sníženo z 8 na 5 | Pokud na zařízení visí víc klientů (HA + logy + web), zvyšte ručně |
| 2026.6 | ESP8266 má defaultně min_auth_mode: WPA2 | Srovnalo se to s ESP32, který to má už roky. Kdo má starý router jen s WPA, musí to u ESP8266 napsat ručně |
| 2026.6 | Složka custom_components/ už se nenačítá | Přejděte na external_components: |
| 2026.7 | Nativní toolchain místo PlatformIO | Bez toolchain: v konfiguraci se staví nativním ESP-IDF. Zpět se vrátíte přes toolchain: platformio |
| 2026.7 | Zrušen starý dashboard (Tornado) | Zůstává jen nový Device Builder, viz níže |
| 2026.7 | Jeden !include u packages: musí být v seznamu | packages: [!include muj.yaml]. Pojmenované balíčky (mapping) se změna netýká |
Konfigurace s pojmenovanými balíčky (packages: remote_package: url: ...), což je přesně způsob, jakým se připojuje NSPanel Easy, zůstává v pořádku. Změna v 2026.7 se týká jen zápisu, kdy je za packages: jediný !include bez odrážky.
Novinky, které se vyplatí využít
- Vizuální editor komponent v Device Builderu - konfiguraci naklikáte, YAML se dopisuje sám
- Backtrace z pádu bez sériového kabelu (2026.3 pro ESP32, 2026.4 pro ESP8266) - zařízení si crash uloží přes restart a pošle ho přes API
esphome analyze-memory- rozpad spotřeby paměti po komponentách, konečně se nemusí hádat- OTA umí přepsat partition table i bootloader (2026.5) - a
safe_modese dokáže nabootovat do factory partition, takže i po nepovedené OTA nemusíte hned sahat na kabel - Wi-Fi roaming (2026.1) - zařízení po připojení přeskočí na lepší AP, místo aby viselo na vzdáleném
- BLE proxy je výrazně méně náročné na CPU - API i přeposílání advertisementů dohromady zabírají podle changelogu 2026.4 asi 1,8 % běhu hlavní smyčky (měřeno na ESP32-C3), BLE tracker ubral 85 % CPU (2026.2). Na paměti to ale nic nemění, viz varování u Bluetooth Proxy
- Bezpečnostní vrstva pro EN18031 (2026.7) - šifrování NVS, ochrana proti downgradu OTA, komponenta
provisioning
Instalace ESPHome do Home Assistant
V aktuálním Home Assistantu (ověřeno na 2026.7.4) už v Nastavení nenajdete Doplňky, ale Aplikace. Starý postup „Nastavení → Doplňky → Obchod s doplňky" tedy už neodpovídá tomu, co uvidíte, i když vede na to samé místo.
Krok 1: Instalace aplikace
- V Home Assistant jděte do Nastavení → Aplikace
- Klikněte na Nainstalovat aplikaci (vpravo dole)
- Vyhledejte ESPHome
- U položky ESPHome Device Builder klikněte na Instalovat

V obchodě uvidíte ESPHome Device Builder, (beta) a (dev). Obě označené Experimentální jsou určené pro testování nových verzí. Pro běžné použití chcete tu bez přípony - beta ani dev vám žádnou funkci nepřinesou, jen dřív odhalí chyby.
Instalace může trvat několik minut v závislosti na rychlosti vašeho připojení a výkonu systému.
Krok 2: Spuštění aplikace
- Po instalaci klikněte na Spustit
- Počkejte, až se aplikace rozjede (stav Běží)
- Klikněte na Otevřít webové rozhraní

Zapnutou volbou Zobrazit v postranním panelu si ušetříte klikání - do Device Builderu se pak dostanete jednou položkou v levém menu.
Vypadá to lákavě, ale ESPHome vydává novou verzi každý měsíc a občas s breaking change (viz tabulka výše). Když se aplikace aktualizuje sama a vy pak necháte přeložit firmware, může se stát, že vám konfigurace neprojde validací ve chvíli, kdy to nejméně potřebujete.
ESPHome Device Builder - nové rozhraní
Tohle je největší viditelná změna. V 2026.5 přišel nový Device Builder jako volitelná beta vedle starého dashboardu, v 2026.6 dosáhl verze 1.0 a stal se výchozím a v 2026.7 se ten původní odstranil úplně - takže se s novým rozhraním setkáte, ať chcete nebo ne.
Na úvodní stránce najdete seznam zařízení. Nově je tu vyhledávání, přepínání mezi kartami, tabulkou a hledáním v YAML, filtry (podle štítků, platformy, stavu, dostupných aktualizací) a hromadné operace přes Select multiple.

U každého zařízení vidíte stav (Online / Offline), název konfiguračního souboru a tlačítka Edit, Install a Logs (druhá dvě jen jako ikony). Číslo verze samotného Device Builderu i ESPHome je dole v patičce - to se hodí, když někam hlásíte chybu.
Vytvoření nového zařízení
Tlačítko Create device vpravo dole otevře dialog Create configuration:

Create new project vás provede průvodcem - vyberete desku (nebo starter kit), zadáte název a Wi-Fi údaje. Za povšimnutí stojí i to, že sem můžete přetáhnout existující .yaml soubor nebo bundle - pokud máte konfiguraci z jiné instance, nemusíte ji kopírovat přes Studio Code Server.
Vizuální editor komponent
Kliknutím na Edit se otevře editor, a tady je ta hlavní novinka. Vlevo je Device navigator, který konfiguraci člení na Core configuration (jméno, Wi-Fi, OTA, API), Components (senzory, spínače, displeje) a Automations. Vpravo je rozcestník na tyhle tři části; když v navigátoru na něco kliknete, otevře se tam detail té položky. YAML editor si zapnete přepínačem vpravo nahoře - na screenshotu je záměrně skrytý, aby se do záběru nedostaly klíče ani názvy Wi-Fi sítí.

Na screenshotu je konfigurace mého Bluetooth proxy s rozbalenou sekcí Components - navigátor pěkně ukazuje, co v ní je: ESP32 Bluetooth, Bluetooth Proxy, tři senzory, tři textové senzory a dva buttony. U každé položky se dá kliknout a upravit ji ve formuláři, bez psaní YAML.
Tlačítko Add component otevře katalog. A tady je hezky vidět, o jak velký projekt jde:

889 komponent dostupných pro ESP32 desku, rozdělených do kategorií, s obrázkem, popisem a odkazem na dokumentaci. Nejpočetnější kategorie jsou senzory a binární senzory. Kompletní seznam včetně dokumentace ke každé komponentě najdete i na esphome.io/components.
V editoru je tlačítko Reveal sensitive values, které dočasně rozbalí hodnoty z secrets.yaml. Používejte ho s rozmyslem - pokud si třeba nahráváte obrazovku nebo někomu posíláte screenshot, klíč k API se objeví v čitelné podobě.
První zařízení - krok za krokem
Pojďme si vytvořit vaše první ESPHome zařízení!
Co budete potřebovat
Hardware:
- ESP32 nebo ESP8266 vývojová deska
- USB kabel (datový, ne jen nabíjecí!)
- Počítač s USB portem
Software:
- Home Assistant s nainstalovaným ESPHome
- Webový prohlížeč (Chrome nebo Edge)
Vytvoření konfigurace
-
V Device Builderu klikněte na „Create device"
-
Zvolte „Create new project" a průvodce vás povede:
- Zadejte název zařízení (např. „test-esp32")
- Vyberte desku (ESP32, ESP8266, C6...)
- Zadejte Wi-Fi SSID a heslo
-
ESPHome vytvoří základní konfiguraci
Výsledný YAML soubor bude vypadat nějak takto:
esphome:
name: test-esp32
friendly_name: Test ESP32
esp32:
board: esp32dev
# framework ani toolchain psát nemusíte - od 2026.1 je výchozí ESP-IDF,
# od 2026.7 se staví nativním toolchainem bez PlatformIO
# Povolit logování
logger:
# Povolit Home Assistant API - šifrování je dnes jediná možnost,
# volba api: password: byla v 2026.1 odstraněna
api:
encryption:
key: !secret api_encryption_key
# Povolit OTA aktualizace
ota:
- platform: esphome
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Fallback hotspot
ap:
ssid: "Test-Esp32 Fallback"
password: !secret fallback_password
ESPHome podporuje !secret pro ukládání citlivých údajů mimo konfiguraci. Tyto údaje se ukládají do souboru secrets.yaml, který otevřete z nabídky ⋮ vpravo nahoře v Device Builderu.
Jeden praktický poznatek: editor secrets v ESPHome přepisuje celý soubor. Pokud do secrets.yaml dopisujete něco jinou cestou (třeba přes SSH), další uložení z webového rozhraní vám to smaže.
Pokud stavíte zařízení, na které pak nebude snadné dosáhnout, přidejte si tenhle blok:
safe_mode:
storage: rtc
ESPHome standardně počítá neúspěšné starty ve flash (NVS) a to počítadlo přežije i přeflashování - zařízení pak umanutě naskakuje do safe mode. V RTC paměti ho vymaže obyčejné vytažení ze zásuvky. Tuhle lekci jsem zaplatil na NSPanelu a rozebírám ji v článku Když NSPanel po aktualizaci nenaběhne.
Nahrání firmware - první instalace
Pro první nahrání firmware je potřeba použít USB kabel. Dialog Install dnes rovnou pozná, že zařízení ještě nikdy nahrané nebylo, a napíše vám to:

Máte tři možnosti:
| Volba | Kdy ji použít |
|---|---|
| Plug into this computer | ESP máte v USB tohoto počítače. Otevře se webový flasher v novém tabu, firmware zůstane v prohlížeči a flashuje se 100 % lokálně |
| Plug into your Home Assistant server | ESP je v USB portu serveru s Home Assistantem |
| On the network | Přeloží firmware, ale nahrát ho půjde až po první instalaci přes USB |
První nahrání firmware musí být přes USB. Až poté fungují OTA (bezdrátové) aktualizace.
Ke Plug into this computer potřebujete Chrome nebo Edge a zabezpečené připojení - Web Serial API v prohlížeči nefunguje přes http:// na jiné adrese než localhost. Pokud na Home Assistant chodíte po HTTP, použijte volbu s USB portem serveru.
Připojení k Home Assistant
Po úspěšném nahrání a připojení k Wi-Fi by se zařízení mělo automaticky objevit v Home Assistant:
- Jděte do Nastavení → Zařízení a služby
- V sekci Objeveno by mělo být vaše ESPHome zařízení
- Klikněte na Konfigurovat
- Zadejte šifrovací klíč z konfigurace (pokud je vyžadován)
- Potvrďte přidání
Po přidání najdete všechna svá ESPHome zařízení pohromadě na stránce integrace:

Přidání komponent
Teď, když máte základní zařízení funkční, můžeme přidat nějaké užitečné komponenty!
Příklad: GPIO spínač
Přidejte do konfigurace ovládání relé nebo LED:
switch:
- platform: gpio
name: "Relé 1"
pin: GPIO5
id: relay_1
Příklad: Binární senzor (tlačítko)
Přidejte sledování stavu tlačítka nebo door/window senzoru:
binary_sensor:
- platform: gpio
name: "Tlačítko 1"
pin:
number: GPIO0
inverted: true
mode:
input: true
pullup: true
# Od 2026.3 se zákmity mechanického kontaktu dostanou až do automatizací -
# dřív je pohltilo časování hlavní smyčky. U spínačů si přidejte filtr:
filters:
- delayed_on_off: 20ms
Příklad: Teplotní senzor DHT22
sensor:
- platform: dht
pin: GPIO4
temperature:
name: "Teplota"
humidity:
name: "Vlhkost"
model: DHT22
update_interval: 60s
Aktualizace zařízení
Po úpravě konfigurace:
- Klikněte na „Save" v editoru
- Klikněte na „Install"
- Tentokrát vyberte „On the network" - není potřeba USB! ⚡
Když vyjde nová verze ESPHome, nemusíte do Device Builderu chodit vůbec - aktualizace se u zařízení objeví přímo v Home Assistantu v Nastavení → Aktualizace:

Po první instalaci přes USB už všechny další aktualizace probíhají bezdrátově přes Wi-Fi. Je to rychlé a pohodlné!
Sledování logů
Tlačítko Logs u zařízení otevře stejný typ dialogu jako instalace - vyberete On the network a naskočí živý výpis:

Kromě přepnutí na plnou obrazovku, stažení logu do souboru a přepínače States (ukazuje změny stavů entit) je tu jedna věc, kterou se vyplatí přečíst hned na začátku. Na screenshotu je vidět reálné hlášení z mého Bluetooth proxy:
[W][app:190]: Bootloader too old for OTA rollback and SRAM1 as IRAM (+40KB).
Flash via USB once to update the bootloader
Zařízení běží dobře, ale starý bootloader mu bere dvě věci: možnost vrátit se po nepovedené OTA na předchozí firmware a 40 kB IRAM navíc. ESPHome doporučuje jedno přeflashování přes USB; od verze 2026.5 se dá bootloader poslat i po síti přes esphome upload --bootloader.
Pokročilé funkce
Automatizace přímo na zařízení
ESPHome umožňuje spouštět automatizace přímo na ESP chipu, bez nutnosti komunikace s Home Assistant:
binary_sensor:
- platform: gpio
name: "Tlačítko"
pin: GPIO0
on_press:
- switch.toggle: relay_1
Bluetooth Proxy
ESP32 může fungovat jako Bluetooth Proxy pro rozšíření BLE pokrytí. A tady musím upravit, co jsem psal dřív - konfigurace se za rok zjednodušila:
# Výchozí scan parametry stačí, blok scan_parameters tu záměrně NENÍ
esp32_ble_tracker:
bluetooth_proxy:
# active: true je dnes výchozí hodnota, psát se nemusí
# connection_slots: 3 je výchozí, každý slot ~1 kB RAM
V mém původním příkladu bylo interval: 1100ms / window: 1100ms. Dokumentace se k tomu dnes vyjadřuje docela jednoznačně:
The default scan parameters are recommended for most users. Changing
intervalorwindowfrom their defaults typically provides no meaningful benefit while increasing CPU usage and network traffic.
Nastavení 1100/1100 znamená nepřetržité skenování a má smysl jen u proxy na Ethernetu, kde nesoupeří s Wi-Fi o rádio. Na Wi-Fi vám rozhodí příjem. Pokud ho v konfiguraci máte, smažte ho.
BLE controller si svoji paměť vyřízne z celkového poolu už při linkování, ne až za běhu. Na NSPanelu mi to sebralo víc než polovinu volné interní DRAM a po jedné aktualizaci ESPHome, která binárku o kousek nafoukla, zbývající rezerva zmizela a panel skončil černý.
Celé měření i průběh diagnostiky rozebírám v článcích Sonoff NSPanel a Když NSPanel po aktualizaci nenaběhne.
Doporučení: dejte proxy na samostatnou ESP32. Deska za necelou stovku do USB nabíječky má celou paměť pro sebe, umístíte si ji podle pokrytí BLE a hotový firmware nahrajete přes webový instalátor bez psaní YAML.
Více o Bluetooth Proxy najdete v mém článku Bluetooth Proxy.
Webový server
Můžete povolit vestavěný web server pro přímé ovládání:
web_server:
port: 80
# Od 2026.7, pokud na stránku sáhne něco z jiné domény:
# allowed_origins:
# - http://homeassistant.local:8123
# Adresu dosaďte podle své instance - nové instalace Home Assistant OS běží na portu 80, tedy bez :8123
Web server zabírá hodně paměti. Nedoporučuji jej používat současně s Bluetooth Proxy!
Web server dnes používá v URL přímo jména entit místo dřívějších object ID. Konečně to spravilo kolize u názvů s diakritikou, ale znamená to dvě omezení: jméno nesmí obsahovat / a je omezené na 120 znaků. Pokud jste si na staré adresy odkazovali z něčeho externího, přestanou fungovat.
Paměť a diagnostika
Tuhle sekci jsem do článku přidal, protože většina problémů, do kterých jsem za ta léta spadl, byla nakonec o paměti.
Změřte si ji, nehádejte
Do konfigurace se dá přidat komponenta debug, která vystrčí spotřebu paměti jako normální entity do Home Assistanta:
debug:
update_interval: 60s
sensor:
- platform: debug
free:
name: "Free Heap"
min_free:
name: "Min Free Heap"
block:
name: "Largest Free Block"
text_sensor:
- platform: debug
reset_reason:
name: "Reset Reason"
Min Free Heap je z těch tří nejužitečnější - řekne vám, jak hluboko zařízení kdy spadlo, tedy jak velká je skutečná rezerva. A Reset Reason odpoví na otázku, jestli se restartovalo kvůli watchdogu, nebo mu jen někdo vytáhl napájení.
esphome analyze-memory
Nová utilita z verze 2025.11. Přeloží konfiguraci a vypíše rozpad spotřeby po komponentách - tedy přesně to, co potřebujete vědět, když se rozhodujete, co z konfigurace vyhodit.
Backtrace bez sériového kabelu
Dřív platilo, že když zařízení padá, musíte k němu s USB-TTL převodníkem. Od 2026.3 (ESP32) a 2026.4 (ESP8266) si zařízení backtrace z pádu uloží přes restart a pošle ho přes API - crash tedy uvidíte v logu v Device Builderu.
Samotné číslo adresy vám nic neřekne, na překlad na jméno funkce je potřeba addr2line a soubor firmware.elf z build složky. Pokud používáte remote build server, ta složka je na něm, ne na počítači, ze kterého se koukáte.
Zabezpečení
Verze 2026.7 přinesla první vlnu funkcí mířících na evropskou normu EN18031, a stojí za to o nich vědět, i když nic neprodáváte:
- Šifrování NVS - nepovinné šifrování úložiště přes HMAC periferii (S2, S3, C3, C5, C6, H2, P4)
- Ochrana proti downgradu OTA - zařízení odmítne podepsaný firmware se starší verzí projektu
- Komponenta
provisioning- spravuje okno pro první nastavení u zařízení, která se prodávají nenastavená
K tomu se přidávají dvě starší změny, které se týkají všech: API se šifruje povinně (heslo skončilo v 2026.1) a OTA umí podepsané aktualizace i bez Secure Boot (2026.4).
api: encryption: neměňte, pokud nemusíteHodnotu klíče můžete v klidu přesunout do secrets.yaml - to na fungování nic nemění. Ale pokud vygenerujete nový klíč, Home Assistant zařízení přestane poznávat a vyžádá si ho zadat znovu. Samo o sobě je to jen nepříjemnost, entity ani historie tím netrpí.
Horší je krok, ke kterému se v takové situaci lidi často uchýlí: smazat integraci a přidat ji znovu. Tam už o historii přijdete a entity se můžou vrátit se suffixem _2. Když si klíč potřebujete jen připomenout, najdete ho v secrets.yaml, ne v Home Assistantu.
Tipy a triky
Framework a toolchain
Tady se za poslední rok převrátilo úplně všechno. Původně jsem psal, že pro pokročilé projekty doporučuji přepnout na ESP-IDF. Dnes už to nemusíte řešit vůbec:
esp32:
board: esp32dev
# Od 2026.1 je ESP-IDF výchozí framework, od 2026.7 se navíc
# staví nativním toolchainem místo PlatformIO. Nic psát nemusíte.
Kdo potřebuje jít proti proudu:
esp32:
toolchain: platformio # zpět na PlatformIO (2026.7+)
framework:
type: arduino # zpět na Arduino, jen ESP32/C3/S2/S3
Proč byl ten přechod dobrý:
- Binárky až o 40 % menší
- Kompilace 2-3× rychlejší
- Nižší spotřeba paměti a stabilnější Bluetooth
Původně jsem tady měl kategorické varování, že přepnutí arduino → esp-idf vyžaduje USB, protože se mění partition table. Od 2026.5 už to platí jen zčásti - OTA se naučila partition table přepsat a safe_mode se umí nabootovat do factory partition, takže i nepovedený pokus se dá zachránit bez kabelu.
Pořád ale platí, že je to ta nejriskantnější operace, kterou na zařízení uděláte. U něčeho, k čemu se dostanete jedním šroubovákem, bych sáhl po USB. U zazděného panelu se dnes dá jít přes OTA. Že se takový panel přeflashovat čistě po Wi-Fi dá, ukazuju na migraci NSPanelu - tam se ale framework nemění, takže je to o stupeň bezpečnější operace než tahle.
Secrets soubor
Pro citlivá data používejte secrets.yaml:
# V konfiguračním souboru:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# V souboru secrets.yaml:
wifi_ssid: "MojeWiFi"
wifi_password: "SuperTajneHeslo123"
Debug logování
Pro řešení problémů zvyšte úroveň logování:
logger:
level: DEBUG # nebo VERBOSE pro ještě více detailů
Podrobné logování zabírá flash i RAM a u zařízení, které je na hranici paměti, dokáže samo způsobit pád. Zapněte ho na dobu ladění a pak vraťte na INFO.
Řešení problémů
Konfigurace neprojde validací po aktualizaci
Nejčastější příčiny jsou v tabulce změn. Rychlý průchod:
- Máte v
api:ještěpassword:? Nahraďteencryption: key: - Používáte PSRAM bez bloku
psram:? - Máte za
packages:jediný!includebez odrážky? - Máte komponenty ve složce
custom_components/? Přejděte naexternal_components:
Zařízení se neobjevilo v Home Assistant
- Zkontrolujte, že je zařízení připojené k Wi-Fi (podívejte se do routeru)
- Zkontrolujte logy v Device Builderu (tlačítko Logs)
- Zkuste manuální přidání přes IP adresu
- Restartujte Home Assistant
Zařízení se nepřipojí k Wi-Fi po aktualizaci
Na ESP32 vyžaduje ESPHome minimálně WPA2 už roky, ESP8266 se k tomu přidal v 2026.6. Pokud vás to zaskočilo po aktualizaci ESP8266 a máte starší router:
wifi:
min_auth_mode: WPA
Druhá častá příčina: .local adresy dnes potřebují zapnuté mDNS. Bez něj se připojení zdrží o víc než deset sekund.
OTA aktualizace selhává
- Zkontrolujte verzi ESPHome, ze kterého nahráváte - starší než 2025.10 s heslovou autentizací nedostane firmware do zařízení na 2026.1+ (viz varování). Pokud máte ESPHome na víc místech, aktualizujte je všechna
- Zkontrolujte stabilitu Wi-Fi signálu
- Zkontrolujte dostupnou paměť v logu
- Zkuste aktualizovat přes USB
Hlášení esp_ota_end failed (err=0x1503) znamená, že se data přenesla, ale cílový oddíl zůstal prázdný - ESPHome novou binárku odmítl ověřit. Opakování OTA nepomůže, tohle už chce sériový flash. Bývá za tím vadný nebo přeznačený flash čip, případně ochranné bity v jeho status registru.
Zařízení se neustále restartuje
- Problém s napájením - zkuste jiný USB zdroj
- Nedostatek paměti - zakažte Web Server nebo snižte počet komponent, změřte si
min_freeheap - Chyba v konfiguraci - zkontrolujte logy, backtrace dnes najdete i bez kabelu
Bateriové zařízení najednou vydrží citelně méně
Od 2026.4 jedou ESP32, S2, S3 a C5 defaultně na 240 MHz místo dřívějších 160 MHz. Vraťte to:
esp32:
cpu_frequency: 160MHZ
Logy nebo web server se nepřipojí, i když zařízení běží
Od 2026.5 je výchozí api: max_connections pět místo osmi. Když na zařízení současně visí Home Assistant, okno s logy, webové rozhraní a něco dalšího, limit se dá vyčerpat:
api:
max_connections: 8
Praktické projekty
Teploměr do pokoje
sensor:
- platform: dht
pin: GPIO4
temperature:
name: "Teplota obývák"
humidity:
name: "Vlhkost obývák"
model: DHT22
update_interval: 60s
Chytrý spínač s LED indikací
switch:
- platform: gpio
name: "Hlavní světlo"
pin: GPIO5
id: main_light
on_turn_on:
- light.turn_on: led_status
on_turn_off:
- light.turn_off: led_status
light:
- platform: status_led
name: "LED stav"
id: led_status
pin: GPIO2
Door/Window senzor s časovým logováním
binary_sensor:
- platform: gpio
name: "Hlavní dveře"
pin:
number: GPIO0
mode:
input: true
pullup: true
inverted: true
filters:
- delayed_on_off: 20ms
on_press:
then:
- logger.log: "Dveře otevřeny!"
on_release:
then:
- logger.log: "Dveře zavřeny!"
Zhodnocení
Po několika letech používání ESPHome můžu říct, že je to jeden z nejlepších nástrojů pro DIY chytrou domácnost. A rok, který uplynul od původní verze tohoto článku, na tom nic nezměnil - naopak. Nový Device Builder posunul ESPHome blíž k lidem, kteří YAML nechtějí psát vůbec, a přechod na ESP-IDF udělal z kompilace záležitost minut místo desítek minut.
✅ Hlavní výhody
- Jednoduchá konfigurace - YAML, nebo dnes i klikání
- Perfektní integrace s Home Assistant
- OTA aktualizace - dnes i partition table a bootloader
- Obrovská komunita - tisíce projektů
- Lokální ovládání - žádný cloud
- Aktivní vývoj - každý měsíc nová verze
- Levný hardware - ESP32 za pár korun
⚠️ Co by mohlo být lepší
- Breaking changes - měsíční kadence znamená, že konfiguraci musíte občas dohnat
- Omezená paměť ESP8266 pro složité projekty
- První flashování vyžaduje USB kabel
- Víc instancí ESPHome se musí držet spolu - stará instalace už do aktuálních zařízení nenahraje
Doporučení
ESPHome vřele doporučuji pokud:
- ✅ Používáte Home Assistant
- ✅ Chcete si vytvořit vlastní senzory/spínače
- ✅ Nechcete se učit programovat v C++
- ✅ Oceníte lokální ovládání bez cloudu
- ✅ Chcete ušetřit oproti komerčním řešením
Nedoporučuji pokud:
- ❌ Jste absolutní začátečník (začněte radši s hotovými Zigbee/Wi-Fi zařízeními)
- ❌ Chcete plug-and-play řešení bez jakékoliv konfigurace
- ❌ Nepoužíváte Home Assistant (pak zvažte Tasmota)
Aktualizujte zařízení pravidelně a po jednom, ne všechna hromadně po roce. Měsíční kadence ESPHome znamená, že když necháte konfiguraci stát dva roky, dohánět budete deset breaking changes najednou - a hledat, který z nich shodil kompilaci, je výrazně horší práce než je řešit jeden po druhém.
Související články
- Bluetooth Proxy (ESPHome)
- Sonoff NSPanel s NSPanel Easy - instalace ESPHome, pinout a řešení chyb
- Když NSPanel po aktualizaci nenaběhne - diagnostika paměti
- Z NSPanel_HA_Blueprint na NSPanel Easy - migrace přes OTA bez sundání panelu ze stěny
- Tasmota - Alternativa k ESPHome
Další zdroje
- Oficiální ESPHome dokumentace
- Changelog ESPHome - kompletní seznam změn a breaking changes po verzích
- ESPHome Device Database - databáze podporovaných zařízení
- ESPHome Discord - aktivní komunita
- ESPHome GitHub - zdrojový kód
Pomohl vám tenhle návod?
Návody tu píšu ve volném čase a udržuju je aktuální. Když vám některý ušetřil čas, můžete přispět.
Jednorázově, kartou nebo Apple Pay. Částku lze na další stránce změnit.
Nechcete posílat peníze? Kupujte podle návodů přes moje odkazy na produkty. Cena je pro vás stejná a pomůže to taky.