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

Hy guys :frowning:

all update and now:

  1. nspanel 49, eu
  2. nspanel 49, eu
  3. nspanel 49, eu

first nspanel: ( which has gone so far)
yesterday

update now:

Can i come back 48, eu (lui.tft) ?

can i come back original.tft?

Hello!

I just wanted to share my results to this wonderful thread after over a year of working on my dream wall switch. I kind of just reached the goal of my project and I’m super happy about the results. I made a Youtube video about it to try and show my future wall switch concept and how i use it in my everyday life.

Thank you all for your additions to this thread. It’s been very helpful.

Welcome to the Wall Switch Revolution!

1 Like

You just need to update your backend to the latest version … URLs for version 48 are in the release notes of the previous version.

Please post a screenshot from HACS, if you are on the latest version reinstall the Lovelace app and restart Appdaemon.

I have just watched your YouTube video of your wonderful project. I will say the work and effort you have put in is amazing - so looking forward to your next video.

p.s. Looking forward to more content :blush:

1 Like

Good morning,

No way to get it to work, I’ve reinstalled Lovelace app, restarted Appdaemon, updated Tasmota firmware,…but it still looks like this

I put information to see if you can help me fix it

Home Assistant 2023.2.2
Supervisor 2023.01.1
Frontend 20230202.0 - latest

nsPanel

00:00:00.002 HDW: ESP32-D0WD-V3 
00:00:00.071 UFS: FlashFS mounted with 260 kB free
00:00:00.122 CFG: Loaded from File, Count 590
00:00:00.132 QPC: Count 1
00:00:00.317 BRY: Berry initialized, RAM used=4041 bytes
00:00:00.340 Project tasmota - nsPanel Version 12.3.1(tasmota)-2_0_5_3(2022-12-16T10:31:03)
00:00:00.733 NXP: Initializing Driver
00:00:00.739 BRY: Successfully loaded 'autoexec.be'
00:00:01.320 WIF: Connecting to AP1 wifi_router Channel 1 BSSId 8C:DE:F9:0B:D6:C1 in mode 11n as nspanel-ui-1696...
00:00:04.117 WIF: Connected
00:00:04.376 HTP: Web server active on nspanel-ui-1696 with IP address 192.168.1.5
11:35:28.048 RSL: RESULT = {"CustomRecv":"event,startup,49,eu"}
11:35:28.552 MQT: Attempting connection...
11:35:28.624 MQT: Connected
11:35:28.629 MQT: tele/nspanel-ui/LWT = Online (retained)
11:35:28.631 MQT: cmnd/nspanel-ui/POWER = 
11:35:28.636 MQT: tele/nspanel-ui/INFO1 = {"Info1":{"Module":"NSPanel","Version":"12.3.1(tasmota)","FallbackTopic":"cmnd/nsPanel_fb/","GroupTopic":"cmnd/tasmotas/"}}
11:35:28.651 MQT: tele/nspanel-ui/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"nspanel-ui-1696","IPAddress":"192.168.1.5"}}
11:35:28.665 MQT: tele/nspanel-ui/INFO3 = {"Info3":{"RestartReason":"Software reset CPU","BootCount":49}}
11:35:28.668 MQT: stat/nspanel-ui/RESULT = {"POWER1":"OFF"}
11:35:28.680 MQT: stat/nspanel-ui/POWER1 = OFF
11:35:28.682 MQT: stat/nspanel-ui/RESULT = {"POWER2":"OFF"}
11:35:28.684 MQT: stat/nspanel-ui/POWER2 = OFF
11:35:28.831 QPC: Reset
11:35:29.940 MQT: stat/nspanel-ui/STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"http://ota.tasmota.com/tasmota32/release/tasmota32.bin","RestartReason":"Software reset CPU","Uptime":"0T00:00:07","StartupUTC":"2023-02-06T10:35:22","Sleep":0,"CfgHolder":4617,"BootCount":48,"BCResetTime":"2022-10-05T18:25:31","SaveCount":590}}
11:35:30.002 MQT: stat/nspanel-ui/STATUS11 = {"StatusSTS":{"Time":"2023-02-06T11:35:29","Uptime":"0T00:00:07","UptimeSec":7,"Heap":128,"SleepMode":"Dynamic","Sleep":0,"LoadAvg":377,"MqttCount":1,"Berry":{"HeapUsed":16,"Objects":240},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"wifi_router","BSSId":"8C:DE:F9:0B:D6:C1","Channel":1,"Mode":"11n","RSSI":80,"Signal":-60,"LinkCount":1,"Downtime":"0T00:00:05"}}}
11:35:30.057 MQT: stat/nspanel-ui/RESULT = {"Time":"2023-02-06T11:35:30","Uptime":"0T00:00:08","UptimeSec":8,"Heap":131,"SleepMode":"Dynamic","Sleep":0,"LoadAvg":382,"MqttCount":1,"Berry":{"HeapUsed":16,"Objects":240},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"wifi_router","BSSId":"8C:DE:F9:0B:D6:C1","Channel":1,"Mode":"11n","RSSI":80,"Signal":-60,"LinkCount":1,"Downtime":"0T00:00:05"}}
11:35:30.123 MQT: stat/nspanel-ui/STATUS10 = {"StatusSNS":{"Time":"2023-02-06T11:35:30","ANALOG":{"Temperature1":19.4},"TempUnit":"C"}}
11:35:32.854 MQT: tele/nspanel-ui/STATE = {"Time":"2023-02-06T11:35:32","Uptime":"0T00:00:10","UptimeSec":10,"Heap":131,"SleepMode":"Dynamic","Sleep":0,"LoadAvg":477,"MqttCount":1,"Berry":{"HeapUsed":16,"Objects":240},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"wifi_router","BSSId":"8C:DE:F9:0B:D6:C1","Channel":1,"Mode":"11n","RSSI":76,"Signal":-62,"LinkCount":1,"Downtime":"0T00:00:05"}}
11:35:32.897 MQT: tele/nspanel-ui/SENSOR = {"Time":"2023-02-06T11:35:32","ANALOG":{"Temperature1":19.3},"TempUnit":"C"}
11:35:33.038 MQT: tele/nspanel-ui/RESULT = {"CustomRecv":"event,startup,49,eu"}
11:35:33.186 MQT: tele/nspanel-ui/RESULT = {"nlui_driver_version":"8"}
11:35:33.245 MQT: stat/nspanel-ui/RESULT = {"CustomSend":"Done"}

AppDaemon

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
[11:57:24] INFO: Starting AppDaemon...
s6-rc: info: service legacy-services successfully started
2023-02-06 11:57:29.015080 INFO AppDaemon: AppDaemon Version 4.2.1 starting
2023-02-06 11:57:29.016844 INFO AppDaemon: Python version is 3.10.9
2023-02-06 11:57:29.018259 INFO AppDaemon: Configuration read from: /config/appdaemon/appdaemon.yaml
2023-02-06 11:57:29.019378 INFO AppDaemon: Added log: AppDaemon
2023-02-06 11:57:29.020718 INFO AppDaemon: Added log: Error
2023-02-06 11:57:29.021893 INFO AppDaemon: Added log: Access
2023-02-06 11:57:29.023205 INFO AppDaemon: Added log: Diag
2023-02-06 11:57:29.188538 INFO AppDaemon: Loading Plugin HASS using class HassPlugin from module hassplugin
2023-02-06 11:57:29.462833 INFO HASS: HASS Plugin Initializing
2023-02-06 11:57:29.464109 INFO HASS: HASS Plugin initialization complete
2023-02-06 11:57:29.465697 INFO AppDaemon: Loading Plugin MQTT using class MqttPlugin from module mqttplugin
2023-02-06 11:57:29.556300 INFO MQTT: MQTT Plugin Initializing
2023-02-06 11:57:29.557689 INFO MQTT: Using 'appdaemon/status' as Will Topic
2023-02-06 11:57:29.557993 INFO MQTT: Using 'appdaemon/status' as Birth Topic
2023-02-06 11:57:29.560338 INFO AppDaemon: Initializing HTTP
2023-02-06 11:57:29.561802 INFO AppDaemon: Using 'ws' for event stream
2023-02-06 11:57:29.567840 INFO AppDaemon: Starting API
2023-02-06 11:57:29.573728 INFO AppDaemon: Starting Admin Interface
2023-02-06 11:57:29.575200 INFO AppDaemon: Starting Dashboards
2023-02-06 11:57:29.606309 INFO HASS: Connected to Home Assistant 2023.2.2
2023-02-06 11:57:29.627537 INFO MQTT: Connected to Broker at URL 192.168.1.10:1883
2023-02-06 11:57:29.656880 INFO AppDaemon: Got initial state from namespace mqtt
2023-02-06 11:57:29.658357 INFO MQTT: MQTT Plugin initialization complete
2023-02-06 11:57:29.661058 INFO AppDaemon: App 'nspanel-1' added
2023-02-06 11:57:29.662042 INFO AppDaemon: Found 1 total apps
2023-02-06 11:57:29.664154 INFO AppDaemon: Starting Apps with 1 workers and 1 pins
2023-02-06 11:57:29.666887 INFO AppDaemon: Running on port 5050
2023-02-06 11:57:29.749239 INFO HASS: Evaluating startup conditions
2023-02-06 11:57:29.769844 INFO HASS: Startup condition met: hass state=RUNNING
2023-02-06 11:57:29.771412 INFO HASS: All startup conditions met
2023-02-06 11:57:29.818161 INFO AppDaemon: Got initial state from namespace default
2023-02-06 11:57:31.686897 INFO AppDaemon: Scheduler running in realtime
2023-02-06 11:57:31.699634 INFO AppDaemon: Adding /config/appdaemon/apps to module import path
2023-02-06 11:57:31.701896 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui to module import path
2023-02-06 11:57:31.703915 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui/luibackend to module import path
2023-02-06 11:57:31.706128 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/translations to module import path
2023-02-06 11:57:31.708272 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/translations/backend to module import path
2023-02-06 11:57:31.710778 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/translations/frontend to module import path
2023-02-06 11:57:31.712737 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui-back to module import path
2023-02-06 11:57:31.715014 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend to module import path
2023-02-06 11:57:31.717094 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/translations to module import path
2023-02-06 11:57:31.719615 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/translations/backend to module import path
2023-02-06 11:57:31.721830 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/translations/frontend to module import path
2023-02-06 11:57:31.815179 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/hello.py - ignoring
2023-02-06 11:57:31.818819 INFO AppDaemon: Loading App Module: /config/appdaemon/apps/nspanel-lovelace-ui/nspanel-lovelace-ui.py
2023-02-06 11:57:32.081991 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/localization.py - ignoring
2023-02-06 11:57:32.084447 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/theme.py - ignoring
2023-02-06 11:57:32.086410 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/pages.py - ignoring
2023-02-06 11:57:32.088681 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/controller.py - ignoring
2023-02-06 11:57:32.090720 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/updater.py - ignoring
2023-02-06 11:57:32.092947 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/config.py - ignoring
2023-02-06 11:57:32.094845 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/icon_mapping.py - ignoring
2023-02-06 11:57:32.097007 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/apis.py - ignoring
2023-02-06 11:57:32.099054 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/mqtt.py - ignoring
2023-02-06 11:57:32.101367 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/icons.py - ignoring
2023-02-06 11:57:32.103880 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/helper.py - ignoring
2023-02-06 11:57:32.106550 INFO AppDaemon: Loading App Module: /config/appdaemon/apps/nspanel-lovelace-ui-back/nspanel-lovelace-ui.py
2023-02-06 11:57:32.110632 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/localization.py - ignoring
2023-02-06 11:57:32.113234 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/theme.py - ignoring
2023-02-06 11:57:32.118835 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/pages.py - ignoring
2023-02-06 11:57:32.120717 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/controller.py - ignoring
2023-02-06 11:57:32.122566 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/updater.py - ignoring
2023-02-06 11:57:32.124292 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/config.py - ignoring
2023-02-06 11:57:32.126348 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/icon_mapping.py - ignoring
2023-02-06 11:57:32.128051 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/apis.py - ignoring
2023-02-06 11:57:32.129772 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/mqtt.py - ignoring
2023-02-06 11:57:32.131667 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/icons.py - ignoring
2023-02-06 11:57:32.133466 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui-back/luibackend/helper.py - ignoring
2023-02-06 11:57:32.136952 INFO AppDaemon: Initializing app nspanel-1 using class NsPanelLovelaceUIManager from module nspanel-lovelace-ui
2023-02-06 11:57:32.245699 INFO nspanel-1: Starting
2023-02-06 11:57:32.254479 INFO nspanel-1: Input config: {'panelRecvTopic': 'tele/nspanel-ui/RESULT', 'panelSendTopic': 'cmnd/nspanel-ui/CustomSend', 'model': 'eu', 'sleepTimeout': 20, 'sleepBrightness': [{'time': '7:00:00', 'value': 10}, {'time': '22:00:00', 'value': 1}], 'locale': 'es_ES', 'screensaver': {'entity': 'weather.casa'}}
2023-02-06 11:57:32.256981 INFO nspanel-1: Loaded config: {'panelRecvTopic': 'tele/nspanel-ui/RESULT', 'panelSendTopic': 'cmnd/nspanel-ui/CustomSend', 'updateMode': 'auto-notify', 'model': 'eu', 'sleepTimeout': 20, 'sleepBrightness': [{'time': '7:00:00', 'value': 10}, {'time': '22:00:00', 'value': 1}], 'screenBrightness': 100, 'defaultBackgroundColor': 'ha-dark', 'sleepTracking': None, 'sleepTrackingZones': ['not_home', 'off'], 'sleepOverride': None, 'locale': 'es_ES', '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.casa', 'weatherUnit': 'celsius', 'forecastSkip': 0, 'weatherOverrideForecast1': None, 'weatherOverrideForecast2': None, 'weatherOverrideForecast3': None, 'weatherOverrideForecast4': None, 'doubleTapToUnlock': False, 'alternativeLayout': False, 'defaultCard': None, 'key': 'screensaver'}, 'hiddenCards': []}
2023-02-06 11:57:32.265001 INFO nspanel-1: Sending MQTT Message: pageType~pageStartup
2023-02-06 11:57:32.287408 INFO nspanel-1: Registering callbacks for the following items: ['iText.', 'iText.', 'iText.', 'iText.', 'weather.casa']
2023-02-06 11:57:32.299006 INFO nspanel-1: Started
2023-02-06 11:57:32.302007 INFO AppDaemon: App initialization complete
2023-02-06 11:57:32.349121 INFO nspanel-1: MQTT callback for: {'topic': 'tele/nspanel-ui/RESULT', 'wildcard': None, 'payload': '{"nlui_driver_version":"8"}'}
2023-02-06 11:57:32.351909 INFO nspanel-1: Update Pre-Check failed Tasmota Driver Version: 8 Panel Version: None
2023-02-06 11:57:32.617335 INFO nspanel-1: MQTT callback for: {'topic': 'tele/nspanel-ui/RESULT', 'wildcard': None, 'payload': '{"CustomRecv":"event,startup,49,eu"}'}
2023-02-06 11:57:32.619217 INFO nspanel-1: Received Message from Screen: event,startup,49,eu
2023-02-06 11:57:32.621128 INFO nspanel-1: Sending MQTT Message: X
2023-02-06 11:57:32.626077 INFO nspanel-1: Update Pre-Check failed Tasmota Driver Version: None Panel Version: 49
2023-02-06 11:57:32.627906 INFO nspanel-1: Startup Event
2023-02-06 11:57:32.651068 INFO nspanel-1: Sending MQTT Message: time~11:57~
2023-02-06 11:57:32.704294 INFO nspanel-1: Sending MQTT Message: date~lunes, 6 de febrero de 2023
2023-02-06 11:57:32.710279 INFO nspanel-1: Sending MQTT Message: timeout~20
2023-02-06 11:57:32.715984 INFO nspanel-1: Sending MQTT Message: dimmode~10~100~6371
2023-02-06 11:57:32.721575 INFO nspanel-1: Started rendering of page None with type screensaver
2023-02-06 11:57:32.723957 INFO nspanel-1: Sending MQTT Message: pageType~screensaver
2023-02-06 11:57:32.767038 INFO nspanel-1: Sending MQTT Message: weatherUpdate~���~8.5��C~mar~���~7.6��C~mi��~���~9.9��C~jue~���~8.3��C~vie~���~10.2��C~~
2023-02-06 11:57:33.385347 INFO nspanel-1: MQTT callback for: {'topic': 'tele/nspanel-ui/RESULT', 'wildcard': None, 'payload': '{"nlui_driver_version":"8"}'}
2023-02-06 11:57:33.394703 INFO nspanel-1: Update Pre-Check sucessful Tasmota Driver Version: 8 Panel Version: 49

Hello

Unfortunately, I am in similar shoes.
There are 2 options:
1 option
If you can return to \ "48, eu ".

2 Option
If Esphome is pulling again.

Here you will find help:

If you succeed in sharing something?
Thank you

Please check the version you have in the python file and in HACS.

Love to hear that Claire! :smiley: Keeps me going. :slight_smile:

1 Like

Starting to play with the new Power Card - I would like to be able to change the displayed values using a Template. Could you consider adding a Value field as you have in other parts of the Project.

As you can see my Solar is in W this should be kW and home has too many decimal places.

image

That’s already added in development version

1 Like

And you have this page on your installation and you’ve restarted AppDeamon?

To confirm that the folder in your editor is actually the one used by Appdaemon, please delete the app from hacs, which also needs to lead in the files deleted in the file editor (except for apps yaml) and restart Appdaemon, the panel needs to stop working then.

yes restart appdaemon

Testing the statusIcon features with Esphome, I have verified the color change based on sensor values (Wifi signal sensor). Also the display of the values ​​themselves, but stucked with icons. I don’t know if I missed something. Is possible changing the statusIcons based on states or would it be a new feature?
Thanks.

      statusIcon1:
          entity: sensor.wifi_signal_percent_2
          altFont: True
#         icon: 'ha:{{states("sensor.wifi_signal_percent_2")}}' # valor en lugar de icono
          icon: mdi:wifi
          color: >
            {%if int(states("sensor.wifi_signal_percent_2")) < 40%}
              [255,0,0]
            {%else%}
              [0,255,0]
            {%endif%}

in my case the same, everything is fine but it does not work

Captura de pantalla de 2023-02-07 11-41-46

import hassapi as hass

from luibackend.config import LuiBackendConfig
from luibackend.controller import LuiController
from luibackend.mqtt import LuiMqttListener, LuiMqttSender
from luibackend.updater import Updater

import apis

class NsPanelLovelaceUIManager(hass.Hass):

    def initialize(self):
        self.log('Starting')
        apis.ha_api   = self
        apis.mqtt_api = self.get_plugin_api("MQTT")

        cfg = self._cfg = LuiBackendConfig(self, self.args["config"])
        
        topic_send = cfg.get("panelSendTopic")
        topic_recv = cfg.get("panelRecvTopic")

        mqttsend = LuiMqttSender(self, topic_send)

        # Request Tasmota Driver Version
        apis.mqtt_api.mqtt_publish(topic_send.replace("CustomSend", "GetDriverVersion"), "x")

        controller = LuiController(cfg, mqttsend.send_mqtt_msg)
        
        desired_tasmota_driver_version   = 8
        desired_display_firmware_version = 49
        version     = "v3.9.4"
        
        model       = cfg.get("model")
        if model == "us-l":
            desired_display_firmware_url = f"http://nspanel.pky.eu/lovelace-ui/github/nspanel-us-l-{version}.tft"
        elif model == "us-p":
            desired_display_firmware_url = f"http://nspanel.pky.eu/lovelace-ui/github/nspanel-us-p-{version}.tft"
        else:
            desired_display_firmware_url = f"http://nspanel.pky.eu/lovelace-ui/github/nspanel-{version}.tft"
        desired_tasmota_driver_url       = "https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be"

        mode = cfg.get("updateMode")
        updater = Updater(self.log, mqttsend.send_mqtt_msg, topic_send, mode, desired_display_firmware_version, model, desired_display_firmware_url, desired_tasmota_driver_version, desired_tasmota_driver_url)

        LuiMqttListener(topic_recv, controller, updater)

        self.log('Started')

I’ve read this entire thread and before I go jumping in the deep end, could anyone quickly advise if this works for the US panel in Portrait mode, and if so point me to a page/screenshot where this is configured ?… thank you.

There are multiple different solutions in this thread. I use the @jobraun lovelace-ui and it works perfectly in portrait.: Prepare NsPanel - NsPanel Lovelace UI Docs (pky.eu)

I am not sure whether the NSPanel blueprint by @Blackymas is available in portrait, but I would imagine it is.

if you are using ha templates for the icons you will need to use the acuall chars that you can get by clicking U in the cheatsheet

alternativly there is a new type ‘ha-i:’ instead of ‘ha:’ that is translating the icon name after the template is evaluated, but I think this is only part of the dev version

Can you confirm that you are using the HomeAssistant Operating System and not your own docker containers? (docker compose; unraid whatever)

In case you are using docker contains, please send me your config of homeassistant and appdaemon.

yes with the new release 3.1.0

2 Likes