Closed mmaritz closed 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 (%)
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 & yours looks like this see photo your panel 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
ah; @jrspowers can you do a FlashNextion https://nspanel.pky.eu/lui.tft
in your tasmota console and see if it's fixed?
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
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
I wanted to do that but now I get this message how come here ?
did i do it on resend do i get this white screen ?
restart tasmota and try again (URL was wrong needs to be http not https)
this work now but now the 4 work is falling, a pity but it is understandable that there is no room for it anymore
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)
thanks & hello another question is it possible to add icon to the timeAdditionalTemplate & dateAdditionalTemplate like eg icon: mdi:bed ?
no, icons cannot be used there
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?
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?
as this is not my server I cannot help you with that; create a new discord account
anyway thanks for the help
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!
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
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!
[ ] Provide your apps.yaml (or your config):
tTimeAdd: >
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%}
theme: true
statusIcon1: true
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
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%}'
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