Développer plusieurs groupes dans un même template

une petite astuce que je viens de découvrir
si vous souhaiter développer plusieurs groupes dans le même template,
pas besoin de dupliquer la commande pour chacun des groupes
vous pouvez utiliser un dictionnaire.
exemple, au lieu de faire :

          {{ expand('group.pirs' ) 
          | selectattr('state','eq','on') 
          | rejectattr('state', 'in', ['unavailable', 'unknown']) 
          | map(attribute='name') | list | join(', ') }}
          {{ expand('group.doors' ) 
          | selectattr('state','eq','on') 
          | rejectattr('state', 'in', ['unavailable', 'unknown']) 
          | map(attribute='name') | list | join(', ') }}
          {{ expand( 'group.windows' ) 
          | selectattr('state','eq','on') 
          | rejectattr('state', 'in', ['unavailable', 'unknown']) 
          | map(attribute='name') | list | join(', ') }}

on peut faire

          {{ expand(['group.pirs', 'group.doors', 'group.windows'] ) 
          | selectattr('state','eq','on') 
          | rejectattr('state', 'in', ['unavailable', 'unknown']) 
          | map(attribute='name') | list | join(', ') }}
2 « J'aime »

Merci pour le partage :+1:

Peut être que cela ne paraît pas évident de prime abord dans la documentation :

→ Documentation HA : Expand

Car celle-ci met en scène un dispositif de traçage et un groupe.



Petite question :

A quoi sert le rejectattr vu que tu utilises déjà le selectattr (qui ne garde que les entités dont l’état est on) ?

très bonne question
manifestement à rien en relisant suite à ton interrogation.
je copie colle souvent en changeant le selectattr qui n’est pas toujours sur state.
pour le coup cette fois ci j’aurai pu me relire.
merci pour ta lecture éclairée

1 « J'aime »

et je n’avais pas lu la documentation :slight_smile: j’étais tout content de moi, je le suis un peu moins du coup

Ca n’enlève rien au fait que tu es venu partager ici :+1:

+1000000

tenor

2 « J'aime »