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

I’m possibly missing something really obvious trying to get my NSPanel set up - still pretty much a HA newbie having moved over from Homeseer, but any thoughts would be welcome as I’m running out of ideas :smiley:

Hooked the unit up to USB, and as far as I can tell, flashed successfully - Now, this was via the github direct link rather than the local file because frankly, linux file systems are still a bit of a mystery to me (HAOS installed on Proxmox) and I couldn’t work out where to put the tft file that I could then point to it locally by the IP. Flashed it with the usb plugged into the HA server, usb mapped to the HAOS vm. Did try doing local machine, but it didn’t seem to want to. Looked like it was successful though - output of the log file below. Unit is picked up by HA and set up. The point where I’m getting stuck, is when hitting “Update TFT Display”, nothing happens. Tried pressing Exit Reparse first, but the only difference that seems to make is that hitting Update TFT then seems to reboot the unit. That’s pretty much where I am - I can toggle the relays on the unit from the dashboard, but other buttons like Restart don’t work either. and it just shows the default SONOFF interface.

As I said, entirely possible I’ve missed something blindingly obvious, but any thoughts would be much appreciated.

Thanks :slight_smile:

INFO ESPHome 2023.8.3
INFO Reading configuration /config/esphome/nshall.yaml...
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 Generating C++ source...
INFO Compiling app...
Processing nshall (board: esp32dev; framework: arduino; platform: platformio/[email protected])
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Dependency Graph
|-- AsyncTCP-esphome @ 1.2.2
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 2.1.0
|-- DNSServer @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- ArduinoJson @ 6.18.5
|-- WiFiClientSecure @ 2.0.0
|-- HTTPClient @ 2.0.0
Compiling /data/nshall/.pioenvs/nshall/src/main.cpp.o
Linking /data/nshall/.pioenvs/nshall/firmware.elf
RAM:   [=         ]  13.4% (used 44016 bytes from 327680 bytes)
Flash: [======    ]  63.6% (used 1166713 bytes from 1835008 bytes)
Building /data/nshall/.pioenvs/nshall/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin(["/data/nshall/.pioenvs/nshall/firmware.bin"], ["/data/nshall/.pioenvs/nshall/firmware.elf"])
Wrote 0x12e400 bytes to file /data/nshall/.pioenvs/nshall/firmware-factory.bin, ready to flash to offset 0x0
========================= [SUCCESS] Took 22.78 seconds =========================
INFO Successfully compiled program.
esptool.py v4.6.2
Serial port /dev/ttyUSB0
Connecting.....
Chip is ESP32-D0WD-V3 (revision v3.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 48:e7:29:c3:3a:58
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash will be erased from 0x00010000 to 0x0012efff...
Flash will be erased from 0x00001000 to 0x00005fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Compressed 1172480 bytes to 754637...
Wrote 1172480 bytes (754637 compressed) at 0x00010000 in 17.2 seconds (effective 545.7 kbit/s)...
Hash of data verified.
Compressed 17440 bytes to 12128...
Wrote 17440 bytes (12128 compressed) at 0x00001000 in 0.6 seconds (effective 235.9 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 144...
Wrote 3072 bytes (144 compressed) at 0x00008000 in 0.1 seconds (effective 308.1 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 454.7 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
INFO Successfully uploaded program.
INFO UART logging is disabled (baud_rate=0). Not starting UART logs.

If Exit Reparse isn’t working, I would suggest using the alternative (older) Nextion library: (EN) Common Issues TFT Upload · Blackymas/NSPanel_HA_Blueprint Wiki · GitHub

Also, I highly recommend uploading the nspanel_blank.tft first. This first upload is way more difficult as you have to get rid off reparse mode, so working with a smaller file will make your life much easier.
Once you see the QR code in your screen, then you are good to go with the final (bigger) file.

And be aware that the Nextion display usen on these panel’s isn’t the best friend of httpS, so we recommend trying some local http server for this in case GitHub link isn’t working. You can setup a http server in your local computer and use that one for transferring the TFT. There are plenty of free http servers for Windows, Mac and Linux.

By the way, next time you share the logs, try to capture from right before pressing the Upload TFT button to the moment the display restarts (which could be just a couple of seconds if the transfer cannot start).

Also, the transfer shouldn’t take more than 20min to complete. If after half an hour it still on the beginning just stop the process and try again. I’ve never seen one of those super slow transfers ending successfully.

Hey,

Thanks so much for the reply - progress! I found the part that says where to create the www folder for it to be available as the local directory. Funny how much easier that is when I find the right place/didn’t manage to miss that section of the instructions that said where to place the WWW folder :man_facepalming:

Had an odd error with the flash, but then realised the tft file had gone a bit hinky while FTPing it over for some reason. Recopied, flashed and now up and running Thanks again!

1 Like

Hello, thank you for your great work. I really appreciate it. I want to ask, is there any way to control the tilt of the blinds?

Not yet.
It would be nice if you can add this as a feature request on GitHub: Sign in to GitHub · GitHub

v4.0 - Alarm and Media player pages, Climate add-ons and a more robust panel

Big news: v4.0 has finally landed! Here’s the scoop:

:rotating_light: We’ve added an Alarm control panel – safety first, right?

:musical_note: The Media Player control is here for all our tunes and binge-watching needs.

:wind_face: Dial in your comfort with the new Fan speed and Embedded climate control settings.

Plus, we’ve beefed up the panel’s resilience to those annoying network or server glitches.

Give it a spin and let us know your thoughts. Thanks for being on this journey with us!

Overview of all changes

  1. Add-ons support
    • Embedded thermostat (cooler or heater)
  2. Alarm control panel
  3. Support to sensor display precision from Home Assistant
  4. Filtered device list
  5. New language selector
  6. Removed json sensors
  7. Support for US model on landscape mode
  8. API status indication on the panel
  9. Light & cover settings pages will show only the supported features
  10. New “Fan speed page”
  11. Select wake-up page
  12. Panel’s local control
  13. New “Confirm” pop-up
  14. Page “Settings” now supports translations
  15. Media Player control
  16. Custom buttons on Home page
  17. New controls for dimming and sleeping time

v4.0 - Alarm and Media player pages, Climate add-ons and a more robust panel · Blackymas/NSPanel_HA_Blueprint · Discussion #1057 (github.com)

6 Likes

Great update, well done.

Just a small issue noticed after installation.
Display goes directly to screensaver. Sleep Mode is greyed out and not selectable…
Anyone else noticed this?

Mmmm, this shouldn’t be the case…
The old “Sleep mode” switch was deprecated, so this is why yours is grayed out, however you have now another number selector named “Timeout sleep” which by default is 60s. So the panel shouldn’t go to sleep at first boot until the 60s has passed.
At least one more person reported this same issue you mentioned. :frowning:
I will investigate.

I will try to update, but shouldn’t this be a breaking change?
I use this in automations to turn off the living room screen at night and when I leave the house.

It should. I’ve missed that one. :weary:
There are some words around the page timeout, but I missed this about sleep.

I will add that to the break changes when I get back home.

If I set ‘Timeout Sleep’ to 0, the display keeps on. Timeout dimming seems to be not working.

I’ve just tested and it is working fine with me.
Could you please give more details about your settings so we can troubleshoot?

I finally purchased an NSPanel after seeing this great project and how far it has come. Thanks to Blackymas and the dev team for the work they have put in and a very functional setup they have achieved!!

I have a question (that may be a feature request) - I’ve been looking at the service call to load a page but was wanting to load an entity. Eg: if I push one of the physical buttons load the light entity on the screen for immediate adjustment if desired. Is that currently possible?

You can do that with a long press in the button.
Is that what you are looking for?

Awesome - that is exactly what I was after. I wasn’t sure what “default” did. Is there also a way to call that screen? Eg: if an automation turns the light on, show that screen.

This is some minor issue.

Thank you for the great work. :+1:
Yesterday I had some problem loading the tft.
It turned out. I added a component for syncing the relays. But if I added that I couldn’t download the tft.

If one needs to know what to change. You can install spook. Remove Nspanel from the esphome integration and add it again. Spook will show missing components as repairs.

Thanks for information.
I will try again with some different settings.
In the moment I only set Timeout Sleep to 0. All other settings are standard.

This is probably what you are looking for: Use send_command_printf to load an entity page. · Issue #899 · Blackymas/NSPanel_HA_Blueprint · GitHub