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

Your screen is showing the clock? Isn’t that expected? What’s the issue?

I did set up screensaver and cards but they not showing up, thank you


nspanel-1:
module: nspanel-lovelace-ui
class: NsPanelLovelaceUIManager
config:
panelRecvTopic: “tele/nspanel_1/RESULT”
panelSendTopic: “cmnd/nspanel_1/CustomSend”
model: eu
sleepTimeout: 20
sleepBrightness:
value: 10
locale: “en_US”
screensaver:
entity: weather.forecast_home
cards:
- type: cardGrid
title: Test Grid Card
entities:
- entity: light.advanced_zigbee_bulb
name: Strip light
- entity: light.ikea_of_sweden_tradfri_bulb_e27_cws_806lm_light
- entity: light.shellyrgbw2_e741c4_channel_3
name: Undercounter light
- entity: light.kitchen_light_1
- entity: light.kitchen_light_2
- entity: light.tv_light
- type: cardMedia
entity: media_player.kitchen

please post your config in code tags otherwiese it is not possible to see the identation of the yaml file

image

nspanel-1:
  module: nspanel-lovelace-ui
  class: NsPanelLovelaceUIManager
  config:
    panelRecvTopic: "tele/nspanel_1/RESULT"
    panelSendTopic: "cmnd/nspanel_1/CustomSend"
    model: eu
    sleepTimeout: 20
    sleepBrightness:
        value: 10
locale: "en_US"
screensaver:
entity: weather.forecast_home
cards:
      - type: cardGrid
        title: Test Grid Card
        entities:
          - entity: light.advanced_zigbee_bulb
            name: Strip light
          - entity: light.ikea_of_sweden_tradfri_bulb_e27_cws_806lm_light
          - entity: light.shellyrgbw2_e741c4_channel_3
            name: Undercounter light
          - entity: light.kitchen_light_1
          - entity: light.kitchen_light_2
          - entity: light.tv_light
          - type: cardMedia
        entity: media_player.kitchen

s6-rc: info: service base-addon-banner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service base-addon-log-level: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service base-addon-log-level successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service init-appdaemon: starting
Looking in links: https://wheels.home-assistant.io/musllinux/
Collecting babel
  Downloading Babel-2.11.0-py3-none-any.whl (9.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.5/9.5 MB 5.1 MB/s eta 0:00:00
Requirement already satisfied: pytz>=2015.7 in /usr/lib/python3.10/site-packages (from babel) (2021.3)
Installing collected packages: babel
Successfully installed babel-2.11.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
s6-rc: info: service init-appdaemon successfully started
s6-rc: info: service appdaemon: starting
s6-rc: info: service appdaemon successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[22:46:07] INFO: Starting AppDaemon...
2022-12-20 23:46:12.528852 INFO AppDaemon: AppDaemon Version 4.2.1 starting
2022-12-20 23:46:12.534142 INFO AppDaemon: Python version is 3.10.9
2022-12-20 23:46:12.534690 INFO AppDaemon: Configuration read from: /config/appdaemon/appdaemon.yaml
2022-12-20 23:46:12.534954 INFO AppDaemon: Added log: AppDaemon
2022-12-20 23:46:12.535206 INFO AppDaemon: Added log: Error
2022-12-20 23:46:12.535430 INFO AppDaemon: Added log: Access
2022-12-20 23:46:12.535636 INFO AppDaemon: Added log: Diag
2022-12-20 23:46:13.002873 INFO AppDaemon: Loading Plugin HASS using class HassPlugin from module hassplugin
2022-12-20 23:46:13.480103 INFO HASS: HASS Plugin Initializing
2022-12-20 23:46:13.480806 INFO HASS: HASS Plugin initialization complete
2022-12-20 23:46:13.481385 INFO AppDaemon: Loading Plugin MQTT using class MqttPlugin from module mqttplugin
2022-12-20 23:46:13.562118 INFO MQTT: MQTT Plugin Initializing
2022-12-20 23:46:13.562965 INFO MQTT: Using 'appdaemon/status' as Will Topic
2022-12-20 23:46:13.566982 INFO MQTT: Using 'appdaemon/status' as Birth Topic
2022-12-20 23:46:13.567997 INFO AppDaemon: Initializing HTTP
2022-12-20 23:46:13.570201 INFO AppDaemon: Using 'ws' for event stream
2022-12-20 23:46:13.582457 INFO AppDaemon: Starting API
2022-12-20 23:46:13.586710 INFO AppDaemon: Starting Admin Interface
2022-12-20 23:46:13.591067 INFO AppDaemon: Starting Dashboards
2022-12-20 23:46:13.706901 INFO HASS: Connected to Home Assistant 2022.12.7
2022-12-20 23:46:13.852341 WARNING AppDaemon: App 'locale' missing 'class' or 'module' entry - ignoring
2022-12-20 23:46:13.858442 WARNING AppDaemon: App 'entity' missing 'class' or 'module' entry - ignoring
2022-12-20 23:46:13.859696 WARNING AppDaemon: App 'cards' missing 'class' or 'module' entry - ignoring
2022-12-20 23:46:13.892236 INFO AppDaemon: App 'nspanel-1' added
2022-12-20 23:46:13.898764 INFO AppDaemon: Found 1 total apps
2022-12-20 23:46:13.899241 INFO AppDaemon: Starting Apps with 1 workers and 1 pins
2022-12-20 23:46:13.899878 INFO AppDaemon: Running on port 5050
2022-12-20 23:46:13.941567 INFO HASS: Evaluating startup conditions
2022-12-20 23:46:13.979995 INFO HASS: Startup condition met: hass state=RUNNING
2022-12-20 23:46:13.980224 INFO HASS: All startup conditions met
2022-12-20 23:46:14.066359 INFO AppDaemon: Got initial state from namespace default
2022-12-20 23:46:14.123066 INFO MQTT: Connected to Broker at URL 192.168.86.66:1883
2022-12-20 23:46:14.708286 INFO AppDaemon: Got initial state from namespace mqtt
2022-12-20 23:46:14.708718 INFO MQTT: MQTT Plugin initialization complete
2022-12-20 23:46:15.906194 INFO AppDaemon: Scheduler running in realtime
2022-12-20 23:46:15.914285 INFO AppDaemon: Adding /config/appdaemon/apps to module import path
2022-12-20 23:46:15.915695 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui to module import path
2022-12-20 23:46:15.918681 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui/luibackend to module import path
2022-12-20 23:46:15.930637 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/translations to module import path
2022-12-20 23:46:15.931822 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/translations/frontend to module import path
2022-12-20 23:46:15.937352 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/translations/backend to module import path
2022-12-20 23:46:15.944604 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/hello.py - ignoring
2022-12-20 23:46:15.945320 INFO AppDaemon: Loading App Module: /config/appdaemon/apps/nspanel-lovelace-ui/nspanel-lovelace-ui.py
2022-12-20 23:46:16.515590 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/helper.py - ignoring
2022-12-20 23:46:16.516752 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/apis.py - ignoring
2022-12-20 23:46:16.517405 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/theme.py - ignoring
2022-12-20 23:46:16.518004 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/controller.py - ignoring
2022-12-20 23:46:16.518587 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/mqtt.py - ignoring
2022-12-20 23:46:16.519147 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/icons.py - ignoring
2022-12-20 23:46:16.519648 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/updater.py - ignoring
2022-12-20 23:46:16.520133 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/pages.py - ignoring
2022-12-20 23:46:16.520636 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/config.py - ignoring
2022-12-20 23:46:16.521107 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/localization.py - ignoring
2022-12-20 23:46:16.521839 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/icon_mapping.py - ignoring
2022-12-20 23:46:16.522245 INFO AppDaemon: Initializing app nspanel-1 using class NsPanelLovelaceUIManager from module nspanel-lovelace-ui
2022-12-20 23:46:17.061670 INFO nspanel-1: Starting
2022-12-20 23:46:17.079717 INFO nspanel-1: Input config: {'panelRecvTopic': 'tele/nspanel_1/RESULT', 'panelSendTopic': 'cmnd/nspanel_1/CustomSend', 'model': 'eu', 'sleepTimeout': 20, 'sleepBrightness': {'value': 10}}
2022-12-20 23:46:17.081231 INFO nspanel-1: Loaded config: {'panelRecvTopic': 'tele/nspanel_1/RESULT', 'panelSendTopic': 'cmnd/nspanel_1/CustomSend', 'updateMode': 'auto-notify', 'model': 'eu', 'sleepTimeout': 20, 'sleepBrightness': {'value': 10}, 'screenBrightness': 100, 'defaultBackgroundColor': 'ha-dark', 'sleepTracking': None, 'sleepTrackingZones': ['not_home', 'off'], 'sleepOverride': None, 'locale': 'en_US', 'timeFormat': '%H:%M', 'dateFormatBabel': 'full', 'dateAdditionalTemplate': '', 'timeAdditionalTemplate': '', 'dateFormat': '%A, %d. %B %Y', 'cards': [{'type': 'cardEntities', 'entities': [{'entity': 'iText.', 'name': 'MQTT Config successful', 'icon': 'mdi:check', 'color:': [0, 255, 0]}, {'entity': 'iText.', 'name': 'Continue adding', 'icon': 'mdi:arrow-right-bold'}, {'entity': 'iText.', 'name': 'cards to your', 'icon': 'mdi:card'}, {'entity': 'iText.', 'name': 'apps.yaml', 'icon': 'mdi:cog'}], 'title': 'Setup successful'}], 'screensaver': {'type': 'screensaver', 'entity': 'weather.example', 'weatherUnit': 'celsius', 'forecastSkip': 0, 'weatherOverrideForecast1': None, 'weatherOverrideForecast2': None, 'weatherOverrideForecast3': None, 'weatherOverrideForecast4': None, 'doubleTapToUnlock': False, 'alternativeLayout': False, 'defaultCard': None, 'key': 'screensaver'}, 'hiddenCards': []}
2022-12-20 23:46:17.110649 INFO nspanel-1: Sending MQTT Message: pageType~pageStartup
2022-12-20 23:46:17.120983 INFO nspanel-1: Registering callbacks for the following items: ['iText.', 'iText.', 'iText.', 'iText.', 'weather.example']
2022-12-20 23:46:17.141020 INFO nspanel-1: Started
2022-12-20 23:46:17.147015 INFO AppDaemon: App initialization complete
2022-12-20 23:46:17.415117 INFO nspanel-1: MQTT callback for: {'topic': 'tele/nspanel_1/RESULT', 'wildcard': None, 'payload': '{"nlui_driver_version":"6"}'}
2022-12-20 23:46:17.421093 INFO nspanel-1: Update Pre-Check failed Tasmota Driver Version: 6 Panel Version: None
2022-12-20 23:46:17.454907 INFO nspanel-1: MQTT callback for: {'topic': 'tele/nspanel_1/RESULT', 'wildcard': None, 'payload': '{"CustomRecv":"event,startup,45,eu"}'}
2022-12-20 23:46:17.458808 INFO nspanel-1: Received Message from Screen: event,startup,45,eu
2022-12-20 23:46:17.466872 INFO nspanel-1: Sending MQTT Message: X
2022-12-20 23:46:17.470743 INFO nspanel-1: Update Pre-Check failed Tasmota Driver Version: None Panel Version: 45
2022-12-20 23:46:17.471788 INFO nspanel-1: Startup Event
2022-12-20 23:46:17.515056 INFO nspanel-1: Sending MQTT Message: time~22:46~
2022-12-20 23:46:17.564643 INFO nspanel-1: Sending MQTT Message: date~Tuesday, December 20, 2022
2022-12-20 23:46:17.569297 INFO nspanel-1: Sending MQTT Message: timeout~20
2022-12-20 23:46:17.572044 INFO nspanel-1: Sending MQTT Message: dimmode~20~100~6371
2022-12-20 23:46:17.573688 INFO nspanel-1: Started rendering of page None with type screensaver
2022-12-20 23:46:17.574420 INFO nspanel-1: Sending MQTT Message: pageType~screensaver
2022-12-20 23:46:17.575562 INFO nspanel-1: Skipping Weather Update, entity weather.example not found
2022-12-20 23:46:17.579550 INFO nspanel-1: MQTT callback for: {'topic': 'tele/nspanel_1/RESULT', 'wildcard': None, 'payload': '{"nlui_driver_version":"6"}'}
2022-12-20 23:46:17.580192 INFO nspanel-1: Update Pre-Check sucessful Tasmota Driver Version: 6 Panel Version: 45

Your identation is wrong, your config needs to looks like this:

---
nspanel-1:
  module: nspanel-lovelace-ui
  class: NsPanelLovelaceUIManager
  config:
    panelRecvTopic: tele/nspanel_1/RESULT
    panelSendTopic: cmnd/nspanel_1/CustomSend
    model: eu
    sleepTimeout: 20
    sleepBrightness:
      value: 10
    locale: en_US
    screensaver:
      entity: weather.forecast_home
    cards:
      - type: cardGrid
        title: Test Grid Card
        entities:
          - entity: light.advanced_zigbee_bulb
            name: Strip light
          - entity: light.ikea_of_sweden_tradfri_bulb_e27_cws_806lm_light
          - entity: light.shellyrgbw2_e741c4_channel_3
            name: Undercounter light
          - entity: light.kitchen_light_1
          - entity: light.kitchen_light_2
          - entity: light.tv_light
      - type: cardMedia
        entity: media_player.kitchen

Hello, thank you for your help, but now i have spinning wheel on screen

fixed to more syntax errors in the config above; try again with that

please always add the errors from appdaemon

You are genius! It’s working now, thank you very much

Can anybody share their code for the media card set up for @jobraun project? I’d like to use the input selector to choose different media players but unsure how to achieve this and the documentation for this section is quite limited

if you want to add an action to the upper left icon, you need to do it like this:

      - type: cardMedia
        title: Kitchen
        entity: input_select.test123
        status: media_player.kitchen

See the examples on the bottom of the page:
https://docs.nspanel.pky.eu/card-media/

I was so happy the lovelace UI had added the home button to navigate back to root in one single click and now this feature has disappeared.

What happened? How can I have it back?
I am not sure I can raise a bug on github as the process seems very complicated AND I am not sure this is actually a bug. Maybe it’s a feature and I needed just to find new instructions on how to have the icon back.
Where are them?

I added - ‘homeButton: True’ with no success. I am using the US_P version of the panel.

Very much enjoying the use of Status: with my navigation, it makes the panel so much nicer.

the coder replied to me to explain that the instruction homeButton: True is discontinued.

Now the base card shall declare the key named ‘home’ and each hidden card that wants to jump back to the base card shall declare a navItem2.

This is the example he provided:

    cards:
      - type: cardGrid
        title: Home
        key: home
        entities:
          - entity: light.bad

    hiddenCards:
      - type: cardGrid
        title: Wohnzimmer
        navItem2:
          entity: navigate.home
          icon: mdi:home
        entities:
          - entity: light.kitchen

My guess is that navItem2 is the icon that is placed on top right, and perhaps we can now also control navItem1, which may be the one placed on top left (this is only my assumption as I only tested navItem2 and it works)

1 Like

Thankyou for the update - very helpful. Basically, both Nav items are configurable - in my case I added a key to the Screensaver as my home key

navItem1:
  entity: navigate.masterKey
  icon: mdi:arrow-up-bold
  color: [255, 0, 0]
navItem2:
  entity: navigate.masterHome
  icon: mdi:home

I’ve been trying to install it for 2 days but it didn’t work.
Any tweaks or tricks?

You’ll need to provide more info than that, what did you try, how far did you get, did you get any errors?

1 Like

With NSPanel having a well recognized issue with the temp sensor. I thought I would share this link here to help others. Entering this into the console ( AdcParam1 2,12000,9900,3950 ) will improve the accuracy of the returned value.

I am wondering if this link should be added to the FAQ section of joBR99’s manual.

I see there are now multiple versions of the nspanel:

  • Us version and eu version
  • pro version
  • 2023 version supposedly running on Android?

Are all these versions supporting flashing and then using them in home assistant?

Aka, can i just order the cheapest one from any seller, or should I pay attention to things?

And is there an advantage to using the us version, to me as a European citizen? It seems bigger, that’s why im asking.