Syntaxe template.yaml

Bonjour,

Je rencontre un problème lors de la création de mes entités depuis un fichier de configuration template.yaml… les noms et unique_id ne correspondent pas à ce que je souhaite…
Dès que j’utilise un name, le unique_id prend la valeur du name avec des « _ »…
De plus, je voudrais préfixer tous les unique_id avec un préfixe commun mais ce ne fonctionne pas non plus.
Pour débuger et comprendre le fonctionnement, j’ai crée 4 sensors:

  • Avec Préfixe sans name
  • Avec Préfixe avec name
  • Sans Préfixe sans name
  • Sans Préfixe avec name

Dans mon fichier configuration.yaml, j’ai ajouté la ligne suivante

template: !include configuration_template.yaml

Et j’ai créé un fichier configuration_template.yaml pour comprendre le fonctionnement des name et unique_id:

#Bloc avec Prefixe altherma
  - unique_id: "altherma"
    sensor:
    - unique_id: "consigne_sans_name_avec_prefixe"
      state: "{{ state_attr('sensor.althermasensors','Point de réglage de DHW') }}"
      unit_of_measurement: '°C'
    - unique_id: "consigne_avec_name_avec_prefixe"
      state: "{{ state_attr('sensor.althermasensors','Point de réglage de DHW') }}"
      name: "Nom de consigne_avec_name_avec_prefixe"
      unit_of_measurement: '°C'
#Bloc sans préfixe
  - sensor:
    - unique_id: "consigne_sans_name_sans_prefixe"
      state: "{{ state_attr('sensor.althermasensors','Point de réglage de DHW') }}"
      unit_of_measurement: '°C'
    - unique_id: "consigne_avec_name_sans_prefixe"
      state: "{{ state_attr('sensor.althermasensors','Point de réglage de DHW') }}"
      unit_of_measurement: '°C'
      name: "Nom de consigne_avec_name_sans_prefixe"

Voici le résultat obtenu:
Avec Préfixe sans name:
Unique_id attentu: sensor.altherma_consigne_sans_name_avec_prefixe
Unique_id obtenu: sensor.template_altherma_consigne_sans_name_avec_prefixe (template_ en trop en début de chaine…)

Avec Préfixe avec name:
Unique_id attentu: sensor.altherma_consigne_avec_name_avec_prefixe
Unique_id obtenu: sensor.nom_de_consigne_avec_name_avec_prefixe (pas de préfixe, et l’unique_id est remplacé par le name avec des « _ »)

Sans Préfixe sans name:
Unique_id attentu: sensor.consigne_sans_name_sans_prefixe
Unique_id obtenu: sensor.template_consigne_sans_name_sans_prefixe (template_ en trop en début de chaine…)

Sans Préfixe avec name:
Unique_id attentu: sensor.consigne_avec_name_sans_prefixe
Unique_id obtenu: sensor.nom_de_consigne_avec_name_sans_prefixe (l’unique_id est remplacé par le name avec des « _ »)

Comment faire pour pouvoir saisir un préfixe et dérouler tous les sensors avec un unique_id et un name sans que le name ne vienne écraser l’unique_id?

  - unique_id: "mon_préfixe"
    sensor:
    - unique_id: "sensor1"
      name: "mon sensor 1"
    - unique_id: "sensor2"
      name: "mon sensor 2"

Bonjour,
C’est vendredi, je n’ai rien compris !
Pourquoi tu ne donnes pas directement l’ID que tu souhaites avoir, c’est tellement plus reposant de faire simple.
Demain samedi :rofl:
Bob

1 « J'aime »

C’est bien le problème… l’unique_id indiqué dans le yaml n’est pas pris en compte si j’y mets un name…

En fait, la dénomination d’unique_id est extrêmement confusante (je trouve), il m’a fallu beaucoup de temps pour comprendre.

Cet unique_id est un id d’identification unique utilisé en interne par HA, pas quand tu t’adresses à ton sensor.

Bref, ce n’est pas fait pour créer un sensor.mon_uniqe_id :slight_smile:

Edit : ce que j’ai trouvé de plus proche de l’explication correcte vient de là, je n’ai pas retrouvé ce que j’avais en tête :

Unique IDs and the Entity Registry
Beginning in Home Assistant release 0.90, unique IDs are generated for each sensor or switch entity. This enables end users to modify the entity names and entity IDs through the Home Assistant UI at Settings → Devices & services → Entities.

Salut

La syntaxe n’est pas à ta main. Par construction unique_id, c’est unique et c’est pas un bloc commun.

template:
  - binary_sensor: 
      - unique_id: etc
  - select:
      - unique_id: etc1
  - sensor:
      - unique_id: etc2

Ce que j’ai l’impression que tu veux c’est un sensor, avec des attributs

@titoumimi Effectivement, il semblerait que entity_id et unique_id ne soit pas la même chose!!!
Mais si l’unique_id est interne à HA, à quoi bon lui donner un nom particulier puisqu’il restera interna!! J’avoue que ça m’échappe!!
@Pulpy-Luke Ce n’est ce que je comprends de la doc officielle:

A priori on peut déclarer un unique_id dans un bloc de plusieurs entités. Cet unique_id sera préfixé aux unique id de chaque entités…

En revanche, si effectivement, l’unique_id reste interne à HA et ne correspond pas à l’entity_id, cela explique pourquoi je n’arrive pas à mes fins!

Effectivement, je n’avais pas vu ce bloc dans la doc !
Par contre, c’est étonnant, j’ai des unique_id dans le bloc sensor, alors que c’est pas indiqué.

Quoiqu’il en soit, l’unique_id, ça sert assez peu :

  • pour retravailler l’entité dans l’ui (j’avoue je ne m’en sers pas)
  • pour regrouper des entités différentes pour un même appareil.

Je n’ai pas connaissance d’autres usages. Dans tous les cas, c’est une valeur optionnelle