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
870 stars 189 forks source link

[BUG] Weather not displaying in Screensaver after 3.9.3 update. #729

Closed mmaritz closed 1 year ago

mmaritz commented 1 year ago

PROBLEM DESCRIPTION

A clear and concise description of what the problem is. Weather not displaying in Screensaver after 3.9.3 update.

REQUESTED INFORMATION

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

tTimeAdd: >

timeAdditionalTemplate: >
    {%if state_attr('sensor.eskomsepush','events')|count > 0 %}
    {{ iif(states("binary_sensor.calendar_loadshedding_active")=="on","Now",as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime('%a')) }}: {{ state_attr("sensor.eskomsepush","events")[0].note }}, {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime('%H:%M') }} - {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].end).strftime('%H:%M') }}
    {%else%}
    -
    {%endif%}

Show the next available loadshedding

dateAdditionalTemplate: >

{%if state_attr('sensor.eskomsepush','events')|count > 1 %}

{{ as_datetime(state_attr("sensor.eskomsepush","events")[1].start).strftime('%a') }}: {{ state_attr("sensor.eskomsepush","events")[1].note }}, {{ as_datetime(state_attr("sensor.eskomsepush","events")[1].start).strftime('%H:%M') }} - {{ as_datetime(state_attr("sensor.eskomsepush","events")[1].end).strftime('%H:%M') }}

{%else%}

{{ as_datetime(states.sensor.date.state).strftime('%a, %d %b') }}

{%endif%}

screensaver:
    entity: weather.mm_pi4_8gb

theme: true

    theme:
      time: [65,105,225]
      date: [220,255,0]
      tMainText: [220,255,0]

    show_forecast: true
    alternativeLayout: true
    autoWeather: true

statusIcon1: true

statusIcon1:

entity: sensor.grid_status

name: Eskom

statusIcon2:

entity: sensor.victron_battery_soc

    weatherOverrideForecast3:
      entity: sensor.victron_battery_soc
      name: SOC
      icon: #mdi-battery 

When Eskom is not available, shade color from red --> green based on battery %, otherwise just white

    tTimeAdd: >
        {%if(states("calendar.loadshedding_local_events") == "on") %}
           {%if(states("sensor.grid_status")=="GRID OFF") %}
                [0,255,0]
            {%else%}
                [255,255,0]
            {%endif%}
        {%else%}
            {%if(states("sensor.grid_status")=="GRID OFF") %}
                [255,255,255]
            {%else%}
                [255,0,0]
            {%endif%}        
        {%endif%}

When LS is active but Eskom is available, green

When LS is active but Eskom is out, yellow

When LS is inactive and Eskom is available, white

When LS is inactive and Eskom is not available, red

tF3Icon: >

{%if(states("binary_sensor.power_outage")=="off") %}

[180,180,180]

{%else%}

{{state_attr("light.gateway_light_7811dcb22c2b","rgb_color")}}

{%endif%}'

cards:
  - type: cardGrid
    title: PV System Info
    entities:
      - entity: sensor.victron_battery_soc
        name: SOC (%)
        color:  '{{iif(states("sensor.victron_battery_soc")=="70", "[0,140,0]", "[0,140,0]")}}'
      - entity: sensor.victron_battery_current
        name: Battery (A)
      - entity: sensor.victron_battery_temperature
        name: Battery (°C)
        color: '{{iif(states("sensor.victron_battery_soc")=="70", "[180,0,0]", "[180,0,0]")}}'
      - entity: sensor.pv_watts
        name: PV (W)
      - entity: sensor.victron_system_grid_l1
        name: Grid (W)
        color: '{{iif(states("sensor.victron_battery_soc")<"0", "[0,140,0]", "[0,140,0]")}}'
      - entity: sensor.victron_tank_level_29
        name: Tank Level (%)

  - type: cardGrid
    title: Weather
    entities:
      - entity: sensor.pws_temp
        name: Temperature
      - entity: sensor.pws_hum
        name: Humidity

  - type: cardEntities
    title: Set SOC
    entities:
      - entity: sensor.victron_battery_soc
        name: SOC
      - entity: number.victron_settings_ess_batterylife_minimumsoc
        name: Set SOC (%)
- [ ] 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: 2023-01-30 20:00:12.098420 INFO AppDaemon: App 'nspanel' changed 2023-01-30 20:00:12.103165 INFO AppDaemon: Found 1 total apps 2023-01-30 20:00:12.133866 INFO AppDaemon: Terminating nspanel 2023-01-30 20:00:12.139230 INFO AppDaemon: Initializing app nspanel using class NsPanelLovelaceUIManager from module nspanel-lovelace-ui 2023-01-30 20:00:12.158979 INFO nspanel: Starting 2023-01-30 20:00:12.167033 INFO nspanel: Input config: {'panelRecvTopic': 'tele/nspanel/RESULT', 'panelSendTopic': 'cmnd/nspanel/CustomSend', 'locale': 'en_US', 'model': 'us-l', 'sleepTimeout': 60, 'sleepBrightness': [{'time': '6:00:00', 'value': 10}, {'time': '22:00:00', 'value': 3}], 'dateFormatBabel': '', 'timeAdditionalTemplate': '{%if state_attr(\'sensor.eskomsepush\',\'events\')|count > 0 %} {{ iif(states("binary_sensor.calendar_loadshedding_active")=="on","Now",as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%a\')) }}: {{ state_attr("sensor.eskomsepush","events")[0].note }}, {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%H:%M\') }} - {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].end).strftime(\'%H:%M\') }} {%else%} - {%endif%}\n', 'screensaver': None, 'theme': {'time': [65, 105, 225], 'date': [220, 255, 0], 'tMainText': [220, 255, 0], 'tTimeAdd': '{%if(states("calendar.loadshedding_local_events") == "on") %}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [0,255,0]\n {%else%}\n [255,255,0]\n {%endif%}\n{%else%}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [255,255,255]\n {%else%}\n [255,0,0]\n {%endif%} \n{%endif%}\n'}, 'cards': [{'type': 'cardGrid', 'title': 'PV System Info', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC (%)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_battery_current', 'name': 'Battery (A)'}, {'entity': 'sensor.victron_battery_temperature', 'name': 'Battery (°C)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[180,0,0]", "[180,0,0]")}}'}, {'entity': 'sensor.pv_watts', 'name': 'PV (W)'}, {'entity': 'sensor.victron_system_grid_l1', 'name': 'Grid (W)', 'color': '{{iif(states("sensor.victron_battery_soc")<"0", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_tank_level_29', 'name': 'Tank Level (%)'}]}, {'type': 'cardGrid', 'title': 'Weather', 'entities': [{'entity': 'sensor.pws_temp', 'name': 'Temperature'}, {'entity': 'sensor.pws_hum', 'name': 'Humidity'}]}, {'type': 'cardEntities', 'title': 'Set SOC', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC'}, {'entity': 'number.victron_settings_ess_batterylife_minimumsoc', 'name': 'Set SOC (%)'}]}]} 2023-01-30 20:00:12.169629 WARNING nspanel: ------------------------------------------------------------ 2023-01-30 20:00:12.171493 WARNING nspanel: Unexpected error running initialize() for nspanel 2023-01-30 20:00:12.172766 WARNING nspanel: ------------------------------------------------------------ 2023-01-30 20:00:12.174593 WARNING nspanel: Traceback (most recent call last): File "/usr/lib/python3.10/site-packages/appdaemon/app_management.py", line 165, in initialize_app await utils.run_in_executor(self, init) File "/usr/lib/python3.10/site-packages/appdaemon/utils.py", line 337, in run_in_executor response = future.result() File "/usr/lib/python3.10/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "/config/appdaemon/apps/nspanel-lovelace-ui/nspanel-lovelace-ui.py", line 17, in initialize cfg = self._cfg = LuiBackendConfig(self, self.args["config"]) File "/config/appdaemon/apps/nspanel-lovelace-ui/luibackend/config.py", line 155, in init } File "/config/appdaemon/apps/nspanel-lovelace-ui/luibackend/config.py", line 159, in load def load(self, inconfig): File "/config/appdaemon/apps/nspanel-lovelace-ui/luibackend/config.py", line 86, in dict_recursive_update for sk, sv in source.items(): File "/config/appdaemon/apps/nspanel-lovelace-ui/luibackend/config.py", line 84, in dict_recursive_update AttributeError: 'NoneType' object has no attribute 'items' 2023-01-30 20:00:12.177073 WARNING nspanel: ------------------------------------------------------------ 2023-01-30 20:03:48.897546 INFO AppDaemon: Reading config 2023-01-30 20:03:48.945828 INFO AppDaemon: /config/appdaemon/apps/apps.yaml added or modified 2023-01-30 20:03:48.946554 INFO AppDaemon: App 'nspanel' changed 2023-01-30 20:03:48.949957 INFO AppDaemon: Found 1 total apps 2023-01-30 20:03:48.970667 INFO AppDaemon: Terminating nspanel 2023-01-30 20:03:48.974065 INFO AppDaemon: Initializing app nspanel using class NsPanelLovelaceUIManager from module nspanel-lovelace-ui 2023-01-30 20:03:48.985431 INFO nspanel: Starting 2023-01-30 20:03:48.993557 INFO nspanel: Input config: {'panelRecvTopic': 'tele/nspanel/RESULT', 'panelSendTopic': 'cmnd/nspanel/CustomSend', 'locale': 'en_US', 'model': 'us-l', 'sleepTimeout': 60, 'sleepBrightness': [{'time': '6:00:00', 'value': 10}, {'time': '22:00:00', 'value': 3}], 'dateFormatBabel': '', 'timeAdditionalTemplate': '{%if state_attr(\'sensor.eskomsepush\',\'events\')|count > 0 %} {{ iif(states("binary_sensor.calendar_loadshedding_active")=="on","Now",as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%a\')) }}: {{ state_attr("sensor.eskomsepush","events")[0].note }}, {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%H:%M\') }} - {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].end).strftime(\'%H:%M\') }} {%else%} - {%endif%}\n', 'screensaver': {'theme': {'time': [65, 105, 225], 'date': [220, 255, 0], 'tMainText': [220, 255, 0]}, 'tTimeAdd': '{%if(states("calendar.loadshedding_local_events") == "on") %}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [0,255,0]\n {%else%}\n [255,255,0]\n {%endif%}\n{%else%}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [255,255,255]\n {%else%}\n [255,0,0]\n {%endif%} \n{%endif%}\n'}, 'cards': [{'type': 'cardGrid', 'title': 'PV System Info', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC (%)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_battery_current', 'name': 'Battery (A)'}, {'entity': 'sensor.victron_battery_temperature', 'name': 'Battery (°C)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[180,0,0]", "[180,0,0]")}}'}, {'entity': 'sensor.pv_watts', 'name': 'PV (W)'}, {'entity': 'sensor.victron_system_grid_l1', 'name': 'Grid (W)', 'color': '{{iif(states("sensor.victron_battery_soc")<"0", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_tank_level_29', 'name': 'Tank Level (%)'}]}, {'type': 'cardGrid', 'title': 'Weather', 'entities': [{'entity': 'sensor.pws_temp', 'name': 'Temperature'}, {'entity': 'sensor.pws_hum', 'name': 'Humidity'}]}, {'type': 'cardEntities', 'title': 'Set SOC', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC'}, {'entity': 'number.victron_settings_ess_batterylife_minimumsoc', 'name': 'Set SOC (%)'}]}]} 2023-01-30 20:03:48.999660 INFO nspanel: Loaded config: {'panelRecvTopic': 'tele/nspanel/RESULT', 'panelSendTopic': 'cmnd/nspanel/CustomSend', 'updateMode': 'auto-notify', 'model': 'us-l', 'sleepTimeout': 60, 'sleepBrightness': [{'time': '6:00:00', 'value': 10}, {'time': '22:00:00', 'value': 3}], 'screenBrightness': 100, 'defaultBackgroundColor': 'ha-dark', 'sleepTracking': None, 'sleepTrackingZones': ['not_home', 'off'], 'sleepOverride': None, 'locale': 'en_US', 'timeFormat': '%H:%M', 'dateFormatBabel': '', 'dateAdditionalTemplate': '', 'timeAdditionalTemplate': '{%if state_attr(\'sensor.eskomsepush\',\'events\')|count > 0 %} {{ iif(states("binary_sensor.calendar_loadshedding_active")=="on","Now",as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%a\')) }}: {{ state_attr("sensor.eskomsepush","events")[0].note }}, {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%H:%M\') }} - {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].end).strftime(\'%H:%M\') }} {%else%} - {%endif%}\n', 'dateFormat': '%A, %d. %B %Y', 'homeButton': False, 'cards': [{'type': 'cardGrid', 'title': 'PV System Info', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC (%)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_battery_current', 'name': 'Battery (A)'}, {'entity': 'sensor.victron_battery_temperature', 'name': 'Battery (°C)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[180,0,0]", "[180,0,0]")}}'}, {'entity': 'sensor.pv_watts', 'name': 'PV (W)'}, {'entity': 'sensor.victron_system_grid_l1', 'name': 'Grid (W)', 'color': '{{iif(states("sensor.victron_battery_soc")<"0", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_tank_level_29', 'name': 'Tank Level (%)'}]}, {'type': 'cardGrid', 'title': 'Weather', 'entities': [{'entity': 'sensor.pws_temp', 'name': 'Temperature'}, {'entity': 'sensor.pws_hum', 'name': 'Humidity'}]}, {'type': 'cardEntities', 'title': 'Set SOC', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC'}, {'entity': 'number.victron_settings_ess_batterylife_minimumsoc', 'name': 'Set SOC (%)'}]}], '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', 'theme': {'time': [65, 105, 225], 'date': [220, 255, 0], 'tMainText': [220, 255, 0]}, 'tTimeAdd': '{%if(states("calendar.loadshedding_local_events") == "on") %}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [0,255,0]\n {%else%}\n [255,255,0]\n {%endif%}\n{%else%}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [255,255,255]\n {%else%}\n [255,0,0]\n {%endif%} \n{%endif%}\n'}, 'hiddenCards': []} 2023-01-30 20:03:49.009339 INFO nspanel: Sending MQTT Message: pageType~pageStartup 2023-01-30 20:03:49.030428 INFO nspanel: Registering callbacks for the following items: ['sensor.victron_battery_soc', 'sensor.victron_battery_current', 'sensor.victron_battery_temperature', 'sensor.pv_watts', 'sensor.victron_system_grid_l1', 'sensor.victron_tank_level_29', 'sensor.pws_temp', 'sensor.pws_hum', 'sensor.victron_battery_soc', 'number.victron_settings_ess_batterylife_minimumsoc', 'weather.example'] 2023-01-30 20:03:49.058401 INFO MQTT: Topic tele/nspanel/RESULT already subscribed to 2023-01-30 20:03:49.064986 INFO nspanel: Started 2023-01-30 20:03:49.500638 INFO nspanel: MQTT callback for: {'topic': 'tele/nspanel/RESULT', 'wildcard': None, 'payload': '{"nlui_driver_version":"8"}'} 2023-01-30 20:03:49.508527 INFO nspanel: Update Pre-Check failed Tasmota Driver Version: 8 Panel Version: None 2023-01-30 20:03:49.532227 INFO nspanel: MQTT callback for: {'topic': 'tele/nspanel/RESULT', 'wildcard': None, 'payload': '{"CustomRecv":"event,startup,49,us-l"}'} 2023-01-30 20:03:49.535608 INFO nspanel: Received Message from Screen: event,startup,49,us-l 2023-01-30 20:03:49.540666 INFO nspanel: Sending MQTT Message: X 2023-01-30 20:03:49.548602 INFO nspanel: Update Pre-Check failed Tasmota Driver Version: None Panel Version: 49 2023-01-30 20:03:49.553827 INFO nspanel: Startup Event 2023-01-30 20:03:49.609594 WARNING HASS: Error calling Home Assistant service default/template/render 2023-01-30 20:03:49.611077 WARNING HASS: Code: 400, error: {"message":"Error rendering template: TypeError: object of type 'NoneType' has no len()"} 2023-01-30 20:03:49.617857 INFO nspanel: Sending MQTT Message: time~20:03~None 2023-01-30 20:03:49.652895 INFO nspanel: Sending MQTT Message: date~Monday, 30. January 2023 2023-01-30 20:03:49.660465 INFO nspanel: Sending MQTT Message: timeout~60 2023-01-30 20:03:49.668581 INFO nspanel: Sending MQTT Message: dimmode~10~100~6371 2023-01-30 20:03:49.678249 INFO nspanel: Sending MQTT Message: pageType~screensaver 2023-01-30 20:03:49.683055 INFO nspanel: Skipping Weather Update, entity weather.example not found 2023-01-30 20:03:49.847417 INFO nspanel: MQTT callback for: {'topic': 'tele/nspanel/RESULT', 'wildcard': None, 'payload': '{"nlui_driver_version":"8"}'} 2023-01-30 20:03:49.851506 INFO nspanel: Update Pre-Check sucessful Tasmota Driver Version: 8 Panel Version: 49 2023-01-30 20:04:00.066591 WARNING HASS: Error calling Home Assistant service default/template/render 2023-01-30 20:04:00.067524 WARNING HASS: Code: 400, error: {"message":"Error rendering template: TypeError: object of type 'NoneType' has no len()"} 2023-01-30 20:04:00.073375 INFO nspanel: Sending MQTT Message: time~20:04~None 2023-01-30 20:04:59.350053 INFO AppDaemon: Reading config 2023-01-30 20:04:59.401377 INFO AppDaemon: /config/appdaemon/apps/apps.yaml added or modified 2023-01-30 20:04:59.402000 INFO AppDaemon: App 'nspanel' changed 2023-01-30 20:04:59.404975 INFO AppDaemon: Found 1 total apps 2023-01-30 20:04:59.427547 INFO AppDaemon: Terminating nspanel 2023-01-30 20:04:59.431588 INFO AppDaemon: Initializing app nspanel using class NsPanelLovelaceUIManager from module nspanel-lovelace-ui 2023-01-30 20:04:59.445302 INFO nspanel: Starting 2023-01-30 20:04:59.453443 INFO nspanel: Input config: {'panelRecvTopic': 'tele/nspanel/RESULT', 'panelSendTopic': 'cmnd/nspanel/CustomSend', 'locale': 'en_US', 'model': 'us-l', 'sleepTimeout': 60, 'sleepBrightness': [{'time': '6:00:00', 'value': 10}, {'time': '22:00:00', 'value': 3}], 'dateFormatBabel': '', 'timeAdditionalTemplate': '{%if state_attr(\'sensor.eskomsepush\',\'events\')|count > 0 %} {{ iif(states("binary_sensor.calendar_loadshedding_active")=="on","Now",as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%a\')) }}: {{ state_attr("sensor.eskomsepush","events")[0].note }}, {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%H:%M\') }} - {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].end).strftime(\'%H:%M\') }} {%else%} - {%endif%}\n', 'screensaver': {'entity': 'weather.mm_pi4_8gb', 'theme': {'time': [65, 105, 225], 'date': [220, 255, 0], 'tMainText': [220, 255, 0]}, 'show_forecast': True, 'alternativeLayout': True, 'autoWeather': True, 'weatherOverrideForecast3': {'entity': 'sensor.victron_battery_soc', 'name': 'SOC', 'icon': None}, 'tTimeAdd': '{%if(states("calendar.loadshedding_local_events") == "on") %}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [0,255,0]\n {%else%}\n [255,255,0]\n {%endif%}\n{%else%}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [255,255,255]\n {%else%}\n [255,0,0]\n {%endif%} \n{%endif%}\n'}, 'cards': [{'type': 'cardGrid', 'title': 'PV System Info', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC (%)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_battery_current', 'name': 'Battery (A)'}, {'entity': 'sensor.victron_battery_temperature', 'name': 'Battery (°C)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[180,0,0]", "[180,0,0]")}}'}, {'entity': 'sensor.pv_watts', 'name': 'PV (W)'}, {'entity': 'sensor.victron_system_grid_l1', 'name': 'Grid (W)', 'color': '{{iif(states("sensor.victron_battery_soc")<"0", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_tank_level_29', 'name': 'Tank Level (%)'}]}, {'type': 'cardGrid', 'title': 'Weather', 'entities': [{'entity': 'sensor.pws_temp', 'name': 'Temperature'}, {'entity': 'sensor.pws_hum', 'name': 'Humidity'}]}, {'type': 'cardEntities', 'title': 'Set SOC', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC'}, {'entity': 'number.victron_settings_ess_batterylife_minimumsoc', 'name': 'Set SOC (%)'}]}]} 2023-01-30 20:04:59.460380 INFO nspanel: Loaded config: {'panelRecvTopic': 'tele/nspanel/RESULT', 'panelSendTopic': 'cmnd/nspanel/CustomSend', 'updateMode': 'auto-notify', 'model': 'us-l', 'sleepTimeout': 60, 'sleepBrightness': [{'time': '6:00:00', 'value': 10}, {'time': '22:00:00', 'value': 3}], 'screenBrightness': 100, 'defaultBackgroundColor': 'ha-dark', 'sleepTracking': None, 'sleepTrackingZones': ['not_home', 'off'], 'sleepOverride': None, 'locale': 'en_US', 'timeFormat': '%H:%M', 'dateFormatBabel': '', 'dateAdditionalTemplate': '', 'timeAdditionalTemplate': '{%if state_attr(\'sensor.eskomsepush\',\'events\')|count > 0 %} {{ iif(states("binary_sensor.calendar_loadshedding_active")=="on","Now",as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%a\')) }}: {{ state_attr("sensor.eskomsepush","events")[0].note }}, {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%H:%M\') }} - {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].end).strftime(\'%H:%M\') }} {%else%} - {%endif%}\n', 'dateFormat': '%A, %d. %B %Y', 'homeButton': False, 'cards': [{'type': 'cardGrid', 'title': 'PV System Info', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC (%)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_battery_current', 'name': 'Battery (A)'}, {'entity': 'sensor.victron_battery_temperature', 'name': 'Battery (°C)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[180,0,0]", "[180,0,0]")}}'}, {'entity': 'sensor.pv_watts', 'name': 'PV (W)'}, {'entity': 'sensor.victron_system_grid_l1', 'name': 'Grid (W)', 'color': '{{iif(states("sensor.victron_battery_soc")<"0", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_tank_level_29', 'name': 'Tank Level (%)'}]}, {'type': 'cardGrid', 'title': 'Weather', 'entities': [{'entity': 'sensor.pws_temp', 'name': 'Temperature'}, {'entity': 'sensor.pws_hum', 'name': 'Humidity'}]}, {'type': 'cardEntities', 'title': 'Set SOC', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC'}, {'entity': 'number.victron_settings_ess_batterylife_minimumsoc', 'name': 'Set SOC (%)'}]}], 'screensaver': {'type': 'screensaver', 'entity': 'weather.mm_pi4_8gb', 'weatherUnit': 'celsius', 'forecastSkip': 0, 'weatherOverrideForecast1': None, 'weatherOverrideForecast2': None, 'weatherOverrideForecast3': {'entity': 'sensor.victron_battery_soc', 'name': 'SOC', 'icon': None}, 'weatherOverrideForecast4': None, 'doubleTapToUnlock': False, 'alternativeLayout': True, 'defaultCard': None, 'key': 'screensaver', 'theme': {'time': [65, 105, 225], 'date': [220, 255, 0], 'tMainText': [220, 255, 0]}, 'show_forecast': True, 'autoWeather': True, 'tTimeAdd': '{%if(states("calendar.loadshedding_local_events") == "on") %}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [0,255,0]\n {%else%}\n [255,255,0]\n {%endif%}\n{%else%}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [255,255,255]\n {%else%}\n [255,0,0]\n {%endif%} \n{%endif%}\n'}, 'hiddenCards': []} 2023-01-30 20:04:59.472069 INFO nspanel: Sending MQTT Message: pageType~pageStartup 2023-01-30 20:04:59.495603 INFO nspanel: Registering callbacks for the following items: ['sensor.victron_battery_soc', 'sensor.victron_battery_current', 'sensor.victron_battery_temperature', 'sensor.pv_watts', 'sensor.victron_system_grid_l1', 'sensor.victron_tank_level_29', 'sensor.pws_temp', 'sensor.pws_hum', 'sensor.victron_battery_soc', 'number.victron_settings_ess_batterylife_minimumsoc', 'weather.mm_pi4_8gb', 'sensor.victron_battery_soc'] 2023-01-30 20:04:59.556720 INFO MQTT: Topic tele/nspanel/RESULT already subscribed to 2023-01-30 20:04:59.564071 INFO nspanel: Started 2023-01-30 20:05:00.020736 INFO nspanel: MQTT callback for: {'topic': 'tele/nspanel/RESULT', 'wildcard': None, 'payload': '{"CustomRecv":"event,startup,49,us-l"}'} 2023-01-30 20:05:00.025044 INFO nspanel: Received Message from Screen: event,startup,49,us-l 2023-01-30 20:05:00.030221 INFO nspanel: Sending MQTT Message: X 2023-01-30 20:05:00.040209 INFO nspanel: Update Pre-Check failed Tasmota Driver Version: None Panel Version: 49 2023-01-30 20:05:00.044678 INFO nspanel: Startup Event 2023-01-30 20:05:00.102949 WARNING HASS: Error calling Home Assistant service default/template/render 2023-01-30 20:05:00.103692 WARNING HASS: Code: 400, error: {"message":"Error rendering template: TypeError: object of type 'NoneType' has no len()"} 2023-01-30 20:05:00.110160 INFO nspanel: Sending MQTT Message: time~20:05~None 2023-01-30 20:05:00.149379 INFO nspanel: Sending MQTT Message: date~Monday, 30. January 2023 2023-01-30 20:05:00.157520 INFO nspanel: Sending MQTT Message: timeout~60 2023-01-30 20:05:00.169712 INFO nspanel: Sending MQTT Message: dimmode~10~100~6371 2023-01-30 20:05:00.177433 INFO nspanel: Sending MQTT Message: pageType~screensaver 2023-01-30 20:05:00.216709 INFO nspanel: Forecast 3 is overriden with {'entity': 'sensor.victron_battery_soc', 'name': 'SOC', 'icon': None} 2023-01-30 20:05:00.236094 INFO nspanel: Sending MQTT Message: weatherUpdate~���~22.3��C~Mon~���~23.1��C~Tue~���~26.8��C~SOC~���~80.0 %~Thu~���~25.9��C~���~76 %~~ 2023-01-30 20:05:00.249670 INFO nspanel: Sending MQTT Message: color~0~17244~65535~57312~65535~57312~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535 2023-01-30 20:05:00.299723 WARNING HASS: Error calling Home Assistant service default/template/render 2023-01-30 20:05:00.300957 WARNING HASS: Code: 400, error: {"message":"Error rendering template: TypeError: object of type 'NoneType' has no len()"} 2023-01-30 20:05:00.307363 INFO nspanel: Sending MQTT Message: time~20:05~None 2023-01-30 20:05:00.333634 INFO nspanel: MQTT callback for: {'topic': 'tele/nspanel/RESULT', 'wildcard': None, 'payload': '{"nlui_driver_version":"8"}'} 2023-01-30 20:05:00.337445 INFO nspanel: Update Pre-Check sucessful Tasmota Driver Version: 8 Panel Version: 49 2023-01-30 20:06:00.076108 WARNING HASS: Error calling Home Assistant service default/template/render 2023-01-30 20:06:00.077109 WARNING HASS: Code: 400, error: {"message":"Error rendering template: TypeError: object of type 'NoneType' has no len()"} 2023-01-30 20:06:00.082574 INFO nspanel: Sending MQTT Message: time~20:06~None 2023-01-30 20:07:00.076153 WARNING HASS: Error calling Home Assistant service default/template/render 2023-01-30 20:07:00.076986 WARNING HASS: Code: 400, error: {"message":"Error rendering template: TypeError: object of type 'NoneType' has no len()"} 2023-01-30 20:07:00.083372 INFO nspanel: Sending MQTT Message: time~20:07~None



### TO REPRODUCE
_Steps to reproduce the behavior:_

None

### EXPECTED BEHAVIOUR
_A clear and concise description of what you expected to happen._
I should see weather forecast with the 4th icon replaced with Battery SOC entity

### SCREENSHOTS
_If applicable, add screenshots/pictures to help explain your problem._

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

### PANEL / FIRMWARE VERION
_Please add the Panel/Firmware Version you are using (EU, US-L or US-P)_
US-L latest firmware per upgrade notes.
joBr99 commented 1 year ago

Not exactly sure why it's failing on mergeing your config with the default config.

However I've cleaned up some stuff in your config.

Can you replace this one with your config, restart the appdaemon addon and send a new log?

nspanel:
  module: nspanel-lovelace-ui
  class: NsPanelLovelaceUIManager
  config:
    panelRecvTopic: "tele/nspanel/RESULT"
    panelSendTopic: "cmnd/nspanel/CustomSend"
    locale: "en_US"

    model: "us-l"
    sleepTimeout: 60
#    sleepTimeout: 4800
    sleepBrightness:
      - time: "6:00:00"
        value: 10
      - time: "22:00:00"
        value: 3
    dateFormatBabel: "" # "EEE d MMM"

    timeAdditionalTemplate: >
        {%if state_attr('sensor.eskomsepush','events')|count > 0 %}
        {{ iif(states("binary_sensor.calendar_loadshedding_active")=="on","Now",as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime('%a')) }}: {{ state_attr("sensor.eskomsepush","events")[0].note }}, {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime('%H:%M') }} - {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].end).strftime('%H:%M') }}
        {%else%}
        -
        {%endif%}
#       Show the next available loadshedding
#    dateAdditionalTemplate: >
#        {%if state_attr('sensor.eskomsepush','events')|count > 1 %}
#            {{ as_datetime(state_attr("sensor.eskomsepush","events")[1].start).strftime('%a') }}: {{ state_attr("sensor.eskomsepush","events")[1].note }}, {{ as_datetime(state_attr("sensor.eskomsepush","events")[1].start).strftime('%H:%M') }} - {{ as_datetime(state_attr("sensor.eskomsepush","events")[1].end).strftime('%H:%M') }}
#        {%else%}
#            {{ as_datetime(states.sensor.date.state).strftime('%a, %d %b') }}
#        {%endif%}

    screensaver:
      entity: weather.mm_pi4_8gb
      theme:
        time: [65,105,225]
        date: [220,255,0]
        tMainText: [220,255,0]
      entities:
        - entity: weather.mm_pi4_8gb
        - entity: weather.mm_pi4_8gb
          type: 0
        - entity: weather.mm_pi4_8gb
          type: 1
        - entity: weather.mm_pi4_8gb
          type: 2
        - entity: delete
        - entity: sensor.victron_battery_soc
          icon: mdi:battery
#        statusIcon1: 
#          entity: sensor.grid_status
#          name: Eskom
#        statusIcon2:
#         entity: sensor.victron_battery_soc

#   When Eskom is not available, shade color from red --> green based on battery %, otherwise just white
      tTimeAdd: >
          {%if(states("calendar.loadshedding_local_events") == "on") %}
              {%if(states("sensor.grid_status")=="GRID OFF") %}
                  [0,255,0]
              {%else%}
                  [255,255,0]
              {%endif%}
          {%else%}
              {%if(states("sensor.grid_status")=="GRID OFF") %}
                  [255,255,255]
              {%else%}
                  [255,0,0]
              {%endif%}        
          {%endif%}

    cards:
      - type: cardGrid
        title: PV System Info
        entities:
          - entity: sensor.victron_battery_soc
            name: SOC (%)
            color:  '{{iif(states("sensor.victron_battery_soc")=="70", "[0,140,0]", "[0,140,0]")}}'
          - entity: sensor.victron_battery_current
            name: Battery (A)
          - entity: sensor.victron_battery_temperature
            name: Battery (°C)
            color: '{{iif(states("sensor.victron_battery_soc")=="70", "[180,0,0]", "[180,0,0]")}}'
          - entity: sensor.pv_watts
            name: PV (W)
          - entity: sensor.victron_system_grid_l1
            name: Grid (W)
            color: '{{iif(states("sensor.victron_battery_soc")<"0", "[0,140,0]", "[0,140,0]")}}'
          - entity: sensor.victron_tank_level_29
            name: Tank Level (%)

      - type: cardGrid
        title: Weather
        entities:
          - entity: sensor.pws_temp
            name: Temperature
          - entity: sensor.pws_hum
            name: Humidity

      - type: cardEntities
        title: Set SOC
        entities:
          - entity: sensor.victron_battery_soc
            name: SOC
          - entity: number.victron_settings_ess_batterylife_minimumsoc
            name: Set SOC (%)
jrspowers commented 1 year ago

hello I'm going to pick up on this so I've developed the following config but I now see it like this see photo my panel 1 328408801_1243404893227268_2589319179546876811_n & yours looks like this see photo your panel 213888148-acc8558b-602c-44cf-a7ab-94db292ebea8 what am I doing wrong?

here my config:

nspanel:
  module: nspanel-lovelace-ui
  class: NsPanelLovelaceUIManager
  config:
    panelRecvTopic: "tele/tasmota_your_mqtt_topic/RESULT"
    panelSendTopic: "cmnd/tasmota_your_mqtt_topic/CustomSend"
    timeAdditionalTemplate: " {{ states ('sensor.time_of_day') }} / J {{ states ('sensor.temperature_sensor_atc_slaapkamer_jarne_temperature') }}°C / t {{ states ('sensor.multi_sensor_tarras_temperature') }}°C " 
    dateAdditionalTemplate: " /{{ state_attr('calendar.jarneroussard_gmail_com', 'message') }} /{{ state_attr('calendar.jarneroussard_gmail_com','start_time') }} "
    updateMode: "auto-notify"
    sleepTracking: input_boolean.sleeptracker_nspanel_bed
    sleepTimeout: 20
    sleepBrightness: input_number.nspanel
    input_number:
      nspanel:
        min: 0
        max: 35
    locale: "nl_NL"
    screensaver:
      entity: weather.openweathermap
      theme:
        autoWeather: true
        rainy: [50, 50, 255]
        sunny: [255, 255, 0]
        cloudy: [173, 216, 230]
        partlycloudy: [211, 211, 211] 
      statusIcon1:
        entity: input_boolean.jarne_slaap
        altFont: false
        icon:
          "on": mdi:sleep
          "off": mdi:sleep-off
        color:
          "on": [0,0,255]
          "off": [255,0,0]
      statusIcon2:
        entity: input_boolean.ine_jarne_slapen
        altFont: false
        icon: 
          "on": mdi:power-sleep
          "off": mdi:sleep-off
        color:
          "on": [0,0,255]
          "off": [255,0,0]
      doubleTapToUnlock: True
      entities:
        - entity: weather.openweathermap
        - entity: sensor.temperature_sensor_atc_slaapkamer_jarne_temperature
          name: TK-Jarne
          icon: mdi:bed-king
          type: 0
        - entity: sensor.tomorrow_io_slaapkamer_tree_pollen_index
          name: BomenP
          icon: mdi:tree
          type: 1
        - entity: sensor.tomorrow_io_slaapkamer_weed_pollen_index
          name: KruidenP
          icon: mdi:flower-pollen-outline
          type: 2
        - entity: sensor.tomorrow_io_slaapkamer_grass_pollen_index
          name: GrassenP
          icon: mdi:grass
          type: 3
        - entity: sensor.multi_sensor_tarras_temperature
          name: TK-Terras
          icon: mdi:home-thermometer-outline
joBr99 commented 1 year ago

ah; @jrspowers can you do a FlashNextion https://nspanel.pky.eu/lui.tft in your tasmota console and see if it's fixed?

jrspowers commented 1 year ago

here logs

2023-01-30 20:26:16.197406 INFO MQTT: Topic tele/tasmota_your_mqtt_topic/RESULT already subscribed to
2023-01-30 20:26:16.211129 INFO nspanel: Started
2023-01-30 20:26:16.230666 WARNING AppDaemon: Excessive time spent in utility loop: 2629.0ms, 2629.0ms in check_app_updates(), 0.0ms in other
2023-01-30 20:26:17.074268 INFO nspanel: MQTT callback for: {'topic': 'tele/tasmota_your_mqtt_topic/RESULT', 'wildcard': None, 'payload': '{"CustomRecv":"event,startup,49,eu"}'}
2023-01-30 20:26:17.079234 INFO nspanel: Received Message from Screen: event,startup,49,eu
2023-01-30 20:26:17.088142 INFO nspanel: Sending MQTT Message: X
2023-01-30 20:26:17.099507 INFO nspanel: Update Pre-Check failed Tasmota Driver Version: None Panel Version: 49
2023-01-30 20:26:17.102515 INFO nspanel: Startup Event
2023-01-30 20:26:17.152327 INFO nspanel: Sending MQTT Message: time~20:26~Goedeavond / J 19.2��C / t 5.6��C
2023-01-30 20:26:17.222098 INFO nspanel: Sending MQTT Message: date~maandag 30 januari 2023/Werken weekend /2023-02-05 09:00:00
2023-01-30 20:26:17.230512 INFO nspanel: Sending MQTT Message: timeout~20
2023-01-30 20:26:17.280282 INFO nspanel: Sending MQTT Message: dimmode~35~100~6371
2023-01-30 20:26:17.310912 INFO nspanel: Sending MQTT Message: pageType~screensaver
2023-01-30 20:26:17.765976 INFO nspanel: Sending MQTT Message: weatherUpdate~text~weather.openweathermap~���~35957~OpenWeatherMap~5.4��C~text~sensor.temperature_sensor_atc_slaapkamer_jarne_temperature~���~17299~TK-Jarne~19.2 ��C~text~sensor.tomorrow_io_slaapkamer_tree_pollen_index~���~17299~BomenP~none ~text~sensor.tomorrow_io_slaapkamer_weed_pollen_index~���~17299~KruidenP~none ~text~sensor.tomorrow_io_slaapkamer_grass_pollen_index~���~17299~GrassenP~none ~text~sensor.multi_sensor_tarras_temperature~���~17299~TK-Terras~5.6 ��C
2023-01-30 20:26:17.795418 INFO nspanel: Sending MQTT Message: color~0~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535
2023-01-30 20:26:17.870668 INFO nspanel: Sending MQTT Message: statusUpdate~���~63488~���~63488~False~False
2023-01-30 20:26:18.053641 INFO nspanel: MQTT callback for: {'topic': 'tele/tasmota_your_mqtt_topic/RESULT', 'wildcard': None, 'payload': '{"nlui_driver_version":"8"}'}
2023-01-30 20:26:18.061134 INFO nspanel: Update Pre-Check sucessful Tasmota Driver Version: 8 Panel Version: 49
2023-01-30 20:27:00.570896 INFO nspanel: Sending MQTT Message: time~20:27~Goedeavond / J 19.2��C / t 5.6��C
2023-01-30 20:27:00.648710 INFO nspanel-deur: Sending MQTT Message: time~20:27~Goedeavond / / J 19.2��C / t 5.6��C

here new config

nspanel:
  module: nspanel-lovelace-ui
  class: NsPanelLovelaceUIManager
  config:
    panelRecvTopic: "tele/tasmota_your_mqtt_topic/RESULT"
    panelSendTopic: "cmnd/tasmota_your_mqtt_topic/CustomSend"
    timeAdditionalTemplate: " {{ states ('sensor.time_of_day') }} / J {{ states ('sensor.temperature_sensor_atc_slaapkamer_jarne_temperature') }}°C / t {{ states ('sensor.multi_sensor_tarras_temperature') }}°C " 
    dateAdditionalTemplate: " /{{ state_attr('calendar.jarneroussard_gmail_com', 'message') }} /{{ state_attr('calendar.jarneroussard_gmail_com','start_time') }} "
    updateMode: "auto-notify"
    sleepTracking: input_boolean.sleeptracker_nspanel_bed
    sleepTimeout: 20
    sleepBrightness: input_number.nspanel
    input_number:
      nspanel:
        min: 0
        max: 35
    locale: "nl_NL"
    screensaver:
      entity: weather.openweathermap
      theme:
        autoWeather: true
        rainy: [50, 50, 255]
        sunny: [255, 255, 0]
        cloudy: [173, 216, 230]
        partlycloudy: [211, 211, 211] 
      statusIcon1:
        entity: input_boolean.jarne_slaap
        altFont: false
        icon:
          "on": mdi:sleep
          "off": mdi:sleep-off
        color:
          "on": [0,0,255]
          "off": [255,0,0]
      statusIcon2:
        entity: input_boolean.ine_jarne_slapen
        altFont: false
        icon: 
          "on": mdi:power-sleep
          "off": mdi:sleep-off
        color:
          "on": [0,0,255]
          "off": [255,0,0]
      doubleTapToUnlock: True
      entities:
        - entity: weather.openweathermap
        - entity: sensor.temperature_sensor_atc_slaapkamer_jarne_temperature
          name: TK-Jarne
          icon: mdi:bed-king
          type: 0
        - entity: sensor.tomorrow_io_slaapkamer_tree_pollen_index
          name: BomenP
          icon: mdi:tree
          type: 1
        - entity: sensor.tomorrow_io_slaapkamer_weed_pollen_index
          name: KruidenP
          icon: mdi:flower-pollen-outline
        - entity: sensor.tomorrow_io_slaapkamer_grass_pollen_index
          name: GrassenP
          icon: mdi:grass
        - entity: sensor.multi_sensor_tarras_temperature
          name: TK-Terras
          icon: mdi:home-thermometer-outline
joBr99 commented 1 year ago

yeah as expected the message for your weather update is too long, it has 470 chars, the limit in the current release is 400 chars

please update the panel to the dev version and see if it's fixed run this command in the tasmota console:

FlashNextion http://nspanel.pky.eu/lui.tft

jrspowers commented 1 year ago

I wanted to do that but now I get this message how come here ? 328408801_1656817724762690_8291459612965516087_n

did i do it on resend do i get this white screen ? 328081983_854357149200003_9118572533872693933_n

joBr99 commented 1 year ago

restart tasmota and try again (URL was wrong needs to be http not https)

jrspowers commented 1 year ago

this work now but now the 4 work is falling, a pity but it is understandable that there is no room for it anymore 328377723_3196309107325694_6310135726014839049_n

joBr99 commented 1 year ago

that's normal you can use entity: delete instead of the 4th item (or use the normal layout if you want to have 4 forecast icons)

jrspowers commented 1 year ago

thanks & hello another question is it possible to add icon to the timeAdditionalTemplate & dateAdditionalTemplate like eg icon: mdi:bed ?

joBr99 commented 1 year ago

no, icons cannot be used there

jrspowers commented 1 year ago

no problem thanks for the help just another question I've been removed from your discord server to is there jarne#4016 can you let me in again?

joBr99 commented 1 year ago

It's not mine:

https://unofficialnextion.com/t/welcome-to-the-unofficial-nextion-tjc-user-forum/8

jrspowers commented 1 year ago

the problem is i'm banned from this because i've been hacked on my discord and it's strained that's why i think delete?

joBr99 commented 1 year ago

as this is not my server I cannot help you with that; create a new discord account

jrspowers commented 1 year ago

anyway thanks for the help

mmaritz commented 1 year ago

Thanks for the reworked apps.yaml. All seems to be working now.

I will go through and see where I went wrong on my formating. The new screensaver screen looks great!

Add-on: AppDaemon Python Apps and Dashboard using AppDaemon 4.x for Home Assistant

Add-on version: 0.11.0 You are running the latest version of this add-on. System: Home Assistant OS 9.5 (aarch64 / raspberrypi4-64) Home Assistant Core: 2023.1.7 Home Assistant Supervisor: 2023.01.1

Please, share the above information when looking for help or support in, e.g., GitHub, forums or the Discord chat.

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 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 [07:20:53] INFO: Starting AppDaemon... 2023-01-31 07:21:00.420458 INFO AppDaemon: AppDaemon Version 4.2.1 starting 2023-01-31 07:21:00.422312 INFO AppDaemon: Python version is 3.10.9 2023-01-31 07:21:00.423345 INFO AppDaemon: Configuration read from: /config/appdaemon/appdaemon.yaml 2023-01-31 07:21:00.424297 INFO AppDaemon: Added log: AppDaemon 2023-01-31 07:21:00.425193 INFO AppDaemon: Added log: Error 2023-01-31 07:21:00.426226 INFO AppDaemon: Added log: Access 2023-01-31 07:21:00.426591 INFO AppDaemon: Added log: Diag 2023-01-31 07:21:00.707556 INFO AppDaemon: Loading Plugin HASS using class HassPlugin from module hassplugin 2023-01-31 07:21:01.053003 INFO HASS: HASS Plugin Initializing 2023-01-31 07:21:01.054223 INFO HASS: HASS Plugin initialization complete 2023-01-31 07:21:01.055489 INFO AppDaemon: Loading Plugin MQTT using class MqttPlugin from module mqttplugin 2023-01-31 07:21:01.197897 INFO MQTT: MQTT Plugin Initializing 2023-01-31 07:21:01.198396 INFO MQTT: Using 'appdaemon/status' as Will Topic 2023-01-31 07:21:01.200204 INFO MQTT: Using 'appdaemon/status' as Birth Topic 2023-01-31 07:21:01.201804 INFO AppDaemon: Initializing HTTP 2023-01-31 07:21:01.203307 INFO AppDaemon: Using 'ws' for event stream 2023-01-31 07:21:01.211318 INFO AppDaemon: Starting API 2023-01-31 07:21:01.218496 INFO AppDaemon: Starting Admin Interface 2023-01-31 07:21:01.219986 INFO AppDaemon: Starting Dashboards 2023-01-31 07:21:01.254449 INFO HASS: Connected to Home Assistant 2023.1.7 2023-01-31 07:21:01.269997 INFO MQTT: Connected to Broker at URL 192.168.2.201:1883 2023-01-31 07:21:01.282884 INFO AppDaemon: Got initial state from namespace mqtt 2023-01-31 07:21:01.283637 INFO MQTT: MQTT Plugin initialization complete 2023-01-31 07:21:01.373839 INFO HASS: Evaluating startup conditions 2023-01-31 07:21:01.380407 INFO AppDaemon: App 'nspanel' added 2023-01-31 07:21:01.382327 INFO AppDaemon: Found 1 total apps 2023-01-31 07:21:01.383498 INFO AppDaemon: Starting Apps with 1 workers and 1 pins 2023-01-31 07:21:01.389168 INFO AppDaemon: Running on port 5050 2023-01-31 07:21:01.397247 INFO HASS: Startup condition met: hass state=RUNNING 2023-01-31 07:21:01.397836 INFO HASS: All startup conditions met 2023-01-31 07:21:01.471995 INFO AppDaemon: Got initial state from namespace default 2023-01-31 07:21:03.403027 INFO AppDaemon: Scheduler running in realtime 2023-01-31 07:21:03.413458 INFO AppDaemon: Adding /config/appdaemon/apps to module import path 2023-01-31 07:21:03.414485 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui to module import path 2023-01-31 07:21:03.415967 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui/luibackend to module import path 2023-01-31 07:21:03.417067 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/translations to module import path 2023-01-31 07:21:03.418239 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/translations/backend to module import path 2023-01-31 07:21:03.419488 INFO AppDaemon: Adding /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/translations/frontend to module import path 2023-01-31 07:21:03.440272 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/hello.py - ignoring 2023-01-31 07:21:03.442309 INFO AppDaemon: Loading App Module: /config/appdaemon/apps/nspanel-lovelace-ui/nspanel-lovelace-ui.py 2023-01-31 07:21:03.785850 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/updater.py - ignoring 2023-01-31 07:21:03.788673 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/mqtt.py - ignoring 2023-01-31 07:21:03.790732 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/config.py - ignoring 2023-01-31 07:21:03.793790 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/localization.py - ignoring 2023-01-31 07:21:03.796011 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/helper.py - ignoring 2023-01-31 07:21:03.799024 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/theme.py - ignoring 2023-01-31 07:21:03.801221 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/icon_mapping.py - ignoring 2023-01-31 07:21:03.804369 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/controller.py - ignoring 2023-01-31 07:21:03.806688 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/apis.py - ignoring 2023-01-31 07:21:03.809911 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/pages.py - ignoring 2023-01-31 07:21:03.812400 WARNING AppDaemon: No app description found for: /config/appdaemon/apps/nspanel-lovelace-ui/luibackend/icons.py - ignoring 2023-01-31 07:21:03.815082 INFO AppDaemon: Initializing app nspanel using class NsPanelLovelaceUIManager from module nspanel-lovelace-ui 2023-01-31 07:21:03.962935 INFO nspanel: Starting 2023-01-31 07:21:03.973768 INFO nspanel: Input config: {'panelRecvTopic': 'tele/nspanel/RESULT', 'panelSendTopic': 'cmnd/nspanel/CustomSend', 'locale': 'en_US', 'model': 'us-l', 'sleepTimeout': 60, 'sleepBrightness': [{'time': '6:00:00', 'value': 10}, {'time': '22:00:00', 'value': 3}], 'dateFormatBabel': '', 'timeAdditionalTemplate': '{%if state_attr(\'sensor.eskomsepush\',\'events\')|count > 0 %} {{ iif(states("binary_sensor.calendar_loadshedding_active")=="on","Now",as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%a\')) }}: {{ state_attr("sensor.eskomsepush","events")[0].note }}, {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%H:%M\') }} - {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].end).strftime(\'%H:%M\') }} {%else%} - {%endif%}\n', 'screensaver': {'entity': 'weather.mm_pi4_8gb', 'theme': {'time': [65, 105, 225], 'date': [220, 255, 0], 'tMainText': [220, 255, 0]}, 'entities': [{'entity': 'weather.mm_pi4_8gb'}, {'entity': 'weather.mm_pi4_8gb', 'type': 0}, {'entity': 'weather.mm_pi4_8gb', 'type': 1}, {'entity': 'weather.mm_pi4_8gb', 'type': 2}, {'entity': 'delete'}, {'entity': 'sensor.victron_battery_soc', 'icon': 'mdi:battery'}], 'tTimeAdd': '{%if(states("calendar.loadshedding_local_events") == "on") %}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [0,255,0]\n {%else%}\n [255,255,0]\n {%endif%}\n{%else%}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [255,255,255]\n {%else%}\n [255,0,0]\n {%endif%} \n{%endif%}\n'}, 'cards': [{'type': 'cardGrid', 'title': 'PV System Info', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC (%)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_battery_current', 'name': 'Battery (A)'}, {'entity': 'sensor.victron_battery_temperature', 'name': 'Battery (°C)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[180,0,0]", "[180,0,0]")}}'}, {'entity': 'sensor.pv_watts', 'name': 'PV (W)'}, {'entity': 'sensor.victron_system_grid_l1', 'name': 'Grid (W)', 'color': '{{iif(states("sensor.victron_battery_soc")<"0", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_tank_level_29', 'name': 'Tank Level (%)'}]}, {'type': 'cardGrid', 'title': 'Weather', 'entities': [{'entity': 'sensor.pws_temp', 'name': 'Temperature'}, {'entity': 'sensor.pws_hum', 'name': 'Humidity'}]}, {'type': 'cardEntities', 'title': 'Set SOC', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC'}, {'entity': 'number.victron_settings_ess_batterylife_minimumsoc', 'name': 'Set SOC (%)'}]}]} 2023-01-31 07:21:03.977093 INFO nspanel: Loaded config: {'panelRecvTopic': 'tele/nspanel/RESULT', 'panelSendTopic': 'cmnd/nspanel/CustomSend', 'updateMode': 'auto-notify', 'model': 'us-l', 'sleepTimeout': 60, 'sleepBrightness': [{'time': '6:00:00', 'value': 10}, {'time': '22:00:00', 'value': 3}], 'screenBrightness': 100, 'defaultBackgroundColor': 'ha-dark', 'sleepTracking': None, 'sleepTrackingZones': ['not_home', 'off'], 'sleepOverride': None, 'locale': 'en_US', 'timeFormat': '%H:%M', 'dateFormatBabel': '', 'dateAdditionalTemplate': '', 'timeAdditionalTemplate': '{%if state_attr(\'sensor.eskomsepush\',\'events\')|count > 0 %} {{ iif(states("binary_sensor.calendar_loadshedding_active")=="on","Now",as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%a\')) }}: {{ state_attr("sensor.eskomsepush","events")[0].note }}, {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].start).strftime(\'%H:%M\') }} - {{ as_datetime(state_attr("sensor.eskomsepush","events")[0].end).strftime(\'%H:%M\') }} {%else%} - {%endif%}\n', 'dateFormat': '%A, %d. %B %Y', 'homeButton': False, 'cards': [{'type': 'cardGrid', 'title': 'PV System Info', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC (%)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_battery_current', 'name': 'Battery (A)'}, {'entity': 'sensor.victron_battery_temperature', 'name': 'Battery (°C)', 'color': '{{iif(states("sensor.victron_battery_soc")=="70", "[180,0,0]", "[180,0,0]")}}'}, {'entity': 'sensor.pv_watts', 'name': 'PV (W)'}, {'entity': 'sensor.victron_system_grid_l1', 'name': 'Grid (W)', 'color': '{{iif(states("sensor.victron_battery_soc")<"0", "[0,140,0]", "[0,140,0]")}}'}, {'entity': 'sensor.victron_tank_level_29', 'name': 'Tank Level (%)'}]}, {'type': 'cardGrid', 'title': 'Weather', 'entities': [{'entity': 'sensor.pws_temp', 'name': 'Temperature'}, {'entity': 'sensor.pws_hum', 'name': 'Humidity'}]}, {'type': 'cardEntities', 'title': 'Set SOC', 'entities': [{'entity': 'sensor.victron_battery_soc', 'name': 'SOC'}, {'entity': 'number.victron_settings_ess_batterylife_minimumsoc', 'name': 'Set SOC (%)'}]}], 'screensaver': {'type': 'screensaver', 'entity': 'weather.mm_pi4_8gb', 'weatherUnit': 'celsius', 'forecastSkip': 0, 'weatherOverrideForecast1': None, 'weatherOverrideForecast2': None, 'weatherOverrideForecast3': None, 'weatherOverrideForecast4': None, 'doubleTapToUnlock': False, 'alternativeLayout': False, 'defaultCard': None, 'key': 'screensaver', 'theme': {'time': [65, 105, 225], 'date': [220, 255, 0], 'tMainText': [220, 255, 0]}, 'entities': [{'entity': 'weather.mm_pi4_8gb'}, {'entity': 'weather.mm_pi4_8gb', 'type': 0}, {'entity': 'weather.mm_pi4_8gb', 'type': 1}, {'entity': 'weather.mm_pi4_8gb', 'type': 2}, {'entity': 'delete'}, {'entity': 'sensor.victron_battery_soc', 'icon': 'mdi:battery'}], 'tTimeAdd': '{%if(states("calendar.loadshedding_local_events") == "on") %}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [0,255,0]\n {%else%}\n [255,255,0]\n {%endif%}\n{%else%}\n {%if(states("sensor.grid_status")=="GRID OFF") %}\n [255,255,255]\n {%else%}\n [255,0,0]\n {%endif%} \n{%endif%}\n'}, 'hiddenCards': []} 2023-01-31 07:21:03.989598 INFO nspanel: Sending MQTT Message: pageType~pageStartup 2023-01-31 07:21:04.011528 INFO nspanel: Registering callbacks for the following items: ['sensor.victron_battery_soc', 'sensor.victron_battery_current', 'sensor.victron_battery_temperature', 'sensor.pv_watts', 'sensor.victron_system_grid_l1', 'sensor.victron_tank_level_29', 'sensor.pws_temp', 'sensor.pws_hum', 'sensor.victron_battery_soc', 'number.victron_settings_ess_batterylife_minimumsoc', 'weather.mm_pi4_8gb', 'weather.mm_pi4_8gb', 'weather.mm_pi4_8gb', 'weather.mm_pi4_8gb', 'weather.mm_pi4_8gb', 'delete', 'sensor.victron_battery_soc'] 2023-01-31 07:21:04.059612 INFO nspanel: Started 2023-01-31 07:21:04.063072 INFO AppDaemon: App initialization complete 2023-01-31 07:21:04.231520 INFO nspanel: MQTT callback for: {'topic': 'tele/nspanel/RESULT', 'wildcard': None, 'payload': '{"CustomRecv":"event,startup,49,us-l"}'} 2023-01-31 07:21:04.234352 INFO nspanel: Received Message from Screen: event,startup,49,us-l 2023-01-31 07:21:04.238065 INFO nspanel: Sending MQTT Message: X 2023-01-31 07:21:04.246039 INFO nspanel: Update Pre-Check failed Tasmota Driver Version: None Panel Version: 49 2023-01-31 07:21:04.248943 INFO nspanel: Startup Event 2023-01-31 07:21:04.304382 INFO nspanel: Sending MQTT Message: time~07:21~Tue: Stage 4, 09:00 - 11:30 2023-01-31 07:21:04.342283 INFO nspanel: Sending MQTT Message: date~Tuesday, 31. January 2023 2023-01-31 07:21:04.355702 INFO nspanel: Sending MQTT Message: timeout~60 2023-01-31 07:21:04.365260 INFO nspanel: Sending MQTT Message: dimmode~10~100~6371 2023-01-31 07:21:04.371753 INFO nspanel: Sending MQTT Message: pageType~screensaver 2023-01-31 07:21:04.458368 INFO nspanel: Sending MQTT Message: weatherUpdate~text~weather.mm_pi4_8gb~���~35957~MM Pi4 8gb~19.4��C~text~weather.mm_pi4_8gb~���~35957~Tue~26.2��C~text~weather.mm_pi4_8gb~���~50400~Wed~28.9��C~text~weather.mm_pi4_8gb~���~63469~Thu~25.9��C~delete~~text~sensor.victron_battery_soc~���~17299~battery soc~42.0 % 2023-01-31 07:21:04.467589 INFO nspanel: Sending MQTT Message: color~0~17244~65535~57312~57312~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535 2023-01-31 07:21:04.473770 INFO nspanel: Sending MQTT Message: statusUpdate~~ 2023-01-31 07:21:04.499085 INFO nspanel: MQTT callback for: {'topic': 'tele/nspanel/RESULT', 'wildcard': None, 'payload': '{"nlui_driver_version":"8"}'} 2023-01-31 07:21:04.501996 INFO nspanel: Update Pre-Check sucessful Tasmota Driver Version: 8 Panel Version: 49