Créer un minuteur indiquant le temps restant avant le prochain événement

La mise à jour est faite, ce n’est pas encore ça… :wink:
j’ai mal géré la nouvelle boucle…

edit :
et voilà

sensor:
  - platform: template
    sensors:
      prochaine_priere:
        friendly_name: "Prochain événement à venir"
        value_template: >
          {# Définition de la liste des entités que l'on veut surveiller #}
          {% set liste_des_entites= ['sensor.fajr_mawaqit','sensor.dhuhr_mawaqit', 'sensor.asr_mawaqit','sensor.maghrib_mawaqit','sensor.isha_mawaqit'] %}
          {# Définition du namespace pour récupération de la valeur en dehors de la boucle #}
          {%set timestamp_des_entites_boucle = namespace(timestamp='')  %}
          {# Boucle parcourant tous les éléments de la liste `liste_des_entites` #}
          {# Cette boucle permet de définir une liste contenant les timestamp #}
          {% for entite in liste_des_entites %}
              {% if loop.first %}
                  {# Au premier passage #}        
                  {% set timestamp_des_entites_boucle.timestamp = [as_timestamp(states(entite))] %}
              {% else %}
                  {# Pour les autres passages #}        
                  {% set timestamp_des_entites_boucle.timestamp = timestamp_des_entites_boucle.timestamp + [as_timestamp(states(entite))] %}  
              {% endif %}
          {% endfor %}
          {# Définition de la liste représentant les timestamp #}        
          {% set timestamp_des_entites = timestamp_des_entites_boucle.timestamp %}
          {# Définition de la variable contenant le timestamp le plus petit représentant le prochain évènement #} 
          {%set timestamp_le_plus_petit = namespace(timestamp='',stop='')  %}
          {%set texte_mise_a_jour = 'En attente de mise à jour'  %}
          {% for temps in timestamp_des_entites %}
              {% if loop.first %}
                  {# Au premier passage #}        
                  {% set timestamp_le_plus_petit.timestamp = texte_mise_a_jour %}
              {% endif %}
                  {# Pour tous les passages même le premier #}   
                  {% if (as_timestamp(now()) < temps) and not(timestamp_le_plus_petit.stop) %}
                      {% set timestamp_le_plus_petit.stop = true %}
                      {% set timestamp_le_plus_petit.timestamp = temps %} 
                  {% endif %}
          {% endfor %}
          {% set entite_la_plus_petite = timestamp_le_plus_petit.timestamp %}
          {% if entite_la_plus_petite != texte_mise_a_jour %}
              {# Définition de la date/heure du prochain évènement en objet datetime pour faire des calculs liés au temps #} 
              {% set prochain_evenement = strptime(states(liste_des_entites[timestamp_des_entites.index(entite_la_plus_petite)]), '%Y-%m-%d %H:%M:%S') %}
              {# Définition de la date/heure actuel en objet datetime pour faire des calculs liés au temps #} 
              {% set maintenant = strptime((states('sensor.date') + " " + states('sensor.time') + ":00"), '%Y-%m-%d %H:%M:%S') %}
              {# On soustrait les deux objets datetime afin de récupérer le temps restant #} 
              {{(prochain_evenement - maintenant)|replace('days','jours')|replace('day','jour')}}
          {% else %}
              {{ texte_mise_a_jour }}
          {% endif %}