Lovelace: Versatile Swiss Army Knife Custom Card

:frowning:
I also hope that the owner will come back or that someone will take over the project. I spent a lot of time to create my dashboard with this type of card.

1 Like

well lets cross finger, because it looks very very nice and I want to play around a bit and try to make out of it something, but when its stable.

1 Like

What version are you running?

latest version

Some cards shown here, only work with beta version v2.5.1-dev.2. Unfortunately, this version was never officially distributed.

Please try the 2.4.6 or 2.5.1 dev. 1
If the I.set issue is still there
 Maybe you should give up.

It is a pitty, i likr this carda a lot.

Dont know if someone is taking care of the project or someone would adopt it.

Anyway, ill try those versions

Bonjour, je reviens sur la discussion car je me retrouve au mĂȘme point
 pour l’installation de Swiss Army Knife

1 - J’ai installĂ© via HACS Swiss Army Knife

2 - fichier : configuration.yaml :

lovelace:
  resources:
    - url: /homeassistant/www/community/frigate-hass-card.js
    - url: /homeassistant/www/community/swiss-army-knife-card/resources.yaml
      type: module

3 - J’ai copiĂ© le fichier : sak_templates sous
/homeassistant/ mĂȘme s’il se trouvait dĂ©jĂ  dans le dossier crĂ©e lors de l’installation sous www/community/Swiss Army Knife car je n’ai pas de dossier lovelace fallait-il en crĂ©er un ?

4 - J’ai crĂ©e le fichier : ressources.yaml sous
/homeassistant/www/community/swiss-army-knife-card/resources.yaml

- url: /hacsfiles/swiss-army-knife-card/swiss-army-knife-card.js
  type: module

5 - et là, le drame
 je n’ai pas : user-svg-definitions.yaml

6 - et je n’ai pas le fichier : ui-lovelace.yaml. mais ui_lovelace_minimalist à la racine


En cherchant je l’ai trouvĂ© sous : /homeassistant/ui_lovelace_minimalist/dashboard/ui-lovelace.yaml du coup, j’ai rajoutĂ© :

# Swiss Army Knife Templates
#
# The system templates come with the HACS install and can be updated
# with a new release. That part is automatic!
sak_sys_templates:
  !include www/community/swiss-army-knife-card/sak_templates.yaml

# The user templates are created by the user, and won't be updated 
# with a new release. If changes are required, then the user has to
# upate the template configuration files.
sak_user_templates:
  !include lovelace/sak_templates/sak_templates.yaml

7 - j’ai rajoutĂ© dans le fichier configuration.yaml

http:
  cors_allowed_origins:
    - https://unpkg.com
    - https://unpkg.com/lit-html@1/directives/style-map.js?module
    - https://unpkg.com/lit-html@1/directives/if-defined?module
    - https://unpkg.com/lit-html@%5E1.0.0?module
    - https://unpkg.com/lit-html@1/directives/style-map.js?module

mĂȘme si j’ai rien compris Ă  :
Étape 2c : Ajouter quelques fichiers Ă  configuration.yaml Tant que cette carte n’est pas un bundle, vous devez ajouter manuellement quelques rĂ©fĂ©rences dans la **cors_allowed_origins** dĂ©finition du configuration.yaml
J’ai pas trouvĂ© ce “cors_allowed_origins”

Si quelqu’un avait la gentillesse de m’aider
 ? ça pourrait peut etre aussi en aider d’autres


Merci et désolée pour la longueur


TrÚs bonne journée !

In English

Hello, I am coming back to the discussion because I find myself at the same point
 for the installation of Swiss Army Knife

1 - I installed via HACS Swiss Army Knife

2 - file: configuration.yaml:

lovelace:
  resources:
    - url: /homeassistant/www/community/frigate-hass-card.js
    - url: /homeassistant/www/community/swiss-army-knife-card/resources.yaml
      type: module

3 - I copied the file: sak_templates under
/homeassistant/ even if it was already in the folder created during installation under www/community/Swiss Army Knife because I don’t have a lovelace folder, did I have to create one?

4 - I created the file: resources.yaml under
/homeassistant/www/community/swiss-army-knife-card/resources.yaml

- url: /hacsfiles/swiss-army-knife-card/swiss-army-knife-card.js
  type: module

5 - and here, the drama
 I don’t have: user-svg-definitions.yaml

6 - and I don’t have the file: ui-lovelace.yaml. but ui_lovelace_minimalist at the root


While searching I found it under: /home assistant/ui lovelace minimalist/dashboard/ui-lovelace.yaml so I added:

# Swiss Army Knife Templates
#
# The system templates come with the HACS install and can be updated
# with a new release. That part is automatic!
sak_sys_templates:
  !include www/community/swiss-army-knife-card/sak_templates.yaml

# The user templates are created by the user, and won't be updated 
# with a new release. If changes are required, then the user has to
# upate the template configuration files.
sak_user_templates:
  !include lovelace/sak_templates/sak_templates.yaml

7 - I added in the configuration.yaml file

http:
  cors_allowed_origins:
    - https://unpkg.com
    - https://unpkg.com/lit-html@1/directives/style-map.js?module
    - https://unpkg.com/lit-html@1/directives/if-defined?module
    - https://unpkg.com/lit-html@%5E1.0.0?module
    - https://unpkg.com/lit-html@1/directives/style-map.js?module

even if I didn’t understand anything about :
Step 2c: Add some files to configuration.yaml As long as this card is not a bundle, you have to manually add some references in the cors_allowed_origins definition of the configuration.yaml
I didn’t find this “cors_allowed_origins”

If someone would be kind enough to help me
? it could perhaps help others too


Thanks and sorry for the length


Have a great day!

Does anyone get the slider tool works by sliding and set the brightness?
i only can see the brightness but cant set it

Hi, I have a problem with the gauge only filling a third of the arc segment.


The map code:

              - type: 'custom:swiss-army-knife-card'
      
                entities: 
                  - entity: light.salon_spots_au_sol
                    name: Spot
                    area: Salon
                    icon: mdi:lightbulb-spot
                  - entity: light.salon_spots_au_sol
                    name: Spot
                    area: Salon
                    icon: mdi:lightbulb-spot
                    attribute: brightness
                    unit_of_measurement: "%"
                    convert: brightness_pct
...
                      template:
                        name: sak_toolset_light_button_slider3_nm

the code of the template

sak_toolset_light_button_slider3_nm:
  template:
    type: toolset
    defaults: 
      - entity_light: 0
      - entity_brightness: 1
        #unit_of_measurement: "%"
        convert: brightness_pct
...
...
      - type: segarc
        id: 0
        entity_index: '[[entity_brightness]]'
        position:
          cx: 83
          cy: 17
          start_angle: -70
          end_angle: 250
          width: 2
          radius: 12
        scale:
          min: 0
          max: 100
        show:
          scale: true
          style: 'colorlist'
          #derived_entity:
          #  input : '[[[ return state ]]]'
          #  state: >
          #    [[[
          #      if (typeof(entity) === 'undefined') return;
          #      if (typeof(state) === 'undefined') return;
          #      const brightness = entity.attributes.brightness;
          #      return brightness === null ? 0 : Math.round(brightness **[u]tried * and / 2.55[/u]**);
          #    ]]]
        segments:
          colorlist:

I uncommented the #derived entity part and tried *2.55 because 100/2.55=39,
 same results

The slider at the bottom of the icon works correctly and the entire gauge fills up to 100% brightness.

An idea ?

I did a hybrid installation. I downloaded the package from GitHub: git clone https://github.com/AmoebeLabs/swiss-army-knife-card.git
Then I copied the files into the correct directories according to the structure you find here Installation - Swiss Army Knife Card.

I use the lovelace UI mode but for swiss-army-knife-card I created a dashboard in yaml, in fact I created 4 to include the examples and tutorials. To do this you add this in configuration.yaml

lovelace:
  dashboards:
    yaml-dashboard:
      mode: yaml
      filename: ui-lovelace.yaml
      title: Dashboard YAML
      icon: mdi:home
      show_in_sidebar: true
      require_admin: false

    sak-examples:
      mode: yaml
      filename: sak-examples-dashboard.yaml
      title: Swiss Army Knife Examples
      icon: mdi:hospital-box
      show_in_sidebar: true
    sak-tutorials:
      mode: yaml
      filename: sak-tutorials-dashboard.yaml
      title: Swiss Army Knife Tutorials
      icon: mdi:hospital-box
      show_in_sidebar: true
    sak-fces:
      mode: yaml
      filename: sak-functional-card-examples-dashboard.yaml
      title: Swiss Army Knife FCEs
      icon: mdi:hospital-box
      show_in_sidebar: true

If you have placed the files correctly according to the required structure, you should have these 4 files in the folder where configuration.yaml is located: ui-lovelace.yaml, sak-examples-dashboard.yaml, sak-tutorials-dashboard.yaml et sak-functional-card-examples-dashboard.yaml.

You need to check that ui-lovelace.yaml points to the yaml files and the .js resource. Here is what I have (with a small example of two cards, adjust the entities):

# Swiss Army Knife Templates
sak_sys_templates:
  !include www/community/swiss-army-knife-card/sak_templates.yaml
sak_user_templates:
  !include lovelace/sak_templates/sak_templates.yaml

# Decluttering Templates
decluttering_templates:
  !include lovelace/decluttering_templates/decluttering_templates.yaml

resources:
  - url: /local/community/swiss-army-knife-card/swiss-army-knife-card.js
    type: module

views:
  - title: Test
    path: Test
    theme: 'NM - Gonsboro'
    cards:
      # Swiss Army Knife Card for Salon
      - type: custom:decluttering-card
        template: header_template
        variables:
          - content: 'Salon'
          - font_color: var(--secondary-text-color)
          - font_size: 3em
      - type: horizontal-stack
        cards:
          - type: custom:decluttering-card
            template: sak_light_button_template_nm_tpl
            variables:
              - entity: light.salon
              - area: Salon
              - name: Plafonnier
              - icon: 'mdi:globe-light-outline'
          - type: custom:decluttering-card
            template: sak_light_button_template_nm_tpl
            variables:
              - entity: light.salon_spots_au_sol
                attribute: brightness
                unit_of_measurement: "%"
                convert: brightness_pct
                secondary_info: last_changed
                format: relative
              - area: Salon
              - name: Spots
              - icon: 'mdi:wall-sconce-flat-variant'
          - type: 'custom:button-card'
            color_type: blank-card

Restart or reload the configuration, clear the browser cache, and you should see the new dashboards. Very few cards will be visible because you’ll obviously have to adjust the entities.

In the dashboard named “Dashboard Yaml” you should then see this:

1 Like

I was searching for this kind of equalizer view to compare my 13 solar power strings current power output, but the specific one based on Watt per kWp installed.
That way I can compare different pitches and panels on the same comparable scale.

I searched for home assistant equalizer chart and found your idea here quite close


Is it possible to show 13 sensors / strings and its values next to each other and in how many segments ?

Thanks a lot

sounds similiar to this

i.setConfig is not a function
HA 2025.7.1


Everything is working for me!

ĐŸĐŸĐ·ĐŽŃ€Đ°ĐČĐ»ŃŃŽ!

please share your version and the structure folder

I did it according to your instructions

i.setConfig is not a function