Utilisation de la carte Decluttering Card

Principe de Decluttering Card

Nous utilisons tous plusieurs fois le même bloc de configuration dans notre configuration lovelace et nous ne voulons pas changer les mêmes choses à cent endroits dans notre configuration à chaque fois que nous voulons modifier quelque chose.

Cette carte vous permet de réutiliser plusieurs fois la même configuration dans votre configuration lovelace pour éviter les répétitions et supporte les variables et les valeurs par défaut.

Référence de la carte 

https://github.com/custom-cards/decluttering-card

Définition du modèle de carte (dans UI)

La déclaration du modèle se fait en ajoutant un bloc decluttering_templates:

Pour l’ajouter : Menu à 3 point en haut à droite => Modifier le dashboard => RE Menu à 3 point en haut à droite => Editeur de configuration.
Le bloc est à placer AVANT views:

Pour cet exemple, j’ai fait très très simple, je n’utilise qu’une variable, c’est l’id entity de la zone qui apparaitra sous la forme [[zone]].

decluttering_templates:
image_zone:
element:
type: image
entity: '[[zone]]'
style:
width: 100%
top: 50%
left: 50%
state_image:
'on': /local/maison/1920x1000/[[zone]].png
'off': /local/maison/1920x1000/transparent.png

Appel de mon modèle image_zone de la carte decluttering

Il suffit ainsi d’utiliser 4 lignes au lieu de 11 pour afficher la carte d’une zone ; comme j’ai 12 zones, l’intérêt est évident.

- type: custom:decluttering-card
  template: image_zone
  variables:
   - zone: light.lumiere_chambre_parents

Edit / Bonus, évolution 

Depuis la création du tuto, j’ai encore amélioré mes cartes decluttering, voici les codes.

decluttering_templates:
  image_zone:
    element:
      type: image
      entity: '[[zone]]'
      style:
        width: 100%
        top: 50%
        left: 50%
      state_image:
        'on': /local/maison/1920x1000/[[zone]].png
        'off': /local/maison/1920x1000/transparent.png
  image_binary_sensor:
    default:
      - bonuson: ''
      - bonusoff: ''
      - zoneoff: transparent
    element:
      type: image
      entity: '[[zone]]'
      tap_action:
        action: none
      style:
        width: 100%
        top: 50%
        left: 50%
      state_image:
        'on': /local/maison/1920x1000/[[zone]][[bonuson]].png
        'off': /local/maison/1920x1000/[[zoneoff]][[bonusoff]].png
  image_lock:
    default:
      - bonuson: ''
      - bonusoff: ''
      - zoneoff: transparent
    element:
      type: image
      entity: '[[zone]]'
      tap_action:
        action: none
      style:
        width: 100%
        top: 50%
        left: 50%
      state_image:
        locked: /local/maison/1920x1000/[[zone]][[bonuson]].png
        unlocked: /local/maison/1920x1000/[[zoneoff]][[bonusoff]].png

Puis sur les vues :

  • Pour les lumières
- type: custom:decluttering-card
  template: image_zone
  variables:
    - zone: light.lumiere_chambre_parents
- type: custom:decluttering-card
  template: image_zone
  variables:
    - zone: light.eclairage_escalier_couloir
- type: custom:decluttering-card
  template: image_zone
  variables:
    - zone: light.lumieres_de_la_salle_a_manger
  • Pour les lock ou binary_sensor
- type: custom:decluttering-card
  template: image_lock
  variables:
    - zone: lock.porte
    - zoneoff: lock.porte
    - bonuson: _close
    - bonusoff: _open
- type: custom:decluttering-card
  template: image_binary_sensor
  variables:
    - zone: binary_sensor.porte_dentree_contact
- type: custom:decluttering-card
  template: image_binary_sensor
  variables:
    - zone: binary_sensor.salle_de_bains_porte_contact
    - bonuson: _grise
- type: custom:decluttering-card
  template: image_binary_sensor
  variables:
    - zone: binary_sensor.volet_de_la_cuisine_contact
    - zoneoff: binary_sensor.volet_de_la_cuisine_contact
    - bonusoff: _close
- type: custom:decluttering-card
  template: image_binary_sensor
  variables:
    - zone: binary_sensor.petit_volet_de_la_salle_a_manger_contact
    - zoneoff: binary_sensor.petit_volet_de_la_salle_a_manger_contact
    - bonusoff: _close
- type: custom:decluttering-card
  template: image_binary_sensor
  variables:
    - zone: binary_sensor.grand_volet_de_la_salle_a_manger_contact
    - zoneoff: binary_sensor.grand_volet_de_la_salle_a_manger_contact
    - bonusoff: _close