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

Here NSPanel Config:

NSPanel
Config

nspanel:
module: nspanel-lovelace-ui
class: NsPanelLovelaceUIManager
config:
panelRecvTopic: “tele/NSPanel/RESULT”
panelSendTopic: “cmnd/NSPanel/CustomSend”
updateMode: “auto-notify”
timeFormat: “%I:%M ?%p”
locale: “en_GB”
model: “eu”
sleepTimeout: 30
sleepBrightness:
- time: “8:00:00”
value: 20
- time: “22:30:00”
value: 2
sleepOveride:
entity: light.hue_color_candle_1
value: 20
screensaver:
entity: weather.openweathermap
theme:
time: [255, 255, 255]
date: [255, 175, 0]
tMainIcon: [57, 169, 255]
bar: [57, 169, 0]
autoWeather: true
clear-night: [150, 150, 100]
cloudy: [75, 75, 75]
exceptional: [255, 50, 50]
fog: [150, 150, 150]
hail: [200, 200, 200]
lightning: [200, 200, 0]
lightning-rainy: [200, 200, 150]
partlycloudy: [150, 150, 150]
pouring: [50, 50, 255]
rainy: [100, 100, 255]
snowy: [150, 150, 150]
snowy-rainy: [150, 150, 255]
sunny: [255, 255, 0]

Here is the AppDaemon log:
2023-01-20 08:31:01.072705 INFO nspanel: Sending MQTT Message: time~08:31 ?AM~
2023-01-20 08:30:01.077328 INFO nspanel: Sending MQTT Message: time~08:30 ?AM~
2023-01-20 08:27:17.770453 INFO nspanel: Sending MQTT Message: pageType~cardGrid
2023-01-20 08:27:17.657258 INFO nspanel: Button Press Event; entity_id: screensaver; button_type: bExit; value: 1
2023-01-20 08:27:17.653519 INFO nspanel: Received Message from Screen: event,buttonPress2,screensaver,bExit,1
2023-01-20 08:27:17.641091 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,screensaver,bExit,1”}’}
2023-01-20 08:27:08.170893 INFO nspanel: Sending MQTT Message: color~0~65535~65535~64864~15711~65535~65535~65535~65535~65535~38066~19017~19017~38066~65535~65535~65535~65535~15680~65535~65535~65535
2023-01-20 08:27:08.159654 INFO nspanel: Sending MQTT Message: weatherUpdate~���~1.0��C~Fri~���~4.0��C~Sat~���~3.3��C~Sun~���~2.8��C~Mon~���~2.9��C~~~~~~~~
2023-01-20 08:27:08.046094 INFO nspanel: Sending MQTT Message: pageType~screensaver
2023-01-20 08:27:08.027385 INFO nspanel: Button Press Event; entity_id: cardGrid; button_type: sleepReached; value: None
2023-01-20 08:27:08.011529 INFO nspanel: Received Message from Screen: event,sleepReached,cardGrid
2023-01-20 08:27:08.005142 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,sleepReached,cardGrid”}’}
2023-01-20 08:27:01.086427 INFO nspanel: Sending MQTT Message: time~08:27 ?AM~
2023-01-20 08:26:37.531897 INFO nspanel: Sending MQTT Message: entityUpd~Living Room~button~navigate.uuid.GkdcYzUrhh~���~65535~Guest Wifi~Press~button~navigate.uuid.S2gsgeF4pG~���~65535~Living Room~Press~light~light.hue_color_candle_1~���~57511~Desk Lamp~1~light~light.hue_color_candle_2~���~31727~Table Lamp~0~light~light.hue_color_candle_3~���~31727~Wall light R~0~light~light.hue_color_candle_4~���~31727~Wall Light L~0~light~light.urn_uplight~���~17299~Urn Uplight~0~light~light.living_room~���~65282~All Living Room~1
2023-01-20 08:26:37.402423 INFO nspanel: Sending MQTT Message: pageType~cardGrid
2023-01-20 08:26:37.320804 INFO nspanel: Button Press Event; entity_id: navigate.uuid.kKTWGI1UiB; button_type: button; value: None
2023-01-20 08:26:37.318309 INFO nspanel: Received Message from Screen: event,buttonPress2,navigate.uuid.kKTWGI1UiB,button
2023-01-20 08:26:37.315743 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,navigate.uuid.kKTWGI1UiB,button”}’}
2023-01-20 08:26:36.152760 INFO nspanel: Sending MQTT Message: entityUpd~Living Room~button~navigate.uuid.kKTWGI1UiB~���~65535~Living Room~Press~button~navigate.uuid.1HVWvtXDLX~���~65535~Home~Press~light~light.urn_uplight~���~17299~Urn Uplght~0~light~light.hue_smart_plug_1~���~17299~Garland~0~switch~switch.imac_2~���~31727~iMac~0
2023-01-20 08:26:36.081579 INFO nspanel: Sending MQTT Message: pageType~cardGrid
2023-01-20 08:26:35.944041 INFO nspanel: Button Press Event; entity_id: navigate.uuid.S2gsgeF4pG; button_type: button; value: None
2023-01-20 08:26:35.934952 INFO nspanel: Received Message from Screen: event,buttonPress2,navigate.uuid.S2gsgeF4pG,button
2023-01-20 08:26:35.926727 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,navigate.uuid.S2gsgeF4pG,button”}’}
2023-01-20 08:26:34.785386 INFO nspanel: Sending MQTT Message: entityUpd~Not found~button~navigate.uuid.S2gsgeF4pG~���~65535~Living Room~Press~button~navigate.uuid.Gbm9Z33a5T~���~65535~Lounge Thermo~Press~media_player.living~Please check yourapps.yaml in AppDaemon0~���~~
2023-01-20 08:26:34.771608 INFO nspanel: Sending MQTT Message: pageType~cardMedia
2023-01-20 08:26:34.676678 INFO nspanel: Button Press Event; entity_id: navigate.uuid.1HVWvtXDLX; button_type: button; value: None
2023-01-20 08:26:34.671841 INFO nspanel: Received Message from Screen: event,buttonPress2,navigate.uuid.1HVWvtXDLX,button
2023-01-20 08:26:34.664875 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,navigate.uuid.1HVWvtXDLX,button”}’}
2023-01-20 08:26:07.053081 INFO nspanel: Sending MQTT Message: entityUpd~Lounge Thermo~button~navigate.uuid.1HVWvtXDLX~���~65535~Home~Press~button~navigate.uuid.qHFzKV5aBP~���~65535~Test Entities Card~Press~climate.room_stat~18.6 ��C~215~Heat~40~280~5~���~64512~1~heat~Currently~State~Operation~���
2023-01-20 08:26:06.934311 INFO nspanel: Sending MQTT Message: pageType~cardThermo
2023-01-20 08:26:06.784400 INFO nspanel: Button Press Event; entity_id: navigate.uuid.Gbm9Z33a5T; button_type: button; value: None
2023-01-20 08:26:06.781612 INFO nspanel: Received Message from Screen: event,buttonPress2,navigate.uuid.Gbm9Z33a5T,button
2023-01-20 08:26:06.779365 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,navigate.uuid.Gbm9Z33a5T,button”}’}
2023-01-20 08:26:04.515927 INFO nspanel: Sending MQTT Message: entityUpd~Not found~button~navigate.uuid.S2gsgeF4pG~���~65535~Living Room~Press~button~navigate.uuid.Gbm9Z33a5T~���~65535~Lounge Thermo~Press~media_player.living~Please check your
apps.yaml in AppDaemon
0~���

2023-01-20 08:26:04.503312 INFO nspanel: Sending MQTT Message: pageType~cardMedia
2023-01-20 08:26:04.429443 INFO nspanel: Button Press Event; entity_id: navigate.uuid.1HVWvtXDLX; button_type: button; value: None
2023-01-20 08:26:04.415806 INFO nspanel: Received Message from Screen: event,buttonPress2,navigate.uuid.1HVWvtXDLX,button
2023-01-20 08:26:04.412496 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,navigate.uuid.1HVWvtXDLX,button”}’}
2023-01-20 08:26:02.137169 INFO nspanel: Sending MQTT Message: entityUpd~Living Room~button~navigate.uuid.kKTWGI1UiB~���~65535~Living Room~Press~button~navigate.uuid.1HVWvtXDLX~���~65535~Home~Press~light~light.urn_uplight~���~17299~Urn Uplght~0~light~light.hue_smart_plug_1~���~17299~Garland~0~switch~switch.imac_2~���~31727~iMac~0
2023-01-20 08:26:02.085180 INFO nspanel: Sending MQTT Message: pageType~cardGrid
2023-01-20 08:26:01.979885 INFO nspanel: Button Press Event; entity_id: navigate.uuid.S2gsgeF4pG; button_type: button; value: None
2023-01-20 08:26:01.972393 INFO nspanel: Received Message from Screen: event,buttonPress2,navigate.uuid.S2gsgeF4pG,button
2023-01-20 08:26:01.967067 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,navigate.uuid.S2gsgeF4pG,button”}’}
2023-01-20 08:26:01.088198 INFO nspanel: Sending MQTT Message: time~08:26 ?AM~
2023-01-20 08:25:56.391055 INFO nspanel: Sending MQTT Message: entityUpd~Living Room~button~navigate.uuid.GkdcYzUrhh~���~65535~Guest Wifi~Press~button~navigate.uuid.S2gsgeF4pG~���~65535~Living Room~Press~light~light.hue_color_candle_1~���~57511~Desk Lamp~1~light~light.hue_color_candle_2~���~31727~Table Lamp~0~light~light.hue_color_candle_3~���~31727~Wall light R~0~light~light.hue_color_candle_4~���~31727~Wall Light L~0~light~light.urn_uplight~���~17299~Urn Uplight~0~light~light.living_room~���~65282~All Living Room~1
2023-01-20 08:25:56.271471 INFO nspanel: Sending MQTT Message: pageType~cardGrid
2023-01-20 08:25:56.214474 INFO nspanel: Button Press Event; entity_id: screensaver; button_type: bExit; value: 1
2023-01-20 08:25:56.211484 INFO nspanel: Received Message from Screen: event,buttonPress2,screensaver,bExit,1
2023-01-20 08:25:56.199195 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,screensaver,bExit,1”}’}
2023-01-20 08:25:49.777116 INFO nspanel: Sending MQTT Message: color~0~65535~65535~64864~15711~65535~65535~65535~65535~65535~38066~19017~19017~38066~65535~65535~65535~65535~15680~65535~65535~65535
2023-01-20 08:25:49.764385 INFO nspanel: Sending MQTT Message: weatherUpdate~���~1.0��C~Fri~���~4.0��C~Sat~���~3.3��C~Sun~���~2.8��C~Mon~���~2.9��C

2023-01-20 08:25:49.661535 INFO nspanel: Sending MQTT Message: pageType~screensaver
2023-01-20 08:25:49.641274 INFO nspanel: Button Press Event; entity_id: cardGrid; button_type: sleepReached; value: None
2023-01-20 08:25:49.633409 INFO nspanel: Received Message from Screen: event,sleepReached,cardGrid
2023-01-20 08:25:49.626787 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,sleepReached,cardGrid”}’}
2023-01-20 08:25:20.161162 INFO nspanel: Sending MQTT Message: pageType~cardGrid
2023-01-20 08:25:20.090624 INFO nspanel: Button Press Event; entity_id: screensaver; button_type: bExit; value: 1
2023-01-20 08:25:20.086988 INFO nspanel: Received Message from Screen: event,buttonPress2,screensaver,bExit,1
2023-01-20 08:25:20.084633 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,screensaver,bExit,1”}’}
2023-01-20 08:25:01.076424 INFO nspanel: Sending MQTT Message: time~08:25 ?AM~
2023-01-20 08:24:01.077107 INFO nspanel: Sending MQTT Message: time~08:24 ?AM~
2023-01-20 08:23:16.526829 INFO nspanel: Sending MQTT Message: color~0~65535~65535~64864~15711~65535~65535~65535~65535~65535~38066~19017~19017~38066~65535~65535~65535~65535~15680~65535~65535~65535
2023-01-20 08:23:16.517318 INFO nspanel: Sending MQTT Message: weatherUpdate~���~1.0��C~Fri~���~4.0��C~Sat~���~3.3��C~Sun~���~2.8��C~Mon~���~2.9��C
~~~~
2023-01-20 08:23:01.099356 INFO nspanel: Sending MQTT Message: time~08:23 ?AM~
2023-01-20 08:22:01.147923 INFO nspanel: Sending MQTT Message: time~08:22 ?AM~
2023-01-20 08:21:01.086219 INFO nspanel: Sending MQTT Message: time~08:21 ?AM~
2023-01-20 08:20:01.075701 INFO nspanel: Sending MQTT Message: time~08:20 ?AM~
2023-01-20 08:27:17.770453 INFO nspanel: Sending MQTT Message: pageType~cardGrid
2023-01-20 08:27:17.657258 INFO nspanel: Button Press Event; entity_id: screensaver; button_type: bExit; value: 1
2023-01-20 08:27:17.653519 INFO nspanel: Received Message from Screen: event,buttonPress2,screensaver,bExit,1
2023-01-20 08:27:17.641091 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,screensaver,bExit,1”}’}
2023-01-20 08:27:08.170893 INFO nspanel: Sending MQTT Message: color~0~65535~65535~64864~15711~65535~65535~65535~65535~65535~38066~19017~19017~38066~65535~65535~65535~65535~15680~65535~65535~65535
2023-01-20 08:27:08.159654 INFO nspanel: Sending MQTT Message: weatherUpdate~���~1.0��C~Fri~���~4.0��C~Sat~���~3.3��C~Sun~���~2.8��C~Mon~���~2.9��C~~~~~~~~
2023-01-20 08:27:08.046094 INFO nspanel: Sending MQTT Message: pageType~screensaver
2023-01-20 08:27:08.027385 INFO nspanel: Button Press Event; entity_id: cardGrid; button_type: sleepReached; value: None
2023-01-20 08:27:08.011529 INFO nspanel: Received Message from Screen: event,sleepReached,cardGrid
2023-01-20 08:27:08.005142 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,sleepReached,cardGrid”}’}
2023-01-20 08:27:01.086427 INFO nspanel: Sending MQTT Message: time~08:27 ?AM~
2023-01-20 08:26:37.531897 INFO nspanel: Sending MQTT Message: entityUpd~Living Room~button~navigate.uuid.GkdcYzUrhh~���~65535~Guest Wifi~Press~button~navigate.uuid.S2gsgeF4pG~���~65535~Living Room~Press~light~light.hue_color_candle_1~���~57511~Desk Lamp~1~light~light.hue_color_candle_2~���~31727~Table Lamp~0~light~light.hue_color_candle_3~���~31727~Wall light R~0~light~light.hue_color_candle_4~���~31727~Wall Light L~0~light~light.urn_uplight~���~17299~Urn Uplight~0~light~light.living_room~���~65282~All Living Room~1
2023-01-20 08:26:37.402423 INFO nspanel: Sending MQTT Message: pageType~cardGrid
2023-01-20 08:26:37.320804 INFO nspanel: Button Press Event; entity_id: navigate.uuid.kKTWGI1UiB; button_type: button; value: None
2023-01-20 08:26:37.318309 INFO nspanel: Received Message from Screen: event,buttonPress2,navigate.uuid.kKTWGI1UiB,button
2023-01-20 08:26:37.315743 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,navigate.uuid.kKTWGI1UiB,button”}’}
2023-01-20 08:26:36.152760 INFO nspanel: Sending MQTT Message: entityUpd~Living Room~button~navigate.uuid.kKTWGI1UiB~���~65535~Living Room~Press~button~navigate.uuid.1HVWvtXDLX~���~65535~Home~Press~light~light.urn_uplight~���~17299~Urn Uplght~0~light~light.hue_smart_plug_1~���~17299~Garland~0~switch~switch.imac_2~���~31727~iMac~0
2023-01-20 08:26:36.081579 INFO nspanel: Sending MQTT Message: pageType~cardGrid
2023-01-20 08:26:35.944041 INFO nspanel: Button Press Event; entity_id: navigate.uuid.S2gsgeF4pG; button_type: button; value: None
2023-01-20 08:26:35.934952 INFO nspanel: Received Message from Screen: event,buttonPress2,navigate.uuid.S2gsgeF4pG,button
2023-01-20 08:26:35.926727 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,navigate.uuid.S2gsgeF4pG,button”}’}
2023-01-20 08:26:34.785386 INFO nspanel: Sending MQTT Message: entityUpd~Not found~button~navigate.uuid.S2gsgeF4pG~���~65535~Living Room~Press~button~navigate.uuid.Gbm9Z33a5T~���~65535~Lounge Thermo~Press~media_player.living~Please check yourapps.yaml in AppDaemon0~���~~
2023-01-20 08:26:34.771608 INFO nspanel: Sending MQTT Message: pageType~cardMedia
2023-01-20 08:26:34.676678 INFO nspanel: Button Press Event; entity_id: navigate.uuid.1HVWvtXDLX; button_type: button; value: None
2023-01-20 08:26:34.671841 INFO nspanel: Received Message from Screen: event,buttonPress2,navigate.uuid.1HVWvtXDLX,button
2023-01-20 08:26:34.664875 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,navigate.uuid.1HVWvtXDLX,button”}’}
2023-01-20 08:26:07.053081 INFO nspanel: Sending MQTT Message: entityUpd~Lounge Thermo~button~navigate.uuid.1HVWvtXDLX~���~65535~Home~Press~button~navigate.uuid.qHFzKV5aBP~���~65535~Test Entities Card~Press~climate.room_stat~18.6 ��C~215~Heat~40~280~5~���~64512~1~heat~Currently~State~Operation~���
2023-01-20 08:26:06.934311 INFO nspanel: Sending MQTT Message: pageType~cardThermo
2023-01-20 08:26:06.784400 INFO nspanel: Button Press Event; entity_id: navigate.uuid.Gbm9Z33a5T; button_type: button; value: None
2023-01-20 08:26:06.781612 INFO nspanel: Received Message from Screen: event,buttonPress2,navigate.uuid.Gbm9Z33a5T,button
2023-01-20 08:26:06.779365 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,navigate.uuid.Gbm9Z33a5T,button”}’}
2023-01-20 08:26:04.515927 INFO nspanel: Sending MQTT Message: entityUpd~Not found~button~navigate.uuid.S2gsgeF4pG~���~65535~Living Room~Press~button~navigate.uuid.Gbm9Z33a5T~���~65535~Lounge Thermo~Press~media_player.living~Please check your
apps.yaml in AppDaemon
0~���

2023-01-20 08:26:04.503312 INFO nspanel: Sending MQTT Message: pageType~cardMedia
2023-01-20 08:26:04.429443 INFO nspanel: Button Press Event; entity_id: navigate.uuid.1HVWvtXDLX; button_type: button; value: None
2023-01-20 08:26:04.415806 INFO nspanel: Received Message from Screen: event,buttonPress2,navigate.uuid.1HVWvtXDLX,button
2023-01-20 08:26:04.412496 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,navigate.uuid.1HVWvtXDLX,button”}’}
2023-01-20 08:26:02.137169 INFO nspanel: Sending MQTT Message: entityUpd~Living Room~button~navigate.uuid.kKTWGI1UiB~���~65535~Living Room~Press~button~navigate.uuid.1HVWvtXDLX~���~65535~Home~Press~light~light.urn_uplight~���~17299~Urn Uplght~0~light~light.hue_smart_plug_1~���~17299~Garland~0~switch~switch.imac_2~���~31727~iMac~0
2023-01-20 08:26:02.085180 INFO nspanel: Sending MQTT Message: pageType~cardGrid
2023-01-20 08:26:01.979885 INFO nspanel: Button Press Event; entity_id: navigate.uuid.S2gsgeF4pG; button_type: button; value: None
2023-01-20 08:26:01.972393 INFO nspanel: Received Message from Screen: event,buttonPress2,navigate.uuid.S2gsgeF4pG,button
2023-01-20 08:26:01.967067 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,navigate.uuid.S2gsgeF4pG,button”}’}
2023-01-20 08:26:01.088198 INFO nspanel: Sending MQTT Message: time~08:26 ?AM~
2023-01-20 08:25:56.391055 INFO nspanel: Sending MQTT Message: entityUpd~Living Room~button~navigate.uuid.GkdcYzUrhh~���~65535~Guest Wifi~Press~button~navigate.uuid.S2gsgeF4pG~���~65535~Living Room~Press~light~light.hue_color_candle_1~���~57511~Desk Lamp~1~light~light.hue_color_candle_2~���~31727~Table Lamp~0~light~light.hue_color_candle_3~���~31727~Wall light R~0~light~light.hue_color_candle_4~���~31727~Wall Light L~0~light~light.urn_uplight~���~17299~Urn Uplight~0~light~light.living_room~���~65282~All Living Room~1
2023-01-20 08:25:56.271471 INFO nspanel: Sending MQTT Message: pageType~cardGrid
2023-01-20 08:25:56.214474 INFO nspanel: Button Press Event; entity_id: screensaver; button_type: bExit; value: 1
2023-01-20 08:25:56.211484 INFO nspanel: Received Message from Screen: event,buttonPress2,screensaver,bExit,1
2023-01-20 08:25:56.199195 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,screensaver,bExit,1”}’}
2023-01-20 08:25:49.777116 INFO nspanel: Sending MQTT Message: color~0~65535~65535~64864~15711~65535~65535~65535~65535~65535~38066~19017~19017~38066~65535~65535~65535~65535~15680~65535~65535~65535
2023-01-20 08:25:49.764385 INFO nspanel: Sending MQTT Message: weatherUpdate~���~1.0��C~Fri~���~4.0��C~Sat~���~3.3��C~Sun~���~2.8��C~Mon~���~2.9��C

2023-01-20 08:25:49.661535 INFO nspanel: Sending MQTT Message: pageType~screensaver
2023-01-20 08:25:49.641274 INFO nspanel: Button Press Event; entity_id: cardGrid; button_type: sleepReached; value: None
2023-01-20 08:25:49.633409 INFO nspanel: Received Message from Screen: event,sleepReached,cardGrid
2023-01-20 08:25:49.626787 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,sleepReached,cardGrid”}’}
2023-01-20 08:25:20.161162 INFO nspanel: Sending MQTT Message: pageType~cardGrid
2023-01-20 08:25:20.090624 INFO nspanel: Button Press Event; entity_id: screensaver; button_type: bExit; value: 1
2023-01-20 08:25:20.086988 INFO nspanel: Received Message from Screen: event,buttonPress2,screensaver,bExit,1
2023-01-20 08:25:20.084633 INFO nspanel: MQTT callback for: {‘topic’: ‘tele/NSPanel/RESULT’, ‘wildcard’: None, ‘payload’: ‘{“CustomRecv”:“event,buttonPress2,screensaver,bExit,1”}’}
2023-01-20 08:25:01.076424 INFO nspanel: Sending MQTT Message: time~08:25 ?AM~
2023-01-20 08:24:01.077107 INFO nspanel: Sending MQTT Message: time~08:24 ?AM~
2023-01-20 08:23:16.526829 INFO nspanel: Sending MQTT Message: color~0~65535~65535~64864~15711~65535~65535~65535~65535~65535~38066~19017~19017~38066~65535~65535~65535~65535~15680~65535~65535~65535
2023-01-20 08:23:16.517318 INFO nspanel: Sending MQTT Message: weatherUpdate~���~1.0��C~Fri~���~4.0��C~Sat~���~3.3��C~Sun~���~2.8��C~Mon~���~2.9��C
~~~~
2023-01-20 08:23:01.099356 INFO nspanel: Sending MQTT Message: time~08:23 ?AM~
2023-01-20 08:22:01.147923 INFO nspanel: Sending MQTT Message: time~08:22 ?AM~
2023-01-20 08:21:01.086219 INFO nspanel: Sending MQTT Message: time~08:21 ?AM~
2023-01-20 08:20:01.075701 INFO nspanel: Sending MQTT Message: time~08:20 ?AM~

Hi jobraun,
The problem was with a colour (color) entry “off”: [126, 126, 126] missing comma “off”: [126, 126 126] on one of the six entities on cardgrid 1.
Thank you kindly for your assistance
Regards glyne.d

I have Jobraun solution running fine on my nspanel for about two weeks now.
Because it was previously already flashed with an EspHome trial I chose for the EspHome option instead of Tasmota.

But I have one question and one problem:

  • if I allow integration auto-detection, I end up with a device in MQTT and a clone in EspHome, so I ignored the ESPhome one and went for the MQTT version because it can’t be ignored, I loose the ESPHome services but I don’t use them, so this reduces the clutter. But is it the expected way of doing things ?
  • I notice that (at least via MQTT) I get a “unavailable” status every 15 minutes exactly and during 7 seconds. I could confirm the events on the status sub-topic in MQTT Explorer. So I suppose it could be that the “keep alive” timing of the sensor is the same as the MQTT timeout in HA, but I don’t know where to act… Does anyone have seen this already ?

Answering to myself (and others in case they have the same question/problem…)

if I allow integration auto-detection, I end up with a device in MQTT and a clone in EspHome, so I ignored the ESPhome one and went for the MQTT version because it can’t be ignored, I loose the ESPHome services but I don’t use them, so this reduces the clutter. But is it the expected way of doing things ?

Bad idea because if no client connects to the API, the ESP reboots every 15 min.
So unless I delete completely the “api” section in the config file, I have to live with 2 identical devices in HA. Completely deleting the api part would also completely prevent the option of temporary enabling the integration to be able to use the tft upload service.

I notice that (at least via MQTT) I get a “unavailable” status every 15 minutes exactly and during 7seconds.

Well here, this is the obvious consequence of here above, the ESP reboots every 15 minutes with no connexion, so enabling the ESPhome integration fixes this as well.

So problem solved, but it’s still odd to have to live with two identical devices. (at least I can still disable all entities of one of them.

Hi I just start learning about NsPanel , i received one just 10 days ago an when Update the screen change to “System Data Error” message. The NsPanel still is connected to Wifi and buttons are still working.
Where i can find the stock FW 1.4 to try recover?
There are other FW that maintain compatibility with Ewelink software?
Best regards
Fernando

Apologies if this has been answered before, did a search on ‘neutral’.
I’m in the UK on the typical no Neutral to the light switch scenario just Live, Switched Live and earth.

Any reason why I can’t just leave Live on Live, Earth on Earth and move the switched live cable over to Neutral at the bulb rose end. That way I have permanent live/neutral to the switch.

Obviously I won’t have any direct cabling to turn the light on/off but if it’s a smart bulb or shelly switch I can use it via HA?

I guess the 2 buttons are relays you’d normally just direct wire to a light, are they controllable via software as well?

That should be possible. I believe you are correct in your assumptions.
But I’m not an electrician.
And yes the buttons don’t need to control the outputs, it’s configurable.

How did you update, using the eWelink App? If so, they should offer a recovery, customer support, or a new unit. If you hacked it and installed custom firmware with soldering wires - your warranty is now void. I dont think they share the versions, and people are quiet around here about the official ones, so i think it’s a copyright issue. So your best bet (in case you modded it), is to flash the original software back with the backup you made, and update that. This is what i did.

The main issue with the stock firmware is that it’s not easy to extract from the device you need to readout the flash chip itself and do some magic to get a tft file, this has been done to do the initial reverse engeniering for the tasmota nspanel project from blakadder and theoretically it’s also possible to get the file from their servers, even though nobody investigated deeply how to do that. Also the stock firmware sucks, so there’s not a huge development force on any stuff related to it :slight_smile:

I just Update using Ewelink V4.29.1 , the device was new , untouch and not instaled yet. I paired to my app , test buttons an made an update. The problem is I am in Chile and bougth by AliExpress so send back is not an option.
I want control the NsPanel with Ewelink App but as i’am new in this topic so is little confuse to me what .bin is recomended to load ( I have a serial adapter , cable , etc )
The TASMOTA FW permit control NSpanel from Ewelink App?
Best regards , Fernando

So , if i want just the same stock screen and maintain the link option to Ewelink , i just flash whit Tasmota version?
i only want use the nspanel not make mods or other automatizations yet. :slight_smile:
Regards
Fernando

To use the eWeLink app, you can’t flash it with any custom firmware. An alternative is to use their add-on to expose HA entities to eWeLink app, which can then be shown in NSPanel/NSPanel Pro:

https://appcms-src.coolkit.cn/uncategorized/9213.html

1 Like

Hello there, I have flash my NSpanel with Tasmota and try to use with NsPanelLovelaceUIManager. It work all fine but every 4 to 10 seconds it display “Waiting for content”. Wish correspond to that entry : “10:17:54.163 MQT: tele/tasmota_01/RESULT = {“CustomRecv”:“event,startup,48,eu”}”

In the

Blockquote10:17:54.163 MQT: tele/tasmota_01/RESULT = {“CustomRecv”:“event,startup,48,eu”}
10:17:54.652 MQT: tele/tasmota_01/RESULT = {“nlui_driver_version”:“8”}
10:17:54.716 MQT: stat/tasmota_01/RESULT = {“CustomSend”:“Done”}
10:17:54.768 MQT: stat/tasmota_01/RESULT = {“CustomSend”:“Done”}
10:17:54.814 MQT: stat/tasmota_01/RESULT = {“CustomSend”:“Done”}
10:17:54.868 MQT: stat/tasmota_01/RESULT = {“CustomSend”:“Done”}
10:17:54.914 MQT: stat/tasmota_01/RESULT = {“CustomSend”:“Done”}

Any idea ?

Blockquote
nspanel-1:
module: nspanel-lovelace-ui
class: NsPanelLovelaceUIManager
config:
panelRecvTopic: “tele/tasmota_01/RESULT”
panelSendTopic: “cmnd/tasmota_01/CustomSend”
screensaver:
theme:
entity: weather.k3ll3r
theme:
autoWeather: true
cards:
- type: cardEntities
entities:
- entity: sensor.flowbypass
- entity: sensor.current_flow_rate
- entity: sensor.temp_cumulus_bleu_bas
- entity: sensor.temp_retour_pac
- entity: sensor.temp_aller_pac

hi,

i installed the latest update for the nspanel, after a restart the panel says a berry driver update is avaiaible, but in this moment a popup opens and i think he doesnt make the update, can i manually made the update over this command ?

Backlog UrlFetch https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be; Restart 1

yes, that should also do the update :slight_smile:

1 Like

not enough context to answer you

event,startup,48,eu is the message sent from the panel in the waiting for content screen.

Tasmota Logs are probably helpful in this case; also appdaemon log with some more lines before the startup event.

1 Like

I think I have an issue in AppDaemon somwhere :slight_smile:
here is my LOG from AppDaemon:

2023-01-29 09:08:18.637898 WARNING HASS: Disconnected from Home Assistant, retrying in 5 seconds
2023-01-29 09:08:18.637589 WARNING HASS: {'id': 4186, 'type': 'result', 'success': False, 'error': {'code': 'unknown_error', 'message': 'Invalid JSON in response'}}
2023-01-29 09:08:18.637353 WARNING HASS: Unexpected result from Home Assistant, id = 4186
2023-01-29 08:56:22.544158 INFO nspanel-1: Sending MQTT Message: pageType~pageStartup
2023-01-29 08:56:22.605834 INFO nspanel-1: Registering callbacks for the following items: ['sensor.flowbypass', 'sensor.current_flow_rate', 'sensor.temp_cumulus_bleu_bas', 'sensor.temp_retour_pac', 'sensor.temp_aller_pac', 'weather.forecast_muids']
2023-01-29 08:56:22.617097 INFO MQTT: Topic tele/tasmota_01/RESULT already subscribed to
2023-01-29 08:56:22.671994 INFO nspanel-1: Started
2023-01-29 08:56:24.669536 WARNING HASS: Unexpected result from Home Assistant, id = 4098
2023-01-29 08:56:24.669860 WARNING HASS: {'id': 4098, 'type': 'result', 'success': False, 'error': {'code': 'unknown_error', 'message': 'Invalid JSON in response'}}
2023-01-29 08:56:24.670191 WARNING HASS: Disconnected from Home Assistant, retrying in 5 seconds
2023-01-29 08:56:29.686248 INFO HASS: Connected to Home Assistant 2023.1.7
2023-01-29 08:56:29.741222 INFO HASS: Evaluating startup conditions
2023-01-29 08:56:29.752852 INFO HASS: Startup condition met: hass state=RUNNING
2023-01-29 08:56:29.753256 INFO HASS: All startup conditions met
2023-01-29 08:56:29.834494 INFO AppDaemon: Processing restart for HASS
2023-01-29 08:56:29.835285 INFO AppDaemon: Terminating nspanel-1
2023-01-29 08:56:29.836385 INFO AppDaemon: Initializing app nspanel-1 using class NsPanelLovelaceUIManager from module nspanel-lovelace-ui
2023-01-29 08:56:29.897984 INFO nspanel-1: Starting

The above code was with the Nspanel not powered when I power it :

2023-01-29 09:32:49.624655 INFO nspanel-1: Input config: {'panelRecvTopic': 'tele/tasmota_01/RESULT', 'panelSendTopic': 'cmnd/tasmota_01/CustomSend', 'screensaver': {'entity': 'weather.forecast_muids', 'theme': {'autoWeather': False}}, 'dateFormat': '%A, %d. %B', 'cards': [{'type': 'cardEntities', 'entities': [{'entity': 'sensor.flowbypass'}, {'entity': 'sensor.current_flow_rate'}, {'entity': 'sensor.temp_cumulus_bleu_bas'}, {'entity': 'sensor.temp_retour_pac'}, {'entity': 'sensor.temp_aller_pac'}]}]}
2023-01-29 09:32:49.684290 INFO nspanel-1: Loaded config: {'panelRecvTopic': 'tele/tasmota_01/RESULT', 'panelSendTopic': 'cmnd/tasmota_01/CustomSend', 'updateMode': 'auto-notify', 'model': 'eu', 'sleepTimeout': 20, 'sleepBrightness': 20, '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', 'homeButton': False, 'cards': [{'type': 'cardEntities', 'entities': [{'entity': 'sensor.flowbypass'}, {'entity': 'sensor.current_flow_rate'}, {'entity': 'sensor.temp_cumulus_bleu_bas'}, {'entity': 'sensor.temp_retour_pac'}, {'entity': 'sensor.temp_aller_pac'}]}], 'screensaver': {'type': 'screensaver', 'entity': 'weather.forecast_muids', 'weatherUnit': 'celsius', 'forecastSkip': 0, 'weatherOverrideForecast1': None, 'weatherOverrideForecast2': None, 'weatherOverrideForecast3': None, 'weatherOverrideForecast4': None, 'doubleTapToUnlock': False, 'alternativeLayout': False, 'defaultCard': None, 'key': 'screensaver', 'theme': {'autoWeather': False}}, 'hiddenCards': []}
2023-01-29 09:32:49.805851 INFO nspanel-1: Sending MQTT Message: pageType~pageStartup
2023-01-29 09:32:49.878280 INFO nspanel-1: Registering callbacks for the following items: ['sensor.flowbypass', 'sensor.current_flow_rate', 'sensor.temp_cumulus_bleu_bas', 'sensor.temp_retour_pac', 'sensor.temp_aller_pac', 'weather.forecast_muids']
2023-01-29 09:32:49.930769 INFO MQTT: Topic tele/tasmota_01/RESULT already subscribed to
2023-01-29 09:32:50.022180 INFO nspanel-1: Started
2023-01-29 09:32:50.125200 INFO nspanel-1: MQTT callback for: {'topic': 'tele/tasmota_01/RESULT', 'wildcard': None, 'payload': '{"CustomRecv":"event,startup,48,eu"}'}
2023-01-29 09:32:50.223980 INFO nspanel-1: Received Message from Screen: event,startup,48,eu
2023-01-29 09:32:50.340890 INFO nspanel-1: Sending MQTT Message: X
2023-01-29 09:32:50.413712 INFO nspanel-1: Update Pre-Check failed Tasmota Driver Version: None Panel Version: 48
2023-01-29 09:32:50.477654 INFO nspanel-1: Startup Event
2023-01-29 09:32:50.552811 INFO nspanel-1: Sending MQTT Message: time~09:32~
2023-01-29 09:32:50.626808 INFO nspanel-1: Sending MQTT Message: date~Sunday, 29. January
2023-01-29 09:32:50.689877 INFO nspanel-1: Sending MQTT Message: timeout~20
2023-01-29 09:32:50.753400 INFO nspanel-1: Sending MQTT Message: dimmode~20~100~6371
2023-01-29 09:32:50.817349 INFO nspanel-1: Sending MQTT Message: pageType~screensaver
2023-01-29 09:32:50.935060 INFO nspanel-1: Sending MQTT Message: weatherUpdate~���~-3.5��C~Mon~���~2.3��C~Tue~���~4.3��C~Wed~���~2.9��C~Thu~���~2.4��C~~~~~~~~
2023-01-29 09:32:51.002517 INFO nspanel-1: Sending MQTT Message: color~0~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535
2023-01-29 09:32:51.081096 INFO nspanel-1: MQTT callback for: {'topic': 'tele/tasmota_01/RESULT', 'wildcard': None, 'payload': '{"nlui_driver_version":"8"}'}
2023-01-29 09:32:51.093080 WARNING HASS: Unexpected result from Home Assistant, id = 4349
2023-01-29 09:32:51.093451 WARNING HASS: {'id': 4349, 'type': 'result', 'success': False, 'error': {'code': 'unknown_error', 'message': 'Invalid JSON in response'}}
2023-01-29 09:32:51.093802 WARNING HASS: Disconnected from Home Assistant, retrying in 5 seconds
2023-01-29 09:32:51.147541 INFO nspanel-1: Update Pre-Check sucessful Tasmota Driver Version: 8 Panel Version: 48
2023-01-29 09:32:56.200906 INFO HASS: Connected to Home Assistant 2023.1.7
2023-01-29 09:32:56.256751 INFO HASS: Evaluating startup conditions
2023-01-29 09:32:56.269728 INFO HASS: Startup condition met: hass state=RUNNING
2023-01-29 09:32:56.270058 INFO HASS: All startup conditions met
2023-01-29 09:32:56.353904 INFO AppDaemon: Processing restart for HASS
2023-01-29 09:32:56.354255 INFO AppDaemon: Terminating nspanel-1
2023-01-29 09:32:56.355346 INFO AppDaemon: Initializing app nspanel-1 using class NsPanelLovelaceUIManager from module nspanel-lovelace-ui
2023-01-29 09:32:56.425549 INFO nspanel-1: Starting

Yeah, you do. Reconnects will results in the loading animation on the panel, because appdaemon is restarting the backend application.

2023-01-29 08:56:24.669536 WARNING HASS: Unexpected result from Home Assistant, id = 4098
2023-01-29 08:56:24.669860 WARNING HASS: {'id': 4098, 'type': 'result', 'success': False, 'error': {'code': 'unknown_error', 'message': 'Invalid JSON in response'}}
2023-01-29 08:56:24.670191 WARNING HASS: Disconnected from Home Assistant, retrying in 5 seconds

However the error message unknown_error from appdaemon isn’t exactly helpful. Maybe you can get some more information on thoose events from the HomeAssistant Log.

Hi,

Red the nspanel protocol page but not sure about the following;
how to display the temperature of the built-in sensor with one decimal.
Searched in various articles but unable to find it.

could anyone give me a hint please ?

thanks

H
    screensaver:
      doubleTapToUnlock: True
      entities:
        - entity: weather.k3ll3r
        - entity: weather.k3ll3r
          type: 0
        - entity: weather.k3ll3r
          type: 1
        - entity: weather.k3ll3r
          type: 2
        - entity: delete
        - entity: sensor.temp_kueche_temperature
          value: '{{states("sensor.temp_kueche_temperature") | round(1)}}°C'
          icon: mdi:home-thermometer-outline