Javascript widget title2_style ignore in custom skin

I have created a custom skin (nodefault), which at the moment should be identical to the default skin. I copied dashboard.css & variables.yaml and I have only added to variables.yaml to support a new widget type.

I have a javascript widget on my dashboard

    fully:
        widget_type: javascript
        title: Launcher
        title2: Fully Kiosk Browser
        title2_style: "color: red; font-weight: 500; font-size: 75%"
        command: window.open("fully://launcher", "_self")
        icon_inactive: mdi-rocket

If I display my dashboard using the original default skin I get this, which is what I expect.

fully1

However if I select my copied skin ?skin=nodefault I get this

fully2

The style for title2 gets lost (I checked with the element inspector too). I tried commenting my additional variables.yaml entries but the style stilll gets ignored.

I also have a Navigator widget with the same title2_style, and other widgest with similar styles, and they work correctly with the custom skin.

What could be causing this?

something could have gone wrong when you changed stuff and at that point it was cached (on the device that shows the dashboard or on the device that runs HAdashboard).
make sure everything is recompiled and cache from your browser is cleared.

Is it enough to restart appdaemon or do I need to do something in compiled? The problem has been there for 3 or 4 weeks, during which most things have got cleared or restarted. Maybe I’ll make a new copy of default, just copying the 2 files and check

I made a newdefault and just copied dashboard.css & variables.yaml, no edits and the same effect, title2_style doesn’t get applied

and only on that widget? all other widgets in the same dashboard work?
try renaming the dashboard

Yes, just the javascript widget. I copied the .dash to a new filename - just the same.
It’s not a big issue but I’d like to find out what’s going wrong

Just out of curiosity: why isn’t there a javascript.yaml & basejavascript like all other widgets?

unless you have done something wrong there is a javascript.yaml and a basejavascript, or it wouldnt work at all

i dont mean just the javascript, but another javascript widget.
did you set logfiles in appdaemon.yaml?
if not then please do so for access_file (see configuration in docs)

then restart AD and look at the access log

Odd, can’t say how that happened. Could it be a bad appdaemon upgrade?
I only have a javascript folder and I notice that the Reload widget is the only widget that has widget_type: javascript. So I suppose it should still work even if the javascript folder isn’t called basejavascript?

$ ls -l /srv/homeassistant/lib/python3.6/site-packages/appdaemon/widgets/
total 160
-rwxr-xr-x 1 homeassistant nogroup 1046 Oct 19 12:52 alarm.yaml
drwxr-xr-x 2 homeassistant nogroup 4096 Oct 19 12:57 basealarm
drwxr-xr-x 2 homeassistant nogroup 4096 Oct 19 12:57 baseclimate
drwxr-xr-x 2 homeassistant nogroup 4096 Oct 19 12:57 baseclock
drwxr-xr-x 2 homeassistant nogroup 4096 Oct 19 12:57 basedisplay
drwxr-xr-x 2 homeassistant nogroup 4096 Oct 19 12:57 baseerror
drwxr-xr-x 2 homeassistant nogroup 4096 Oct 19 12:57 basegauge
drwxr-xr-x 2 homeassistant nogroup 4096 Oct 19 12:57 baseiframe
drwxr-xr-x 2 homeassistant nogroup 4096 Oct 19 12:57 baselight
drwxr-xr-x 2 homeassistant nogroup 4096 Oct 19 12:57 basemedia
drwxr-xr-x 2 homeassistant nogroup 4096 Oct 19 12:57 baserss
drwxr-xr-x 2 homeassistant nogroup 4096 Oct 19 12:57 baseslider
drwxr-xr-x 2 homeassistant nogroup 4096 Oct 19 12:57 baseswitch
drwxr-xr-x 2 homeassistant nogroup 4096 Oct 19 12:57 baseweather
-rwxr-xr-x 1 homeassistant nogroup  619 Oct 19 12:52 binary_sensor.yaml
-rwxr-xr-x 1 homeassistant nogroup  243 Oct 19 12:52 camera.yaml
-rwxr-xr-x 1 homeassistant nogroup  685 Oct 19 12:52 climate.yaml
-rwxr-xr-x 1 homeassistant nogroup  209 Oct 19 12:52 clock.yaml
-rwxr-xr-x 1 homeassistant nogroup  721 Oct 19 12:52 cover.yaml
-rwxr-xr-x 1 homeassistant nogroup  924 Oct 19 12:52 device_tracker.yaml
-rw-r--r-- 1 homeassistant nogroup  448 Oct 19 12:52 gauge.yaml
-rwxr-xr-x 1 homeassistant nogroup  905 Oct 19 12:52 group.yaml
-rwxr-xr-x 1 homeassistant nogroup  243 Oct 19 12:52 iframe.yaml
-rwxr-xr-x 1 homeassistant nogroup  790 Oct 19 12:52 input_boolean.yaml
-rw-r--r-- 1 homeassistant nogroup  615 Oct 19 12:52 input_number.yaml
drwxr-xr-x 2 homeassistant nogroup 4096 Dec 15 13:33 javascript
-rwxr-xr-x 1 homeassistant nogroup  380 Oct 19 12:52 label.yaml
-rwxr-xr-x 1 homeassistant nogroup  905 Oct 19 12:52 light.yaml
-rwxr-xr-x 1 homeassistant nogroup  704 Oct 19 12:52 lock.yaml
-rwxr-xr-x 1 homeassistant nogroup 1750 Oct 19 12:52 media_player.yaml
-rwxr-xr-x 1 homeassistant nogroup  602 Oct 19 12:52 mode.yaml
-rwxr-xr-x 1 homeassistant nogroup  451 Oct 19 12:52 navigate.yaml
-rwxr-xr-x 1 homeassistant nogroup  469 Oct 19 12:52 reload.yaml
-rw-r--r-- 1 homeassistant nogroup  276 Oct 19 12:52 rss.yaml
-rwxr-xr-x 1 homeassistant nogroup  774 Oct 19 12:52 scene.yaml
-rwxr-xr-x 1 homeassistant nogroup  768 Oct 19 12:52 script.yaml
-rwxr-xr-x 1 homeassistant nogroup  515 Oct 19 12:52 sensor.yaml
-rwxr-xr-x 1 homeassistant nogroup  734 Oct 19 12:52 switch.yaml
-rwxr-xr-x 1 homeassistant nogroup  485 Oct 19 12:52 text_sensor.yaml
-rwxr-xr-x 1 homeassistant nogroup  548 Oct 19 12:52 weather.yaml

$ ls -l /srv/homeassistant/lib/python3.6/site-packages/appdaemon/widgets/javascript/
total 12
-rwxr-xr-x 1 homeassistant nogroup 379 Oct 19 12:52 javascript.css
-rwxr-xr-x 1 homeassistant nogroup 297 Oct 19 12:52 javascript.html
-rwxr-xr-x 1 homeassistant nogroup 3091 Dec 15 13:33 javascript.js

i dont know what you have done.
normally you shouldnt be in that dir at all (and certainly not change anything there)
look at the date from the javascript directory. it is from before HADashboard was even created.

do you have a custom_widgets directory in your config directory?
did you move things there?

without a javascript.yaml in this dir or in the custom_widgets dir, the javascript widget doesnt exist.

I can’t explain it. I have a custom widget directory under the conf directory. Last year I created a custom darksky widget there.
I can’t see why I would rename the basejavascript directory and delete javascript.yaml as I didn’t do anything with the javascript widget until last month. I did use the Reload widget, which is of type javascript, and that works. I never had cause to do anything with the originals.

I’ll install appdaemon on another machine and check the missing items there

do you have appdaemon setup in a venv after that you have installed it without a venv?
(if not that is the preferred way, to avoid trouble)
if you have done that you are looking in the wrong dir.

I installed using pip3 as described here [https://appdaemon.readthedocs.io/en/latest/INSTALL.html#install-using-pip3]. I have one install location /srv/homeassistant/lib/python3.6/site-packages/appdaemon.

Last year I reinstalled homeassistant & appdaemon (because of the python version upgrade to 3.6 if I remember correctly) - I renamed the old directory to /srv/homeassistant-old. Recently I auccessfully ran the appdaemon 3.0.2 update.

I have ‘rebuilt’ the basejavascript folders & javascript.yaml from the github repository but I still have the same issue, but I wonder if everything has been recompiled, I see that compiled/javascript/application.js is new.

I also realised that if my installation was corrupt, the javascript widget wouldn’t work using the default skin either, but it does. I will check some other componenets against the repository and I’ll probably consider a new installation of appdaemon.

i advise you to use
pip3 uninstall appdaemon
and then create a venv and install appdaemon inside that venv.

recompiled is a dir with temperary files. you can clear it at any time, but i advise to leave the structure as it is.

it is very well possible that you also installed appdaemon in older python version and that you run it from there.
you probably still have older python versions on your device, you could check if you have appdaemon there also. after upgrading python, pip3 isnt automaticly using the last python version, so ou could have gone wrong there.

but it all doesnt explain why your widget doesnt show the changes with the custom skin.
where did you copy the variables.yaml and dashboard.css from?

From /srv/homeassistant/lib/python3.5/site-packages/appdaemon/assets/css/default

I will make a new venv installation. Then hope that all is correct again. It is indeed odd as averything else seems to work fine

PS, thanks for your help :+1:

1 Like

make sure that you use the right python version to create the venv.

its possible that you need to use pip3.6 instead of pip3 (based on how you have installed python 3.6)

I just found that I have a big mess with my appdaemon installation(s) :flushed:

I ran a find and let it run longer than normal…

/srv/homeassistant/lib/python3.6/site-packages/appdaemon
/srv/homeassistant/bin/appdaemon
/usr/local/lib/python3.6/site-packages/appdaemon
/usr/local/lib/python3.5/dist-packages/appdaemon

I also checked the process more closely - normally I only checked that appdaemon was running and never checked the details

ps -ef|grep appdaemon
homeass+ 12047     1  1 13:00 ?        00:04:51 /usr/local/bin/python3.6 /usr/local/bin/appdaemon -c /home/homeassistant/conf

The problem arose because I installed once, then more or less forgot about it. When I wanted to upgrade I forgot how I’d originally installed it and used a different install method

Looks like cleanup day tomorrow. Sorry for your wasted time
John

Fixing it was easier than I thought - I just had to copy dashboard.css & variable.yaml from the correct place and now everything works.

Now I’ll delete the unused installation

1 Like