From aadebf801a3b9f42a2edd9a84118e89e19417f55 Mon Sep 17 00:00:00 2001 From: Johannes Date: Sun, 3 Apr 2022 11:28:11 +0200 Subject: [PATCH] added default card after screensaver exit --- HMI/README.md | 62 +++++++++---------- README.md | 1 + apps/nspanel-lovelace-ui/luibackend/config.py | 3 +- .../luibackend/controller.py | 7 +++ 4 files changed, 41 insertions(+), 32 deletions(-) diff --git a/HMI/README.md b/HMI/README.md index 9bf227f1..a2e15d00 100644 --- a/HMI/README.md +++ b/HMI/README.md @@ -132,83 +132,83 @@ The following message can be used to update the content on the cardEntities Page ## Messages from Nextion Display -`event~buttonPress2~pageName~bNext` +`event,buttonPress2,pageName,bNext` -`event~buttonPress2~pageName~bPrev` +`event,buttonPress2,pageName,bPrev` -`event~buttonPress2~pageName~bExit~number_of_taps` +`event,buttonPress2,pageName,bExit,number_of_taps` -`event~buttonPress2~pageName~sleepReached` +`event,buttonPress2,pageName,sleepReached` ### startup page -`event~startup~version~model` +`event,startup,version,model` ### screensaver page -`event~buttonPress2~screensaver~exit` - Touch Event on Screensaver +`event,buttonPress2,screensaver,exit` - Touch Event on Screensaver -`event~screensaverOpen` - Screensaver has opened +`event,screensaverOpen` - Screensaver has opened ### cardEntities Page -`event~*eventName*~*entityName*~*actionName*~*optionalValue*` +`event,*eventName*,*entityName*,*actionName*,*optionalValue*` -`event~buttonPress2~internalNameEntity~up` +`event,buttonPress2,internalNameEntity,up` -`event~buttonPress2~internalNameEntity~down` +`event,buttonPress2,internalNameEntity,down` -`event~buttonPress2~internalNameEntity~stop` +`event,buttonPress2,internalNameEntity,stop` -`event~buttonPress2~internalNameEntity~OnOff~1` +`event,buttonPress2,internalNameEntity,OnOff,1` -`event~buttonPress2~internalNameEntity~button` +`event,buttonPress2,internalNameEntity,button` ### popupLight Page -`event~pageOpenDetail~popupLight~internalNameEntity` +`event,pageOpenDetail,popupLight,internalNameEntity` -`event~buttonPress2~internalNameEntity~OnOff~1` +`event,buttonPress2,internalNameEntity,OnOff,1` -`event~buttonPress2~internalNameEntity~brightnessSlider~50` +`event,buttonPress2,internalNameEntity,brightnessSlider,50` -`event~buttonPress2~internalNameEntity~colorTempSlider~50` +`event,buttonPress2,internalNameEntity,colorTempSlider,50` -`event~buttonPress2~internalNameEntity~colorWheel~x|y` +`event,buttonPress2,internalNameEntity,colorWheel,x|y` ### popupShutter Page -`event~pageOpenDetail~popupShutter~internalNameEntity` +`event,pageOpenDetail,popupShutter,internalNameEntity` -`event~buttonPress2~internalNameEntity~positionSlider~50` +`event,buttonPress2,internalNameEntity,positionSlider,50` ### popupNotify Page -`event~buttonPress2~*internalName*~notifyAction~yes` +`event,buttonPress2,*internalName*,notifyAction,yes` -`event~buttonPress2~*internalName*~notifyAction~no` +`event,buttonPress2,*internalName*,notifyAction,no` ### cardThermo Page -`event~buttonPress2~*entityName*~tempUpd~*temperature*` +`event,buttonPress2,*entityName*,tempUpd,*temperature*` -`event~buttonPress2~*entityName*~hvac_action~*hvac_action*` +`event,buttonPress2,*entityName*,hvac_action,*hvac_action*` ### cardMedia Page -`event~buttonPress2~internalNameEntity~media-back` +`event,buttonPress2,internalNameEntity,media-back` -`event~buttonPress2~internalNameEntity~media-pause` +`event,buttonPress2,internalNameEntity,media-pause` -`event~buttonPress2~internalNameEntity~media-next` +`event,buttonPress2,internalNameEntity,media-next` -`event~buttonPress2~internalNameEntity~volumeSlider~75` +`event,buttonPress2,internalNameEntity,volumeSlider,75` ### cardAlarm Page -`event~buttonPress2~internalNameEntity~actionName~code` +`event,buttonPress2,internalNameEntity,actionName,code` # Icons IDs @@ -218,7 +218,7 @@ Please see Icon's int the [icons.md file](icons.md) # Design Guidelines for Nextion HMI Project Background Color is -- RGB565: 6371 [18e3] (HEX: #1C1C1C~ RGB: 28~28~28) +- RGB565: 6371 [18e3] (HEX: #1C1C1C, RGB: 28,28,28) -Source for Icons is the Material Design Font~ used by HASPone +Source for Icons is the Material Design Font, used by HASPone https://github.com/HASwitchPlate/HASPone diff --git a/README.md b/README.md index edbfaf57..d174042b 100644 --- a/README.md +++ b/README.md @@ -371,6 +371,7 @@ key | optional | type | default | description `weatherOverrideForecast4` | True | complex | `None` | sensor entity from home assistant here to override the forth weather forecast item on the screensaver `doubleTapToUnlock` | True | boolean | `False` | requires to tap screensaver two times `alternativeLayout` | True | boolean | `False` | alternative layout with humidity +`defaultCard` | True | string | `None` | default page after exiting screensaver; only works with top level cards defined in cards `key` | True | string | `None` | Used by navigate items Example for the weatherOverride config options: diff --git a/apps/nspanel-lovelace-ui/luibackend/config.py b/apps/nspanel-lovelace-ui/luibackend/config.py index ca071913..4b081979 100644 --- a/apps/nspanel-lovelace-ui/luibackend/config.py +++ b/apps/nspanel-lovelace-ui/luibackend/config.py @@ -84,7 +84,8 @@ class LuiBackendConfig(object): 'weatherOverrideForecast3': None, 'weatherOverrideForecast4': None, 'doubleTapToUnlock': False, - 'alternativeLayout': False + 'alternativeLayout': False, + 'defaultCard': None }, 'hiddenCards': [] } diff --git a/apps/nspanel-lovelace-ui/luibackend/controller.py b/apps/nspanel-lovelace-ui/luibackend/controller.py index 8e2124c2..afa304f5 100644 --- a/apps/nspanel-lovelace-ui/luibackend/controller.py +++ b/apps/nspanel-lovelace-ui/luibackend/controller.py @@ -133,6 +133,13 @@ class LuiController(object): LOGGER.info(f"Button Press Event; entity_id: {entity_id}; button_type: {button_type}; value: {value} ") # internal buttons if entity_id == "screensaver" and button_type == "bExit": + # get default card if there is one + if self._config.get("screensaver.defaultCard") is not None: + dstCard = self._config.searchCard(self._config.get("screensaver.defaultCard")) + if dstCard is not None: + self._previous_cards = [] + self._current_card = dstCard + # check for duouble tap if configured and render current page if self._config.get("doubleTapToUnlock") and int(value) >= 2: self._pages_gen.render_card(self._current_card) elif not self._config.get("doubleTapToUnlock"):