Home Assistant: Difference between revisions
imported>Mweinelt |
imported>Mweinelt |
||
Line 90: | Line 90: | ||
== Add custom lovelace modules == | == Add custom lovelace modules == | ||
There are many useful and pretty lovelace components out there that you might want to integrate into your dashboards. Some of them are packaged up inside NUR repositories. | |||
<syntaxHighlight lang=nix> | |||
let | |||
# https://nur.nix-community.org/repos/mweinelt/ | |||
nur = import (builtins.fetchTarball "https://github.com/mweinelt/nur-packages/archive/master.tar.gz") {}; | |||
mkLovelaceModule = name: { | |||
# https://www.home-assistant.io/lovelace/dashboards-and-views/#resources | |||
url = "/local/${name}.js?${nur.hassLovelaceModules."${name}".version}"; | |||
type = "module"; | |||
}; | |||
in { | |||
# Install lovelace components into temporary directory that can be | |||
# served by nginx. | |||
systemd.tmpfiles.rules = [ | |||
"d /run/hass 0700 nginx nginx" | |||
"L+ /run/hass/mini-graph-card.js - - - - ${nur.hassLovelaceModules.mini-graph-card}/mini-graph-card-bundle.js" | |||
"L+ /run/hass/mini-media-player.js - - - - ${nur.hassLovelaceModules.mini-media-player}/mini-media-player-bundle.js" | |||
"L+ /run/hass/multiple-entity-row.js - - - - ${nur.hassLovelaceModules.multiple-entity-row}/multiple-entity-row.js" | |||
]; | |||
# Instruct home-assistant to load these resources in the lovelace frontend | |||
services.home-assistant.config.lovelace = { | |||
resources = [ | |||
(mkLovelaceModule "mini-graph-card") # https://github.com/kalkih/mini-graph-card | |||
(mkLovelaceModule "mini-media-player") # https://github.com/kalkih/mini-media-player | |||
(mkLovelaceModule "multiple-entity-row") # https://github.com/benct/lovelace-multiple-entity-row | |||
]; | |||
}; | |||
} | |||
</syntaxHighlight> | |||
This [https://github.com/NixOS/nixpkgs/pull/89136 pull request] describes how to add custom lovelace modules. | This [https://github.com/NixOS/nixpkgs/pull/89136 pull request] describes how to add custom lovelace modules. |