Sonoff NSPanel Blueprint - Configure your own custom NSPanel easy via a Blueprint

I am having an issue with the nextion display. I managed to mess up the display firmware while upgrading, due I think to having blocked too much using Adguard so that an upgrade failed.

Running latest firmware 202510.0 the nextion upgrade writes a few percent and fails. The log suggests a timeout is causing the panel to reboot.

Is there a way to increase the timeout in the ESP which programs the nextion?

Try adding this to your panel’s yaml:

nspanel_ha_blueprint:
  task_wdt_timeout_s: 30  # The default is "5"

But please remember to remove this customization after you succeed with the upload.
And please share your results. :wink:

[NOTE]
Be aware that the 5s is a protection which restarts your ESP when it is stuck on some activity. By changing this you are basically removing this protection.

I don’t have an organized list, but all those have been mentioned on each release notes (I know it’s hard to keep track this way) :frowning:

I think one relevant was the “Update TFT display - Baud rate”, which was removed more because this functionality was broken (and I believe it will be fixed with ESPHome v2025.11.0).
A few of recently added entities (sound volume, boot sound and upload tft automatically) where also removed before users get used to. :wink:

whats the differences between :

   - esphome/nspanel_esphome_addon_climate_cool.yaml
  - esphome/nspanel_esphome_addon_climate_heat.yaml
   - esphome/nspanel_esphome_addon_climate_dual.yaml

The post above prompted me to ask this question. I have an ecobee thermostat connected with the Homekit integration. I have noticed recently that on my NSpanel I cannot change power it off or change the climate mode from heat to cool or to dual. Not sure when this stopped working as it is not something I change often. It still functions fine through the HA UI. ESPhome/TFT/Blueprint version 4.3.42 Esphome 2025.10.3

I watched the logs when I pressed the cool button (currently in heat mode)
and saw this

08:07:05.565][I][nspanel.hw.display:063]: Page changed: 'home'->'climate'
[08:07:05.566][D][text_sensor:085]: 'Current Page': Sending state 'climate'
[08:07:05.569][D][nspanel.hw.display:264]: Entity shown: 
[08:07:05.573][D][script:088]: Script 'timer_dim' restarting (mode: restart)
[08:07:05.576][D][nspanel.hw.display:411]: Waking up on page: climate
[08:07:05.596][D][script:088]: Script 'timer_sleep' restarting (mode: restart)
[08:07:05.648][D][text_sensor:085]: 'Detailed Entity': Sending state 'climate.my_ecobee'
[08:07:05.677][W][nspanel.hw.display:227]: Already the current page
[08:07:05.749][D][text_sensor:085]: 'Detailed Entity': Sending state 'climate.my_ecobee'
[08:07:07.034][D][script:088]: Script 'timer_page' restarting (mode: restart)
[08:07:07.034][D][script:088]: Script 'timer_dim' restarting (mode: restart)
[08:07:07.034][D][nspanel.hw.display:411]: Waking up on page: climate
[08:07:07.034][D][script:088]: Script 'timer_sleep' restarting (mode: restart)
[08:07:07.436][D][script:088]: Script 'timer_page' restarting (mode: restart)
[08:07:07.436][D][script:088]: Script 'timer_dim' restarting (mode: restart)
[08:07:07.439][D][nspanel.hw.display:411]: Waking up on page: climate
[08:07:07.440][D][script:088]: Script 'timer_sleep' restarting (mode: restart)
[08:07:07.440][D][text_sensor:085]: 'NSPanel local event': Sending state 'climate,hvac_mode,cool,0'
[08:07:07.445][D][nspanel.hw.display:207]: Send generic event to Home Assistant
[08:07:07.446][D][nspanel.hw.display:215]: Home Assistant generic event sent
[08:07:07.453][D][nextion_textsensor:014]: Text sensor: localevent='climate,hvac_mode,cool,0'
[08:07:08.910][D][script:088]: Script 'timer_page' restarting (mode: restart)
[08:07:08.910][D][script:088]: Script 'timer_dim' restarting (mode: restart)
[08:07:08.911][D][nspanel.hw.display:411]: Waking up on page: climate
[08:07:08.917][D][script:088]: Script 'timer_sleep' restarting (mode: restart)
[08:07:09.292][D][script:088]: Script 'timer_page' restarting (mode: restart)
[08:07:09.296][D][script:088]: Script 'timer_dim' restarting (mode: restart)
[08:07:09.301][D][nspanel.hw.display:411]: Waking up on page: climate
[08:07:09.302][D][script:088]: Script 'timer_sleep' restarting (mode: restart)
[08:07:09.307][D][text_sensor:085]: 'NSPanel local event': Sending state 'climate,hvac_mode,cool,0'
[08:07:09.309][D][nspanel.hw.display:207]: Send generic event to Home Assistant
[08:07:09.316][D][nspanel.hw.display:215]: Home Assistant generic event sent
[08:07:09.323][D][nextion_textsensor:014]: Text sensor: localevent='climate,hvac_mode,cool,0'
[08:07:10.799][D][sensor:131]: 'ntc_source': Sending state 1.76000 V with 2 decimals of accuracy
[08:07:10.806][D][resistance:042]: 'resistance_sensor' - Resistance 12800.0Ω
[08:07:10.811][D][sensor:131]: 'resistance_sensor': Sending state 12799.99805 Ω with 1 decimals of accuracy
[08:07:10.814][D][ntc:026]: 'Temperature' - Temperature: 19.5°C
[08:07:10.818][D][sensor:131]: 'Temperature': Sending state 19.54612 °C with 1 decimals of accuracy
[08:07:24.299][D][nspanel.hw.display:448]: Fallback to page Home
[08:07:24.310][I][nspanel.hw.display:063]: Page changed: 'climate'->'home'
[08:07:24.312][D][text_sensor:085]: 'Current Page': Sending state 'home'
[08:07:24.323][D][text_sensor:085]: 'Detailed Entity': Sending state ''
[08:07:24.327][D][script:088]: Script 'timer_dim' restarting (mode: restart)
[08:07:24.327][D][nspanel.hw.display:411]: Waking up on page: home
[08:07:24.331][D][script:088]: Script 'timer_sleep' restarting (mode: restart)
[08:07:30.454][D][nspanel.base:125]: The watchdog is starting a round
[08:07:30.460][D][nspanel.base:133]: The watchdog completed the round
[08:08:10.800][D][sensor:131]: 'ntc_source': Sending state 1.75867 V with 2 decimals of accuracy
[08:08:10.805][D][resistance:042]: 'resistance_sensor' - Resistance 12779.2Ω

So It is seeing the button press “climate,hvac_mode,cool,0” should the “0” be a “1”
When I go to developer tools and change the HVAC mode the command is

“climate.set_hvac_mode” the button press does not have the “set” part.

Any ideas appreciated.

Craig

my guess is that one is for cooling only systems, one is for heating only systems and the other is for a system which provides both…

1 Like

Hello. Thank you very much for your hard work.
I am a beginner, and as such I have a possibly stupid question.
Is it possible to transmit a video image to the nspanel, for example from a doorbell camera.
Thanks and again I apologize if my question is stupid.

The NS Panels don’t have enough processing power to handle that kind of thing.

1 Like

Yes that is what they are for the problem I am having is when I press the buttons on the nspanel it is not changing from heat to cool to heat/cool

Craig

Only include this one:

- esphome/nspanel_esphome_addon_climate_dual.yaml

just found this after latest update:
“NSPanel Configuration” auromation (automation.nspanel_configuration_2) has an unknown action: esphome.nsbianco_init_page_home.

I got sorted by using a local copy of the TFT and uploading it by:

  • defining the local URL in yaml
  • storing a copy on my server
  • choosing the local URL option in the settings before pressing Upload.

I still have a problem with my ISP whereby large downloads sometimes fail, which might be the cause of the original trouble. Because of that, i cant upgrade to espHome 2025.10.4, but my NSpanels do now work.
Thanks for your help