Sonoff NSPanel by ITead - Smart Scene Wall Switch based on ESP32 and custom Nextion Touch Screen Panel Display (non-Pro variant)

Yep, you can flash ESPHome from Tasmota, you may have to type “SetOption78 1” in the console before uploading the ESPHome firmware.

Does anyone know where to get the original tft file, so we can revert the display to stock?

2 Likes

Awesome, that would save me a lot of work. Just for my understanding, SetOption78 1 disables the check that verifies whether the uploaded firmware is actually a Tasmota firmware?

I just gave it a shot and asked Sonoff directly. Maybe they’ll provide something.

Yes, it’s a undocumented feature to disable OTA compatibility check.

Screen type is known: NX4832F035_011C

1 Like

Do you have any idea why the original Sonoff Nextion firmware can use the screen-swipe features and transparent images? While we can’t in the Nextion editor with the NX4832F035_011C?
Screen swipe and transparent images are only supported on Nextion Intelligent hardware…

They weren’t keen on revealing that. One solution to replicate it is:

  1. Create a touchcap which on press stored tch0 and started the timer
  2. On release does:
tm0.en=0
if(tch0==0)
// When this is zero we can interpret that as the real end of the drag event
{
  va0.val=va1.val-va2.val
  if(va0.val>125)
  {
    page page1
  }else if(va0.val<-125)
  {
    t11.txt="left"
  }
}
  1. The timer does
if(tch0!=0)
{
  va2.val=tch0
}
2 Likes

I did that with one of mine, actually. I put Tasmota on it first and then switched to ESPHome by uploading the new firmware through the Tasmota UI. (They’re both great, but ESPHome is more compatible with my brain)

1 Like

How is the viewing angle on these screens?
If one of these would sit at about 1 m height, how does it feel and look to use them?
Is it usable?

I was just playing around with a custom UI, trying to sync the screen to the album art of whatever music is playing on my Sonos. Going through the ESPHome Nextion API shows that every picture-related method (e.g. set_component_picture()) only accepts a picture_id parameter.

Does that mean you can only dynamically show images that are pre-baked into the TFT file?

Pretty much. The “Intelligent Series” displays have some extra commands to display images from files, and to upload files, but this is a Discovery Series. The https://unofficialnextion.com forum is probably the best place to go to discuss the actual programming of these things.

Bummer! That is definitely gonna limit the way we can build UI’s for these panels. Thanks for the forum link, will have a read there :slight_smile: .

There are instuctions to draw things. (lines, circles, text, etc.).
So theoretically it should be possible to render anything on this panel.
And since there’s also an mode where you get x,y cords of the touch events you could even react to touch events.
But in practice it might take way to long to paint thoose things, depending on complexity.

I’ve just flashed mine. Managed to get the time sorted and managed to get the temp in the lower right closer to actual.

The weather temp is weird. Displays -36C at the moment with 41C ~ 36C under that.

I have to say, I’m feeling completely out of my depth with this one.

If I could get one light switch to display on the panel controlling one light to turn on and off then I think I’d be on my way but I don’t know where to look to get started. Any pointer gratefully received!

Did you flash it with ESPHome or with Tasmota?

Tasmota. Reading this thread, I thought that might be easier.

If you look in the .be file, there is a location setting, currently set to North Pole I think

EDIT: Actually, just use NSPLocation as mentioned here:

In order to add custom widget to turn a light on/off, you need to edit the driver code via the Tasmota web interface. Specifically change the lines mentioned here: nspanel/nspanel.be at d7ec62c9a6991a83c46f5f22e63b6f8eff5f5e4c · blakadder/nspanel · GitHub

Touching these widgets will generate MQTT messages, which you can capture with Home Assistant and execute automations. Scroll through this thread for some examples :slight_smile:

1 Like

Aha! Found it.

Is there a list of locations? I tried London but it’s now just coming up 0 for the weather.

I just tried the nearest city to me and it worked. London might be 0 atm ?

Paste this into your browser (the weather site used in the .be file) and it seems to set to your city:

http://wttr.in/

And then use that for your location