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

v4.3.9 - Ensuring Compatibility with ESPHome v2024.6.0

This patch addresses a critical compatibility issue introduced by the release of ESPHome v2024.6.0. The OTA format has changed, necessitating updates to ensure seamless firmware updates and system stability for NSPanel users.

[!WARNING]
Home Assistant v2024.6.0 and ESPHome v2024.6.0 are required. Please take a look at our Version compatibility matrix for a full list.

OTA Format Compatibility Update

  • Criticality: Critical
  • Affected Components: ESPHome
  • Description: Updated the NSPanel firmware to be compatible with the new OTA format introduced in ESPHome v2024.6.0. This change is essential for maintaining the ability to perform over-the-air updates, ensuring continuous system functionality and stability.

Please ensure you are using Home Assistant v2024.6.0 or later, along with the latest ESPHome version, to benefit from these updates and maintain optimal performance.

1 Like

I’m still trying to figure out what went wrong but 1 of my 3 NS Panels basically got bricked after I tried to update the TFT to the 4.3.9 version. The panel was fine with the 4.3.9 ESPhome flash firmware file but after I clicked on “update TFT” it went offline and hasn’t been recoverable. When I say ‘bricked’, it had a completely blank screen as if it had no power at all. I even got my multimeter out because something seemed very odd.

I can’t even re-flash when connected to it via serial.

Endless spinning circle.

EDIT: Success… finally. Not sure what the issue was but after multiple attempts at a serial flash again, it worked. Once I re-flashed it I did the TFT update button again and it went through ok.

Nice that you got there, but I still wanna investigate this a bit more, as we had an important change on ota with ESPHome 2024.6.0.

Well, I was using the Git pull method for the main ESPhome firmware update so all 3 NS Panels did the same file, and all was fine with 2 of them. I have no idea why one of them went crazy after the TFT update. Obviously I have probably erased any chance of fault finding now… As I mentioned above, the NS Panel which ‘crashed/bricked’ was fine on the new ESPhome firmware until I requested the TFT update, which was to be from my HA server (local) but the other 2 did the same update without any issue.

Anyway, as always, I am super appreciative of your work on this project. I use these panels a lot and love how easy this has been. It’s an amazing addition to the HA experience in general.

1 Like

Hi all, im installing a nspanel with ESPHome for the first time now, had some hassle setting it up, but it’s working now and online in ESPhome. I can configure the buttons in home assistant for automations. When continuing the manual, Im now at the step that i need to import the blueprint for the really cool stuff, but i get the following error:

When googling, I dont see someone getting this error at importing this particular blueprint. Any Ideas on where to go now??

The blueprint: GitHub - Blackymas/NSPanel_HA_Blueprint: This allows you to configure your complete NSPanel via Blueprint with UI and without changing anything in the code

Which version of Home Assistant are you running? For the latest Blueprint version, HA v2024.6.0 is required.

This works indeed, thanks for the quick response. Should keep it up to date anyway :slight_smile:

1 Like

Good day.

Just wanted to see if there was any update. I logged the request you asked and never heard back

I simply cannot update the firmware as always getting an error.

I do appreciate your help and assistance in this regard.

Hey @barrylapthorne, I’ve replied to your message there: Cannot update firmware · Issue #2158 · Blackymas/NSPanel_HA_Blueprint · GitHub

Please take a look at the space on the items in the substitution area. If you want, post your yaml there in GitHub as I can edit it there.

This has to be my favourite blueprint of home assistant. Its just superb, and improving all the time. Kudos to the devs! my only issue is updating esphome, can there possibly be a script to update blueprints, templates, etc etc etc when esp home updates? seems like then it does, i have to re-remember all the aspects to get it back up and running again, the wife approval factor dips!

Automate the TFT update is feasible, but not the Blueprint, unfortunately. Or at least not with the existing capabilities on Home Assistant. Or at least not triggered by an ESPHome update.
But there is an entire discussion around this here, and even an user who shared a script to update the Blueprint automatically, which I’ve never tried yet.

1 Like

If there is indeed the way to automate the blueprint re-download surely an automation could be created to use the status of the ESPhome version changing to trigger this.

ie: the Blueprint version number here being different less than that of the ESPhome version:

1 Like

Trigger it is not the issue, but the solution proposed there (please see my link) relies on a bash script, which must be created manually. I don’t know any way to do that without manual user’s intervention.

Ii guess I don’t understand enough about how that script works. I thought it was a create once, run many times sort of thing.

I’ll stay out of what I don’t know!

It is… You create only once. The issue is that I cannot add that in a Blueprint… Users have to create the script manually.
Once created, it could be triggered by the Blueprint.
Maybe we can add some instructions around this.

this is impressive,
if I read it correctly It checks for blueprint updates every 3 hours.
and then automatically update.
Personally I wouldn’t go for the automatic update as it can happen something suddenly stops working.
Personally I would prefer a persistent notification or maybe a custom update trigger.

I was actually wondering how others think about this.

and ofc, we need a scripts to update the update script.

after updating the ESPHome version to 2024.6.3 , getting this error

INFO ESPHome 2024.6.3
INFO Reading configuration /config/esphome/nspanel.yaml...
INFO Updating https://github.com/Blackymas/NSPanel_HA_Blueprint@main
INFO Detected timezone 'Europe/Amsterdam'
Failed config

ota.esphome: [source /data/packages/566b10a3/esphome/nspanel_esphome_core.yaml:129]
  
  Only one instance of the esphome ota platform is allowed per port. Note that this error may result from OTA specified in packages.
  platform: esphome
  id: ota_std
  password: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  version: 2
  port: 3232

What can be the problem ?

yaml config

# MWT NSPanel
#(based on marcfagers original work https://github.com/marcfager/nspanel-mf)

substitutions:
  device_name: nspanel
  wifi_ssid: !secret SSID
  wifi_password: !secret WiFi_Password
  nextion_update_url: http://xxxxxxx:8123/local/nspanel_eu.tft
  nextion_blank_url: http://xxxxxxx:8123/local/nspanel_blank.tft

wifi:
#  ssid: !secret SSID
#  password: !secret WiFi_Password
  fast_connect: true
  ##### addon-configuration #####
  ## addon_climate ##
  # addon_climate_heater_relay: "1" # possible values: 1/2

  ##### CHANGE ME END #####

packages:
  remote_package:
    url: https://github.com/Blackymas/NSPanel_HA_Blueprint
    ref: main
    files:
      - nspanel_esphome.yaml # Core package
      # - advanced/esphome/nspanel_esphome_advanced.yaml # activate advanced (legacy) elements - can be useful for troubleshooting
      # - nspanel_esphome_addon_climate_cool.yaml # activate for local climate (cooling) control
      # - nspanel_esphome_addon_climate_heat.yaml # activate for local climate (heater) control
    refresh: 1s

#esp32:
#  board: esp32dev

esp32:
  framework:
    type: esp-idf




##### My customization - Start #####
##### My customization - End #####

# Enable Web server
web_server:
  port: 80
    
# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  - platform: esphome

Ota definition is already in github yaml in external package. You must remove yours.

1 Like
# ota:
#   - platform: esphome

this would do the trick ?

Yes, either comment out or delete your ota lines.

Note however that you must declare “ota_password” in your substitutions, since this is what built-in ota uses, otherwise compiler will warn you about missing substitution.

1 Like