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

I think I reuploaded the blank tft. The screen stays of when booting.
How do I change the nspanel_eu.tft to match my display (i guess thats the issue here?) or should I do something else to get it to work?

*Edit: after reboot I unfortunately still get the System Data ERROR! notification and the ERROR is shown when changing the display brightness from HA

*Edit2: eventually I managed to upload the blank.tft again using http instead of https. I got one panel working.

Can you please help me to install it? I get this error message when trying to install ESPHome according to your tutorial:

INFO Reading configuration /config/esphome/ns-panel-3.yaml...
INFO Updating https://github.com/Blackymas/NSPanel_HA_Blueprint@main
WARNING GPIO4 is a Strapping PIN and should be avoided.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
Failed config

esphome: None
  name: nspanel-3
  
  [min_version] is an invalid option for [esphome]. Please check the indentation.
  min_version: 2022.10.2 None
  build_path: .esphome/build/nspanel-3
script: [source /config/esphome/.esphome/packages/566b10a3/nspanel_esphome.yaml:977]
  
  'id' is a required option for [script].
  - [source /config/esphome/.esphome/packages/566b10a3/nspanel_esphome.yaml:977]
    
    Unable to find action with the name 'id'.
    id: page_timer [source /config/esphome/.esphome/packages/566b10a3/nspanel_esphome.yaml:977]
    mode: restart
    parameters: 
      delay: int
    then: 
      - lambda: ESP_LOGD("nspanel", "start page-timer delay %i", int(id(page_timeout).state));
      - delay: !lambda |-
          return delay *1000;
      - lambda: |-
          if (id(disp1_currentpage).state == "home" or id(disp1_currentpage).state == "screensaver" or id(disp1_currentpage).state == "boot" or int(id(page_timeout).state) == 0) {
            ESP_LOGD("nspanel", "no page-jump");
          } else {
            ESP_LOGD("nspanel", "timer->home");
            id(disp1).send_command_printf("page 0");
          }

I would like to thank the developers for this great Blueprint.

I need assistance please. I flashed the first NSPanel and works perfectly. Had no issues at all following the instructions. However, my second panel, after flashing, it just does not connect to my WIFI so can not proceed. I have tried flashing several times, deleting and re-flashing, but it wont just connect. I do however get a fallback hotspot on my WIFI list. I even flashed a standard ESP code, and it connects to wifi, so there is nothing wrong with the panel/radio.

I even tried flashing the same code to another brand new NSPanel, but also does not connect to my WIFI.

I added the line: fast_connect: “True” as per Issue #380, but it did not help.

substitutions:

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

  device_name: "diningnspanel" 
  wifi_ssid: "!secret wifi_ssid"
  wifi_password: "!secret wifi_pwd"
  fast_connect: "True"

  nextion_update_url: "https://192.168.0.127:8123/local/nspanel_us.tft" # URL to local tft File
#  nextion_update_url: "https://raw.githubusercontent.com/Blackymas/NSPanel_HA_Blueprint/main/nspanel_us.tft" # URL to Github

##### 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! #####

Has anyone experienced this and any possible solutions?

I have this on one of my 3 NS Panels and tried flashing the TFT screen directly just the other day but without success. There is info in the github issues section on how to do it. I’d be keen to know how you got the flash to work as I failed.

This time I tried a different approach: I created a web server on raspy and tried to install it from there (from raspy I can easily download the file), but this is the result:

|09:43:00|[E]|[uart:015]|Reading from UART timed out at byte 0!|
| --- | --- | --- | --- |
|09:43:00|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:00|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:00|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:01|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:01|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:01|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:01|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:01|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:01|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:01|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:01|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:01|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:01|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:02|[E]|[uart:015]|Reading from UART timed out at byte 0!|
|09:43:02|[D]|[nextion_upload:239]|Upgrade response is 20|
|09:43:02|[D]|[nextion_upload:242]|Available 0 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 1 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 2 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 2 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 3 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 4 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 5 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 6 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 6 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 7 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 8 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 9 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 10 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 11 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 12 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 13 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 13 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 14 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 15 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 16 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 17 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 18 : 0x00|
|09:43:02|[D]|[nextion_upload:242]|Available 19 : 0x00|
|09:43:02|[D]|[nextion_upload:248]|preparation for tft update failed 0 ""|
|09:43:02|[D]|[nextion_upload:324]|Restarting Nextion|
|09:43:02|[D]|[nextion_upload:324]|Restarting Nextion|
|09:44:45|[D]|[sensor:127]|'ntc_source': Sending state 1.74300 V with 2 decimals of accuracy|
|09:44:45|[D]|[resistance:039]|'resistance_sensor' - Resistance 12538.0Ω|
|09:44:45|[D]|[sensor:127]|'resistance_sensor': Sending state 12537.95898 Ω with 1 decimals of accuracy|
|09:44:45|[D]|[ntc:026]|'nspanelnero01 Temperature' - Temperature: 20.0°C|
|09:44:45|[D]|[sensor:127]||

Finally I did it… After installing the web server on the raspy and trying to install the blank file without success but with a different error, I took a deep breath, rearranged my ideas and: OK let’s reinstall everything from scratch: 1) Installed tasmota, flashed the berry and flashed the modified blank file taking it from my web server on the raspy (the original one to which I modified the ID device and then put the original ID device back) result: white screen! Perfect 2) Flashed the esphome file with the nextion_update_url: which now points to the file on the raspy web server and… Hello World! Thanks for the help for now.

try to follow in my footsteps

Is your wifi 2.4Ghz? ESP32 will not connect to 5GHz wifi networks.

Pro version can render a Lovelace dashboard created directly in HA because it is android based. No need for firmware updates

“I couldn’t find a good way to display the labels of the two physical buttons” after being able to install the blueprint version I put my hand to the Nextion Editor, unfortunately it is as I thought at the moment the text formatting is only available horizontally not vertically . Unfortunately I think that the only way to have vertical writing is to create them with photoshop and insert them not as text… unfortunately everyone has to personalize it!

I’m not gonna use a picture for a text. I rather will have it without the label, just the bar indicating if it is on or off (I’ve already done that in the TFT).

The same thing I did

Have you tried setting a fixed ip?

#  nextion_update_url: "https://github.com/Blackymas/NSPanel_HA_Blueprint/blob/53cf4f13714a5f33dbd774a96de30af96782e304/custom_configuration/nspanel_blank.tft" # URL to Github

wifi:
  manual_ip:
    static_ip: 192.168.0.63
    gateway: 192.168.1.254
    subnet: 255.255.255.0

Have you tried disabling 5GHz on your router? The esp32 only works with 2.4Ghz

1 Like

Thank you Stephen & Riccardo. I had both 2.4 and 5G in the same SSID, I separated it and tried again, but still no luck. What I also noticed is that I tried connecting it to the hotspot the NSPanel created using my WIFI password but could also not connect, so it seems it is not saving my WIFI credentials in the firmware upload.

I also added static IP but still not connecting. I also flashed the firmware using the ESPHome Flasher, and uploaded successfully, but still does not connect to the WIFI.

Herein the beginning of the validation file if you can manage to pick up something:

INFO Reading configuration /config/esphome/diningpanel.yaml...
INFO Updating https://github.com/Blackymas/NSPanel_HA_Blueprint@main
WARNING GPIO4 is a Strapping PIN and should be avoided.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Configuration is valid!
substitutions:
  device_name: diningpanel
  wifi_ssid: '!secret wifi_ssid'
  wifi_password: '!secret wifi_pwd'
  nextion_update_url: https://192.168.110.160:8123/local/nspanel_us.tft
esphome:
  name: diningpanel
  min_version: 2022.10.2
  build_path: .esphome/build/diningpanel
  friendly_name: ''
  platformio_options: {}
  includes: []
  libraries: []
  name_add_mac_suffix: false
esp32:
  board: esp32dev
  framework:
    version: 2.0.5
    source: ~3.20005.0
    platform_version: platformio/espressif32 @ 5.2.0
    type: arduino
  variant: ESP32
wifi:
  power_save_mode: NONE
  ap:
    ssid: diningpanel
    password: '!secret wifi_pwd'
    ap_timeout: 1min
  manual_ip:
    static_ip: 192.168.110.63
    gateway: 192.168.110.1
    subnet: 255.255.255.0
    dns1: 0.0.0.0
    dns2: 0.0.0.0
  domain: .local
  reboot_timeout: 15min
  fast_connect: false
  networks:
  - ssid: '!secret wifi_ssid'
    password: '!secret wifi_pwd'
    priority: 0.0
  use_address: 192.168.110.63
external_components:
- source:
    url: https://github.com/esphome/esphome.git
    ref: pull/2956/head
    type: git
  components:
  - nextion
  refresh: 1h
captive_portal: {}
web_server:
  port: 80
  auth:
    username: admin
    password: '!secret wifi_pwd'
  version: 2
  include_internal: false
  ota: true
  css_url: ''
  js_url: https://oi.esphome.io/v2/www.js
ota:
  password: '!secret wifi_pwd'
  safe_mode: true
  reboot_timeout: 3min
  num_attempts: 3
  port: 3232
logger:
  baud_rate: 115200
  tx_buffer_size: 512
  deassert_rts_dtr: false
  hardware_uart: UART0
  level: DEBUG
  logs: {}
...```

This is awesome, thank you!

If anyone may be interested (or if Blackymas may be interested) I created the hmi and tft files in the US landscape version with the text in Italian! As also pointed out by Edward, the US landscape version does not have the text to signal the activation of the physical buttons.

1 Like

Disabling or changing 5Ghz wouldn’t matter. ESP doesn’t even see those networks. So the won’t conflict.
I would try disabling domain. And also use_address.

sure why not.

What exactly did you change everything? because I just finished version 3.2 and a lot has changed in the tft

What is the best way to se the NS Panel to have a fixed IP address in the ESPhome code, can we slightly modify the ‘basic’ version or do we need to switch to the ‘advanced’? I have set fixed IP’s in my router but because the devices are on a different subnet to HA, the ESPhome dashboard thinks the devices are offline. With all my other ESPhome devices I simply use fixed IP’s in the ESPhome code. I just wasn’t sure if we can do this with the ‘basic’ version for the NS Panel.

Cheers,

Dave

If you need a betatester, I’m more than happy to help