Calcul sur dates d'un calandrier

Bonjour,
J’ai une automation qui tous les jours cree dans un calendrier Filtration une heure de début et une heure de fin, qui change régulierement en fonction de la temperature

A l"heure de début un switch s’active et a s’eteint a la fin

alias: Piscine - filtration du jour 09h (>14 - <=16)
description: Avec temp entre 14 et 16
triggers:
  - at: "03:00:00"
    trigger: time
conditions:
  - condition: template
    value_template: >-
      {{ states('sensor.shelly1_piscine_temperature') |float(0) |round(0) > 14
      }}    
  - condition: template
    value_template: >-
      {{ states('sensor.shelly1_piscine_temperature') |float(0) |round(0) <= 16
      }}
actions:
  - data:
      summary: Filtration
      start_date_time: "{{ now().replace(hour=9, minute=0, second=0) }}"
      end_date_time: "{{ now().replace(hour=18, minute=0, second=0) }}"
    target:
      entity_id: calendar.filtration
    action: calendar.create_event
mode: single

puis

saisissez ou collez du code ici

J’aimerai récuperer dans un sensor ou input par exemple, la duree de cet événement, qui je le rappelle change régulièrement
Je ne trouve pas de sensor pour faire la difference entre end et start et de ce que je lis a doit e à gauche le calcul sur les heures/date n’est pas si simple
Peut être commencer par écuperer l’heure de début et l’heure de fin mais à part en cliquant sur l’évenement dans le calendrier je ne vois pas

Merci pour le coup de main

OK, alors, j’ai un calendrier qui ressemble à ça :

Du coup, je fait mon calcul comme ça :

{% set debut = state_attr('calendar.epic_games_store_jeux_a_prix_reduits', 'start_time') | as_timestamp %}
{% set fin = state_attr('calendar.epic_games_store_jeux_a_prix_reduits', 'end_time') | as_timestamp %}
{% set diff = ( fin - debut ) %}
{{ diff }} secondes
{{ diff / 3600 }} heures
{{ diff / 3600 / 24 }} jours

=>

Avec un peu dIA j’a fais ca qui fonctionne

alias: Piscine - Timer Calcul et sauvegarde de la durée de filtration
description: " Timer Calcul de la durée de filtration et sauvegarde de l'info"
triggers:
  - at: "22:35:00"
    trigger: time
  - at: "03:05:00"
    trigger: time
actions:
  - variables:
      debut: "{{ as_timestamp(state_attr('calendar.filtration', 'start_time')) }}"
      fin: "{{ as_timestamp(state_attr('calendar.filtration', 'end_time')) }}"
      duree: |-
        {% if debut and fin %}
          {{ (fin - debut) | timestamp_custom('%H:%M', false) }}
        {% else %}
          None
        {% endif %}
  - condition: "{{ duree is not none }}"
  - target:
      entity_id: timer.duree_filtration
    data:
      duration: "{{ duree }}"
    action: timer.start
mode: single

Merci

1 « J'aime »