Přeskočit na hlavní obsah

Sonoff NSPanel v Home Assistantu: eWeLink, ESPHome a NSPanel Easy

NSPanel EU od společnosti Sonoff představuje chytrý ovládací panel s integrovaným dotykovým displejem za velmi rozumnou cenu.

Sonoff NSPanel EU, šedý

  • WiFi
  • Bluetooth

Specifikace

  • Displej: 3,5" Nextion Discovery NX4832F035, 480x320, kapacitní dotyk
  • Tlačítka: 2x fyzické tlačítko pod displejem
  • Relé: 2x relé na 240V (oficiálně 2 A na kanál)
  • Senzory: Teplotní NTC senzor
  • Připojení: Wi-Fi 2,4GHz
  • Čip: ESP32-D0WD-V3, 4 MB flash
  • Rozměry: 8,6 x 8,6 x 4,2 cm
  • Barva: Šedá / Bílá
Momentálně není k dispozici nákup v této zemi

Od výrobce zařízení obsahuje firmware, který používá cloudovou službu eWeLink. Přidání NSPanelu se provádí přes aplikaci eWeLink v mobilním telefonu. Po spárování naskočí na samotném panelu Uživatelské rozhraní, které vypadá jako na obrázku výše.

Download on Google PlayDownload on the App Store

S výchozím firmware lze spodními tlačítky ovládat přímo relé, je k dispozici informace o vnitřní teplotě z teplotního senzoru panelu a počasí venku, které je však aktualizováno velmi sporadicky (přišlo mi to tak 4x denně).

Lze přidat dále ovládání dalších zařízení přidaných do eWeLinku, ale zařízení mimo tento cloud ovládat nelze, což je za mě největší mínus.

eWeLink lze dále integrovat do Google Assistanta, Alexy, SmartThings či Philips Hue, tedy skutečný základ dnešních systémů. Kromě toho existuje i integrace do Home Assistanta SonoffLAN, kterou si můžete nainstalovat z HACS.

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

Díky této integraci budete mít v Home Assistantovi možnost ovládat obě relé, číst informaci o teplotě a vidět pár dalších informací.

  • ✅ Ovládat relé přímo z panelu
  • ✅ Zobrazit teplotu z interního senzoru
  • ✅ Vidět základní informace o počasí
  • ✅ Přidat další eWeLink zařízení

Co NEMŮŽETE dělat

  • ❌ Ovládat zařízení mimo eWeLink cloud
  • ❌ Hluboká integrace do Home Assistant
  • ❌ Vlastní UI nebo scény
  • ❌ Offline funkčnost při výpadku internetu

Alternativní firmware

Vzhledem k tomu, že NSPanel obsahuje čip ESP32, vzniklo několik alternativních firmware, které rozšiřují jeho možnosti a překonávají omezení původního firmware eWeLink. Podívejme se na ty nejvýznamnější.

Aktualizace červenec 2026: vývoj se přesunul do NSPanel Easy

Tenhle článek doteď učil instalaci projektu NSPanel_HA_Blueprint. Jeho hlavní vývojář ale vývoj přesunul do vlastního projektu NSPanel Easy a v původním repozitáři se řeší už jen kritické opravy. Návod jsem proto přepsal na NSPanel Easy - a níž vysvětluji, proč to není hazard s neznámým forkem.

Máte panel na starém projektu? Jak přejít bez rozebírání panelu, popisuju v migraci na NSPanel Easy.

Aktualizováno 27. 7. 2026. Postup instalace z 25. 7. platí dál - hardware, sériový flash a bootloader režim se mezi projekty nemění. Co přesně se změnilo

NSPanelManager

url: github.com/NSPManager/NSPanelManager

Hlavní vlastnosti

  • Umožňuje načítání entit z Home Assistanta a OpenHAB, což rozšiřuje možnosti ovládání chytré domácnosti.
  • Dokáže fungovat i samostatně bez nutnosti propojení s dalšími systémy.
  • Velký důraz je kladen na snadnou konfiguraci přes webové rozhraní, které umožňuje intuitivní nastavení funkcí panelu.
  • Podpora propojení více NSPanelů dohromady pro synchronizované ovládání.

Pro koho je určen

  • Ideální pro uživatele, kteří nepotřebují komplexní integraci s Home Assistant nebo jinými systémy chytré domácnosti.
  • Vhodné pro ty, kteří preferují jednoduché řešení s možností základního přizpůsobení.

NSPanelManager

nspanel-lovelace-ui (Tasmota)

url: github.com/joBr99/nspanel-lovelace-ui

Hlavní vlastnosti

  • Využívá Tasmota jako základní firmware, což zajišťuje stabilitu a flexibilitu při komunikaci přes MQTT.
  • Nabízí uživatelské rozhraní inspirované Lovelace UI z Home Assistant – umožňuje zobrazovat a ovládat širokou škálu zařízení (světla, senzory, termostaty, alarmy).
  • Konfigurace probíhá pomocí YAML souborů, což poskytuje vysokou míru přizpůsobení bez nutnosti úprav zdrojového kódu.
  • Podpora lokalizace do více než 30 jazyků zajišťuje dostupnost pro uživatele po celém světě.

Pro koho je určen

  • Pro pokročilé uživatele Home Assistanta, kteří chtějí plně přizpůsobit vzhled a funkce NSPanelu.
  • Ideální pro ty, kteří mají zkušenosti s konfigurací YAML a hledají flexibilní řešení.

nsppanel-lovelace-ui

NSPanel Easy (ESPHome)

url: github.com/edwardtfn/NSPanel-Easy · dokumentace: edwardtfn.github.io/NSPanel-Easy

Hlavní vlastnosti

  • Postavený na ESPHome, který je nyní součástí týmu Home Assistant – zaručuje hlubokou integraci a dlouhodobou podporu.
  • Nabízí přímou integraci do Home Assistanta bez potřeby externích nástrojů nebo služeb.
  • Jednoduché nastavení přes Blueprint v Home Assistant – konfigurace probíhá přímo v uživatelském rozhraní systému.
  • Jazyk panelu (včetně češtiny) se nastavuje jednou substitucí v ESPHome YAML a do firmwaru se zakompilují jen texty toho jednoho jazyka.
  • Firmware si umí nahrát TFT do displeje sám, když při startu zjistí, že verze nesedí.
  • Paměť u startu řeší projekt aktivně - API akce, které většina lidí nepoužívá, nejsou defaultně registrované.
  • Bluetooth Proxy pro BLE senzory je technicky možný, ale na tomhle panelu ho nedoporučuji - proč, rozebírám v Pokročilých funkcích.

Pro koho je určen

  • Pro uživatele Home Assistanta hledající jednoduché nastavení a hlubokou integraci NSPanelu do svého systému.
  • Pro každého, kdo dnes NSPanel rozjíždí od nuly - tady jde vývoj dál.
  • Pro ty, kdo mají panel na Blackymas/NSPanel_HA_Blueprint a chtějí zůstat u projektu, který dostává nové funkce.

NSPanel Easy

NSPanel_HA_Blueprint - původní projekt, dnes v režimu jen kritických oprav

url: github.com/Blackymas/NSPanel_HA_Blueprint

Tohle je projekt, na kterém tenhle článek stál několik let, a chci ho vysvětlit pořádně - protože na první pohled to vypadá jako „autor webu vás posílá na neznámý fork" a tak to není.

NSPanel Easy napsal ten samý člověk, který napsal většinu NSPanel_HA_Blueprintu. V repozitáři Blackymas/NSPanel_HA_Blueprintedwardtfn 3113 commitů, zatímco Blackymas 494. Byl to tedy hlavní vývojář, ne příležitostný přispěvatel, a v lednu 2026 si vývoj odnesl do vlastního repozitáře, kde má kontrolu nad architekturou projektu.

V původním repu to sám oznámil v issue #3277 „Transitioning Development to NSPanel Easy" ze 17. dubna 2026:

I'll continue fixing showstoppers here — things like compilation failures from upstream ESPHome or Home Assistant changes that would completely break the build.

Čtěte to prosím přesně tak, jak to je: nové funkce, běžné bugy a vylepšení jdou do NSPanel Easy, v původním repu se řeší už jen to, co by úplně rozbilo kompilaci. Formální datum ukončení podpory oznámené není, projekt „neumřel" a nikdo neřekl, že k nějakému datu skončí. Poslední commit do kódu (ne do README) je ale ze 17. dubna 2026 a poslední vydaná verze je v2026041 - přesně ta, na kterou byl tenhle článek doteď připnutý.

Co to znamená pro vás:

  • Máte panel na NSPanel_HA_Blueprint a funguje? Nemusíte nikam spěchat. Kritické opravy dostanete a panel vám nepřestane fungovat ze dne na den.
  • Rozjíždíte panel dnes od nuly? Jděte rovnou do NSPanel Easy, ať to nemusíte dělat dvakrát.
  • Chcete nové funkce nebo řešíte bug? Ten se opraví v NSPanel Easy, tady už ne.

Migrace je mimochodem překvapivě nenásilná - je to OTA aktualizace, panel se neotvírá a nastavení automatizací zůstává. Celý postup mám v samostatném článku Z NSPanel_HA_Blueprint na NSPanel Easy.

Kterou variantu zvolit?

Každý z těchto firmware má své výhody. Pokud si nejste jisti, zde je rychlé shrnutí:

  • NSPanelManager - jednoduchá instalace, funguje i bez Home Assistant
  • nspanel-lovelace-ui - maximální kontrola přes YAML, vyžaduje pokročilé znalosti
  • NSPanel Easy - nejlepší integrace s Home Assistant, sem se přesunul vývoj původního NSPanel_HA_Blueprintu
  • NSPanel_HA_Blueprint - původní projekt, ze kterého NSPanel Easy vychází; dnes už jen kritické opravy
Moje doporučení

V tomto článku se zaměříme na NSPanel Easy (ESPHome), který dnes považuji za nejlepší řešení pro většinu uživatelů Home Assistant. Nabízí snadnou instalaci, hlubokou integraci a hlavně to je místo, kam se přesunul vývoj původního NSPanel_HA_Blueprintu - se stejným hlavním vývojářem a stejnou strukturou konfigurace.

Do dubna 2026 tady byl doporučený Blackymas/NSPanel_HA_Blueprint. Pokud ho máte, panel vám dál funguje a nemusíte hned nic dělat - jen vězte, že novinky už přicházejí jinam.

Sonoff NSPanel EU, šedý

  • WiFi
  • Bluetooth
Momentálně není k dispozici nákup v této zemi

Sonoff NSPanel EU, bílý

  • WiFi
  • Bluetooth
Momentálně není k dispozici nákup v této zemi

CP2102 USB 2.0 to TTL UART Module

  • USB
Momentálně není k dispozici nákup v této zemi

Co je uvnitř - hardware a pinout GPIO

Než se pustíme do flashování, hodí se vědět, co v panelu vlastně je. Následující přehled vychází z podrobného teardownu od blakaddera a oceníte ho hlavně tehdy, pokud si chcete psát vlastní konfiguraci v ESPHome nebo Tasmotě.

Jdete rovnou flashovat?

Pokud vás hardware nezajímá, přeskočte rovnou na Co budete potřebovat.

Hlavní komponenty

  • ESP32-D0WD-V3 - dvoujádrový čip s Wi-Fi a Bluetooth, 4 MB flash paměti (na mém kusu od GigaDevice, teardown uvádí Winbond - liší se to podle výrobní série)
  • Nextion Discovery NX4832F035 - 3,5" displej s rozlišením 480x320 a kapacitním dotykem (řadič CST340)
  • STM32G031G8 - samostatný mikrokontrolér, který se stará o grafiku displeje
  • NTC termistor MF52A - 10 kΩ ±1 %, B = 3950 - teplotní senzor panelu
  • 2x relé na samostatné desce
Proč se firmware nahrává dvakrát

Displej má vlastní procesor (STM32G031G8) a celé grafické rozhraní si drží ve své paměti. ESP32 s ním komunikuje pouze po sériové lince a posílá mu události typu „bylo stisknuto tlačítko" nebo „změň tenhle text". Právě proto se firmware nahrává ve dvou etapách - jednou do ESP32 (ESPHome) a podruhé do displeje (soubor .tft).

Pinout a mapování GPIO

FunkceGPIOOznačení na desce
Tlačítko 1 (levé)GPIO14K1
Tlačítko 2 (pravé)GPIO27K2
Relé 1GPIO22RY1
Relé 2GPIO19RY2
Relé 3GPIO23RY3 - neosazeno
Displej - RX na straně ESP32GPIO17TF_RX
Displej - TX na straně ESP32GPIO16TF_TX
Reset displejeGPIO4T_RST
Teplotní senzorGPIO38NTC
Senzor osvětleníGPIO37ALS - neosazeno
BzučákGPIO21BZ
Sériová linka (flashování)GPIO3 / GPIO1U0RXD / U0TXD

Označení TF_RX a TF_TX na desce jsou z pohledu ESP32. V ESPHome tomu odpovídá tx_pin: 16, rx_pin: 17 a rychlost 115200 baud.

Kdy tabulku využijete

Pokud používáte hotové řešení (NSPanel Easy nebo Tasmota šablonu), piny má projekt nastavené za vás a tabulku potřebovat nebudete. Ocení ji ti z vás, kdo si píše vlastní YAML konfiguraci od nuly nebo ladí, proč něco nereaguje. Nezapomeňte také, že GPIO5, GPIO9 a GPIO18 jsou obsazené pamětí PSRAM - pro vlastní periferie je nepoužívejte.

Kolik je v panelu PSRAM

ESPHome ji při startu vypíše přímo: [C][psram:020]: Size: 2048 KB, tedy 2 MB, a využité z ní bývají jen jednotky procent. Teardown na blakadder.com uvádí „16MB PSRAM" — a nejspíš jde o 16 Mbit, což jsou právě 2 MB, takže si ta dvě čísla neodporují.

Pozor na jednu past: kompilace vypisuje SPI DRAM ... from 4194304 bytes, což je velikost adresního okna, ne čipu. Autoritativní je ten runtime údaj.

Důležitější než velikost je ale jedno omezení: pufry pro Wi-Fi musí být DMA-schopné a na ESP32 se do PSRAM odložit nedají. Volná PSRAM vám tedy nepomůže, když se panelu nedostává vnitřní DRAM. Proč to má praktický dopad, rozebírám v článku Když NSPanel po aktualizaci nenaběhne.

+40 kB IRAM zdarma - ale jen když to váš log potvrdí

Možná vám ESPHome při startu vypíše tenhle řádek:

[W][app:198]: Bootloader supports SRAM1 as IRAM (+40KB). Set sram1_as_iram: true under esp32 > framework > advanced

Pak si můžete jednou volbou v Kroku 2 přidat 40 kB IRAM:

esp32:
framework:
advanced:
sram1_as_iram: true

Je to paměť, kterou si rezervoval bootloader jako DRAM a která se dá místo toho dát aplikaci jako IRAM. Volnou heap ani DRAM to nic nestojí, protože ta paměť v heapu nikdy nebyla. Navíc se tím rozšíří okno flash cache pro XIP, takže je méně cache miss a všechen kód běžící z flash - Wi-Fi, BLE i API server - jede lépe. Pomáhá to i proti chybě „IRAM overflow" při kompilaci (section '.iram0.text' will not fit in region 'iram0_0_seg'). Jestli tuhle druhou věc vůbec potřebujete, si ověřte v souhrnu na konci buildu - najděte si v něm řádek IRAM. Můj panel hlásí IRAM 84 263 B (48,98 %), zbývá 87 769 B z 172 032 B, tedy do stropu ještě půlku místa, takže z celého přínosu mu zůstává jen to širší okno flash cache. Platí to jen pro původní ESP32 a jen s frameworkem ESP-IDF - NSPanel s ESP32-D0WD-V3 a esp-idf obojí splňuje a výchozí hodnota je false.

Jedna věc ale nesmí zapadnout: je to IRAM, ne DRAM. Na tu tíseň ve vnitřní DRAM, o které je řeč hned výš a podrobně v post-mortemu, tohle nesahá.

A riziko je tady stejně velké jako přínos. Volba vyžaduje bootloader z ESP-IDF v5.1 nebo novějšího a OTA aktualizace bootloader nemění - ten se přepisuje jedině flashováním přes USB nebo sériovou linku. Se starým bootloaderem zařízení vůbec nenaběhne a zachrání ho jen sériové přeflashování. To u panelu zavřeného ve zdi znamená sundat ho a rozebrat.

Proto se držte pravidla, které se ověří samo: zapněte to jen tehdy, když ten řádek [W][app:198] opravdu máte ve svém logu. ESPHome ho vypisuje právě tehdy, když u vás kompatibilní bootloader detekuje. Když ho tam nevidíte, sram1_as_iram nechte být.

Relé jsou 10 A, ale zatěžujte je maximálně 2 A

Na desce jsou osazená relé dimenzovaná na 10 A, Sonoff ale panel oficiálně specifikuje na 2 A na kanál a 4 A celkem. U LED svítidel je limit ještě přísnější - 300 W na kanál a 600 W celkem (při 230 V). Na vině je nejspíš návrh plošného spoje a odvod tepla v uzavřené instalační krabici. Držte se 2 A (zhruba 460 W odporové zátěže při 230 V) a pro větší spotřebiče použijte stykač nebo samostatné relé.

Co v NSPanelu chybí a proč vlhkost nefunguje

Při návrhu panelu Sonoff zjevně počítal s více funkcemi, než nakonec do sériové výroby osadil:

  • Vlhkost je smyšlená. Panel v eWeLinku hlásí vlhkost, ale senzor v něm vůbec není - pozice H2 na desce zůstala prázdná a firmware posílá napevno 50 %. Pokud vám ta hodnota přišla podezřele stabilní, teď víte proč.
  • Bzučák (BZ, GPIO21) osazený naopak je. Blakadderův teardown ho uvádí jako chybějící, ale na běžně prodávaných kusech ho najdete u potisku B1 (je vidět i na fotce desky níže). Počítá s ním i Tasmota šablona a v ESPHome ho rozezvučíte přes komponentu rtttl - panel pak umí pípnout při stisku tlačítka nebo přehrát jednoduchou melodii jako notifikaci.
  • Třetí relé (RY3, GPIO23) chybí. Deska relé má připravenou pozici pro třetí kus řízený z GPIO23. Jde nejspíš o pozůstatek starší revize návrhu.
  • Senzor okolního osvětlení (ALS, GPIO37) zůstal jen na papíře. Pin je na desce takto označený, ale žádná světlocitlivá součástka osazená není a nepracuje s ním originální firmware, Tasmota ani žádný z ESPHome projektů. Automatické stmívání displeje podle okolního světla proto musíte řešit jiným senzorem v Home Assistantu nebo pozicí slunce. Skutečný senzor osvětlení dostal až vyšší model NSPanel Pro, kde ho Sonoff inzeruje jako jednu z novinek.
Pájení do zařízení na 230 V

Dopájení třetího relé znamená zásah do zařízení připojeného k síti 230 V a samozřejmě ztrátu záruky. Pokud si nejste stoprocentně jistí tím, co děláte, nechte to být. A pokud do toho jdete, mějte panel po celou dobu odpojený od sítě.

Co budete potřebovat

Než se pustíme do instalace, připravte si následující:

Hardware

  • Sonoff NSPanel (samozřejmě 😊)
  • USB-TTL adaptér s čipem CP2102 nebo CH340 (viz níže)
  • Propojovací kabely typu Female-to-Female (minimálně 5 kusů)
  • Nic dalšího - napájení vezmete přímo z převodníku, externí zdroj není potřeba

Software

  • Nainstalovaný Home Assistant s doplňkem ESPHome
  • Počítač s webovým prohlížečem (Chrome nebo Edge - kvůli Web Serial API)

Sonoff NSPanel EU, šedý

  • WiFi
  • Bluetooth
Momentálně není k dispozici nákup v této zemi

CP2102 USB 2.0 to TTL UART Module

  • USB
Momentálně není k dispozici nákup v této zemi

Dupont kabely 10cm / 20cm / 30cm - male / female

Momentálně není k dispozici nákup v této zemi
tip

Pokud ještě nemáte ESPHome nainstalovaný, podívejte se na můj článek o ESPHome.

Bezpečnost především!

Před jakoukoliv manipulací s panelem odpojte napájení 230V! Pracujeme s 3,3V logikou, ale bezpečnost především.

Příprava NSPanelu na flashování

Než nahrajeme nový firmware, musíme NSPanel otevřít a připojit USB-TTL adaptér. Nebojte se, není to tak složité, jak to zní.

Otevření panelu

  1. Odklapněte panel z montážní základny
  2. Odšroubujte 2 šrouby ve spodní části plastového krytu
  3. Zvedněte plastový kryt
  4. Najdete 5pinový header pro sériovou komunikaci označený 3V3, RX, TX, GND, IO0
Pin IO0

Pro samotný přenos dat vám stačí 3 piny (RX, TX, GND). Pin IO0 (GPIO0) budete potřebovat na přepnutí do boot módu - spojíte ho s GND a až potom připojíte napájení (viz krok níže). Potvrzuje to i dokumentace NSPanel Manageru.

Napájení berte z pinu +5V, ne z 3V3. Oba fungují pro samotné flashování - to velký proud nekreslí. Rozdíl přijde až potom: z +5V panel po nahrání firmwaru normálně naběhne, kdežto na 3V3 se bude restartovat, protože ten pin je za drobným stabilizátorem převodníku a na startující Wi-Fi nestačí. Externí zdroj k tomu nepotřebujete.

Propojení s USB-TTL adaptérem

Pinout NSPanel

Propojte kabely následovně:

NSPanelUSB-TTL adaptér
TXRX
RXTX
GNDGND
5V+5V

Napájení berte z pinu +5V na převodníku. Pin 3V3 na flashování taky stačí, ale panel s ním potom nenaběhne - viz výš.

Pozor na křížení!

TX z panelu jde na RX adaptéru a naopak!

Pozor na kovové stínění displeje

Hned vedle sériového headeru je kovové stínění displeje a piny se o něj mohou snadno zkratovat. Pokud si do panelu pájíte trvalý header, přelepte jeho spodní stranu izolepou. U dočasně přidržených dupont konektorů si aspoň pohlídejte, aby se stínění nedotýkaly.

Přepnutí do bootloader režimu

ESP32 se do režimu pro nahrávání firmwaru dostane tak, že má při zapnutí napájení pin GPIO0 stažený na zem. Na desce NSPanelu je vyvedený jako IO0, hned na tom pětipinovém headeru.

  1. Odpojte NSPanel od napájení (230 V i USB-TTL adaptéru)
  2. Propojte IO0 s GND - drátkem, propojkou, nebo prostě přidržte
  3. Připojte napájení (USB-TTL adaptér do počítače)
  4. Zkratku můžete rozpojit

Panel je nyní v bootloader režimu a připravený na nahrání firmware. Že jste uspěl, poznáte tak, že se k němu esptool nebo webový flashovací nástroj připojí.

Oprava: do boot módu se přepíná přes IO0, ne tlačítkem

Řada návodů (a dřívější verze tohoto článku) tvrdí, že stačí při zapnutí držet levé tlačítko pod displejem. Nevěřte tomu. Tlačítka NSPanelu jsou na GPIO14 a GPIO27, takže s GPIO0 nemají nic společného a do boot módu čip nepřepnou. Sám jsem si na tom vylámal zuby, než jsem sáhl po IO0.

Opraveno 25. 7. 2026, viz změny na webu. Potvrzuje to i dokumentace NSPanel Manageru.

Instalace ESPHome firmware

Testováno s těmito verzemi

Ověřeno 27. 7. 2026 s ESPHome 2026.7.2 (ESP-IDF v5.5.5) a NSPanel Easy v2026.7.1.

Buď v tom poctivý: tuhle kombinaci mám odzkoušenou z migrace z Blackymas/NSPanel_HA_Blueprint, ne z čisté instalace od nuly na nedotčeném panelu. Sériový flash, bootloader režim a hardwarová část postupu se ale mezi projekty nemění vůbec - ta je ověřená z původní instalace 25. 7. 2026. Co se mění, je obsah YAML konfigurace a názvy pár ovládacích prvků v Home Assistantovi.

Minimální verzi ESPHome si NSPanel Easy hlídá sám: je deklarovaná ve firmwaru a kontrolovaná při kompilaci, takže s moc starým ESPHome dostanete jasnou chybu a ne záhadné hlášení. Pro v2026.7.1 je to 2026.5.0. Obecné pravidlo projektu je, že cílí na Home Assistant a ESPHome vydané ne dříve než dva měsíce před daným vydáním NSPanel Easy.

Kolik potřebujete RAM na kompilaci

Projekt doporučuje 4 GB RAM pro ESPHome jako doplněk Home Assistanta - u Raspberry Pi tedy minimálně Pi 4 se 4 GB. Při manuální instalaci ESPHome na počítači stačí 2 GB plus 500 MB swapu. S méně pamětí kompilátor spadne. Pokud vám kompilace padá bez zjevné příčiny, hledejte problém tady, ne v konfiguraci.

Pořadí kroků je tady důležité. Nejdřív si připravíte konfiguraci, teprve pak flashujete - jinak byste panel flashoval dvakrát.

Celé to jsou čtyři kroky plus složení panelu:

  1. Vytvořit zařízení v ESPHome (firmware zatím neinstalovat)
  2. Vložit YAML konfiguraci s balíčkem NSPanel Easy
  3. Zkompilovat a stáhnout .factory.bin
  4. Nahrát přes sériovou linku
  5. Složit panel, připojit na 230 V a přidat do Home Assistanta

Krok 1: Vytvoření zařízení v ESPHome

  1. V Home Assistantovi otevřete doplněk ESPHome Device Builder
  2. Klikněte na + New DeviceContinue
  3. Pojmenujte zařízení, například nspanel01
  4. Vyberte ESP32 a klikněte na Skip - firmware zatím instalovat nebudeme
  5. Klikněte na nově vytvořené zařízení a dejte Edit

Krok 2: YAML konfigurace s balíčkem NSPanel Easy

Obsah editoru celý smažte a vložte tohle. Je to ta část, kterou většina návodů (včetně dřívější verze téhle) neuvádí - a bez ní panel žádné ovládací prvky pro displej ani entity Blueprintu mít nebude:

api:
encryption:
key: !secret api_encryption_key

substitutions:
device_name: "nspanel01"
friendly_name: "NS Panel"
wifi_ssid: !secret wifi_ssid
wifi_password: !secret wifi_password
ota_password: !secret ota_password
language: cs # cestina - seznam kodu v dokumentaci projektu
boot_sound: false
upload_tft_automatically: true

# Pocitadlo safe mode do RTC pameti - odpojeni od proudu ho vymaze
safe_mode:
storage: rtc

packages:
remote_package:
url: https://github.com/edwardtfn/NSPanel-Easy
ref: v2026.7.1 # pripnuty tag, ne 'latest'
refresh: never
files:
- nspanel_esphome.yaml
Čeština se nastavuje tady, ne v Blueprintu

Substituce language: cs je novinka NSPanel Easy - u NSPanel_HA_Blueprint se jazyk vybíral v Blueprintu. Do firmwaru se zakompilují jen texty toho jednoho jazyka, což šetří paměť a panel umí správné texty i offline. Když substituci vynecháte, panel spadne zpátky na angličtinu. Kompletní seznam kódů je v dokumentaci Localization.

Po změně jazyka je potřeba znovu zkompilovat a nahrát firmware - nestačí uložit.

Volitelné add-ony

Tohle je minimální funkční konfigurace. Projekt k ní nabízí přídavné moduly, které se přidávají jako další soubory do files:. Pozor: add-ony jsou v podsložce esphome/, základní balíček nspanel_esphome.yaml naopak zůstává v rootu - to je nejčastější zdroj chyb při přechodu ze staršího projektu.

files:
- nspanel_esphome.yaml # zakladni balicek - BEZ prefixu esphome/
# Displej jako svetlo v HA (jde stmivat automatizaci)
- esphome/nspanel_esphome_addon_display_light.yaml
# Termostat s vytapenim pres rele
# - esphome/nspanel_esphome_addon_climate_heat.yaml
# - esphome/nspanel_esphome_addon_climate_cool.yaml
# - esphome/nspanel_esphome_addon_climate_dual.yaml
# - esphome/nspanel_esphome_addon_cover.yaml

Sám používám ten první. Climate add-ony k tomu chtějí ještě substituce heater_relay: "1" a cooler_relay: "2" (kterým relé se topí a kterým chladí). Kompletní seznam je v dokumentaci projektu - ale každý add-on zvětší firmware, takže po přidání zkontrolujte využití paměti při kompilaci.

Hodnoty s !secret musíte mít v secrets.yaml (v ESPHome vlevo dole Secrets). api_encryption_key si vygenerujete v ESPHome docs nebo jakýmkoli generátorem 32bajtového base64 klíče.

Dvě věci v té konfiguraci, které dokumentace projektu neuvádí

Blok api: encryption: a safe_mode: storage: rtc jsou moje vlastní doplňky, v oficiálním vzoru je nenajdete. První šifruje komunikaci s Home Assistantem, druhý vám ušetří sériový kabel, kdyby se panel někdy zakousl v safe mode - proč, rozebírám dole v sekci NSPanel je černý, není na Wi-Fi a přeflešování nepomáhá. Doporučuju obojí nechat.

Naopak ota_password je v NSPanel Easy samostatné a volitelné. U NSPanel_HA_Blueprint se odvozovalo z Wi-Fi hesla, takže pokud panel migrujete bezdrátově, musíte si tam pro první OTA dát ota_password: ${wifi_password}. U čisté instalace přes sériovou linku si zvolíte, co chcete.

Proč připnutá verze místo ref: latest

Tady se vědomě odchyluji od oficiální dokumentace NSPanel Easy, která doporučuje ref: latest a refresh: 300s. Vysvětlím proč.

latest je posouvající se tag - ukazuje vždy na poslední vydání. Spolu s refresh: 300s to znamená, že se vám balíček stáhne znovu při každé rekompilaci, a když mezitím vyšla nová verze, dostanete ji, aniž byste o to požádal. Je to přesně ten vzorec, který mi jednou položil panel na 42 hodin (tehdy ve variantě ref: main). Rozdíl mezi „nová verze vyšla" a „nová verze je na mém panelu" má být vaše rozhodnutí, ne náhoda v tom, kdy jste ťukl na Install.

S ref: v2026.7.1 a refresh: never aktualizujete vědomě: podíváte se, co je nového, změníte jedno číslo. Aktuální vydání najdete na stránce releasů - projekt vydává často, v posledních měsících přibližně měsíčně. Od nového repozitáře používá schéma v2026.7.1 (dřív to bylo v2026041).

A ještě jedno vysvětlení k tomu schématu, protože se v něm dá snadno splést: poslední číslo není patch, ale pořadí vydání v daném měsíci. v2026.5.15 je tedy patnácté májové vydání, ne „patch 15" k nějaké verzi 2026.5. Že projekt na začátku vydával opravdu hodně často, je vidět právě na tom - v dubnu 2026 vyšlo 28 vydání, v červnu už jen dvě.

Jedna výjimka: pokud panel migrujete ze Blackymas/NSPanel_HA_Blueprint, migrační dokumentace projektu chce ref: latest při první instalaci během migrace. Konkrétní tag jde použít až potom. U čisté instalace od nuly tenhle problém nemáte a můžete verzi připnout hned.

Skrytá Wi-Fi síť

Pokud máte SSID skrytou, doplňte ještě tohle, jinak se panel bude připojovat dlouho nebo vůbec:

wifi:
fast_connect: true

Krok 3: Kompilace a stažení factory.bin

  1. Klikněte na Save a pak na Install
  2. Zvolte Manual download
  3. Nechte to zkompilovat - poprvé to trvá i deset minut
  4. Až budete vyzván, stáhněte .factory.bin (ne obyčejný .bin, ten je pro OTA a sériově nenaběhne)
Zkontrolujte si paměť

Na konci kompilace se vypíše využití paměti. Když jste u Flash nad 90 % nebo máte pod ~50 kB volné DRAM, jste na hraně a příští aktualizace vás může přehodit. Nejčastější příčinou je bluetooth_proxy - proč ho na panelu nedoporučuji, rozebírám níž.

Krok 4: Nahrání přes sériovou linku

Panel musí být v bootloader režimu a napájený z pinu +5V převodníku. Na 3V3 by se flash povedl taky, ale panel by po něm nenaběhl.

  1. Otevřete v Chrome nebo Edge web.esphome.io
  2. Connect → vyberte svůj USB-TTL adaptér
  3. Install → vyberte stažený .factory.bin
  4. Nechte to nahrát, trvá to asi minutu

Kdo dá přednost příkazové řádce, může použít esptool:

esptool --port /dev/cu.usbserial-0001 --baud 460800 write-flash 0x0 nspanel01.factory.bin
Adaptér se nezobrazuje

Zkontrolujte, že je panel v bootloader režimu (IO0 na GND před zapnutím napájení) a že máte prohozené TX a RX. Prohlížeč musí být Chrome nebo Edge, kvůli Web Serial API.

Krok 5: První spuštění

  1. Odpojte USB-TTL adaptér, všechny vodiče
  2. Sestavte NSPanel zpět
  3. Připojte k napájení 230 V
  4. Panel naběhne a připojí se k Wi-Fi

NSPanel po prvním spuštění

Nikdy obojí zároveň

Panel na 230 V a zároveň připojený USB-TTL adaptér v počítači je kombinace, po které přijdete o adaptér, o USB port, nebo o víc. Vždy jen jedno.

Integrace do Home Assistant

Automatická detekce

Home Assistant by měl NSPanel po prvním startu sám najít:

  1. Otevřete NastaveníZařízení a služby
  2. V sekci Objeveno by měl být nspanel01
  3. Klikněte na Konfigurovat
  4. Vložte api_encryption_key ze svého secrets.yaml
  5. Potvrďte přidání

Manuální přidání

Pokud automatická detekce nefunguje:

  1. NastaveníZařízení a službyPřidat integraci
  2. Vyhledejte ESPHome
  3. Zadejte IP adresu panelu a port 6053
Jak najít IP adresu

Nejrychleji v DHCP tabulce routeru. Případně v logu panelu v ESPHome - řádek [C][wifi:1259]: IP Address:.

V Home Assistantovi nejsou entity Blueprintu

Tohle si zkontrolujte, protože na tom závisí všechny další kroky. Na stránce zařízení musíte vidět diagnostické entity Version - ESPHome, Version - Blueprint a Version - TFT a v sekci Konfigurace ovládací prvky Display model a Update TFT display.

Když tam nejsou, na panelu neběží konfigurace NSPanel Easy - nejčastěji proto, že se nahrál obecný „prepare for first use" firmware místo té z kroku 3. V logu si to potvrdíte řádkem, který musí uvádět projekt:

[I][app:153]: Project edwardtfn.NSPanel-Easy version "2026.7.1"
Ovládací prvek se přejmenoval

U NSPanel_HA_Blueprint se selektor modelu jmenoval Update TFT display - Model, v NSPanel Easy je to prostě Display model. Pokud podle staršího návodu hledáte původní název, nenajdete ho - a přitom je všechno v pořádku.

Nahrání TFT firmware pro displej

Displej NSPanelu (Nextion) má vlastní firmware, který je potřeba nahrát samostatně. V NSPanel Easy je tento proces výrazně jednodušší - a při první instalaci se o něj většinou nemusíte starat vůbec.

Automatické nahrání (doporučeno)

Se substitucí upload_tft_automatically: true z Kroku 2 si firmware TFT nahraje sám: po startu porovná verzi TFT v displeji s tím, co očekává, a když nesedí, přenos si spustí. Stačí tedy vybrat správný model a čekat.

  1. Otevřete stránku vašeho NSPanelu v Home Assistant (Settings → Devices & Services → ESPHome)
  2. V sekci Configuration najdete dva ovládací prvky:
    • "Display model" - rozbalte a vyberte váš model. Pozor, v rozbalovátku je pět voleb, ne tři:
      • NSpanel EU - pro evropský model (výchozí volba)
      • NSpanel US - pro americký model (portrait)
      • NSpanel US Landscape - pro americký model na šířku
      • NSpanel Blank - minimální TFT s QR kódem, který není pro běžné použití; slouží k vyčištění displeje před nahráním toho pravého (viz řešení problémů)
      • NSpanel Easy EU (Under construction) - rozpracovaný nový design, na běžné použití ho nevybírejte
    • "Update TFT display" - pokud nechcete čekat na automatiku, stiskněte toto tlačítko
  3. ESPHome automaticky stáhne správný TFT soubor z GitHubu a začne nahrávat do displeje
  4. Na displeji se zobrazí progress bar s černým pozadím
  5. Transfer trvá 10-20 minut

Selektor Display model dělá mimochodem dvě věci najednou - kromě volby souboru nastavuje i chování panelu za běhu (kalibrace dotyku, rozložení tlačítek, orientace displeje). Držte ho proto vždy na tom, co máte fyzicky na stěně.

Nenechte se zmást volbou „NSpanel Easy EU"

Tohle je past, do které je snadné spadnout právě proto, že instalujete NSPanel Easy: v rozbalovátku je volba doslova pojmenovaná NSpanel Easy EU a člověk po ní logicky sáhne. Je to ale rozpracovaný nový design displeje, ne „TFT pro NSPanel Easy" - proto to „(Under construction)". Nahrálo by se nspanel_easy_landscape.tft, který má 3,3 MB proti 13 MB hotového souboru, a panel by nebyl použitelný.

Pro evropský panel vyberte NSpanel EU, i když instalujete NSPanel Easy.

CJK varianty už neexistují

U NSPanel_HA_Blueprint byly pro čínštinu, japonštinu a korejštinu samostatné TFT soubory s označením (CJK languages). V NSPanel Easy jsou tyto znakové sady zabudované ve standardních TFT souborech a zvláštní varianty zmizely - vyberte prostě model odpovídající vašemu hardwaru bez ohledu na jazyk.

Automatické stahování

ESPHome automaticky volí správnou verzi TFT souboru podle vámi vybraného modelu a stahuje ji přímo z repozitáře projektu. Nemusíte nic stahovat ručně!

Pokud se transfer nespustí

Na prvním startu je normální, že se v logu chvíli opakuje [W][nextion:xxx]: Not connected - firmware si nejdřív hledá správnou přenosovou rychlost na sériové lince k displeji, a originální firmware Sonoffu ji má jinou. Může to trvat pár minut.

Pak se ESPHome automaticky pokusí několikrát s různými parametry. Pokud ani poté nefunguje — nebo pokud přenos nejde ani z lokální složky — mám na to samostatnou sekci s postupem podle příčin.

Ruční nahrání (pouze pokud automatické selže)

Pokud automatické nahrání opakovaně selhává, můžete si TFT hostovat sám. NSPanel Easy na to nabízí dvě substituce a dost záleží na tom, kterou zvolíte:

  • nextion_update_base_url - přepíše jen adresu serveru, ze kterého se soubory berou. Automatická volba modelu i verze zůstává v platnosti, což je pro ruční hostování obvykle to, co chcete.
  • nextion_update_url - plný override. Když je nastavená, obchází selektor modelu i celou verzovací logiku a použije se přesně ta jedna URL. Za to, že za ní leží kompatibilní a aktuální soubor, ručíte vy.

Postup s plným overridem:

  1. Stáhněte správný TFT soubor ze složky hmi/ v repozitáři na značce verze, kterou máte připnutou
    • Pro EU model: nspanel_landscape.tft
    • Pro US model (portrait): nspanel_portrait.tft
  2. Nahrajte soubor na lokální HTTP server (např. do složky /config/www/ v Home Assistant)
  3. V ESPHome konfiguraci doplňte do bloku substitutions: (ne na root, je to substituce):
    substitutions:
    # ... ostatni hodnoty z Kroku 2
    nextion_update_url: "http://homeassistant.local:8123/local/nspanel_landscape.tft"
  4. Zkompilujte, nahrajte OTA a stiskněte tlačítko "Update TFT display"
Volba „Use nextion_update_url" v selektoru už není

U NSPanel_HA_Blueprint se nextion_update_url aktivovala tím, že jste v selektoru modelu vybral zvláštní volbu „Use nextion_update_url". Ta v NSPanel Easy není - substituce se uplatní automaticky, jakmile je neprázdná. Selektor Display model proto nechte na svém skutečném modelu, protože se z něj dál řídí kalibrace dotyku a rozložení tlačítek.

A pokud jste nextion_update_url používal jen k volbě modelu (což u starého projektu šlo), odeberte ji - model si dnes selektor pořeší sám.

Konfigurace pomocí Blueprint

Teď přichází ta nejlepší část - nastavení toho, co se bude na panelu zobrazovat!

Instalace Blueprint

Blueprint se v NSPanel Easy jmenuje nspanel_easy_blueprint.yaml (u starého projektu to byl nspanel_blueprint.yaml) a importuje se z jiné adresy.

  1. Otevřete tento odkaz: NSPanel Easy Blueprint
  2. Nebo použijte tlačítko:
Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.
Proč je tady latest, když jsem vás před ním v Kroku 2 varoval

Všiml jste si toho? V té adrese je refs/tags/latest, tedy ten samý posouvající se tag, kterému jsem se u ESPHome konfigurace vyhýbal. Není to nedůslednost, je v tom rozdíl.

U firmwaru je problém v tom, že se balíček stáhne znovu při každé rekompilaci - novou verzi tedy dostanete jako vedlejší efekt toho, že jste ťukl na Install kvůli něčemu úplně jinému. Blueprint se naopak sám neaktualizuje. Když ho v Home Assistantovi chcete přeimportovat, musíte si o to výslovně říct - je to vždycky vědomý krok, takže posouvající se tag tady nic nekazí. Odpovídá to i tomu, jak má sám projekt nastavené source_url v Blueprintu.

Nesoulad verzí navíc nezůstane utajený: firmware má v sobě min_blueprint_version (v v2026.7.1 je to 2026.5.15) a verzi Blueprintu z Home Assistanta si při startu ověřuje. Když bude Blueprint moc starý, dozvíte se to - a stav uvidíte v entitě Version - Blueprint.

Jazyk se tady už nenastavuje

Nejnápadnější změna proti NSPanel_HA_Blueprint: v Blueprintu už není volba jazyka. Nastavuje se substitucí language: cs v ESPHome YAML, viz Krok 2. Sekce Localization v Blueprintu zůstala, ale řeší v ní jen formát datumu, času a jednotek (jednotka teploty, desetinný oddělovač a kompaktní zobrazení jednotek).

Pokud vám panel po migraci mluví anglicky, tohle je ten důvod - a nespraví se to v Blueprintu, ale rekompilací firmwaru.

Vytvoření automatizace

  1. Jděte do NastaveníAutomatizace a scényBlueprinty
  2. Najděte NSPanel Easy Configuration a klikněte na něj
  3. Vyplňte:
    • NSPanel device (REQUIRED): vyberte ESPHome zařízení vašeho panelu
    • Weather and temperature: entita počasí a teploty (interní senzor panelu nebo externí)
  4. Uložte a automatizaci si pojmenujte, ať v ní později najdete správný panel
Jeden panel, jedna automatizace

Nikdy nepřiřazujte tentýž panel do dvou automatizací. Home Assistant tomu nijak nebrání, ale panel se pak chová nepředvídatelně a zbytečně to zatěžuje Wi-Fi i samotný Home Assistant. Máte-li panelů víc, vytvořte pro každý samostatnou automatizaci.

Přidání stránek a ovládacích prvků

Zbytek Blueprintu je dlouhý seznam sbalených sekcí a v nich se nastaví celý panel. Nejdůležitější:

  • Home page - Entities states a Home page - Custom buttons - co je vidět na hlavní obrazovce
  • Button pages 01-04 - až čtyři stránky s tlačítky; u každého tlačítka vyberete entitu, název, ikonu, barvu, případně potvrzovací dialog nebo vlastní akci
  • Entities pages 01-04 - až čtyři stránky se seznamem entit
  • Chips - malé stavové ikony v horní liště
  • Climate page, Water heater page, Utilities page, QR code
  • Hardware buttons - co mají dělat ta dvě fyzická tlačítka pod displejem
  • Screensaver, Media player, Notifications, Localization (formát datumu, času a jednotek), Advanced settings

Všechno se vyklikává v uživatelském rozhraní, YAML psát nemusíte.

NSPanel Pages

Automatická detekce typů

Blueprint automaticky detekuje typ entity (světlo, spínač, žaluzie) a zobrazí správné ovládací prvky.

Pokročilé funkce

Bluetooth Proxy - a proč ho nedoporučuji

Technicky NSPanel jako Bluetooth proxy fungovat umí. Stačí do konfigurace přidat bluetooth_proxy: a BLE zařízení v dosahu panelu se objeví v Home Assistantovi.

Jenže tohle je funkce, u které jsem po vlastní zkušenosti změnil názor.

Bluetooth vás připraví o polovinu volné paměti

Zkompiloval jsem tutéž konfiguraci dvakrát, jediný rozdíl byl bluetooth_proxy:. Výsledek:

s bluetooth_proxybez
Flash1 529 391 B (83,3 %)1 110 539 B (60,5 %)
Celkový pool interní DRAM124 580 B180 736 B
Volná interní DRAM55 228 B123 352 B

Ta prostřední řádka je podstatná. BLE controller si svoji paměť vyřízne z celkového poolu už při linkování - není to tedy jen otázka spotřeby. Volná vnitřní DRAM padá na méně než polovinu a PSRAM to nezachrání, protože pufry pro Wi-Fi musí být DMA-schopné.

Panel mi na těch 55 kB běžel půl roku. Pak jedna aktualizace ESPHome firmware o kousek nafoukla, rezerva zmizela a panel skončil černý a nedostupný. Celý průběh té diagnostiky rozebírám v článku Když NSPanel po aktualizaci nenaběhne.

Dokumentace projektu na to upozorňuje také, a to poměrně přesně:

During Startup: If your device runs out of memory at startup, it may not load the firmware, resulting in a black screen and an unresponsive device.

Původní projekt navíc Bluetooth Proxy add-on odstranil jako breaking change (issue #2669) a jeho stránka v dokumentaci dnes obsahuje jednu větu: „This add-on has been removed." Historie souvisejících problémů je dlouhá - #2168 „Enabled active bluetooth proxy bricks devices", #1815 „TFT Update Fails if Bluetooth Proxy is enabled" a další.

NSPanel Easy paměť u startu aktivně řeší - a přesto na tom nic nemění

Tohle mě potěšilo, protože je to nezávislé potvrzení toho, na co jsem přišel při vlastní diagnostice. NSPanel Easy má v dokumentaci celou sekci Reducing Registered API Actions a v ní tuhle větu:

Each API action registered by ESPHome consumes heap memory at boot. On memory-constrained configurations — such as those running Bluetooth Proxy — this can cause boot instability or crashes.

Proto jsou API akce upload_tft a wake_up defaultně vypnuté - většina lidí je z automatizací nevolá a jejich registrace zbytečně ubírá heap při startu. Zapnete si je substitucemi include_action_upload_tft: true a include_action_wake_up: true.

Je to správný krok a pár kilobajtů to vrátí. Na mém doporučení to ale nic nemění, a to z jednoduchého důvodu: BLE controller si svoji paměť vyřízne z celkového poolu už při linkování, tedy dávno předtím, než se vůbec začne řešit, kolik akcí je registrovaných. Těch 56 kB z tabulky výš neušetříte ani nulovým počtem API akcí. Šetření na straně firmwaru vám pomůže vedle Bluetoothe, ne místo něj.

Doporučení: dejte Bluetooth proxy na samostatnou ESP32. Deska za necelou stovku do USB nabíječky má celou paměť pro sebe a hotový firmware nahrajete přes webový instalátor ESPHome bez psaní YAML. Navíc si proxy umístíte podle pokrytí BLE, ne podle toho, kde máte vypínač. Podrobněji v článku o Bluetooth Proxy.

Vlastní TFT design

Pokud vás baví úpravy, můžete vytvořit vlastní design displeje:

  1. Stáhněte Nextion Editor
  2. Upravte HMI soubor podle svých představ
  3. Zkompilujte do TFT
  4. Nahrajte na panel
Pouze pro pokročilé

Vyžaduje znalost Nextion platformy, není pro začátečníky.

Sledování komunikace s displejem

Na desce najdete testovací pady označené TF_RX a TF_TX. Logickým analyzátorem nebo druhým USB-TTL adaptérem si na nich můžete odposlechnout komunikaci mezi ESP32 a displejem. Využijete to při ladění vlastního TFT designu, kdy potřebujete vidět, jaké příkazy displej skutečně dostává.

Řešení problémů

Během instalace jsem narazil na několik problémů, které se vám také můžou stát:

Kompilace padá na chybu

Pár chybových hlášení, na která se dá narazit, a co za nimi bývá:

HlášeníPříčina
region 'dram0_0_seg' overflowed by N bytes
.dram0.bss will not fit in region
Nevejdete se do paměti. Nejčastěji kvůli bluetooth_proxy - viz varování níž. Ubírejte komponenty, dokud to neprojde
Component not found: nextion_update_urlVložil jste ho na root konfigurace, ale je to substituce - patří do bloku substitutions:
Couldn't find ID 'wifi_component' a podobné odkazy na neznámá IDChybí vám balíček projektu, nebo jste ho stáhl z jiné verze. Zkontrolujte blok packages: z Kroku 2
Chyby, které se objevily „samy" po rekompilaciTáhnete balíček z posouvajícího se tagu (ref: latest, případně ref: main), takže se vám verze změnila pod rukama. Připněte konkrétní tag, jak je v Kroku 2
Soubor v packages: nejde najít (404, Failed to load, prázdný balíček)Klasika při přechodu na NSPanel Easy: add-ony patří do podsložky esphome/, ale základní nspanel_esphome.yaml do rootu. Zkontrolujte, že máte esphome/nspanel_esphome_addon_...yaml s prefixem a nspanel_esphome.yaml bez něj
ESPHome version too old / požadavek na vyšší min_versionNSPanel Easy si minimální verzi ESPHome hlídá sám a řekne vám ji. Pro v2026.7.1 je to 2026.5.0. Aktualizujte doplněk ESPHome
Ověřte si verzi ESPHome

NSPanel Easy má minimální verzi ESPHome deklarovanou ve firmwaru a kontrolovanou při kompilaci - pro v2026.7.1 je to 2026.5.0 a s nižší dostanete jasnou chybu, ne záhadné hlášení. Obecné pravidlo projektu je, že cílí na Home Assistant a ESPHome vydané ne dříve než dva měsíce před daným vydáním NSPanel Easy.

Horní hranici ale nikdo nehlídá, takže s výrazně novější verzí ESPHome, než na jakou byl firmware testovaný, se můžete dostat do kombinace, kterou nikdo nezkoušel — přesně to je popsané tady.

NSPanel nejde přepnout do bootloader režimu

  • Spojte IO0 s GND a až potom připojte napájení. Držení levého tlačítka nefunguje - tlačítka jsou na GPIO14 a GPIO27, ne na GPIO0
  • Ověřte, že zkratka drží po celou dobu zapínání, ne až po něm
  • Zkuste jiný USB-TTL adaptér nebo jiný USB port

NSPanel se v boot loopu restartuje každou sekundu a v logu je rst:0x1

Kód rst:0x1 (POWERON_RESET) znamená, že čip skutečně ztratil napájení, ne že by spadl software. U pádu firmwaru byste viděl rst:0xc (SW_CPU_RESET) a Guru Meditation Error.

Nejčastější příčina je napájení panelu z pinu 3V3 na USB-TTL převodníku. Ten pin jde z drobného stabilizátoru na desce převodníku, který dá tak 50–100 mA. Na flashování to stačí, ale startující Wi-Fi si řekne o mnohonásobek a napájení se složí - proto flash proběhne a panel se pak restartuje.

  • Přepojte napájení na pin +5V převodníku, ten jde prakticky z USB VBUS
  • Panel si těch 5 V převede vlastním stabilizátorem, který na to dimenzovaný je
  • U 500mA USB portu to může být těsné - pomůže port USB 3.0

Tuhle past jsem si vyzkoušel na vlastní kůži - vyrobila mi falešnou diagnózu, viz post-mortem.

NSPanel je černý, není na Wi-Fi a přeflešování nepomáhá

Podívejte se do sériového logu, jestli tam není tohle:

[C][safe_mode:189]: Unsuccessful boot attempts: 10
[E][safe_mode:201]: Boot loop detected

Panel se zakousl v safe mode, kde ESPHome nespustí displej ani nic z konfigurace panelu - černá obrazovka je v tomhle stavu očekávaná. A je to past, protože počítadlo neúspěšných startů se na ESP32 ukládá do flash (NVS), takže přežije odpojení od proudu.

Zákeřné je, že factory.bin ho nepřepíše. NVS oddíl sedí na 0x390000, factory image se zapisuje od 0x0 a pokrývá jen bootloader, tabulku oddílů a app0. Přeflešování tedy počítadlo nechá být.

Řešení je smazat celý flash:

esptool --port /dev/cu.usbserial-0001 erase-flash
esptool --port /dev/cu.usbserial-0001 --baud 460800 write-flash 0x0 nspanel01.factory.bin

Port si dohledejte podle systému: na macOS /dev/cu.usbserial-* (ne tty., ten umí čekat na signál DCD a esptool se zasekne), na Linuxu /dev/ttyUSB0, na Windows COM3. Se starší instalací esptool použijte esptool.py a erase_flash s podtržítkem.

Wi-Fi údaje jsou zakompilované ve firmwaru, takže o nic nepřijdete.

Proč to factory image nezvládne a jak jsem na to přišel, rozebírám v post-mortemu.

Ať se to nezopakuje

Přidejte si do konfigurace tohle:

safe_mode:
storage: rtc

Počítadlo se přesune do RTC paměti, kterou odpojení od proudu vymaže. Safe mode vám zůstane jako záchranná síť, ale panel se v něm už nikdy nezamkne natrvalo a vystačíte si s vypnutím a zapnutím místo sériovky.

Panel se dlouho připojuje k Wi-Fi nebo se nepřipojí vůbec

Pokud máte skrytou SSID, hledejte v logu tyhle dva řádky:

[W][wifi:1603]: 'moje-iot-sit' should be marked hidden
[W][wifi:1480]: No networks found

Skrytou síť ESPHome scanem nenajde a musí přes záložní větev pro skryté sítě. Řešením je scan úplně vynechat:

wifi:
fast_connect: true

Panel se pak připojí přímo na první nakonfigurovanou síť. U pevné instalace, která se celý život hlásí na stejný AP, tím nic neztrácíte. Souvislost se skrytou SSID a pádem ESPHome rozebírám v post-mortemu.

Proč ne hidden: true

Volba hidden v ESPHome existuje, ale je platná jen uvnitř networks:, ne v top-level wifi:. A u NSPanel Easy (stejně jako u NSPanel_HA_Blueprint, odkud tenhle mechanismus pochází) ji nastavit nejde - ESPHome slučuje seznamy z balíčků zřetězením (old + new), takže by vznikla druhá síťová položka bez SSID a konfigurace by spadla na validaci. Použijte fast_connect.

NSPanel se při flashování náhodně restartuje nebo se vůbec nepřipojí

  • Nejčastější příčinou je zkrat o kovové stínění displeje, které je hned vedle sériového headeru - zkontrolujte, že se ho žádný pin nedotýká, a případně ho přelepte izolepou
  • Ověřte, že máte TX a RX prohozené (TX panelu do RX adaptéru a naopak)

Nahrávání TFT displeje se nespustí, nedokončí, nebo nejde ani z lokální složky

Tohle je nejčastější potíž celého NSPanelu a stojí za ní překvapivě málo příčin. Důležité vodítko: pokud to nejde ani z lokální složky, problém není ve stahování — a pak vám nepomůže hledat jiný webserver.

Nejdřív zkuste prázdný TFT soubor

Za většinou problémů stojí Active Reparse Mode displeje Nextion. Ten je zapnutý na panelech, kde jezdil originální firmware Sonoffu nebo nspanel-lovelace-ui, a v tomhle režimu displej běžný upload odmítne bez ohledu na to, odkud soubor jde.

Vypne ho nahrání jakéhokoli TFT z tohoto projektu — jenže běžný soubor má přes 13 MB a s tím se ESP32 nadře. Projekt proto nabízí nspanel_blank.tft, který má necelých 700 kB a jehož jediným účelem je Reparse Mode vypnout. V NSPanel Easy ho nemusíte nikde stahovat, je to volba přímo v selektoru modelu:

  1. V selektoru Display model vyberte NSpanel Blank
  2. Stiskněte Update TFT display a nechte to dojet - je to malý soubor, netrvá to dlouho
  3. Teprve potom přepněte selektor na svůj skutečný model (NSpanel EU) a nahrajte ten pravý TFT

Případně si nspanel_blank.tft můžete vzít ze složky hmi/ v repozitáři a hostovat lokálně.

Přechod z nspanel-lovelace-ui

Pokud jste na panelu měl nspanel-lovelace-ui, bez tohoto mezikroku nenahrajete vůbec nic. Dokumentace projektu to uvádí jako podmínku, ne jako tip.

Když to nepomůže, projděte tohle v tomto pořadí

Co zkontrolovatProč
Máte v konfiguraci bluetooth_proxy nebo esp32_ble_tracker? Dočasně je odstraňteNahrávání TFT potřebuje kus RAM a s BLE ho nedostane. Viz varování o paměti a issue #1815
Hostujete z /config/www/? Restartovali jste Home Assistant?Bez restartu se ta složka na adrese /local/ neservíruje. Tohle je nejčastější důvod, proč „lokální složka nefunguje"
Používáte http://, ne https://?HTTPS je pro ESP problematické a přenos na něm padá
Máte v URL IP adresu místo homeassistant.local?DNS a mDNS jsou častý zdroj potíží. Použijte http://192.168.x.x:8123/local/…
Nastavil jste panelu manuální IP? Doplňte DNS serverBez DNS nejde stahovat z GitHubu. Buď DNS doplňte, nebo hostujte lokálně
Nespustil jste přenos moc brzy po startu?Displej se k ESPHome nepřipojí okamžitě. Počkejte až dvě minuty, než dojede boot skript
Velikost souboru — stáhněte .tft tou samou URL do počítače a porovnejte s GitHubemSnadno se stane, že se místo souboru uloží HTML stránka. Ta se „nahraje" a selže
Odpojte panel od proudu, počkejte 30 sekund, zapněteVrátí displej i ESP do čistého stavu
Používáte framework esp-idf?arduino je dlouhodobě deprecated a nepodporovaný (v původním projektu od verze v4.3.22). NSPanel Easy staví na esp-idf a jiný framework nepodporuje - přepnout na arduino sice technicky jde, ale dokumentace to sama označuje za neudržované. Přenosový engine se na něm chová jinak a HTTPS na něm bývá nestabilní
Nedostáváte se dál než k opakovanému [W][nextion:xxx]: Not connected?Firmware si hledá přenosovou rychlost k displeji a na prvním startu to chvíli trvá. Když to nepřejde, přidejte substituci include_button_scan_baud_rate: true - dostanete v Home Assistantovi diagnostické tlačítko Scan baud rate, které projde všechny podporované rychlosti a na té funkční pak spustí přenos
Panel během přenosu nereaguje

Když už se přenos rozjel, panel často neposlechne tlačítko Restart v Home Assistantovi ani patnáctisekundové držení tlačítka. Pomůže odpojení od proudu, nebo hardwarové resetovací tlačítko v malé dírce na zadní straně panelu — dosáhnete na něj špendlíkem.

„System data ERROR!" nebo „Model does not match" na displeji

Vypadá to hrozivě, občas i vzhůru nohama, ale znamená to jen neúplný nebo neplatný TFT soubor. Úspěšné nahrání to spraví, panel není poškozený. U „Model does not match" někdy stačí i restart, který vrátí předchozí TFT.

Ovládací prvky pro TFT v Home Assistantovi vůbec nejsou

To je jiný problém — na panelu neběží konfigurace NSPanel Easy. Viz samostatná sekce. Pokud tam konfiguraci máte a prvky přesto chybí, odeberte integraci ESPHome, restartujte Home Assistant a přidejte zařízení znovu.

NSPanel se po flashování neobjevil v Home Assistantu

  • Zkontrolujte, že je integrace ESPHome aktivní
  • Restartujte Home Assistant
  • Zkuste manuální přidání přes IP adresu a port 6053

NSPanel má bílý displej a nic se nezobrazuje

  • Během nahrávání TFT je to normální, buďte trpěliví
  • Pokud to trvá déle než 20 minut, zkuste panel restartovat

Zhodnocení

Po několika měsících používání NSPanelu s ESPHome můžu říct, že jsem velmi spokojený. Instalace sice vyžaduje trochu technických znalostí a trpělivosti, ale výsledek za to stojí.

✅ Hlavní výhody

  • Úplná kontrola - žádná závislost na cloudu
  • Hluboká integrace - vše z Home Assistant na dosah
  • Aktivní komunita - pravidelné aktualizace a podpora
  • Skvělý poměr cena/výkon - za necelé dva tisíce úžasné řešení
  • Bez cloudu - funguje i kdyby eWeLink servery zmizely

⚠️ Co by mohlo být lepší

  • Kvalita displeje - průměrná viditelnost z úhlu, vybledlejší barvy
  • Složitější instalace - není pro naprosté začátečníky
  • TFT nahrávání - občas je to loterie

Doporučení

NSPanel s ESPHome doporučuji pokud:

  • ✅ Používáte Home Assistant
  • ✅ Máte základní technické znalosti
  • ✅ Nechcete cloudová řešení
  • ✅ Oceníte dobrou cenu

Nedoporučuji pokud:

  • ❌ Jste úplný začátečník
  • ❌ Chcete plug-and-play řešení
  • ❌ Vyžadujete prémiový displej
Závěrečná poznámka

Pokud hledáte inteligentní ovládací panel s dobrým poměrem ceny a výkonu a nechcete být závislí na cloudu, NSPanel s ESPHome je skvělá volba. Instalace není triviální, ale díky tomuto návodu by to měl zvládnout každý s trochou technických znalostí.

Sonoff NSPanel EU, šedý

  • WiFi
  • Bluetooth
Momentálně není k dispozici nákup v této zemi

Sonoff NSPanel EU, bílý

  • WiFi
  • Bluetooth
Momentálně není k dispozici nákup v této zemi

CP2102 USB 2.0 to TTL UART Module

  • USB
Momentálně není k dispozici nákup v této zemi

Související články

Zdroje

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.

Komentáře