Skin: LCARS (star trek) beta

Hi @ReneTode I just installed appdaemon and HADashboard to try your LCARS dashboard… Unfortunately I have problems to get it running. I’m using hassbian on a RPi4 and I installed appdaemon using hassbian-config (I suppose it’s appdaemon3?) I got the stardate.py running after I applied the changes that you propose on your github page.
For a start I just copied one of your example files to my config/dashboards/ and named it lcars.dash. I can access it but I’m essentially seeing only text and I get a lot of WARNING Variable definition not found in CSS Skin variables: in my journal. When I try accessing http://192.168.2.5:5050/lcars?skin=lcars, I get a 500 Internal server error and my journal reports

Sep 11 15:35:14 hassbian appdaemon[3776]: 2019-09-11 15:35:14.547082 INFO Loading custom skin 'lcars'
Sep 11 15:35:14 hassbian appdaemon[3776]: 2019-09-11 15:35:14.561980 INFO Compiling dashboard 'LCARS'
Sep 11 15:35:14 hassbian appdaemon[3776]: 2019-09-11 15:35:14.734476 WARNING Dashboard 'LCARS' not found
Sep 11 15:35:14 hassbian appdaemon[3776]: 2019-09-11 15:35:14.734967 WARNING ------------------------------------------------------------
Sep 11 15:35:14 hassbian appdaemon[3776]: 2019-09-11 15:35:14.735171 WARNING Unexpected error during DASH creation
Sep 11 15:35:14 hassbian appdaemon[3776]: 2019-09-11 15:35:14.735311 WARNING ------------------------------------------------------------
Sep 11 15:35:14 hassbian appdaemon[3776]: 2019-09-11 15:35:14.736377 WARNING Traceback (most recent call last):
Sep 11 15:35:14 hassbian appdaemon[3776]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 838, in get_dashboard
Sep 11 15:35:14 hassbian appdaemon[3776]:     with open(include_path, "r") as include_file:
Sep 11 15:35:14 hassbian appdaemon[3776]: FileNotFoundError: [Errno 2] No such file or directory: '/home/homeassistant/appdaemon/compiled/html/lcars/lcars_head.html'
Sep 11 15:35:14 hassbian appdaemon[3776]: 2019-09-11 15:35:14.736639 WARNING ------------------------------------------------------------
Sep 11 15:35:14 hassbian appdaemon[3776]: 2019-09-11 15:35:14.736792 INFO function [get_dashboard] finished in 189 ms
Sep 11 15:35:14 hassbian appdaemon[3776]: Error handling request
Sep 11 15:35:14 hassbian appdaemon[3776]: Traceback (most recent call last):
Sep 11 15:35:14 hassbian appdaemon[3776]:   File "/srv/appdaemon/lib/python3.7/site-packages/aiohttp/web_protocol.py", line 416, in start
Sep 11 15:35:14 hassbian appdaemon[3776]:     resp = yield from self._request_handler(request)
Sep 11 15:35:14 hassbian appdaemon[3776]:   File "/srv/appdaemon/lib/python3.7/site-packages/aiohttp/web.py", line 325, in _handle
Sep 11 15:35:14 hassbian appdaemon[3776]:     resp = yield from handler(request)
Sep 11 15:35:14 hassbian appdaemon[3776]:   File "/srv/appdaemon/lib/python3.7/site-packages/aiohttp/web_middlewares.py", line 93, in impl
Sep 11 15:35:14 hassbian appdaemon[3776]:     return (yield from handler(request))
Sep 11 15:35:14 hassbian appdaemon[3776]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/rundash.py", line 51, in wrapper
Sep 11 15:35:14 hassbian appdaemon[3776]:     return await myfunc(*args)
Sep 11 15:35:14 hassbian appdaemon[3776]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/rundash.py", line 269, in load_dash
Sep 11 15:35:14 hassbian appdaemon[3776]:     return web.Response(text=response, content_type="text/html")
Sep 11 15:35:14 hassbian appdaemon[3776]:   File "/srv/appdaemon/lib/python3.7/site-packages/aiohttp/web_response.py", line 471, in __init__
Sep 11 15:35:14 hassbian appdaemon[3776]:     type(text))
Sep 11 15:35:14 hassbian appdaemon[3776]: TypeError: text argument must be str (<class 'dict'>)
Sep 11 15:35:14 hassbian appdaemon[3776]: 2019-09-11 15:35:14.770181 INFO HADashboard: Dashboard disconnected

I have copied your custom_css to my config on the same level as the dashboard and once more into the dashboards dir.

Can you point me into a direction where the error might be?

Thanks!

i think you got a fileright problem.
please show me the log from appdaemon, from the moment you restart appdaemon.

That seems to be indeed the problem:

Sep 11 17:15:44 hassbian appdaemon[4475]: 2019-09-11 17:15:44.964699 INFO AppDaemon Version 3.0.5 starting
Sep 11 17:15:44 hassbian appdaemon[4475]: 2019-09-11 17:15:44.965083 INFO Configuration read from: /home/homeassistant/appdaemon/appdaemon.yaml
Sep 11 17:15:44 hassbian appdaemon[4475]: 2019-09-11 17:15:44.968293 INFO AppDaemon: Starting Apps
Sep 11 17:15:44 hassbian appdaemon[4475]: 2019-09-11 17:15:44.969075 WARNING config_dir: /home exists, but is not writeable, owner: root
Sep 11 17:15:44 hassbian appdaemon[4475]: 2019-09-11 17:15:44.974472 INFO AppDaemon: Loading Plugin HASS using class HassPlugin from module hassplugin
Sep 11 17:15:45 hassbian appdaemon[4475]: 2019-09-11 17:15:45.165383 INFO AppDaemon: HASS: HASS Plugin Initializing
Sep 11 17:15:45 hassbian appdaemon[4475]: 2019-09-11 17:15:45.165995 INFO AppDaemon: HASS: HASS Plugin initialization complete
Sep 11 17:15:45 hassbian appdaemon[4475]: 2019-09-11 17:15:45.166455 INFO Starting Dashboards
Sep 11 17:15:45 hassbian appdaemon[4475]: 2019-09-11 17:15:45.167993 WARNING css: /home exists, but is not writeable, owner: root
Sep 11 17:15:45 hassbian appdaemon[4475]: 2019-09-11 17:15:45.169251 WARNING javascript: /home exists, but is not writeable, owner: root
Sep 11 17:15:45 hassbian appdaemon[4475]: 2019-09-11 17:15:45.175879 INFO API is disabled
Sep 11 17:15:45 hassbian appdaemon[4475]: 2019-09-11 17:15:45.183468 INFO AppDaemon: HASS: Connected to Home Assistant 0.98.3
Sep 11 17:15:45 hassbian appdaemon[4475]: 2019-09-11 17:15:45.216225 INFO AppDaemon: Got initial state from namespace default
Sep 11 17:15:47 hassbian appdaemon[4475]: 2019-09-11 17:15:47.351036 INFO AppDaemon: Reading config
Sep 11 17:15:47 hassbian appdaemon[4475]: 2019-09-11 17:15:47.353206 INFO AppDaemon: /home/homeassistant/appdaemon/apps/apps.yaml added or modified
Sep 11 17:15:47 hassbian appdaemon[4475]: 2019-09-11 17:15:47.353454 INFO AppDaemon: /home/homeassistant/appdaemon/apps/apps.yaml added or modified
Sep 11 17:15:47 hassbian appdaemon[4475]: 2019-09-11 17:15:47.353593 INFO AppDaemon: App 'stardate' added
Sep 11 17:15:47 hassbian appdaemon[4475]: 2019-09-11 17:15:47.353842 INFO AppDaemon: Adding /home/homeassistant/appdaemon/apps to module import path
Sep 11 17:15:47 hassbian appdaemon[4475]: 2019-09-11 17:15:47.354257 INFO AppDaemon: Loading App Module: /home/homeassistant/appdaemon/apps/stardate.py
Sep 11 17:15:47 hassbian appdaemon[4475]: 2019-09-11 17:15:47.363070 INFO AppDaemon: Initializing app stardate using class stardate from module stardate
Sep 11 17:15:47 hassbian appdaemon[4475]: 2019-09-11 17:15:47.459087 INFO stardate: STARDATE:11969.3
Sep 11 17:15:47 hassbian appdaemon[4475]: 2019-09-11 17:15:47.492122 INFO AppDaemon: App initialization complete

Seems like the config_dir is pointing to /home how can I change that?
Thank you!

no it only tells that home is owned by root. and config is a subdir from home.

everything is starting ok. so no problems there and if AD would have a writing problem then it would show here.
i still dont know why, but in some cases there is trouble creating the html temp dir.

so please create the subdir html in the dir compiled, like:
/home/homeassistant/appdaemon/compiled/html
make sure it has the same filerights as the other dirs in there (the user you use to start appdaemon needs read and write access there)
then restart appdaemon.
and try to load the dashboard.

i dont think it will load, because you get a 500 error, which usually points to a yaml error or an error in the skinfiles. but we can look at that next.
after you restarted and try to load the dashboard please show the log again.

Hmm…

It seems to be all there:

homeassistant@hassbian:~/appdaemon $ tree -L 3 
.
├── appdaemon.yaml
├── apps
│   ├── apps.yaml
│   ├── __pycache__
│   │   └── stardate.cpython-37.pyc
│   └── stardate.py
│   
├── compiled
│   ├── css
│   │   └── default
│   ├── html
│   │   └── default
│   └── javascript
│       ├── application.js
│       └── default
├── custom_css
│   └── lcars
│       ├── dashboard.css
│       ├── font
│       ├── img
│       └── variables.yaml
└── dashboards
    ├── custom_css
    │   ├── default
    │   ├── lcars
    │   └── waterdrops
    ├── Hello.dash
    └── lcars.dash

and also

homeassistant@hassbian:~/appdaemon $ ls -la
drwxr-xr-x 6 homeassistant homeassistant 4096 Sep 11 17:43 .
drwxr-xr-x 7 homeassistant homeassistant 4096 Sep 11 17:42 ..
-rwxr-xr-x 1 homeassistant homeassistant  441 Sep 11 17:43 appdaemon.yaml
drwxr-xr-x 3 homeassistant homeassistant 4096 Sep 11 17:41 apps
drwxr-xr-x 5 homeassistant homeassistant 4096 Sep 11 17:42 compiled
drwxr-xr-x 3 homeassistant homeassistant 4096 Sep 11 17:41 custom_css
drwxr-xr-x 3 homeassistant homeassistant 4096 Sep 11 17:41 dashboards

and

homeassistant@hassbian:~/appdaemon $ ls -la compiled/
total 20
drwxr-xr-x 5 homeassistant homeassistant 4096 Sep 11 17:42 .
drwxr-xr-x 6 homeassistant homeassistant 4096 Sep 11 17:43 ..
drwxr-xr-x 3 homeassistant homeassistant 4096 Sep 11 17:42 css
drwxr-xr-x 3 homeassistant homeassistant 4096 Sep 11 17:42 html
drwxr-xr-x 3 homeassistant homeassistant 4096 Sep 11 17:42 javascript

I have reinstalled appdaemon and checked all permissions. The logs when restarting appdaemon have not changed.

I am stumped here.

i didnt say reinstall, i said restart :wink:
but never mind.
please show me what you got in lcars.dash as code block

and i noticed something else that can give trouble.
please delete the custom_css dir that you got in the dashboard dir (it doesnt belong there)

:smiley: I know, but I was afraid, I had already changed something that I forgot about…

I have removed the custom_css dir from the dashboard dir (I had copied it there experimentally, but it did not change anything)

My lcars.dash is essentially your lcars1600.dash example but I changed one switch and adjusted the url for the image.

###########################################
# Dashboard settings                      #
###########################################
title: LCARS Panel
widget_dimensions: [186, 35]
widget_size: [1, 1]
widget_margins: [11, 5]
columns: 8
rows: 50
global_parameters:
    use_comma: 0
    precision: 1
###########################################
# Widgets                                 #
###########################################
# 6 buttonlike demo switches              #
###########################################
switch1:
  widget_type: switch
  entity: switch.wohnzimmer_licht
  title: switch 1
  title_style: "$button_title_right"
  widget_style: "$button_widget_left;background-color:$lcar_color_6"
  icon_style_active: "$button_icon_active_left"
switch2:
  widget_type: switch
  entity: switch.yourswitch2
  title: switch 2
  title_style: "$button_title_right"
  widget_style: "$button_widget_left;background-color:$lcar_color_3"
  icon_style_active: "$button_icon_active_left"
switch3:
  widget_type: switch
  entity: switch.yourswitch3
  title: switch 3
  title_style: "$button_title_right"
  widget_style: "$button_widget_left;background-color:$lcar_color_4"
  icon_style_active: "$button_icon_active_left"
switch4:
  widget_type: switch
  entity: switch.yourswitch4
  title: switch 4
  title_style: "$button_title_left"
  widget_style: "$button_widget_right;background-color:$lcar_color_6"
  icon_style_active: "$button_icon_active_right"
switch5:
  widget_type: switch
  entity: switch.yourswitch5
  title: switch 5
  title_style: "$button_title_left"
  widget_style: "$button_widget_right;background-color:$lcar_color_2"
  icon_style_active: "$button_icon_active_right"
switch6:
  widget_type: switch
  entity: switch.yourswitch6
  title: Furniture
  title_style: "$button_title_left"
  widget_style: "$button_widget_right;background-color:$lcar_color_8"
  icon_style_active: "$button_icon_active_right"
###########################################
# 2 buttonlike demo input_booleans        #
###########################################
input_boolean1:
  widget_type: switch
  entity: input_boolean.yourboolean
  title: input boolean
  title_style: "$button_title_right"
  widget_style: "$button_widget_left;background-color:$lcar_color_2"
  icon_style_active: "$button_icon_active_left"
inputboolean2:
  widget_type: switch
  entity: input_boolean.yourboolean
  title: input boolean 2
  title_style: "$button_title_left"
  widget_style: "$button_widget_right;background-color:$lcar_color_4"
  icon_style_active: "$button_icon_active_right"
###########################################
# a label head above sensor values        #
###########################################
sensorhead:
  widget_type: label
  title: SENSOR VALUES
  title_style: "$title_left;color:$lcar_color_4"
###########################################
# sensor values                           #
###########################################
livingtemp:
  widget_type: sensor
  entity: sensor.yourtemp
  title: Living temperature
  title_style: "$title_left"
  container_style: "$sensor_container_right"
  units: "C"
kitchentemp:
  widget_type: sensor
  entity: sensor.yourtemp2
  title: Kitchen temperature
  title_style: "$title_left"
  container_style: "$sensor_container_right"
  units: "C"
bedroomtemp:
  widget_type: sensor
  entity: sensor.yourtemp3
  title: Bedroom temperature
  title_style: "$title_left"
  container_style: "$sensor_container_right"
  units: "C"
################################################
# show switch (or any entity) states as sensor #
################################################
livingheater1:
  widget_type: sensor
  entity: switch.yourswitch
  title: Living heater 1
  title_style: "$title_left"
  container_style: "$sensor_container_right"
  units: ""
livingheater2:
  widget_type: sensor
  entity: switch.yourswitch2
  title: Living heater 2
  title_style: "$title_left"
  container_style: "$sensor_container_right"
  units: ""

################################################
# use a camera                                 #
################################################
mycamera:
  widget_type: camera
  title: Captains seat
  entity_picture: http://your_ip:8123/api/camera_proxy/camera.your_camera?api_password=your_password
  widget_style: "background-image: none"
  refresh: 60

################################################
# The basic widgets                            #
################################################
Dashboard_title:
  widget_type: label
  title: DASHBOARD
  title_style: "$label_title_dashname"
  widget_style: "background-color:$transparant"
stardate:
  widget_type: sensor
  entity: sensor.stardate
  text_style: "$sensor_text_stardate"
  container_style: "top: 28px"              ##### the top can be changed for the screensize
  widget_style: "background-color:$transparant"
menutop:
  widget_type: label
  title: Menu
  title_style: "$label_title_menu"
  widget_style: "background-color:$lcar_color_7"
menu1:
  widget_type: navigate
  title: Livingroom
  dashboard: dash_agenda_algemeen
  title_style: "$label_title_menu"
  widget_style: "background-color:$lcar_color_5"
menu2:
  widget_type: navigate
  title: Kitchen
  dashboard: dash_keuken_tablet
  title_style: "$label_title_menu"
  widget_style: "background-color:$lcar_color_5"
logo:
  widget_type: iframe
  widget_style: "border-bottom-left-radius: 30px;border-bottom-right-radius: 30px"
  img_list: 
    - http://192.168.2.5:5050/custom_css/lcars/img/acces_granted.jpg

#############################################################
# The layout.                                               #
# buttons have a width from 1 and a height from 2, so (1x2) #
# sensors have a width from 2 and a height from 1, so (2x1) #
# dont change the first line or your title will be moved    #
# dont change the amount of lines if you want to keep the   #
# stardate in place. stardate is generated by the           #
# stardate app                                              #
#############################################################


layout:
  - spacer(1x2),            spacer(1x2),          spacer(1x2),         spacer(1x2),   spacer(1x2),         spacer(1x2),   Dashboard_title(2x2)
  -
  - spacer(1x2),            spacer(1x2),          spacer(1x2),         spacer(1x2),   spacer(1x2),         spacer(1x2),   logo(2x12) 
  -
  - menutop(1x2),           switch1(1x2),         switch4(1x2),        spacer,        sensorhead(2x1)         
  -                                                                    spacer,        kitchentemp(2x1) 
  - menu1(1x2),             switch2(1x2),         switch5(1x2),        spacer,        bedroomtemp(2x1)
  -                                                                    spacer,        livingtemp(2x1)
  - menu2(1x2),             switch3(1x2),         switch6(1x2),        spacer,        spacer(2x1)  
  -                                                                    spacer,        livingheater1(2x1)
  - spacer(1x2),            spacer(1x2),          spacer(1x2),         spacer,        livingheater2(2x1)
  -
  - spacer(1x2),            spacer(1x2),          spacer(1x2),         spacer(1x2),   spacer(1x2)
  -
  - spacer(1x2),            input_boolean1(1x2),  input_boolean2(1x2), spacer(1x2),   spacer(1x2),         spacer(1x2),   mycamera(2x6)
  -
  - spacer(1x2),            spacer(1x2),          spacer(1x2),         spacer(1x2),   spacer(1x2),         spacer(1x2)           
  -
  - 
  - 
  - 
  - spacer(1x2),            spacer(1x2),          stardate(1x2)

the problem with this dash is that it included a lot of none existing entities.
and that makes it very hard to debug.

lets try gettin it down to the basics.

###########################################
# Dashboard settings                      #
###########################################
title: LCARS Panel
widget_dimensions: [186, 35]
widget_size: [1, 1]
widget_margins: [11, 5]
columns: 8
rows: 50
global_parameters:
    use_comma: 0
    precision: 1
###########################################
# Widgets                                 #
###########################################
switch1:
  widget_type: switch
  entity: switch.wohnzimmer_licht
  title: switch 1
  title_style: "$button_title_right"
  widget_style: "$button_widget_left;background-color:$lcar_color_6"
  icon_style_active: "$button_icon_active_left"
Dashboard_title:
  widget_type: label
  title: DASHBOARD
  title_style: "$label_title_dashname"
  widget_style: "background-color:$transparant"
stardate:
  widget_type: sensor
  entity: sensor.stardate
  text_style: "$sensor_text_stardate"
  container_style: "top: 28px"              ##### the top can be changed for the screensize
  widget_style: "background-color:$transparant

layout:
  - spacer(1x2),            spacer(1x2),          spacer(1x2),         spacer(1x2),   spacer(1x2),         spacer(1x2),   Dashboard_title(2x2)
  -
  - spacer(1x2),            spacer(1x2),          spacer(1x2),         spacer(1x2),   spacer(1x2),         spacer(1x2)
  -
  - spacer(1x2),           switch1(1x2)
  - 
  -   
  -                      
  - 
  -
  - 
  -
  - 
  -
  -       
  -
  - 
  - 
  - 
  - spacer(1x2),            spacer(1x2),          stardate(1x2)

lets see if you still got an error with this. if so then there is something wrong with the skin files, but we will see first if this goes.

I have stripped down the dash file but the result is still the same. Here is my complete log again

Sep 11 23:06:26 hassbian systemd[1]: Started AppDaemon.
-- Subject: A start job for unit [email protected] has finished successfully
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- A start job for unit [email protected] has finished successfully.
-- 
-- The job identifier is 2581.
Sep 11 23:06:27 hassbian appdaemon[8449]: 2019-09-11 23:06:27.058955 INFO AppDaemon Version 3.0.5 starting
Sep 11 23:06:27 hassbian appdaemon[8449]: 2019-09-11 23:06:27.059340 INFO Configuration read from: /home/homeassistant/appdaemon/appdaemon.yaml
Sep 11 23:06:27 hassbian appdaemon[8449]: 2019-09-11 23:06:27.062579 INFO AppDaemon: Starting Apps
Sep 11 23:06:27 hassbian appdaemon[8449]: 2019-09-11 23:06:27.063358 WARNING config_dir: /home exists, but is not writeable, owner: root
Sep 11 23:06:27 hassbian appdaemon[8449]: 2019-09-11 23:06:27.068604 INFO AppDaemon: Loading Plugin HASS using class HassPlugin from module hassplugin
Sep 11 23:06:27 hassbian appdaemon[8449]: 2019-09-11 23:06:27.259706 INFO AppDaemon: HASS: HASS Plugin Initializing
Sep 11 23:06:27 hassbian appdaemon[8449]: 2019-09-11 23:06:27.260301 INFO AppDaemon: HASS: HASS Plugin initialization complete
Sep 11 23:06:27 hassbian appdaemon[8449]: 2019-09-11 23:06:27.260738 INFO Starting Dashboards
Sep 11 23:06:27 hassbian appdaemon[8449]: 2019-09-11 23:06:27.262285 WARNING css: /home exists, but is not writeable, owner: root
Sep 11 23:06:27 hassbian appdaemon[8449]: 2019-09-11 23:06:27.263546 WARNING javascript: /home exists, but is not writeable, owner: root
Sep 11 23:06:27 hassbian appdaemon[8449]: 2019-09-11 23:06:27.270127 INFO API is disabled
Sep 11 23:06:27 hassbian appdaemon[8449]: 2019-09-11 23:06:27.277662 INFO AppDaemon: HASS: Connected to Home Assistant 0.98.3
Sep 11 23:06:27 hassbian appdaemon[8449]: 2019-09-11 23:06:27.311037 INFO AppDaemon: Got initial state from namespace default
Sep 11 23:06:29 hassbian appdaemon[8449]: 2019-09-11 23:06:29.436915 INFO AppDaemon: Reading config
Sep 11 23:06:29 hassbian appdaemon[8449]: 2019-09-11 23:06:29.440416 INFO AppDaemon: /home/homeassistant/appdaemon/apps/apps.yaml added or modified
Sep 11 23:06:29 hassbian appdaemon[8449]: 2019-09-11 23:06:29.441198 INFO AppDaemon: /home/homeassistant/appdaemon/apps/apps.yaml added or modified
Sep 11 23:06:29 hassbian appdaemon[8449]: 2019-09-11 23:06:29.441805 INFO AppDaemon: App 'stardate' added
Sep 11 23:06:29 hassbian appdaemon[8449]: 2019-09-11 23:06:29.442499 INFO AppDaemon: Adding /home/homeassistant/appdaemon/apps to module import path
Sep 11 23:06:29 hassbian appdaemon[8449]: 2019-09-11 23:06:29.443407 INFO AppDaemon: Loading App Module: /home/homeassistant/appdaemon/apps/stardate.py
Sep 11 23:06:29 hassbian appdaemon[8449]: 2019-09-11 23:06:29.452619 INFO AppDaemon: Initializing app stardate using class stardate from module stardate
Sep 11 23:06:29 hassbian appdaemon[8449]: 2019-09-11 23:06:29.560499 INFO stardate: STARDATE:11969.3
Sep 11 23:06:29 hassbian appdaemon[8449]: 2019-09-11 23:06:29.595673 INFO AppDaemon: App initialization complete
Sep 11 23:06:44 hassbian appdaemon[8449]: 2019-09-11 23:06:44.188278 INFO Loading custom skin 'lcars'
Sep 11 23:06:44 hassbian appdaemon[8449]: 2019-09-11 23:06:44.200966 INFO Compiling dashboard 'lcars'
Sep 11 23:06:44 hassbian appdaemon[8449]: 2019-09-11 23:06:44.429941 WARNING Variable definition not found in CSS Skin variables: $label_state_text_style
Sep 11 23:06:44 hassbian appdaemon[8449]: 2019-09-11 23:06:44.442627 WARNING ------------------------------------------------------------
Sep 11 23:06:44 hassbian appdaemon[8449]: 2019-09-11 23:06:44.442846 WARNING Unexpected error during DASH creation
Sep 11 23:06:44 hassbian appdaemon[8449]: 2019-09-11 23:06:44.442973 WARNING ------------------------------------------------------------
Sep 11 23:06:44 hassbian appdaemon[8449]: 2019-09-11 23:06:44.444307 WARNING Traceback (most recent call last):
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 818, in get_dashboard
Sep 11 23:06:44 hassbian appdaemon[8449]:     dash = self._conditional_compile(name, skin, recompile)
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 770, in _conditional_compile
Sep 11 23:06:44 hassbian appdaemon[8449]:     dash = self._get_dash(name, skin, skindir)
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 573, in _get_dash
Sep 11 23:06:44 hassbian appdaemon[8449]:     dash = self._create_dash(name, css_vars)
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 455, in _create_dash
Sep 11 23:06:44 hassbian appdaemon[8449]:     dash, layout, occupied, includes = self._create_sub_dash(name, "dash", 0, {}, [], 1, css_vars, None)
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 545, in _create_sub_dash
Sep 11 23:06:44 hassbian appdaemon[8449]:     self._add_layout(lay, layout, occupied, dash, page, includes, css_vars, global_parameters)
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 429, in _add_layout
Sep 11 23:06:44 hassbian appdaemon[8449]:     widget["parameters"] = self._load_widget(dash, includes, name, css_vars, global_parameters)
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 375, in _load_widget
Sep 11 23:06:44 hassbian appdaemon[8449]:     final_widget = self._merge_styles(final_widget, name)
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 204, in _merge_styles
Sep 11 23:06:44 hassbian appdaemon[8449]:     result[key] = self._merge_styles(widget[key], name)
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 209, in _merge_styles
Sep 11 23:06:44 hassbian appdaemon[8449]:     styles = self._get_styles(widget[key], name, key)
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 196, in _get_styles
Sep 11 23:06:44 hassbian appdaemon[8449]:     result[pieces[0].strip()] = pieces[1]
Sep 11 23:06:44 hassbian appdaemon[8449]: IndexError: list index out of range
Sep 11 23:06:44 hassbian appdaemon[8449]: 2019-09-11 23:06:44.444589 WARNING ------------------------------------------------------------
Sep 11 23:06:44 hassbian appdaemon[8449]: 2019-09-11 23:06:44.444870 INFO function [get_dashboard] finished in 257 ms
Sep 11 23:06:44 hassbian appdaemon[8449]: Error handling request
Sep 11 23:06:44 hassbian appdaemon[8449]: Traceback (most recent call last):
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/aiohttp/web_protocol.py", line 416, in start
Sep 11 23:06:44 hassbian appdaemon[8449]:     resp = yield from self._request_handler(request)
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/aiohttp/web.py", line 325, in _handle
Sep 11 23:06:44 hassbian appdaemon[8449]:     resp = yield from handler(request)
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/aiohttp/web_middlewares.py", line 93, in impl
Sep 11 23:06:44 hassbian appdaemon[8449]:     return (yield from handler(request))
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/rundash.py", line 51, in wrapper
Sep 11 23:06:44 hassbian appdaemon[8449]:     return await myfunc(*args)
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/rundash.py", line 269, in load_dash
Sep 11 23:06:44 hassbian appdaemon[8449]:     return web.Response(text=response, content_type="text/html")
Sep 11 23:06:44 hassbian appdaemon[8449]:   File "/srv/appdaemon/lib/python3.7/site-packages/aiohttp/web_response.py", line 471, in __init__
Sep 11 23:06:44 hassbian appdaemon[8449]:     type(text))
Sep 11 23:06:44 hassbian appdaemon[8449]: TypeError: text argument must be str (<class 'dict'>)

It seems like an error in the css file? at least it reports a missing variable $label_state_text_style. I will check this next.

Edit: I checked but I could not find the variable $label_state_text_style anywhere. Neither any references to it. Its getting weirder and weirder…

By the way, are you aware of this project? https://github.com/Aricwithana/LCARS-SDK it looks promising but I haven’t had the time to check it in detail…

no not in the css file but in variables.yaml from the skin.
its possible that some variables are added after i created the skin.

so in custom_css/lcars/variables.yaml find this block

label_title_style: $style_title
label_title2_style: $style_title2
label_text_style: "color: $black"
label_container_style: ""
label_widget_style: $background_style

and add the line:

label_state_text_style: "color: $black"

save the file and retry to load the dashboard. we are already closer.

I added the line. Still an Error 500. The logs reads now

Sep 11 23:30:17 hassbian appdaemon[8744]: 2019-09-11 23:30:17.497145 INFO Loading custom skin 'lcars'
Sep 11 23:30:17 hassbian appdaemon[8744]: 2019-09-11 23:30:17.511681 INFO Compiling dashboard 'lcars'
Sep 11 23:30:17 hassbian appdaemon[8744]: 2019-09-11 23:30:17.736453 WARNING ------------------------------------------------------------
Sep 11 23:30:17 hassbian appdaemon[8744]: 2019-09-11 23:30:17.736682 WARNING Unexpected error during DASH creation
Sep 11 23:30:17 hassbian appdaemon[8744]: 2019-09-11 23:30:17.736803 WARNING ------------------------------------------------------------
Sep 11 23:30:17 hassbian appdaemon[8744]: 2019-09-11 23:30:17.737252 WARNING Traceback (most recent call last):
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 818, in get_dashboard
Sep 11 23:30:17 hassbian appdaemon[8744]:     dash = self._conditional_compile(name, skin, recompile)
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 770, in _conditional_compile
Sep 11 23:30:17 hassbian appdaemon[8744]:     dash = self._get_dash(name, skin, skindir)
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 573, in _get_dash
Sep 11 23:30:17 hassbian appdaemon[8744]:     dash = self._create_dash(name, css_vars)
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 455, in _create_dash
Sep 11 23:30:17 hassbian appdaemon[8744]:     dash, layout, occupied, includes = self._create_sub_dash(name, "dash", 0, {}, [], 1, css_vars, None)
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 545, in _create_sub_dash
Sep 11 23:30:17 hassbian appdaemon[8744]:     self._add_layout(lay, layout, occupied, dash, page, includes, css_vars, global_parameters)
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 429, in _add_layout
Sep 11 23:30:17 hassbian appdaemon[8744]:     widget["parameters"] = self._load_widget(dash, includes, name, css_vars, global_parameters)
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 375, in _load_widget
Sep 11 23:30:17 hassbian appdaemon[8744]:     final_widget = self._merge_styles(final_widget, name)
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 204, in _merge_styles
Sep 11 23:30:17 hassbian appdaemon[8744]:     result[key] = self._merge_styles(widget[key], name)
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 209, in _merge_styles
Sep 11 23:30:17 hassbian appdaemon[8744]:     styles = self._get_styles(widget[key], name, key)
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/dashboard.py", line 196, in _get_styles
Sep 11 23:30:17 hassbian appdaemon[8744]:     result[pieces[0].strip()] = pieces[1]
Sep 11 23:30:17 hassbian appdaemon[8744]: IndexError: list index out of range
Sep 11 23:30:17 hassbian appdaemon[8744]: 2019-09-11 23:30:17.737423 WARNING ------------------------------------------------------------
Sep 11 23:30:17 hassbian appdaemon[8744]: 2019-09-11 23:30:17.737657 INFO function [get_dashboard] finished in 240 ms
Sep 11 23:30:17 hassbian appdaemon[8744]: Error handling request
Sep 11 23:30:17 hassbian appdaemon[8744]: Traceback (most recent call last):
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/aiohttp/web_protocol.py", line 416, in start
Sep 11 23:30:17 hassbian appdaemon[8744]:     resp = yield from self._request_handler(request)
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/aiohttp/web.py", line 325, in _handle
Sep 11 23:30:17 hassbian appdaemon[8744]:     resp = yield from handler(request)
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/aiohttp/web_middlewares.py", line 93, in impl
Sep 11 23:30:17 hassbian appdaemon[8744]:     return (yield from handler(request))
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/rundash.py", line 51, in wrapper
Sep 11 23:30:17 hassbian appdaemon[8744]:     return await myfunc(*args)
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/appdaemon/rundash.py", line 269, in load_dash
Sep 11 23:30:17 hassbian appdaemon[8744]:     return web.Response(text=response, content_type="text/html")
Sep 11 23:30:17 hassbian appdaemon[8744]:   File "/srv/appdaemon/lib/python3.7/site-packages/aiohttp/web_response.py", line 471, in __init__
Sep 11 23:30:17 hassbian appdaemon[8744]:     type(text))
Sep 11 23:30:17 hassbian appdaemon[8744]: TypeError: text argument must be str (<class 'dict'>)

so the reference to $label_state_text_style is gone but the log looks pretty much the same.

Ill continue searching tomorrow. Thank you very much so far!

did you change anything to the skinfiles?
because i had someone else with problems around 3 monts ago who also tried it and in the end it was the dashboard.
if the skin files are unchanged then this dashboard should work:

title: LCARS Panel
widget_dimensions: [119, 23]
widget_size: [1, 1]
widget_margins: [7, 3]
columns: 8
rows: 50
global_parameters:
    use_comma: 0
    precision: 1

layout:
  - spacer(1x2),            spacer(1x2),          spacer(1x2),         spacer(1x2),   spacer(1x2),         spacer(1x2),   Dashboard_title(2x2)
  -
  - spacer(1x2),            spacer(1x2),          spacer(1x2),         spacer(1x2),   spacer(1x2),         spacer(1x2),   logo(2x12) 

logo:
  widget_type: iframe
  widget_style: "border-bottom-left-radius: 30px;border-bottom-right-radius: 30px"
  img_list: 
    - http://192.168.2.5:5050/custom_css/lcars/img/acces_granted.jpg
Dashboard_title:
  widget_type: label
  title: DASHBOARD
  title_style: "$label_title_dashname"
  widget_style: "background-color:$transparant"

save it with a new name and test it, please.
make sure its created with the right filerights and that you use the right editor, so that it are all spaces and no tabs. (its yaml)

Its working now! I will buid a dashboard starting from this file and report back, when I figure out what was causing the problem.

Thank you again for your help and patience!

I added the stardate widget -> no problem. But adding a switch led to the same error. Then again, commenting out the icon_style_active line solved the problem. My test.dash looks now as follows

title: LCARS Panel
widget_dimensions: [119, 23]
widget_size: [1, 1]
widget_margins: [7, 3]
columns: 8
rows: 50
global_parameters:
    use_comma: 0
    precision: 1

layout:
  - spacer(1x2),            spacer(1x2),          spacer(1x2),         spacer(1x2),   spacer(1x2),         spacer(1x2),   Dashboard_title(2x2)
  -
  - spacer(1x2),            spacer(1x2),          spacer(1x2),         spacer(1x2),   spacer(1x2),         spacer(1x2),   logo(2x12)
  -
  - spacer(1x2),            spacer(1x2),          switch1(1x2)
  -
  -
  - spacer(1x2),            spacer(1x2),          stardate(1x2)

logo:
  widget_type: iframe
  widget_style: "border-bottom-left-radius: 30px;border-bottom-right-radius: 30px"
  img_list:
    - http://192.168.2.5:5050/custom_css/lcars/img/acces_granted.jpg
Dashboard_title:
  widget_type: label
  title: DASHBOARD
  title_style: "$label_title_dashname"
  widget_style: "background-color:$transparant"
###########################################
# Widgets                                 #
###########################################
stardate:
  widget_type: sensor
  entity: sensor.stardate
  text_style: "$sensor_text_stardate"
  container_style: "top: 28px"              ##### the top can be changed for the screensize
  widget_style: "background-color:$transparant"
switch1:
  widget_type: switch
  entity: switch.wohnzimmer_licht
  title: "switch 1"
  title_style: "$button_title_right"
  widget_style: "$button_widget_left;background-color:$lcar_color_6"
#  icon_style_active: "$button_icon_active_left"

strange.
did you change anything in the skin files?

in variables.yaml you need to set the desired screenwidth corresponding with the widget_dimensions.
you wanted 1600 what is the default so nothing should be changed there, but your dashboard settings then should be:

  widget_dimensions: [186, 35]
  widget_margins: [11, 5]

that might be why its complaining, because in the skin sizes get recalculated.

Strange indeed. No, I didn’t touch the .css file. Unfortunately I dont have time today to try out more. I’ll report back as soon as I had the chance to try more settings.

i wasnt talking about the css file.
the important stuff for a skin is in the variables.yaml :wink:

I believe, I found the (a?) problem. In zour variables.yaml in line 78

button_icon_active_left: "style_active;left: 8px;text-align: left"

there is a $ missing:

button_icon_active_left: "$style_active;left: 8px;text-align: left"

Now everything is working except that the Stardate is not showing anymore now. But that’s a different problem, I suppose. I will provide a screenshot once I have set up my dashboard!

Thank you again for your work and the support!