[résolu] Erreur création sensor suite IF

Bonjour à tous,
je n’arrive pas à créer un sensor avec un résultat lié à un « IF », mon .yaml n’est pas valide, pourriez vous m’aider svp ?

Ci-dessous la configuration de mon .yaml :

prochaine_date_anniversaire:
         value_template: "{{as_timestamp(state_attr('calendar.anniversaires', 'start_time')) | int | timestamp_custom('%Y-%m-%d', true) }}"
         
       Anniversaire_du_jour:
         value_template:
           Anniv: >
             {% if states('sensor.prochaine_date_anniversaire') == states('sensor.date') %} 
             {{ state_attr('calendar.anniversaires', 'description') }}
             {% else %} Il n'y as pas d'anniversaire aujourdh'ui.
             {% endif %}"

Voici le résultat du if :

Type de résultat: string

Il n’y as pas d’anniversaire aujourdh’ui.

Ce modèle écoute les événements de changement d’état suivants:

  • Entité: sensor.date
  • Entité: sensor.prochaine_date_anniversaire

Mon but étant de stocker le résultat dans un sensor pour le réutiliser facilement dans une custom-card.

Merci d’avance de votre aide

Je n’ai pas moyen de tester la ou je suis, mais comme cela je dirai enlever la ligne Anniv: > et mettre >- après value_template:
C’est du code jinja2. Ce qui est après value_template peut être testé dans outils de développement / modèle.
Attention aux indentations !

le « if » fonctionnent correctement, c’est l’enregistrement du résultat qui ne fonctionne pas :

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

# Text to speech
tts:
  - platform: google_translate

sensor:
  - platform: time_date 
    display_options:
      - 'time'
      - 'date'

  - platform: template
    sensors:

       week_day:
         value_template: "{{now().strftime('%A')}}"

       current_date:
        value_template: "{{now().strftime('%d')}} {{ now().strftime('%B')}} {{ now().strftime('%Y')}}" 

       time_fr:
         value_template: "{{now().strftime('%H:%M')}}"

       jour_fr:
         value_template: "{{['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche'][now().weekday()] }}"

       date_fr:
         value_template: "{% set months = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'] %} {{ now().day | string + ' ' + months[now().month-1]}} {{now().year }}"
       
       prochaine_date_anniversaire:
         value_template: "{{as_timestamp(state_attr('calendar.anniversaires', 'start_time')) | int | timestamp_custom('%Y-%m-%d', true) }}"
         
#erreur de validation de le configuration avec l'ajout des ligne 42 à 48          
       
       Anniversaire_du_jour:
         value_template:
           Anniv: >-
             {% if states('sensor.prochaine_date_anniversaire') == states('sensor.date') %} 
             {{ state_attr('calendar.anniversaires', 'description') }}
             {% else %} Il n'y as pas d'anniversaire aujourdh'ui.
             {% endif %}"

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
# Example configuration.yaml entry

Validation et redémarrage

Validez votre configuration si vous y avez récemment apporté des modifications et que vous souhaitez vous assurer que celle-ci est entièrement valide.

Configuration non valide !

Invalid config for [sensor.template]: invalid slug Anniversaire_du_jour (try anniversaire_du_jour) for dictionary value @ data[‹ sensors ›]. Got OrderedDict([(‹ week_day ›, OrderedDict([(‹ value_template ›, « {{now().strftime(‹ %A ›)}} »)])), (‹ current_date ›, OrderedDict([(‹ value_template ›, « {{now().strftime(‹ %d ›)}} {{ now().strftime(‹ %B ›)}} {{ now().strftime(‹ %Y ›)}} »)])), (‹ time_fr ›, OrderedDict([(‹ value_template ›, « {{now().strftime(‹ %H:%M ›)}} »)])), (‹ jour_fr ›, OrderedDict([(‹ value_template ›, « {{[‹ Lundi ›, ‹ Mardi ›, ‹ Mercredi ›, ‹ Jeudi ›, ‹ Vendredi ›, ‹ Samedi ›, ‹ Dimanche ›][now().weekday()] }} »)])), (‹ date_fr ›, OrderedDict([(‹ value_template ›, "{% … (See ?, line ?).

Salut…

Dans les id, il faut éviter les accents et les majuscules. C’est pas le cas là : Anniversaire_du_jour

Merci @Pulpy-Luke
en effet les majuscule ne sont pas aimé, j’avais une autre erreur dans mon value_template.

voici le code correct.

       anniversaire_du_jour:
         value_template: >
             {% if states('sensor.prochaine_date_anniversaire') == states('sensor.date') %} 
             {{ state_attr('calendar.anniversaires', 'description') }}
             {% else %} Il n'y as pas d'anniversaire aujourd'hui.
             {% endif %}