La partie gestion de variable typé en date, duration n’est pas évidente si on a pas des notion de programmation en python , …
Si tu crée des variables, je ne peut que fortement de conseiller d’utiliser des formats « standard » et reconnu pour que la variable soit typé et afficher correctement par la suite sans modification
genre exemple :
- name: Duree Jour
unique_id: daily_duration
device_class: duration
icon: mdi:weather-sunset-up
unit_of_measurement: s
state: >
{{ (states.sun.sun.attributes.next_setting | as_datetime | relative_time - states.sun.sun.attributes.next_rising | as_datetime | relative_time).total_seconds()|int(default=0) }}
Tu peut, aussi regarder comment j’ai fait sur la partie automatisation de la partie « Lave-Vaisselle : Fin , Notification » ( notamment la création de la variable time
) : Gestion de lave-vaisselle dans Home assistant
Sinon, tu peut aussi faire des calculs a la volé dans le dashboard et pour ça, tu peut t’aider de la librairie easy_time qui permet de manipuler et afficher « facilement » des dates/durée avec differents format :
{% from 'easy_time.jinja' import custom_time, custom_time_attr, speak_the_days %}
{% if states('sensor.eau_froide_cycle') != '0' %}*
{% if as_timestamp(states('input_datetime.eau_froide_0_fin')) == 0 %}En cours d'utilisation depuis {{ (strptime(states('input_datetime.eau_froide_0_debut'),'%Y-%m-%d %H:%M:%S')).strftime('%Hh%M') }}
{% else %}De {{ (strptime(states('input_datetime.eau_froide_0_debut'),'%Y-%m-%d%H:%M:%S')).strftime('%Hh%M') }} à {{ (strptime(states('input_datetime.eau_froide_0_fin'),'%Y-%m-%d%H:%M:%S')).strftime('%Hh%M') }}
{% endif %}
, {{ states('sensor.eau_froide_cycle')|round(1, \"ceil\", default = 0) }}L utiliser
{% endif %}
* {% if speak_the_days('input_datetime.eau_froide_1_debut') == \"today\"%}
{% elif speak_the_days('input_datetime.eau_froide_1_debut') == \"1 day ago\"%}Hier :
{% elif speak_the_days('input_datetime.eau_froide_1_debut') == \"2days ago\" %}Avant-hier :
{% else %}il y a {{ speak_the_days('input_datetime.eau_froide_1_debut')[0:1] }} jours :
{% endif %}
De {{ (strptime(states('input_datetime.eau_froide_1_debut'),'%Y-%m-%d%H:%M:%S')).strftime('%Hh%M') }} à {{(strptime(states('input_datetime.eau_froide_1_fin'),'%Y-%m-%d%H:%M:%S')).strftime('%Hh%M') }}, {{ states('input_number.eau_froide_1')|round(1, \"ceil\", default = 0) }}L utiliser
...
...
Dans tout les cas, je te conseil fortement de passer par outils de dev/modèles pour tester, …