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

I only have the start,
thought, let’s just capture it in case I need this.
the log just stopt ant 69.94%
but here is the start, I actually guess maybe a network interuption

21:49:19][D][nextion_upload:254]: Restarting Nextion
WARNING lamp-kamer-voor.local: Connection error occurred: [Errno 104] Connection reset by peer
INFO Processing unexpected disconnect from ESPHome API for lamp-kamer-voor.local
WARNING Disconnected from API
INFO Successfully connected to lamp-kamer-voor.local
[21:49:44][D][script.upload_tft:091]: Try #1
[21:49:44][D][script.upload_tft:092]: Setting Nextion protocol reparse mode to passive
[21:49:44][D][main:2474]: Exit reparse
[21:49:46][D][nextion_upload:130]: Nextion TFT upload requested
[21:49:46][D][nextion_upload:131]: url: http://192.168.180.149/nspanel_eu.tft
[21:49:46][D][nextion_upload:178]: TFT file size: 7248068
[21:49:46][D][nextion_upload:190]: Updating Nextion
[21:49:47][D][nextion_upload:218]: Upgrade response is [05]
[21:49:47][D][nextion_upload:229]: Updating tft from "http://192.168.180.149/nspanel_eu.tft" with a file size of 7248068, Heap Size 162896
[21:49:47][D][esp-idf:000]: I (26984) HTTP_CLIENT: Body received in fetch header state, 0x3ffd72ec, 196

[21:49:52][D][nextion_upload:087]: Uploaded 0.06 %, remaining 7243972 bytes
[21:49:52][D][nextion_upload:091]: recv_string [08.00.00.00.00 (5)]
[21:49:53][D][nextion_upload:087]: Uploaded 0.11 %, remaining 7239876 bytes
[21:49:53][D][nextion_upload:087]: Uploaded 0.17 %, remaining 7235780 bytes
[21:49:53][D][nextion_upload:087]: Uploaded 0.23 %, remaining 7231684 bytes
[21:49:54][D][esp-idf:000]: I (33548) HTTP_CLIENT: Body received in fetch header state, 0x3ffd82b0, 188

[21:49:54][D][nextion_upload:087]: Uploaded 0.28 %, remaining 7227588 bytes
[21:49:54][D][nextion_upload:087]: Uploaded 0.34 %, remaining 7223492 bytes
[21:49:55][D][nextion_upload:087]: Uploaded 0.40 %, remaining 7219396 bytes
[21:49:55][D][nextion_upload:087]: Uploaded 0.45 %, remaining 7215300 bytes
[21:49:55][D][nextion_upload:087]: Uploaded 0.51 %, remaining 7211204 bytes
[21:49:56][D][nextion_upload:087]: Uploaded 0.57 %, remaining 7207108 bytes
[21:49:56][D][nextion_upload:087]: Uploaded 0.62 %, remaining 7203012 bytes
[21:49:57][D][nextion_upload:087]: Uploaded 0.68 %, remaining 7198916 bytes

I use it too,
for doorbell, alarm and bathroom emergency button for my 4 year old :wink:

but I actually think a lot of people use this rtttl

I’m not against having that back if you are using it.

For now, you can add it back yourself by adding this to your ESPHome yaml:

api:
  services:
    ##### Service to play a rtttl tones #####
    # Example tones : https://codebender.cc/sketch:109888#RTTTL%20Songs.ino
    - service: play_rtttl
      variables:
        song_str: string
      then:
        - rtttl.play:
            rtttl: !lambda 'return song_str;'

Could some of you please add an issue on GitHub for this? I can easily implement this for an eventual patch.

done

2 Likes

just an update,
I think my external component caused the issue,
I managed one of the devices to update the tft using the arduino framework.
for some reason this device wouldn’t let me OTA update to esp-idf.
no idea why

I just found this Blueprint and should receive my panel today. I would love to have the panel act as the thermostat for the room it’s installed in, but the setup included is limited to the point that i can’t use it.

Both my heat and cool devices are portable and connected to Zigbee smart plugs, controlled by HA. Using the panels relays are out of the question without a lot of work, plus those will be used for the overhead light & fan. I know that i can use code in ESPHome to control an HA device through a service call.

Also, the Blueprint code only supports an “either/or” heat/cool, not the climates “heat_cool”, or “auto” modes.

I briefly looked through the Blueprint code and it looks like it would be an easy change to be able to do both (external device & climate mode), but i wanted to ask here first.

Also, another option that could be added to the climate is fan control.

What is required to be able to have multiple panels without them all being configured identical to each other? I want to install panels in different rooms, each set up similarly, but with different controls for that specific room.

In this case you are looking for the panel to be just the display for your thermostat, not the one driving all the logic. This is totally possible and there’s no need to install any of the add-ons, as the core package supports climate entities.

That is only related to the add-ons where your panel’s will be controlling the climate via relays. If you want to control a climate from Home Assistant you don’t have to install those add-on files and it will support heat_cool.

That is also possible with the core package. :wink:

1 Like

That is possible. I have multiple panel’s myself, each with their individual settings (also different climates per room). :wink:
For each panel you must create an automation, always pointing to the same blueprint, but in the settings you choose the panel related to each automation.
It will require a unique name for each panel, as a requirement for any ESPHome (and network) device.

1 Like

For the individual panels:

Do i do the Blueprint configuration, using the individual panel entity name to create the individual automations? I just received my first panel today and have only looked at the BP configuration.

Correct. I currently have two panels (the third one is needing some repairs):

After selecting a panel, you can have completely different configs for each, customise as you like.

1 Like

Awesome. Tyvm

I just did the install on my panel this evening. It took some fighting to get the TFT upload, but it finally did it. I still have it sitting on the desk, with nothreally configured, other than the time, date, weather and the climate entity.

I’m using the HACS dual-temp thermostat, which controls heat & cool modes automatically. It works perfect through HA. The panel, though, not so much.

I can control the heat/ac modes, but i can only adjust the temperature by selecting either heat or cool, and setting the temperature. The problem is that with the dual-temp thermostat is that each has it’s own temperature setting. The display uses the same temperature on both modes. If i set the heater to 71, the AC is also now set to 71. Switching to Auto mode causes issues with it.

The photos aren’t the best, but the top photo is in Heat mode, the bottom is in Auto mode.



b

Something that could be done would be to change the climate layout to a “flat” style, using up & down arrows for each temperature setting, heat & cool. If it’s in single mode, either heat or cool, it would only show one adjustment for that particular mode. In dual/auto mode, it would show both temperature settings, allowing each to be adjusted on one screen.

I have 2 NSPanels. The first one is updated smoothly without error.
The second one will not update. Screen is rotated after loading the TFT and after 60% an error occurs.


In the logfile I get an error:
[21:29:52][C][template.text_sensor:020]: Icon: ‘mdi:tablet-dashboard’
[21:29:52][W][nextion:394]: Nextion reported variable name invalid!
[21:29:52][W][nextion:394]: Nextion reported variable name invalid!

[21:29:53][C][api:144]: Using noise encryption: NO
[21:30:00][W][nextion:394]: Nextion reported variable name invalid!
[21:30:00][W][nextion:394]: Nextion reported variable name invalid!

[21:31:28][D][sensor:094]: ‘nspanel01 Temperature’: Sending state 22.55168 °C with 1 decimals of accuracy
[21:32:01][W][nextion:394]: Nextion reported variable name invalid!
[21:32:01][W][nextion:394]: Nextion reported variable name invalid!

I already did a power cycle but that didn’t solve the problem.
Any Idea how to solve this?

Edit:
Solved. In HomeAssitant I cleaned the Build files and reinstalled the software.

2 Likes

In the Blueprint, I set a text label for one of the physical buttons. Is there any way to use the state of an input_text in its place?

One of the buttons is for a wireless ceiling fan controller and I created an automation that sets the input_text to match the fan speed (Off, Low, Med & High). I’d like to display this speed text in place of a static label.

I set the BP label to this, which displays correctly on a reboot. The hardware button is working correctly but the speed text doesn’t update. I also tried to add the input_text as a homepage sensor, but no luck.

Fan - {{ states('input_text.br_fan_speed_text') }}

Edit - i was able to accomplish this, but in a slightly different way. I created a template sensor that uses the code i posted above. I then added this sensor on the home page. Now it displays the fan speed.

1 Like

A couple of questions:
I am using the us_tft

buttons page, When I choose a custom colour for light icon (yellow) it does not change when I turn the light on. Interestingly the motion sensor Icon changes colour on motion detection.

Climate:
I have picked My climate entity but the only way the climate page shows up is via clicking the temp on the home page, I would prefer it to be a page that I swipe to not sure if I am doing something wrong or if this is by design.
I also see the screenshot of the thermostat at the beginning of this post, it is a circle type with temps inside the circle (that is what I would like) the one I get is a horizontal bar graph not nearly as nice looking. How can I change the page to the round one?

QRCode
how do I get it to show a qrcode for connecting to my wifi not sure how to format the data.
Thanks for your time.

Craig

Buttons pages

Could you please let me know the version of your TFT? You can see this in the blue boot screen, where TFT, ESPHome and Blueprint versions are shown.

Climate

The ways to get to the climate page are either clicking at the internal temperature display or associating that entity to a button. Currently swipe are only for buttons pages.
Why don’t you add this as a feature request on the repository (GitHub)?
And that circle climate page was replaced by a new one some versions ago. The old one was too buggy.

QR code

Please take a look at this: QR for WiFi - How to do it - NOT AN ISSUE :) · Issue #303 · Blackymas/NSPanel_HA_Blueprint · GitHub

Could you please let me know the version of your TFT? You can see this in the blue boot screen, where TFT, ESPHome and Blueprint versions are shown.

TFT: 4.1
ESPHome: 4.1
Bluepring: 4.1

This is a fresh install I was coming from nspanel_lovelaceUI and did flash the blank tft first.

Thanks for your assistance.

Craig