Calcul de temps relatif dans un template jinja

Bonjour,

Mon problème

Calculer le nombre d’heures/minutes entre maintenant et 6 heure du matin dans un template/automatisation

Ma configuration


HAOS 17.1


Je prépare actuellement un template pour automatiser la recharge d’une batterie pendant les heures creuses.
Pour cela, je dois déterminer avec quelle puissance je dois charger ma batterie et cela dépend du temps dont je dispose entre le moment du lancement de l’automatisme et 6h du matin.
Contrainte : Je dois pouvoir lancer la recharge entre 22H et 5h du matin.

Première étape, je dois déterminer combien d’heures il me reste entre maintenant et 6h du matin.
Mais, 6h du matin, ça peut être demain (si je lance avant 23h59) ou aujourd’hui si je lance après minuit.

Voyez-vous une méthode simple/élégante pour faire ce calcul, svp ?

Comme résultat je m’attends à avoir un nombre d’heure avec une décimale (éventuellement le nombre de minutes).

La cerise sur le gâteau serait de pouvoir afficher le résultat de ce calcul quelque part dans une carte du tableau de bord pour contrôler/déboguer.

{% set cible = today_at("06:00") %}
{% set maintenant = now() %}

{# Si il est déjà après 6h (ex: 22h), la cible est demain à 6h #}
{% if maintenant > cible %}
  {% set cible = cible + timedelta(days=1) %}
{% endif %}

{# Calcul de la différence et conversion en heures avec 1 décimale #}
{{ ((cible - maintenant).total_seconds() / 3600) | round(1) }}

A mettre dans une entrée template si tu veux l’afficher.

Bob

5 « J'aime »

Merci, c’est parfait !