joBr99 / nspanel-lovelace-ui

Custom Firmware for NsPanel with the design of HomeAssistant's lovelace UI in mind, works with Tasmota.
GNU General Public License v3.0
854 stars 187 forks source link

[BUG] NSPanel screensaver no longer displays icons for weather forecast #1221

Closed Ambrotos closed 1 month ago

Ambrotos commented 1 month ago

PROBLEM DESCRIPTION

A clear and concise description of what the problem is. After upgrading to HA 2024.4, my NSPanel no longer displays icons for the weather forecast screensaver. I have applied the workaround as described here, making sure to modify both my configuration.yaml as well as my appdaemon apps.yaml files to reflect the correct entity name. I have also verified via HA developper tools that the newly created sensor.weather_forecase_daily entity has the correct state and attributes. I'm using the default screensaver weather type 0, and the NSPanel screensaver still shows a circled exclamation mark for all forecast elements, with an abbreviated "sunn" underneath (representing the entity's correct current state of "sunny".

REQUESTED INFORMATION

Make sure your have performed every step and checked the applicable boxes before submitting your issue. Thank you!

- [ ] Go to Settings>Add-ons>AppDaemon>Log (or the output of your TS script) and then, provide the output of the log during your issue/bug occurs:

Log output here: 2024-05-08 10:32:07.743820 INFO nspanel-1: Update Pre-Check failed Tasmota Driver Version: 999 Panel Version: None 2024-05-08 10:32:08.254602 INFO nspanel-1: MQTT callback for: {'topic': 'nspanel/tele/RESULT', 'wildcard': None, 'payload': '{"CustomRecv":"event,startup,53,us-p"}'} 2024-05-08 10:32:08.257174 INFO nspanel-1: Received Message from Screen: event,startup,53,us-p 2024-05-08 10:32:08.259773 INFO nspanel-1: Sending MQTT Message: X 2024-05-08 10:32:08.266277 INFO nspanel-1: Update Pre-Check failed Tasmota Driver Version: None Panel Version: 53 2024-05-08 10:32:08.268034 INFO nspanel-1: Startup Event 2024-05-08 10:32:08.277953 INFO nspanel-1: Sending MQTT Message: time~10:32~ 2024-05-08 10:32:08.285186 INFO nspanel-1: Sending MQTT Message: date~Wednesday, 08. May 2024 2024-05-08 10:32:08.287824 INFO nspanel-1: Sending MQTT Message: dimmode~0~100~6371~~0 2024-05-08 10:32:08.290722 INFO nspanel-1: Sending MQTT Message: pageType~screensaver 2024-05-08 10:32:08.293165 INFO nspanel-1: Sending MQTT Message: timeout~30 2024-05-08 10:32:08.309173 INFO nspanel-1: Sending MQTT Message: weatherUpdate~���~17299~Weather Forecast Daily~sunn ~���~17299~Weather Forecast Daily~sunn ~���~17299~Weather Forecast Daily~sunn ~���~17299~Weather Forecast Daily~sunn ~~~���~17299~Weather Forecast Daily~sunn 2024-05-08 10:32:08.311205 INFO nspanel-1: Sending MQTT Message: statusUpdate~~ 2024-05-08 10:32:08.316441 INFO nspanel-1: MQTT callback for: {'topic': 'nspanel/tele/RESULT', 'wildcard': None, 'payload': '{"nlui_driver_version":999}'} 2024-05-08 10:32:08.317298 INFO nspanel-1: Update Pre-Check sucessful Tasmota Driver Version: 999 Panel Version: 53 2024-05-08 10:33:00.620153 INFO nspanel-1: Sending MQTT Message: time~10:33~ 2024-05-08 10:34:00.620537 INFO nspanel-1: Sending MQTT Message: time~10:34~ 2024-05-08 10:34:17.301175 WARNING HASS: Disconnected from Home Assistant, retrying in 5 seconds 2024-05-08 10:34:22.309192 WARNING HASS: Disconnected from Home Assistant, retrying in 5 seconds 2024-05-08 10:34:27.315748 WARNING HASS: Disconnected from Home Assistant, retrying in 5 seconds 2024-05-08 10:34:32.327694 WARNING HASS: Disconnected from Home Assistant, retrying in 5 seconds 2024-05-08 10:34:37.343378 WARNING HASS: Disconnected from Home Assistant, retrying in 5 seconds 2024-05-08 10:34:42.365308 WARNING HASS: Disconnected from Home Assistant, retrying in 5 seconds 2024-05-08 10:34:47.373254 INFO HASS: Connected to Home Assistant 2024.5.2 2024-05-08 10:34:47.438511 INFO HASS: Evaluating startup conditions 2024-05-08 10:34:47.450192 INFO HASS: Startup condition met: hass state=RUNNING 2024-05-08 10:34:47.450481 INFO HASS: All startup conditions met 2024-05-08 10:34:47.491710 INFO AppDaemon: Processing restart for HASS 2024-05-08 10:34:47.491997 INFO AppDaemon: Terminating nspanel-1 2024-05-08 10:34:47.494848 INFO AppDaemon: Reloading Module: /config/apps/nspanel-lovelace-ui/nspanel-lovelace-ui.py 2024-05-08 10:34:47.496174 INFO AppDaemon: Loading app nspanel-1 using class NsPanelLovelaceUIManager from module nspanel-lovelace-ui 2024-05-08 10:34:47.497590 INFO AppDaemon: Calling initialize() for nspanel-1 2024-05-08 10:34:47.498586 INFO nspanel-1: Starting 2024-05-08 10:34:47.500000 INFO nspanel-1: Input config: {'panelRecvTopic': 'nspanel/tele/RESULT', 'panelSendTopic': 'nspanel/cmnd/CustomSend', 'model': 'us-p', 'screenBrightness': 100, 'sleepTimeout': 30, 'sleepBrightness': 0, 'screensaver': {'doubleTapToUnlock': True, 'entity': 'sensor.weather_forecast_daily'}, 'cards': [{'type': 'cardEntities', 'entities': [{'entity': 'binary_sensor.exterior_sensors', 'name': 'Exterior'}, {'entity': 'input_boolean.do_not_disturb', 'name': 'DND'}, {'entity': 'sensor.boiler_controller_return_temperature', 'name': 'Hot Water'}], 'title': 'Home State'}, {'type': 'cardEntities', 'entities': [{'entity': 'sensor.emoncms_mains_total', 'name': 'Home Power', 'value': "{{ (states('sensor.emoncms_mains_total') | int / 1000) | round(1) | float ~ ' kW' }}"}, {'entity': 'sensor.emoncms_mains_daily_energy', 'name': 'Home kWh/d'}, {'entity': 'sensor.emoncms_ev_charger', 'name': 'EV Power', 'value': "{{ (states('sensor.emoncms_ev_charger') | int / 1000) | round(1) | float ~ ' kW' }}"}, {'entity': 'sensor.emoncms_ev_charger_daily_energy', 'name': 'EV kWh/d'}, {'entity': 'sensor.emoncms_air_conditioner', 'name': 'AirCon Power', 'value': "{{ (states('sensor.emoncms_air_conditioner') | int / 1000) | round(1) | float ~ ' kW' }}"}], 'title': 'Electricity'}, {'type': 'cardEntities', 'entities': [{'entity': 'light.pentair_deck_light', 'name': 'Deck Lights'}, {'entity': 'light.pentair_pool_light', 'name': 'Pool Lights'}, {'entity': 'switch.pentair_waterfall', 'name': 'Waterfall'}, {'entity': 'switch.workshop_lights', 'name': 'Shop Lights'}, {'entity': 'lock.workshop_deadbolt', 'name': 'Shop Lock'}], 'title': 'Backyard'}, {'type': 'cardThermo', 'title': 'Pool Heater', 'entity': 'climate.pool_heater', 'supportedModes': ['heat', 'off']}, {'type': 'cardQR', 'title': 'Guest Wifi', 'qrCode': 'WIFI:S:APICAL-Guest;T:WPA;P:eTgLGZ445Ok68f;;', 'entities': [{'entity': 'iText.APICAL-Guest', 'name': 'SSID', 'icon': 'mdi:wifi'}, {'entity': 'iText.eTgLGZ445Ok68f', 'name': 'Password', 'icon': 'mdi:key'}]}, {'type': 'cardAlarm', 'title': 'Alarm Keypad', 'entity': 'alarm_control_panel.alarmo'}]} 2024-05-08 10:34:47.500859 INFO nspanel-1: Loaded config: {'panelRecvTopic': 'nspanel/tele/RESULT', 'panelSendTopic': 'nspanel/cmnd/CustomSend', 'updateMode': 'auto-notify', 'model': 'us-p', 'sleepTimeout': 30, 'sleepBrightness': 0, 'screenBrightness': 100, 'defaultBackgroundColor': 'ha-dark', 'featureExperimentalSliders': False, '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': 'binary_sensor.exterior_sensors', 'name': 'Exterior'}, {'entity': 'input_boolean.do_not_disturb', 'name': 'DND'}, {'entity': 'sensor.boiler_controller_return_temperature', 'name': 'Hot Water'}], 'title': 'Home State'}, {'type': 'cardEntities', 'entities': [{'entity': 'sensor.emoncms_mains_total', 'name': 'Home Power', 'value': "{{ (states('sensor.emoncms_mains_total') | int / 1000) | round(1) | float ~ ' kW' }}"}, {'entity': 'sensor.emoncms_mains_daily_energy', 'name': 'Home kWh/d'}, {'entity': 'sensor.emoncms_ev_charger', 'name': 'EV Power', 'value': "{{ (states('sensor.emoncms_ev_charger') | int / 1000) | round(1) | float ~ ' kW' }}"}, {'entity': 'sensor.emoncms_ev_charger_daily_energy', 'name': 'EV kWh/d'}, {'entity': 'sensor.emoncms_air_conditioner', 'name': 'AirCon Power', 'value': "{{ (states('sensor.emoncms_air_conditioner') | int / 1000) | round(1) | float ~ ' kW' }}"}], 'title': 'Electricity'}, {'type': 'cardEntities', 'entities': [{'entity': 'light.pentair_deck_light', 'name': 'Deck Lights'}, {'entity': 'light.pentair_pool_light', 'name': 'Pool Lights'}, {'entity': 'switch.pentair_waterfall', 'name': 'Waterfall'}, {'entity': 'switch.workshop_lights', 'name': 'Shop Lights'}, {'entity': 'lock.workshop_deadbolt', 'name': 'Shop Lock'}], 'title': 'Backyard'}, {'type': 'cardThermo', 'title': 'Pool Heater', 'entity': 'climate.pool_heater', 'supportedModes': ['heat', 'off']}, {'type': 'cardQR', 'title': 'Guest Wifi', 'qrCode': 'WIFI:S:APICAL-Guest;T:WPA;P:eTgLGZ445Ok68f;;', 'entities': [{'entity': 'iText.APICAL-Guest', 'name': 'SSID', 'icon': 'mdi:wifi'}, {'entity': 'iText.eTgLGZ445Ok68f', 'name': 'Password', 'icon': 'mdi:key'}]}, {'type': 'cardAlarm', 'title': 'Alarm Keypad', 'entity': 'alarm_control_panel.alarmo'}], 'screensaver': {'type': 'screensaver', 'entity': 'sensor.weather_forecast_daily', 'weatherUnit': 'celsius', 'forecastSkip': 0, 'weatherOverrideForecast1': None, 'weatherOverrideForecast2': None, 'weatherOverrideForecast3': None, 'weatherOverrideForecast4': None, 'doubleTapToUnlock': True, 'alternativeLayout': False, 'defaultCard': None, 'key': 'screensaver'}, 'hiddenCards': []} 2024-05-08 10:34:47.503820 INFO nspanel-1: Sending MQTT Message: pageType~pageStartup 2024-05-08 10:34:47.507923 INFO nspanel-1: gtest123: ['binary_sensor.exterior_sensors', 'input_boolean.do_not_disturb', 'sensor.boiler_controller_return_temperature', 'sensor.emoncms_mains_total', 'sensor.emoncms_mains_daily_energy', 'sensor.emoncms_ev_charger', 'sensor.emoncms_ev_charger_daily_energy', 'sensor.emoncms_air_conditioner', 'light.pentair_deck_light', 'light.pentair_pool_light', 'switch.pentair_waterfall', 'switch.workshop_lights', 'lock.workshop_deadbolt', 'climate.pool_heater', 'iText.APICAL-Guest', 'iText.eTgLGZ445Ok68f', 'alarm_control_panel.alarmo', 'sensor.weather_forecast_daily'] 2024-05-08 10:34:47.508851 INFO nspanel-1: Registering callbacks for the following items: ['binary_sensor.exterior_sensors', 'input_boolean.do_not_disturb', 'sensor.boiler_controller_return_temperature', 'sensor.emoncms_mains_total', 'sensor.emoncms_mains_daily_energy', 'sensor.emoncms_ev_charger', 'sensor.emoncms_ev_charger_daily_energy', 'sensor.emoncms_air_conditioner', 'light.pentair_deck_light', 'light.pentair_pool_light', 'switch.pentair_waterfall', 'switch.workshop_lights', 'lock.workshop_deadbolt', 'climate.pool_heater', 'alarm_control_panel.alarmo', 'sensor.weather_forecast_daily'] 2024-05-08 10:34:47.520434 INFO MQTT: Topic nspanel/tele/RESULT already subscribed to 2024-05-08 10:34:47.522349 INFO nspanel-1: Started (v4.3.1) 2024-05-08 10:34:47.641073 INFO nspanel-1: MQTT callback for: {'topic': 'nspanel/tele/RESULT', 'wildcard': None, 'payload': '{"nlui_driver_version":999}'} 2024-05-08 10:34:47.644724 INFO nspanel-1: Update Pre-Check failed Tasmota Driver Version: 999 Panel Version: None 2024-05-08 10:34:48.083583 INFO nspanel-1: MQTT callback for: {'topic': 'nspanel/tele/RESULT', 'wildcard': None, 'payload': '{"CustomRecv":"event,startup,53,us-p"}'} 2024-05-08 10:34:48.086327 INFO nspanel-1: Received Message from Screen: event,startup,53,us-p 2024-05-08 10:34:48.089106 INFO nspanel-1: Sending MQTT Message: X 2024-05-08 10:34:48.095707 INFO nspanel-1: Update Pre-Check failed Tasmota Driver Version: None Panel Version: 53 2024-05-08 10:34:48.098715 INFO nspanel-1: Startup Event 2024-05-08 10:34:48.116456 INFO nspanel-1: Sending MQTT Message: time~10:34~ 2024-05-08 10:34:48.135200 INFO nspanel-1: Sending MQTT Message: date~Wednesday, 08. May 2024 2024-05-08 10:34:48.139851 INFO nspanel-1: Sending MQTT Message: dimmode~0~100~6371~~0 2024-05-08 10:34:48.144169 INFO nspanel-1: Sending MQTT Message: pageType~screensaver 2024-05-08 10:34:48.147111 INFO nspanel-1: Sending MQTT Message: timeout~30 2024-05-08 10:34:48.163666 INFO nspanel-1: Sending MQTT Message: weatherUpdate~���~17299~Weather Forecast Daily~sunn ~���~17299~Weather Forecast Daily~sunn ~���~17299~Weather Forecast Daily~sunn ~���~17299~Weather Forecast Daily~sunn ~~~���~17299~Weather Forecast Daily~sunn 2024-05-08 10:34:48.166419 INFO nspanel-1: Sending MQTT Message: statusUpdate~~ 2024-05-08 10:34:48.250757 INFO nspanel-1: MQTT callback for: {'topic': 'nspanel/tele/RESULT', 'wildcard': None, 'payload': '{"nlui_driver_version":999}'} 2024-05-08 10:34:48.253645 INFO nspanel-1: Update Pre-Check sucessful Tasmota Driver Version: 999 Panel Version: 53 2024-05-08 10:35:00.533367 INFO nspanel-1: Sending MQTT Message: time~10:35~ 2024-05-08 10:36:00.521851 INFO nspanel-1: Sending MQTT Message: time~10:36~ 2024-05-08 10:37:00.535699 INFO nspanel-1: Sending MQTT Message: time~10:37~ 2024-05-08 10:38:00.537940 INFO nspanel-1: Sending MQTT Message: time~10:38~ 2024-05-08 10:39:00.538158 INFO nspanel-1: Sending MQTT Message: time~10:39~ 2024-05-08 10:40:00.537353 INFO nspanel-1: Sending MQTT Message: time~10:40~ 2024-05-08 10:41:00.537298 INFO nspanel-1: Sending MQTT Message: time~10:41~ 2024-05-08 10:42:00.521446 INFO nspanel-1: Sending MQTT Message: time~10:42~ 2024-05-08 10:43:00.538669 INFO nspanel-1: Sending MQTT Message: time~10:43~ 2024-05-08 10:44:00.538135 INFO nspanel-1: Sending MQTT Message: time~10:44~ 2024-05-08 10:45:00.520081 INFO nspanel-1: Sending MQTT Message: time~10:45~ 2024-05-08 10:46:00.535019 INFO nspanel-1: Sending MQTT Message: time~10:46~ 2024-05-08 10:47:00.540587 INFO nspanel-1: Sending MQTT Message: time~10:47~ 2024-05-08 10:48:00.538858 INFO nspanel-1: Sending MQTT Message: time~10:48~ 2024-05-08 10:49:00.521289 INFO nspanel-1: Sending MQTT Message: time~10:49~ 2024-05-08 10:50:00.516532 INFO nspanel-1: Sending MQTT Message: time~10:50~ 2024-05-08 10:51:00.549686 INFO nspanel-1: Sending MQTT Message: time~10:51~ 2024-05-08 10:52:00.533269 INFO nspanel-1: Sending MQTT Message: time~10:52~ 2024-05-08 10:53:00.537462 INFO nspanel-1: Sending MQTT Message: time~10:53~ 2024-05-08 10:54:00.540707 INFO nspanel-1: Sending MQTT Message: time~10:54~ 2024-05-08 10:55:00.533609 INFO nspanel-1: Sending MQTT Message: time~10:55~ 2024-05-08 10:56:00.541532 INFO nspanel-1: Sending MQTT Message: time~10:56~ 2024-05-08 10:57:00.539660 INFO nspanel-1: Sending MQTT Message: time~10:57~ 2024-05-08 10:58:00.540134 INFO nspanel-1: Sending MQTT Message: time~10:58~ 2024-05-08 10:59:00.540538 INFO nspanel-1: Sending MQTT Message: time~10:59~ 2024-05-08 11:00:00.541875 INFO nspanel-1: Sending MQTT Message: time~11:00~ 2024-05-08 11:00:00.570135 INFO nspanel-1: Sending MQTT Message: date~Wednesday, 08. May 2024 2024-05-08 11:01:00.538634 INFO nspanel-1: Sending MQTT Message: time~11:01~ 2024-05-08 11:02:00.539222 INFO nspanel-1: Sending MQTT Message: time~11:02~ 2024-05-08 11:03:00.539708 INFO nspanel-1: Sending MQTT Message: time~11:03~ 2024-05-08 11:04:00.540390 INFO nspanel-1: Sending MQTT Message: time~11:04~ 2024-05-08 11:04:53.937352 INFO nspanel-1: MQTT callback for: {'topic': 'nspanel/tele/RESULT', 'wildcard': None, 'payload': '{"CustomRecv":"event,buttonPress2,screensaver,bExit,1"}'} 2024-05-08 11:04:53.946699 INFO nspanel-1: Received Message from Screen: event,buttonPress2,screensaver,bExit,1 2024-05-08 11:04:53.952028 INFO nspanel-1: Button Press Event; entity_id: screensaver; button_type: bExit; value: 1 2024-05-08 11:05:00.538110 INFO nspanel-1: Sending MQTT Message: time~11:05~ 2024-05-08 11:06:00.534621 INFO nspanel-1: Sending MQTT Message: time~11:06~ 2024-05-08 11:07:00.533773 INFO nspanel-1: Sending MQTT Message: time~11:07~ 2024-05-08 11:08:00.535148 INFO nspanel-1: Sending MQTT Message: time~11:08~ 2024-05-08 11:09:00.540205 INFO nspanel-1: Sending MQTT Message: time~11:09~ 2024-05-08 11:10:00.522875 INFO nspanel-1: Sending MQTT Message: time~11:10~ 2024-05-08 11:11:00.535878 INFO nspanel-1: Sending MQTT Message: time~11:11~ 2024-05-08 11:12:00.520229 INFO nspanel-1: Sending MQTT Message: time~11:12~ 2024-05-08 11:13:00.518811 INFO nspanel-1: Sending MQTT Message: time~11:13~ 2024-05-08 11:14:00.541775 INFO nspanel-1: Sending MQTT Message: time~11:14~ 2024-05-08 11:15:00.523053 INFO nspanel-1: Sending MQTT Message: time~11:15~



### TO REPRODUCE
_Steps to reproduce the behavior:_
No specific steps required. Issue is persistent after upgrade to HA 2024.4

### EXPECTED BEHAVIOUR
_A clear and concise description of what you expected to happen._
NSPanel screensaver weather entity should display icons appropriate to each forecast state

### SCREENSHOTS
_If applicable, add screenshots/pictures to help explain your problem._
(photo of NSPanel attached)
![IMG_1387](https://github.com/joBr99/nspanel-lovelace-ui/assets/17909679/9272550d-8d67-4d8a-9882-da190ad7e735)

### ADDITIONAL CONTEXT
_Add any other context about the problem here._
_Please note here in case you are using ioBroker_

### PANEL / FIRMWARE VERSION
_Please add the Panel/Firmware Version you are using (EU, US-L or US-P)_
US-P
Ambrotos commented 1 month ago

I should also clarify that I've tried multiple variations on the screensaver config, such as something similar to the config in the workaround example yaml: ` screensaver: doubleTapToUnlock: True entities:

...no difference. Entities associated with the templated forecast entity are always missing their icons.

joBr99 commented 1 month ago

You need to upgrade your backend to version https://github.com/joBr99/nspanel-lovelace-ui/releases/tag/v4.4.0

Please double check that appdaemon is using the content downloaded by HACS: https://github.com/joBr99/nspanel-lovelace-ui/issues/1029

If you do not have app_dir configured you would need to copy the files downloaded by hacs to the appdaemon folder.

Ambrotos commented 1 month ago

I was already running 4.4.0, but I had not yet moved my apps.yaml file from addon_configs back to the original location. Moving the yaml and redownloading nspanel_lovelace_ui from HACS seems to have solved my problem.

Thanks for your help.