Probleme Installation themes Minimalist

Mon problème

Problème pour installation thèmes minimaliste.

Bonjour

Après avoir lu le sujet sur le thèmes minimaliste, j’essaie de l’installer.

J’ai choisi la méthode UI-mode pour l’installer (peut être pas la mieux, mais c’est celle qui est à ma porté)
Je suis a l’étape ou je dois insérer le code (crée par le générateur de code).
Mais quand je veux enregistrer c’est le message d’erreur suivant :

Impossible d'analyser le YAML : YAMLException: bad indentation of a sequence entry (643:9) 640 | var label = states[entity ... 641 | } 642 | return label; 643 | ]]] ---------------^ 644 | 645 | card_media_player_with_control:

J’ai bien compris que c’est un problème d’indentation mais je sais pas lequel.
(je vous joins un extrait du code ligne 599 à 644)

  card_media_player:
    template:
      - icon_info_bg
      - ulm_language_variables
    icon: |
      [[[
        var icon = 'mdi:speaker';
        if(entity.attributes.app_name){
          var app = entity.attributes.app_name.toLowerCase();
          if(app == 'spotify'){
            var icon = 'mdi:spotify';
          } else if(app == 'google podcasts'){
            var icon = 'mdi:google-podcast';
          } else if(app == 'plex'){
            var icon = 'mdi:plex';
          } else if(app == 'soundcloud'){
            var icon = 'mdi:soundcloud';
          } else if(app == 'youtube music'){
            var icon = 'mdi:youtube';
          } else if (app == 'oto music'){
            var icon = 'mdi:music-circle';
          }
        }
        return icon;
      ]]]
    label: |
      [[[ 
          if (entity.state == 'off'){
            return variables.ulm_off;
          } else {
            return variables.ulm_on;
          }
      ]]]
    state:
      - operator: template
        value: "[[[ return entity.state != 'off' ]]]"
        name: "[[[ return states[entity.entity_id].attributes.media_title; ]]]"
        label: |
          [[[ 
            var label = variables.ulm_on;
            if(states[entity.entity_id].attributes.media_album_name){
              var label = states[entity.entity_id].attributes.media_album_name;
            }
            return label;
        ]]]

Merci pour votre aide

À première vue, je pense qu’il manque 2 espaces sur la dernière ligne, juste avant « ]]] » pour être aligné au précédent « [[[ ».
À tester. :wink:

Merci, je vais tester et vous tiens informé

J’ai modifié, mais je n’ai toujours pas le thèmes minimaliste, j’ai certainement loupé quelquechose, mais je ne sais pas quoi…

Il me semble pourtant avoir bien suivi les explications de ce lien : https://ui-lovelace-minimalist.netlify.app/installation/yaml-mode

Si quelqu’un peut m’apporter son aide pour voir ce qui ne va pas…

J’ai réussi à intégrer le thèmes par la méthode YAML.
voici ce que j’obtiens :

Mais je n’ai jamais réussi a l’intégré en Ui-mode
Les cartes s’affiche, mais en normal …

Si vous pouvez me guider pour savoir pourquoi je n’arrive pas en Ui-mode.
J’ai beau relire depuis 2 jours le tuto installation (traduit par google), je n’y parviens pas…

Salut,

As-tu appliqué le theme sur ton user ? (accès en bas à gauche puis selection)

Bonjour Pulpy

Oui j’ai bien sélectionné le thème minimaliste desktop.

Et tu as forcé le refresh du cache de ton navigateur (ctrl +F5) ?

Je viens de le faire à l’instant, mais c’est peut être lors de l’ajout de carte que c’est pas bon.

Pour le thème Minimaliste on peut utiliser les carte existante lors de l’ajout, ou il faut choisir manuel et intégré le code ?

Le thème s’applique aux cartes (anciennes ou nouvelles), ce qui peut arriver c’est que les éléments anciens soient à corriger sur certains points, mais globalement ça doit s’afficher.
Si ça marche pas chez toi, il faut explorer les logs HA et debug via le navigateur (F12)…

Je suis pas très familier avec les log et surtout le debug

Les Logs HA celui qui est dans onglet Paramètres ou celui de onglet Modules ?

Pour le debug F12, je dois le faire quand je suis sur dashboard ui-minimalist ?

Le plus complet c’est celui du bouton en bas des paramètres

Oui, F12 pour activer la fenêtre de debug et F5 pour recharger la page (et tout voir)

Merci
Je vais regarder les logs et debug. je te tiens au courant.
Bon appétit, à plus tard.

1 « J'aime »

Voici ce que j’ai trouvé dans le log au redémarrage de HA

Logger: homeassistant.components.lovelace
Source: components/lovelace/__init__.py:166
Integration: Lovelace (documentation, issues)
First occurred: 14:50:42 (1 occurrences)
Last logged: 14:50:42

Cannot register panel at lovelace-minimalist, it is already defined in <homeassistant.components.lovelace.dashboard.LovelaceYAML object at 0x7f90099760>

Je sais pas exactement comment c’est fichu, mais à priori, tu as des configurations en qui se perturbent l’une l’autre

Je n’ai pas trouvé ce qui perturbe, du coup j’ai supprimé le thème en mode UI.
J’ai laissé celui en YAML.

Je voudrais utilisé une carte réalisé par Clemalex, celle pour le portail et la porte de garage.
https://forum.hacf.fr/t/dashboard-minimalist/5507/7?u=pascal_ha

J’ai copié/collé la partie TEMPLATES en têtes de mon fichier lovelace-minemalist.yaml et la partie CARD à la suite de mon fichier. Mais j’ai une erreur.

J’ai essayé en ne conservant que la partie porte Garage dans un deuxième temps mais j’ai le même résultat
Les Prises, les lumières et les volets fonctionnent

capteur de position pour le garage est : binary_sensor.porte_garage
la commande ouverture/fermeture est : switch.s10_porte_garage

Je vous joint le code de mon fichier lovelace-minimalist.yaml

#templates
button_card_templates:
  list_items_1:
    styles:
      card:
        - box-shadow: none
        - padding: 0px
      grid:
        - grid-template-areas: '"item1"'
        - grid-template-columns: 1fr
        - grid-template-rows: min-content
        - column-gap: 7px
  garage_button:
    variables:
      entity: binary_sensor.default
      name: Default name
      icon: mdi:home
      entity_command: input_boolean.default
    styles:
      card:
        - border-radius: 20px
        - box-shadow: var(--box-shadow)
        - padding: 12px
      grid:
        - grid-template-areas: '"item1" "item2"'
        - grid-template-columns: 1fr
        - grid-template-rows: min-content  min-content
        - row-gap: 12px
    custom_fields:
      item1:
        card:
          entity: '[[[ return variables.entity ]]]'
          name: '[[[ return variables.name ]]]'
          tap_action:
            action: more-info
          template:
            - icon_info
            - ouverture
          state:
            - icon: mdi:garage-open-variant
              value: 'on'
              id: 'on'
              label: Ouvert
            - icon: mdi:garage-variant
              value: 'off'
              id: 'off'
              label: Fermé
          type: custom:button-card
      item2:
        card:
          template: list_items_1
          type: custom:button-card
          custom_fields:
            item1:
              card:
                icon: '[[[ return variables.icon ]]]'
                tap_action:
                  action: call-service
                  service: input_boolean.turn_on
                  service_data:
                    entity_id: '[[[ return variables.entity_command ]]]'
                type: custom:button-card
                template: widget_icon
  portail_close_button:
    variables:
      entity: binary_sensor.default
      name: Default name
      icon: mdi:home
      entity_command: input_boolean.default
    styles:
      card:
        - border-radius: 20px
        - box-shadow: var(--box-shadow)
        - padding: 12px
      grid:
        - grid-template-areas: '"item1" "item2"'
        - grid-template-columns: 1fr
        - grid-template-rows: min-content  min-content
        - row-gap: 12px
    custom_fields:
      item1:
        card:
          entity: '[[[ return variables.entity ]]]'
          name: '[[[ return variables.name ]]]'
          tap_action:
            action: more-info
          template:
            - icon_info
            - ouverture
          state:
            - icon: mdi:gate-open
              value: 'on'
              id: 'on'
              label: Ouvert
            - icon: mdi:gate
              value: 'off'
              id: 'off'
              label: Fermé
          type: custom:button-card
      item2:
        card:
          template: list_items_1
          type: custom:button-card
          custom_fields:
            item1:
              card:
                icon: mdi:arrow-left-bold
                tap_action:
                  action: call-service
                  service: input_boolean.turn_on
                  service_data:
                    entity_id: '[[[ return variables.entity_command ]]]'
                type: custom:button-card
                template: widget_icon
  list_items_2:
    styles:
      card:
        - box-shadow: none
        - padding: 0px
      grid:
        - grid-template-areas: '"item1 item2"'
        - grid-template-columns: 1fr 1fr
        - grid-template-rows: min-content
        - column-gap: 7px
  portail_button:
    variables:
      entity_pieton: input_boolean.default
      entity_voiture: input_boolean.default
      name: Default name
    styles:
      card:
        - border-radius: 20px
        - box-shadow: var(--box-shadow)
        - padding: 12px
      grid:
        - grid-template-areas: '"item1" "item2"'
        - grid-template-columns: 1fr
        - grid-template-rows: min-content  min-content
        - row-gap: 12px
    custom_fields:
      item1:
        card:
          entity: '[[[ return variables.entity ]]]'
          name: '[[[ return variables.name ]]]'
          tap_action:
            action: more-info
          template:
            - icon_info
            - ouverture
          state:
            - icon: mdi:gate-open
              value: 'on'
              id: 'on'
              label: Ouvert
            - icon: mdi:gate
              value: 'off'
              id: 'off'
              label: Fermé
          type: custom:button-card
      item2:
        card:
          template: list_items_2
          type: custom:button-card
          custom_fields:
            item1:
              card:
                icon: mdi:run
                tap_action:
                  action: call-service
                  service: input_boolean.turn_on
                  service_data:
                    entity_id: '[[[ return variables.entity_pieton ]]]'
                type: custom:button-card
                template: widget_icon
            item2:
              card:
                icon: mdi:car
                tap_action:
                  action: call-service
                  service: input_boolean.turn_on
                  service_data:
                    entity_id: '[[[ return variables.entity_voiture ]]]'
                type: custom:button-card
                template: widget_icon  


#resources:
#  - url: /hacsfiles/button-card/button-card.js
#    type: module
#####################################################
#  Themes Minimalist
#####################################################
button_card_templates: !include_dir_merge_named minimalist-templates/
views:

# Acceuil
  - title: Accueil
    icon: mdi:home-circle
    cards:
      - type: grid
        cards:
          - type: picture-entity
            entity: person.pascal
            aspect_ratio: '1'
            show_name: false
            image: /api/image/serve/5bf2d4ea3786acfe309723424df863fe/512x512
               
# Carte Volets Roulant
  - title: Volets
    icon: mdi:window-shutter-alert
    cards:
      - type: horizontal-stack
        cards:
          - type: custom:button-card
            template: edge
          - type: 'custom:button-card'
            template: 
              - card_cover_with_buttons
            variables:
              ulm_card_cover_with_buttons_name: "Store Jardin"
              ulm_card_cover_with_buttons_entity: "cover.store_v0"
                                           
# Carte Lumieres
  - title: Lumieres
    icon: mdi:lightbulb-group
    cards:
      - type: 'custom:button-card'
        template: card_light
        entity: switch.s1_1_salon
      - type: 'custom:button-card'
        template: card_light
        entity: switch.s1_2_salle
             

# Carte PRISES
  - title: Prises
    icon: mdi:power-socket-fr 
    cards:
      - type: 'custom:button-card'
        template: card_light
        entity: switch.plug_1
      - type: 'custom:button-card'
        template: card_light
        entity: switch.plug_2
      


# Carte Portes Automatique  
  - title: Portes Automatique
    icon: mdi:garage-alert-variant
    cards:
      - type: 'custom:button-card'
        template: card_light
        entity: switch.s10_porte_garage  
      - type: 'custom:button-card'
        template: card_light
        entity: switch.s9_portail_automatique 
#cards
#  -type: grid
#   cards:
#      - type: horizontal-stack
#        cards:
#          - type: conditional
#            conditions:
#              - entity: binary_sensor.door_012
#                state: 'off'
#            card:
#              type: custom:button-card
#              variables:
#                entity: binary_sensor.door_012
#                entity_pieton: input_boolean.portail_pieton_command
#                entity_voiture: input_boolean.portail_voiture_command
#                name: Portail
#              template:
#                - portail_button
#          - type: conditional
#            conditions:
#              - entity: binary_sensor.door_012
#                state: 'on'
#            card:
#              type: custom:button-card
#              variables:
#                entity: binary_sensor.door_012
#                entity_command: input_boolean.portail_pieton_command
#                name: Portail
#              template:
#                - portail_close_button
      - type: horizontal-stack
        cards:
          - type: conditional
            conditions:
              - entity: binary_sensor.porte_garage
                state: 'off'
            card:
              type: custom:button-card
              variables:
                entity: binary_sensor.porte_garage
                entity_command: switch.s10_porte_garage
                name: Garage
                icon: mdi:arrow-up-bold
              template:
                - garage_button
          - type: conditional
            conditions:
              - entity: binary_sensor.porte_garage
                state: 'on'
            card:
              type: custom:button-card
              variables:
                entity: binary_sensor.porte_garage
                entity_command: switch.s10_porte_garage
                name: Garage
                icon: mdi:arrow-down-bold
              template:
                - garage_button
    columns: 2
    square: false       

voila c’est peut être simple, mais je m’y retrouve pas…
J’ai fait mon maximum pour éviter les erreurs d’indentation.

Là faut pas chercher plus loin … 2 installations en parallèle dont une qui n’est pas vraiment conseillée…

Regarde attentivement le message d’erreur … ça parle du template garage qui est manquant… ça ne dit pas que les entités garage sont manquantes …

Au début, je voulais installer en Ui mode, cela m’a semblait plus simple, mais ce n’est pas le cas…

Le Template j’ai copié celui de clemalex en tête du fichier, il fallait copié autre chose ? ou faut il enlever le # devant template ?

Il y a VSCODE qui me dit aussi que button_card_templates: est dupliqué, mais quand je le retire c’est pire…

A mon avis, VS ne setrompe pas. Si c’est pire c’est que ça permet de détecter d’autres erreurs

Bon j’ai supprimé la ligne qui était dupliqué.

Mais je n’arrive toujours pas a mettre les cartes personnalisé de clemalex (Bravo a lui pour ce très bon travail) pour le thèmes.
J’ai relu plusieurs fois le sujet et les liens qui indique comment faire, mais je n’y arrive pas.
Certainement quelque chose que j’ai pas saisi.Je sollicite votre aide.

Je vais essayer de vous indiquer comment j’ai procedé :
J’ai installé le thèmes minimaliste en YAML suivant cette procedure https://ui-lovelace-minimalist.netlify.app/installation/yaml-mode
le thèmes fonctionne bien avec les éléments de base (Lumières, cover, etc…)

Prenons exemple pour les boutons portail et garage de clemalex.
La partie #Templates :

  • Je dois mettre les templates ou exactement ? (j’ai essayé dans le fichiers button_card_templates.yaml, dans lovelace-minimalist.yaml sans résultat)
  • Faut il la modifier ? - Faut il le compléter avec autre choses ?

La partie #Cards :

  • Je l’ai mis dans mon fichier lovelace-minimalist.yaml a la suite du code cidessous
# Carte Portes Automatique  
  - title: Portes Automatique
    icon: mdi:garage-alert-variant

( je n’ai que 4 entités qui sont pour la position : binary_sensor.porte_garage et binary_sensor.portail et pour la commande switch.s10_porte_garage et switch.s11_portail)

Je suis désolé pour toutes ces questions, mais j’ai beaucoup de mal a comprendre le mécanisme, même en ayant lu plusieurs fois les sujets … :face_with_head_bandage:

C’est certainement évident pour vous, mais malheureusement pas pour moi…

Merci pour votre aide par avance

Rien avant ça ?
ça m’etonnerai que ça doivent commence par 2 espaces et un tiret … (#c’est un commentaire donc la ligne ne compte pas)