Aide à la création d'un template comptant et listant toutes les fenêtres et portes ouvertes

Hello,

Je met la base de ma carte éventuellement

type: custom:mushroom-template-card
primary: Ouvertures {{ states("sensor.nombre_ouvrants") }}
secondary: "{{ states(\"sensor.liste_ouvrants\") }}"
icon: mdi:door
icon_color: |
  {% if states["sensor.liste_ouvrants"].state == "" %}
    green
  {% else %}
    red
  {% endif %}
double_tap_action:
  action: none
badge_icon: ""
entity: sensor.nombre_ouvrants
tap_action:
  action: more-info
multiline_secondary: true
fill_container: true
layout: horizontal

cdt

Merci @freetronic et @Idaho947
Cela m’a remis les yeux en face des trous !!
J’avais effectivement créé un template binary_sensor au lieu de sensor et forcément cela ne pouvait pas fonctionner.
Maintenant c’est bon :


J’ai gardé ton code @freetronic puisque c’est celui que j’avais au début.
J’aime bien que le nom de l’ouvrant soit masqué si tout est fermé.

Merci encore !

2 « J'aime »

Hello,

N’oublie pas de passer ton sujet en résolu :wink:

cdt

Bah… c’est pas le mien, c’est celui de @MilesTEG1
Je m’y suis greffé comme un malpoli !!! :joy:

Re,

Ah oui oups, autant pour moi :smiley:

cdt

1 « J'aime »

Pas de soucis ^^
Ça a fait avancer la résolution de ma demande :wink:

Je vais m’inspirer grandement de ce que tu as fait ^^
Je reviens quand j’aurais mis en place .
Et si je n’ai pas eu de souci, je passerais en résolu :+1:

@freetronic Pourrais-tu poster, s’il te plait, le code de tes capteurs dans les captures d’écran ?

  • Liste Ouvrants
  • Nombre Ouvrants

Hello,

Je l’ai déjà donné plus haut Aide à la création d'un template comptant et listant toutes les fenêtres et portes ouvertes - #2 par freetronic

faudra juste vérifier l’indentation qui parfois merdoit entre le copier/coller/mise en forme ici :wink:

cdt

1 « J'aime »

Oh my bad ! Je vais revoir ça ^^
merci.

Bonsoir,
Bon, j’essaye de comprendre certaines choses avec les templates, mais c’est pas gagné.

Déjà, ce que j’ai fait et qui fonctionne.

Créer deux sensors :

- sensor:
    # ╔══════════════════════════════════════════════════════════════════════════╗
    # ║ Entités déterminer la liste des capteurs indiquant une ouverture         ║
    # ╚══════════════════════════════════════════════════════════════════════════╝

    - unique_id: "nombre_fenetres_portes"
      name: "nombre_fenetres_portes"
      state: >
        {{ states.binary_sensor | selectattr('attributes.device_class', 'in', ['door', 'window'])  | list | count }}

    - unique_id: "nombre_fenetres_portes_ouvertes"
      name: "nombre_fenetres_portes_ouvertes"
      state: >
        {{ states.binary_sensor | selectattr('state', 'eq', 'on') | selectattr('attributes.device_class', 'in', ['door', 'window']) | list | count }}

J’ai testé ces états template dans la partie Outils de développement / modèle.

🪟 Fenêtre(s) ouverte(s) : {{ states("sensor.nombre_fenetres_portes_ouvertes") }} / {{ states("sensor.nombre_fenetres_portes") }}

La carte que je veux faire affiche bien cela :

Jusque-là, c’est normal, c’est majoritairement votre code ^^

Mais voilà j’ai un hic sur un autre capteur, celui qui me fait la liste des ouvertures pas fermées, ou pour les essais la liste des ouvertures fermées…

Dans l’éditeur de modèles j’ai deux choses qui fonctionnent très bien (je ne sais pas trop laquelle est la meilleure, mais une dépend d’un groupe que je dois compléter manuellement si j’ajoute un nouveu détecteur…) :

Liste des ouvertures fermées v1 :
{{ states.binary_sensor | selectattr('state', 'eq', 'off') | selectattr('attributes.device_class', 'in', ['door', 'window']) | map(attribute='name') | list | join(' ; ') }}

Liste des ouvertures fermées v2 :
{{ expand('binary_sensor.groupe_ouvertures') | selectattr('state', 'eq', 'off') | map(attribute='name') | list | join(' ; ') }}

Oui :wink: j’ai essayé de faire une commande plus courte que celle fournie par @Idaho947 ou @freetronic :slight_smile:

Mais le souci, c’est que si je mets ce code dans un sensor, ce dernier est en état unknown

    - unique_id: "liste_fenetres_portes_ouvertes"
      name: "liste_fenetres_portes_ouvertes"
      state: >
        {{ states.binary_sensor | selectattr('state', 'eq', 'off') | selectattr('attributes.device_class', 'in', ['door', 'window']) | map(attribute='name') | list | join(' ; ') }}

Je ne comprends pas ce qui se passe, pourquoi le code fonctionne dans l’éditeur de modèles, et pas dans le sensor template ??

Avant d’abandonner mon idée, et de repasser sur la version longue du code, j’aimerais comprendre…
Quelqu’un saurait-il m’aider ?
Merci d’avance :wink:

Alors peut-être une histoire de longueur de texte limité dans les capteurs. J’avais vu passer ça mais je sais plus où. Si tu ne laisse que une ou deux fenêtres fermées ça passe ?

Ha ! C’est fort possible que ce soit ça qui bloque…
Et non je n’ai pas essayé de laisser qu’une fenêtre ou deux de fermée…
En revanche, hier, j’ai ouvert une fenêtre, et du code généré par Copilot m’a affiché cette fenêtre ouverte :slight_smile:
Sinon je déporte l’affichage des fenêtres ouvertes ou fermées dans la carte.
Car quand ma femme ouvre les fenêtres pour aérer la maison, elles y passent toutes :sweat_smile: donc j’aurais encore le souci si c’est le capteur qui doit les lister.