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

v4.3.10 - Boot Stability Enhancements and Troubleshooting Support

This patch introduces critical fixes and a new boot screen feature to improve system stability and assist in troubleshooting when BLE is in use.

BLE-Related Boot Issue Resolved

  • Criticality: Major
  • Affected Components: Blueprint, ESPHome, TFT
  • Issue Numbers: #2155, #2168, #2176 and #2218
  • Description: Fixed an issue that caused the NSPanel to fail during boot when BLE was enabled. This fix ensures that devices boot reliably even with BLE active, enhancing system stability.

New Boot Screen with Troubleshooting Log

  • Criticality: Enhancement
  • Affected Components: Blueprint, ESPHome, TFT
  • Description: Introduced a new boot screen that displays essential logs during the boot process. This feature aids in troubleshooting by providing real-time information on the panel’s status during startup, making it easier to diagnose and resolve issues.

This update is crucial for users leveraging BLE functionality, and the new boot screen is a valuable tool for ensuring smooth operation and efficient troubleshooting.

3 Likes

v4.3.11 - Hotfix for TFT File Download Issue

This hotfix addresses a critical issue introduced in v4.3.10 where the incorrect TFT file was used during the download process. The fix has been applied to the release flow, but updating your firmware (ESPHome) is required, and it is recommended to also update the Blueprint and TFT components.

Incorrect TFT File Download Issue Resolved (#2223)

  • Criticality: Major
  • Affected Components: Release Flow, ESPHome, Blueprint, TFT
  • Issue Number: #2223
  • Description: Resolved an issue where the incorrect TFT file was being downloaded during the update process. This fix ensures that the correct TFT file is used, preventing potential display issues and ensuring that the panel functions as expected.

This update is critical for maintaining the proper functionality of your NSPanel. Please ensure that you update all components as recommended.

2 Likes

Love the new boot screen , all info in one place

1 Like

Edited 2024 Sept 02

I figured out how to display “hvac_mode” and “fan_mode” of the air conditioning unit on the “climate page”.
I have a Fujitsu A/C with fan_modes “auto”, “high”, “medium”, “low”, “quiet”.
I used the blueprint to add buttons to change the “fan_mode” up and down and 2 scripts.



This code is needed to add to the configuration.yaml

template:
  - sensor:
      - name: "fujitsu_fan_speed"
        state: >-
          {% if not is_state("climate.fujitsu", "off") %}
            {{ state_attr("climate.fujitsu","fan_mode") }}
          {% else %}
            #
          {% endif %}
        icon: >-
          {% if not is_state("climate.fujitsu", "off") %}
            {% if state_attr("climate.fujitsu","fan_mode") == "auto" %}
              mdi:fan-auto
            {% elif state_attr("climate.fujitsu","fan_mode") == "high" %}
              mdi:network-strength-4
            {% elif state_attr("climate.fujitsu","fan_mode") == "medium" %}
              mdi:network-strength-3
            {% elif state_attr("climate.fujitsu","fan_mode") == "low" %}
              mdi:network-strength-1
            {% elif state_attr("climate.fujitsu","fan_mode") == "quiet" %}
              mdi:network-strength-outline
            {% else %}
              mdi:blank 
            {% endif %}
          {% else %}
            mdi:blank 
          {% endif %}

Change “climate.fujitsu” to the climate used with your air conditioning unit.


NS Panel bluprint:


Scripts

alias: Cycle fan modes up
sequence:
  - service: climate.set_fan_mode
    metadata: {}
    data:
      fan_mode: >-
        {{ "low" if state_attr("climate.fujitsu","fan_mode") == "quiet" else
        ("medium" if state_attr("climate.fujitsu","fan_mode") == "low" else
        ("high" if state_attr("climate.fujitsu","fan_mode") == "medium" else
        ("auto" if state_attr("climate.fujitsu","fan_mode") == "high" else
        "quiet"))) }}
    target:
      device_id: adb1c87b4b2e7e4b9d26ab7ab9f0e8cf
description: ""
icon: mdi:fan-chevron-up

and

alias: Cycle fan modes down
sequence:
  - service: climate.set_fan_mode
    metadata: {}
    data:
      fan_mode: >-
        {{ "auto" if state_attr("climate.fujitsu","fan_mode") == "quiet" else
        ("quiet" if state_attr("climate.fujitsu","fan_mode") == "low" else
        ("low" if state_attr("climate.fujitsu","fan_mode") == "medium" else
        ("medium" if state_attr("climate.fujitsu","fan_mode") == "high" else
        "high"))) }}
    target:
      device_id: adb1c87b4b2e7e4b9d26ab7ab9f0e8cf
description: ""
icon: mdi:fan-chevron-down

device_id: have to be replaced with your “device” (air conditioning unit)

2 Likes

Edited 2024 Sept 02

It’s also possible to have an icon based on the state that changes depending on the fan_mode.

clideo_editor_383410e2125c43979e4cbe7fd87382ad_2 (online-video-cutter.com)

To make this work one change in the blueprint is needed.

Blueprint:

{{ state_attr("fujitsu_fan_speed","icon") }}

You can have either just the text
or
just the icon based on the state
or
text+the icon based on the state like in the short video

2 Likes

BTW is there another way to reload the blueprint that

action:
  - service: automation.reload

which reloads all the automations?

You could do this I guess…

Reload Blueprint vs reload automation… what exactly are you trying to achieve?

1 Like

I mean how to reload an automation (created with the help of this blueprint) using commands in YAML?
So the icon based on the state that changes depending on the fan_mode can be actualized in NSpanel instatnly.

The only way I know is

action:
  - service: automation.reload

It’s working well, but it reloads all the automations which could cause other problems…

Reloading the automation will reload all the settings of your panel, so this is why this is solving your need.
If you could please detail a bit more what exactly you are trying to update (where is this icon shown?) we probably could find another way to reload that specific setting or even find another way to upload everything.
Why don’t you add this as a new issue in GitHub? I will be happy to look at this, as probably will make more people happy.

Hello guys,

I’m trying to update my NSPanel but I receive the following error from ESPHome:

Failed config

ota.esphome: [source /config/.esphome/packages/566b10a3/esphome/nspanel_esphome_core.yaml:139]
  
  Found multiple configurations but password is inconsistent.
  platform: esphome
  id: ota_std
  password: Ndr180891
  version: 2
  port: 3232

Can someone help me to understand the issue?

Thanks

On your panel’s yaml, please remove any reference to OTA. :wink:

If you share your panel’s yaml will be easier to help. But please remove any sensitive info like passwords before sharing. :wink:

After updating my NSPanel with ESP 2024.8.1 some standard buttons/icons had disappeared, like utilities , QR code and menu.
Looking into the automation those icons are still set to enable. Any idea to restore those? Reboot and power of → on did not solve the issue.

SOLVED: I disabled the icons in the automation and enabled them again. Now they are visible again!

1 Like

Hi all,
This project has been working great for me…but suddenly I cannot update where i get the below error message during Install.


Successfully created esp32 image.
esp32_create_combined_bin([“.pioenvs/nspanel/firmware.bin”], [“.pioenvs/nspanel/firmware.elf”])
Wrote 0x123750 bytes to file /data/build/nspanel/.pioenvs/nspanel/firmware.factory.bin, ready to flash to offset 0x0
esp32_copy_ota_bin([“.pioenvs/nspanel/firmware.bin”], [“.pioenvs/nspanel/firmware.elf”])
========================= [SUCCESS] Took 89.27 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 192.168.50.34
INFO Uploading /data/build/nspanel/.pioenvs/nspanel/firmware.bin (1128272 bytes)
ERROR ESP requests password, but no password given!

However i have never entered any password earlier?
Below is my ESPHome code:

ota:
  platform: esphome

substitutions:

###### CHANGE ME START ######

  device_name: "nspanel" 
  wifi_ssid: !secret wifi_ssid
  wifi_password: !secret wifi_password

  nextion_update_url: "http://192.168.50.17:8123/local/nspanel_eu.tft" # URL to local tft File

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


##### DO NOT CHANGE ANYTHING! #####

packages:
  ##### download esphome code from Github
  remote_package:
    url: https://github.com/Blackymas/NSPanel_HA_Blueprint
    ref: main
    files: [nspanel_esphome.yaml]
    refresh: 300s

##### DO NOT CHANGE ANYTHING! #####

Any ideas?

Please remove this from your panel’s yaml:

The ota platform is already defined in the remote package.

Hi Edward and thanks!
Good spotting and I originally did not have it and then got the below similar error message complaining about the password:

I thought the OTA platform was missing, hence adding it, but it must be something else?

Thank you Edward!

I edited older posts:
https://community.home-assistant.io/t/sonoff-nspanel-blueprint-configure-your-own-custom-nspanel-easy-via-a-blueprint/500577/1060?u=rehakf

Everything is working now.

1 Like

Well, this is happening due to the OTA password used to flash your panel earlier is diferent than the current one. This typically happens when you change your Wi-Fi password, as this project, from the beginning, uses the same WiFi password as the OTA password (which definitely would’n be a patch I would take nowadays.
If you still know the previous password, you can just follow the ESPHome standard procedure to change OTA (or here in our customizations docs).
If you don’t know the old password, then I’m afraid you will need a new flash via serial. :weary:

1 Like

Hi,

First of all thanks for your work with this project, I really like it a lot and it helped me with establishing really nice ways to operate our electronics here.

Well, I sadly have now, after trying to update my 2 Panels, the issue, that both of them just show the message “System Data ERROR!” in false orientation (sideways). It seems, that updating the TFT doesn`t work for my panels for some reason. To clarify further - both of my panels are the EU version and all updates up to this point were absolutely smoothly without any issues whatsoever, but now they seem to be bricked :fearful:

As the update started, it seemed to be doing its thing like normal, but after only 4% or so they just restarted and showed said message. :thinking:

Could you please look into this? Maybe it`s just a little problem, that could be fixed?

Nvm, I could fix it by reflashing it with changing the wifi. Don’t know why it wouldn’t update properly anymore over the wifi-connection it always had without any issues, but now it gladly could update its TFT succesfully :thinking:

Try to transfer the TFT again and that message will be gone with a successful transfer.

But we should investigate why the transfer is crashing…
Are you using any add-on or customization on your panel?
Do you mind reporting this issue in GitHub? It’s much easier for troubleshooting…