-
Notifications
You must be signed in to change notification settings - Fork 33
Lovelace Plugins
The Lovelace interface can be extended with custom cards, entities, rows and various plugins.
For most plugins, the process is as follows.
Be sure to read the documentation of the plugin you are interested in. The process of installing it might be totally different from what I'm describing below.
Most plugins are distributed as a single .js
file, e.g. card-modder.js
.
Make sure you get the Raw version if downloading from Github.
Place the file somewhere in <home assistant config>/www/
e.g. /config/www/plugins/card-modder.js
or ~/.homeassistant/www/card-modder.js
.
If www/
doesn't exist, you should create it and then restart Home Assistant.
Note: If you're comfortable with git, the easiest way to do this is to just navigate to
www/
and rungit clone https://github.com/thomasloven/lovelace-card-modder
If you are using Lovelace YAML Mode add a resources:
section to your ui-lovelace.yaml
.
E.g.
tile: My awesome Lovelace config
resources:
- url: /local/plugins/card-modder.js?v=1
type: js
views:
...
The url
is the path to your downloaded file. Replace <config directory>/www/
with /local/
.
Adding ?v=1
will help you if you ever update the plugin. See Updating a plugin
type
is usually either js
or module
. Check the documentation for the plugin to be sure.
If you are using the GUI editor for Lovelace, you can add the resources section using the Raw config editor, which you reach by entering Edit mode and then clicking the three dots in the top right corner.
Here I can't help you. Read the documentation to find out how the plugin is used.
Sometimes things change. Plugins evolve, bugs are squashed, features are added.
To upgrade a plugin to the latest version, there are two steps to follow.
See above
The internet as we know it works as well as it does due to caching. When you visit a new website, your browser downloads and stores a copy of it locally, so that the next time you wish to visit it you won't have to download it again, saving time and bandwidth. Even if you didn't have a local copy saved, it's likely you still didn't get the page directly from its server. Every computer your request has to go through on the way to the target may cache the page and serve the saved version instead.
This is a great thing, but can cause problems. For example, when you reload your lovelace interface after upgrading to the latest version of card-tools.js
, your browser may think "Hey, I know this file already. No need to bother the server." and helpfully hand you the old version. Bummer.
However. If you use the version number described above, the browser might think "Hm... card-tools.js?v=2, eh? Well, I have a card-tools.js?v=1, but that's obviously a totally different file. Hey! Server! I want card-tools.js?v=2".
Meanwhile, the server will (in this case) ignore anything from the ?
and on, and just serve the latest version of card-tools.js
. Problem solved.
Note: The same trick works for images like
/local/my_background.png?v=253
.