Icone contextuels sur un template

Mon problème

Bonjour,
Je débute sous HA après 3 ans passés sous jeedom. Après lecture de la documentation et des forums, je bute sur un problème.
Je dispose d’un FBGS222 qui me permet de contrôler l’ouverture de mon portail ainsi que son état (ouvert, fermé, Piéton). Pour que tout ça soit plus user friendly, j’ai créé un template sensor comme suit dans mon fichier template.yaml:

- sensor:
    - unique_id: "Portail"
      state: >
        {% if states( 'binary_sensor.smart_implant_intrusion_3' ) == 'on' %}
          Fermé
        {% elif states( 'binary_sensor.smart_implant_intrusion_2_2' ) == 'on' %}
          Ouvert
        {% else %}
          Piéton
        {% endif %}
      icon: >
        {% if states( 'binary_sensor.smart_implant_intrusion_3' ) == 'on' %}
          mdi:gate
        {% elif states( 'binary_sensor.smart_implant_intrusion_2_2' ) == 'on' %}
          mdi:gate-open
        {% else %}
          mdi:gate-alert
        {% endif %}

Le statut fonctionne très bien, mais je souhaiterai afficher une icône contextuelle dans mes card.
Mes divers essais ne m’ont pas permis d’obtenir un résultat.

Je pense que je suis vraiment sur un problème de débutant mais je bute dessus depuis plusieurs jours… :slightly_frowning_face: Je serai reconnaissant de toute l’aide qui pourrai m’être donnée

Ma configuration

VM HAOS v. 2023.2.3 sous proxmox

System Information

version core-2023.2.3
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.10.7
os_name Linux
os_version 5.15.90
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4884
Installed Version 1.30.1
Stage running
Available Repositories 1266
Downloaded Repositories 8
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 9.5
update_channel stable
supervisor_version supervisor-2023.01.1
agent_version 1.4.1
docker_version 20.10.22
disk_total 30.8 GB
disk_used 5.7 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Samba share (10.0.0), File editor (5.5.0), Terminal & SSH (9.6.1), Studio Code Server (5.5.2), Zigbee2MQTT Proxy (0.2.0), Log Viewer (0.14.0)
Dashboards
dashboards 1
resources 3
views 2
mode storage
Recorder
oldest_recorder_run 31 janvier 2023 à 13:43
current_recorder_run 8 février 2023 à 07:59
estimated_db_size 239.07 MiB
database_engine sqlite
database_version 3.38.5

Salut @maitryoda,

T’as rien dans les logs ? Là comme ça je suis pas certain du :

- sensor:
    - unique_id: "Portail"

Tu peux tester :

- sensor:
    - unique_id: portail
      name: "Portail"
      device_class: opening
      state: >
        {% if is_state('binary_sensor.smart_implant_intrusion_3', 'on') %}
          Fermé
        {% elif is_state('binary_sensor.smart_implant_intrusion_2_2', 'on') %}
          Ouvert
        {% else %}
          Piéton
        {% endif %}
      icon: >
        {% if is_state('binary_sensor.smart_implant_intrusion_3', 'on') %}
          mdi:gate
        {% elif is_state('binary_sensor.smart_implant_intrusion_2_2', 'on')%}
          mdi:gate-open
        {% else %}
          mdi:gate-alert
        {% endif %}

A priori les 2 entrées du smart-implant sont câblées, quels états tu contrôles avec ?
Et à quel binary_sensor ça correspond côté HA ?

1 « J'aime »

bonjour,
Merci de ton attention.
Pour le unique_id, il n’y était pas au départ, mais cela bloquait certaines opérations via l’IHM (changement du nom entre autres). J’ai pris cette propriété dans la doc HA. Il y avait au préalable une propriété name: « Portail ».

Le smart implant est parfaitement fonctionnel, les binary sensor correspondent aux entrées du smart implant:

  • binary_sensor.smart_implant_intrusion_3 : butée de fermeture du portail
  • binary_sensor.smart_implant_intrusion_2_2: butée d’ouverture du portail

Je fais le test demandé et te tiens au courant dans l’après midi

Merci de m’avoir mis sur la piste, ça fonctionne. :+1:
quelques précisions: l’option « opening » n’existe pas pour la propriété device_class. Je l’ai remplacé par enum
que ce soit avec la propriété name ou unique_id, cela fonctionne.

Voici mon template définitif et parfaitement fonctionnel:

- sensor:
    - unique_id: "Etat_Portail"
      device_class: enum
      state: >
        {% if is_state('binary_sensor.smart_implant_intrusion_3', 'on') %}
          Fermé
        {% elif is_state('binary_sensor.smart_implant_intrusion_2_2', 'on') %}
          Ouvert
        {% else %}
          Piéton
        {% endif %}
      icon: >
        {% if is_state('binary_sensor.smart_implant_intrusion_3', 'on') %}
          mdi:gate
        {% elif is_state('binary_sensor.smart_implant_intrusion_2_2', 'on')%}
          mdi:gate-open
        {% else %}
          mdi:gate-alert
        {% endif %}

Ouais j’ai pas fait gaffe, car chez moi mon portail n’a que 2 états, et ça devient un binary_sensor et l’opening passe correctement.

Du coup GG à toi pour « enum » :wink:

Pour le unique_id il me semble qu’il est préconisé qu’il soit inscrit en minuscule, sans accent, sans espace, mais je ne retrouve pas où j’ai lu ça.

Bref l’important c’est que ça fonctionne :wink: !!!

1 « J'aime »

bonjour,
Je suis sur un VM HA bac à sable pour le moment pour découvrir le système.
Je renommerai mon unique_id lorsque je me ferai ma VM de prod propre :wink:
Merci en tout cas pour le coup de pouce que tu m’as donné.