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

I have not seen a 2023 Version.

There is the NSPanel: It has a US and a EU version. The only difference is the form factor. The EU version is almost a square and matches the standard switch covers in Europe. The US matches the typical US 1 gang boxes. They run a native OS and there is some HA integration possible with this. The alternative is flashing the panel with the Lovelace version. You can either use Tasmota and mqtt or use a native ESPHome firmware. In this case you will get a UI that is in line with Lovelace design. It is much more useful than the original firmware and faster as well. You can configure everything in HA.
https://docs.nspanel.pky.eu/ has all the documentation. (I just flashed 4 NSPanel to ESPHome Firmware)

And then, there is the NSPanel Pro. Slightly larger screen, square and running an Android OS. There are some ways to slipstream the Home Assistant Companion app onto the device.

NSPanel Pro is more expensive (~$100). The NSPanel I found on ebay for ~$60.

I have also got many panels running with Tasmota. I was thinking ESPHome may be a better option for me as I may be able to use the Bluetooth repeater option.

Have you simply used Sairon’s firmware with no problems.

Thank you so much for the excellent feedback @sarahmva and @ClaireRovic !

There also seem to be 2 Tuya panels: T6E and S6E? They are in the nspanel pro price range.

Which panel would be the go-to-panel? I am currently setting up holes in the wall and bringing wiring to the holes, to install boxes and then eventually a panel.

Hi All :slight_smile:

First, I would like to thank you for all the hard work and effort that everyone is doing within the Community and related to the NSPanels!! Much appreciated.

I have a query. I have installed Tasmota on the NSPanel and followed this guide - https://docs.nspanel.pky.eu/ to configure the yaml files for the AppDaemon, MQTT etc. The NSPanel is online, I was able to add the Tasmota configurations as per the guide, however when plugged to power it only shows the Home Assistant Logo. Within Home Assistant, I can see entities for the physical buttons, wireless etc but nothing else. In AppDaemon, I can see the NSPanel (screenshot below) but I can not do anything with it. All the Callbacks are related for me clicking on the buttons and waking up the display.


This is the AppDaemon apps.yaml configuration.

** {
    "module": "nspanel-lovelace-ui",
    "class": "NsPanelLovelaceUIManager",
    "config": {
        "panelRecvTopic": "tele/tasmota_nspanel/RESULT",
        "panelSendTopic": "cmnd/tasmota_nspanel/CustomSend",
        "model": "eu",
        "sleepTimeout": 20,
        "sleepBrightness": [
            {
                "time": "7:00:00",
                "value": 10
            },
            {
                "time": "23:00:00",
                "value": 0
            }
        ]
    }
} **

What you mean with that? There is no HomeAssistant Logo in the lovelace firmware.

Apologies for the delayed response. I’ve managed to fix it by running one more time the Nextion EU tft update file. Sorry …

I have another question though., Now that I’ve started to configuring it.

Is there a way to create Grid Card with Sensor entity showing Temperature that navigates to a thermostat card and also how to add a navigation to home to each card - hidden or not?
In addition, no data is being shown about the climate entities, trying to understand why …

Here is my configuration

        entities:
          - entity: sensor.t_h_sensor_3_temperature
          - entity: light.living_room_rgb_lights
          - entity: light.living_room_led
          - entity: navigate.cardThermo_thermo1
            icon: temperature-celsius
          - entity: navigate.cardThermo_thermo2
            icon: temperature-celsius
      - type: cardThermo
        title: Radiator
        entities:
          - entity: climate.spalnia_b
    
    hiddenCards:
      - type: cardThermo
        title: Living Room B
        entities:
          - entity: climate.spalnia_a
        key: thermo2
          - entity: navigate.thermo2
            status: climate.wohnzimmer_boden
            icon: 'ha:{{state_attr("climate.wohnzimmer_boden", "current_temperature"}}'

Cannot tell you why the card is empty without seeing the log/error from the add-on page.

Thank you for the code, I did tried and it does seem to work. THX.(EDITED)

      - entity: navigate.cardThermo_thermo1
        status: sensor.t_h_sensor_3_temperature

This is the error from the AppDaemon when the Climate card is opened.

`2023-01-12 20:51:57.789421 WARNING nspanel-1: Traceback (most recent call last): File “/usr/local/lib/python3.9/site-packages/appdaemon/threading.py”, line 950, in worker funcref(args[“event”], data, self.AD.events.sanitize_event_kwargs(app, args[“kwargs”])) File “/conf/apps/nspanel-lovelace-ui/luibackend/mqtt.py”, line 57, in mqtt_event_callback self._controller.button_press(entity_id, btype, value) File “/conf/apps/nspanel-lovelace-ui/luibackend/controller.py”, line 293, in button_press self._pages_gen.render_card(self._current_card) File “/conf/apps/nspanel-lovelace-ui/luibackend/pages.py”, line 693, in render_card self.generate_thermo_page(navigation, card.title, card.entity, temp_unit, overwrite_supported_modes) File “/conf/apps/nspanel-lovelace-ui/luibackend/pages.py”, line 407, in generate_thermo_page item = entity.entityId AttributeError: ‘NoneType’ object has no attribute ‘entityId’

The Climate Entity seems to be absolutely fine



Your config for the card is wrong (could have noticed that earlier lol), that’s the reason for the error and the card being empty.

On cards that are specific to one entity you need to specify it like this:

    hiddenCards:
      - type: cardThermo
        title: Living Room B
        entity: climate.spalnia_a
        key: thermo2

LOL, thank you!! indeed this fixed the problems and all is good now. Thank you so much for the help.
Quick question: any clever way to add multiple timezones and clocks?
Tried all day but I can not even change mine to another one for the test…

  1. as european, use the EU version as it’s the same square size as switches/outlets.
    It has 2 physical buttons/relays for controlling lights.
    But it’s display is pretty limited, you have to spend a lot of time if you want to customize it. It isn’t like HA lovelace dashboard making.
    1.1 https://itead.cc/product/sonoff-nspanel-smart-scene-wall-switch/
    1.2 flash custom HMIs, use the stock one, both can be flashed and controlled via ESPHome (see this thread)
  2. Pro is running Android, can be flashed and hacked as well.
    I run the HA companion app on it with dashboard.
    2.1 https://itead.cc/product/sonoff-nspanel-pro-smart-home-control-panel/
    2.2 Sonoff NSPanel Pro Secrets, Tips and Tricks | Blakadder's Smarthome Shenanigans

I have both (EU) and very happy with them, recommended.

1 Like

For people using the stock HMI, the new version 1.4.0 is out.

  1. :sunrise: New wallpapers
    1.1 Added two new sets of wallpapers, which can be switched anytime in the settings.
  2. :star2: ‘Widgets’ supports more devices

So I gouged it out of the wall, soldered wires, flashed the original Sonoff firmware, paired it with the app, updated the HMI, soldered again, flashed with ESPHome… tedious process.

  1. does anyone know how to get the stock TFT file out when wired to a computer? Or download it from Sonoff servers somehow?

  2. Has anyone already found out the send_json commands for changing the wallpapers? With official firmware they changed based on time of the day, now (ESPHome) it’s static on where i last left it…

It’s taking the timezone configured in the appdaemon container / homeassistant. No idea where it should show another timezone.

Not using appdaemon nor custom display files, but the 1.4.0 stock HMI/TFT with

external_components:
  - source: github://pr#2702
    components: ["nspanel"]
    refresh: 0s

and

api:
  services:
    - service: send_json
      variables:
        my_type: int
        my_json: string
      then:
        - lambda: 'id(ns_panel).send_json_command(my_type,my_json);'

In official firmware and app settings, it allows to change the wallpaper, but it hasn’t been documented yet by Blakadder…

is it possible to add a couple of buttons in the media crad to start a radio stream?

  - type: cardMedia
    entity: media_player.googlehome6691

Now i can only stop the running stream i started in my dashboard and control volume
I the media player card i have this in my dashboard

shortcuts:
  columns: 4
  buttons:
    - type: script
      name: Slam
      id: script.media_player_slam

You can add buttons to the entire buttom row, see the “Example with configured Entities” at the bottom of the documentation page.

Hi, can someone explain “sleepOveride”, I can only get cards when the override is active, i.e. set lights are on. All I can see in the logs that appears to be relevant is “timeout reached”. Thank you.

The config option sleepOverride overrides sleepBrightness but does not take precedence over sleepTracking. This is useful if, for example, you want your NSPanel to be brighter than usual if your light is on or if you want to override a panel dimming if you are in the room.

The following example configuration is turning off the screen after sunset, but in case the bedroom light is on the NSPanel brightness will be 20 instead of 0.

    sleepBrightness:
      - time: "sunrise"
        value: 20
      - time: "sunset"
        value: 0
    sleepOverride:
      entity: light.bedroomlight
      brightness: 20

Please take a look at the documentation.

Thanks for the reply. I understand the use of sleepOveride, I think, my problem is although the standby screen shows when I attempt to move to a grid card, I cannot do this without the sleepOveride (lights on) being active. I.E if between sleep period 7:00:00 - 23:00:00 I cannot go to grid cards because as soon as I touch the sleep screen (time/weather) I get a blank screen.

please post your config and the appdaemon log during this issue