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

Et du coup, voici le code qui permet d’obtenir le temps restant avant l’expiration de l’un des certificats de mes ndd (le prochain à expirer) :

{# Définition de la liste des entités que l'on veut surveiller #}
{% set liste_des_entites = ['sensor.cert_expiry_timestamp_ndd1_duckdns_org','sensor.cert_expiry_timestamp_ndd2_duckdns_org'] %}
{# 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 entite_la_plus_petite = timestamp_des_entites|min %}
{# Définition de la date/heure du prochain évènement en objet datetime pour faire des calculs liés au temps #} 
{% set prochain_evenement = as_local(strptime(states(liste_des_entites[timestamp_des_entites.index(entite_la_plus_petite)]), '%Y-%m-%dT%H:%M:%S.000Z')).replace(tzinfo=None) %}
{# 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')}}

Pour l’adapter avec tes entités, il faut modifier la liste des entités contenues dans la variable liste_des_entites et modifier en conséquence le format utilisé pour la conversion en objet datetime à définition de la variable prochain_evenement, n’hésite pas à demander de l’aide :+1: