[!IMPORTANT]
If you have already installed the version “nspanel-lovelace-ui” from joBr99 on your NSPanel, an intermediate step is necessary - otherwise, it is not possible to install this or any other version.
See [Common Issues TFT Upload when NSPanel Lovelace UI has been installed](/NSPanel-Easy/howto.html)
The following is a list of common issues affecting the TFT upload, along with suggested solutions. These issues are not specific to the NSPanel HA Blueprint project but are common to Nextion displays and ESPHome.

The “System data ERROR!” message, sometimes displayed upside-down, appears when a TFT upload is incomplete. While it may seem alarming, this message simply indicates that the TFT file on the display is invalid. A successful TFT upload will resolve this issue.

This is one more case where the message sounds more alarming than it actually is. Often, a simple reboot of the panel is enough to restore the previous TFT file. This issue typically arises from a corrupt TFT file or server response issues. For troubleshooting, refer to the following sections:
arduino framework.[!TIP] If the TFT transfer has started, your panel might not respond to the reset button on the device’s page in Home Assistant or to holding the hardware button for 15 seconds. In such cases, you can either power cycle your device using the room’s relay on your electrical plate or use a pin to press the hardware restart button in a small hole behind the device.
At least one DNS server is required to enable TFT transfer directly from GitHub; otherwise use nextion_update_url.
If you are setting up a manual IP as a customization, please remember to add a valid DNS server for your panel.
nspanel_blank.tft File to AssistMany TFT upload problems are associated with the Nextion Active Reparse Mode, which is used in some implementations like the original Sonoff firmware or other popular custom firmwares. Installing any TFT file from this project will disable this mode. However, the size of a typical TFT file (7 to 12 Mb) can be challenging for devices with limited memory, such as the ESP32 in your panel, especially over a serial interface.
To facilitate the process, we’ve created the nspanel_blank.tft file.
Although it’s not a fully functional TFT file, it’s sufficient to disable the Reparse Mode and is significantly smaller (less than 300kb).
If you encounter any issues, try installing the nspanel_blank.tft file first. This should make it easier to subsequently install larger, fully functional TFT files.
If the components necessary for uploading a TFT file are not available in the device’s page under Settings > Devices & services > ESPHome, and you cannot simply enable the entity on it’s settings, please try removing the device integration from there, restart your Home Assistant instance and then add the device again. It should be automatically detected as a new integration, but if this is not happening, click the Add integration button, select ESPHome, add the device hostname or IP address and follow the steps required.
arduino vs esp-idf) is an indication that a communication was established.
If you haven’t installed any TFT yet, look for Nextion-related messages on ESPHome logs.nextion_update_url accordingly.nextion_update_url:
nextion_update_url.arduino as framework.nextion_update_url.bluetooth_proxy and ble_tracker may interfere with the upload.http://homeassistant.local:8123/local/nspanel_blank.tft with http://192.168.0.100:8123/local/nspanel_blank.tft.tft_upload_http_timeout and tft_upload_watchdog_timeout in your panel’s YAML.
The defaults are 10s and 15s, which are enough for a healthy local network.substitutions:
tft_upload_http_timeout: 30s
tft_upload_watchdog_timeout: 45s
[!TIP] If you don’t have easy access to your relay’s panel, an alternative is to use a pin to press the hardware restart button, located in a small hole behind the device. Although this action does not replicate a full power cycle, it might resolve the issue in some cases.
arduino (ESPHome default) or esp-idf (this project default) frameworks.esp-idf framework as of v4.3.22. Arduino framework has been deprecated.
The upload TFT engines have some differences, so using ESP-IDF framework may solve some issues.[!WARNING] Arduino framework is deprecated as of v4.3.22 and no longer officially supported. If you’re experiencing issues with Arduino framework, please migrate to ESP-IDF.
You can set the framework you want by adding this to your ESPHome yaml:
esp32:
framework:
type: esp-idf
[!WARNING] DEPRECATED: Arduino framework support has been discontinued as of v4.3.22.
esp32:
framework:
type: arduino
nspanel_esphome.yaml.Examples: Just to name some:
| Solution | Website | Supported OSs | Pros | Cons |
|---|---|---|---|---|
| NGINX | nginx.org | Linux, Windows, macOS | High performance, efficient for static content, good for high concurrency | Configuration can be complex for beginners |
| IIS | Microsoft Web Platform | Windows | Integrated with Windows, GUI for setup, good for Windows environments | Limited to Windows OS |
| Apache | httpd.apache.org | Linux, Windows, macOS | Highly reliable and flexible, wide OS compatibility, extensive customization | Can be less efficient under high load than NGINX |
| XAMPP | apachefriends.org | Linux, Windows, macOS | All-in-one package, easy to install, ideal for beginners | Not optimized for high-traffic sites, more suited for development than production |
After troubleshooting, if issues persist, consult the Issues and please open a new issue for tailored help.
Please share as much info as possible, like:
Remember, these steps are a guideline and might vary slightly based on your specific setup and previously installed system.