Calendrier ne déclenche pas les automatisations

Bonjour,

J’ai des automatisations qui doivent se déclencher sur événement de calendrier.
Le problème c’est que les événements ne déclenchent rien, que se soit un calendrier local ou exterieur.
Les événements apparaissent bien pourtant.
Je sais que les calendriers se rafraishissent toutes les 15 min, j’ai donc effecteué des test à plus de 15 min mais rien ne se declenche.


Voivi l’automatisation

alias: Test
description: ""
trigger:
  - platform: calendar
    event: start
    offset: "0:0:0"
    entity_id: calendar.arrosage_local
condition:
  - condition: template
    value_template: "{{ trigger.calendar_event.summary == 'test' }}"
action:
  - data:
      message: test reussi
      title: Arrosage
    action: notify.telegram_ben
mode: single

Merci pour votre aide!

Ma configuration


[center]## System Information

version core-2024.8.1
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.4
os_name Linux
os_version 6.6.33-haos
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.34.0
Stage running
Available Repositories 1458
Downloaded Repositories 41
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.4
update_channel stable
supervisor_version supervisor-2024.08.0
agent_version 1.6.0
docker_version 26.1.4
disk_total 27.9 GB
disk_used 24.2 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board odroid-n2
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (9.14.0), File editor (5.8.0), TasmoAdmin (0.30.4), Mosquitto broker (6.4.1), ESPHome (2024.7.3), Z-Wave JS UI (3.10.0), SQLite Web (4.2.0), Studio Code Server (5.15.0), Samba Backup (5.2.0), MetersToHA (dev), Zigbee2MQTT (1.39.1-1), Z-Wave JS (0.6.2), SomfyProtect2MQTT (2024.3.0)
Dashboards
dashboards 6
resources 28
views 17
mode storage
Recorder
oldest_recorder_run 1 août 2024 à 15:32
current_recorder_run 11 août 2024 à 11:57
estimated_db_size 2293.30 MiB
database_engine sqlite
database_version 3.45.3
Sonoff
version 3.7.3 (e240aaf)
cloud_online 0 / 2
local_online 2 / 2
debug failed to load:
___

Salut,

Regarde les historiques d’exécution de ton automatisation pour essayer de comprendre.
A première vue, j’ai bien des triggers comme les tiens, et je n’ai pas de souci

Justement les automatisations ne se déclenchent pas, donc pas d’historique.
Je vais faire des test sur plus long terme que 15 minutes (30 mn); peut etre probleme de rafraishissement

Etonnant,
Toutes tes automatisations sont visibles dans l’interface, pas de message d’erreur dans les logs (et au démarrage) ?

Avec un delai plus long, le calendrier local déclenche bien; par contre le calendrier extérieur ne déclenche pas malgré le fait que l’evenement soit bien à « on »


l’evenement n’a pas déclenché l’automatisation, donc je nai pas d’historique d’execution.
je ne vois rien dans les logs…
en fait il ne se passe rien du tout.

J’assez peu de calendrier locaux, et beaucoup de google, tous fonctionnement bien

Dans le journal complet aussi (bouton tout en bas des journaux) ?

Est-ce que tu ne fais pas des tests avec des heures trop proches ?
Il faut un peu de temps entre l’enregistrement de l’évênement et son heure de départ. Genre 15 min.

Rien dans les logs…
J’utilise un caldav, fournisseur Infomaniak; qui est bien configuré car les evenement remontent bien mais ne déclenchent pas les automatisations.

Justement j’ai fais des test avec délais de 1 heure : le calendrier local est ok mais pas le caldav

Est ce que tu as trouvé une solution à ton problème?
J’ai le meme problème. J’utilise caldav, et mon automation de ne se declenche pas toujours.
J’ai testé avec NodeRed, et meme problème, il ne declenche pas toujours. J’ai l’impression que je n’ai le problème que sur des evenements qui se repetent. Le premier evenement va declencher, mais pas les suivants…

J’ai abandonné l’idee de declencher des evenements avec caldav comme trigger.
Je ne me suis pas penché sur l’affaire depuis longtemps mais de memoire j’ai des automations qui recuperent les evenements des calendar et qui declenchent en fonction…
Si besoin je peux essayer de te donner des details dans les peochains jours…

je suis interessé par un exemple d’automation. J’aime ca pouvoir gerer les calendriers directement sur mon telephone

Ok. j’ai mis ca en place pour gérer le chauffage de manière automatique. (c’est un peu le principe de la domotique tu me diras…).
J’ai un calendrier sur mon smartphone partagé avec ma femme pour la gestion familiale. Quand nous partons en vacances, c’est écrit dedans. Quand nous rentrons aussi. Pareil si c’est juste un ou deux enfants qui partent.
Le but est d’eteindre le chauffage (ou le rallumer) automatiquement dans les zones de la maison qui sont innocupées.
Le principe est:
- 1 automation se déclenche tout les jours à 1h00 et récupère les événements qui m’intéressent sur les 3 prochaines semaines: départ famille, retour famille, départ enfants, retour enfants… et set un input_datetime correspondant avec la bonne date et la bonne heure (input_datetime.depart_enfants, input_datetime.retour_enfants…)
- une deuxième automation a pour trigger les input_datetime : si input_datetime.depart_enfants = le 22 décembre 2024 à 10h : l’automation se declenche a cette date et heure et eteint le chauffage dans la zone enfant; et ainsi de suite.

Je partage mon automation qui récupère les Evénements du calendrier (la deuxième je pense que tu as compris).
Accroche toi, c’est un peu hard a lire! Réalisée avec l’aide de claude.ai.
Si besoin demande des détails.

alias: Gestion Automatisée Récupération dates Calendrier chauffage
description: >-
  Récupère et notifie les événements des 3 prochaines semaines et met à jour les
  dates de retour et départ famille et enfants si des événements sont trouvés
triggers:
  - hours: "01"
    minutes: "0"
    trigger: time_pattern
actions:
  - target:
      entity_id: calendar.chauffage_ics
    data:
      start_date_time: "{{ now().strftime('%Y-%m-%d 00:00:00') }}"
      end_date_time: "{{ (now() + timedelta(weeks=3)).strftime('%Y-%m-%d 00:00:00') }}"
    response_variable: calendar
    action: calendar.get_events
  - variables:
      events_list: "{{ calendar['calendar.chauffage_ics']['events'] }}"
      first_date_famille: |-
        {% for event in events_list|sort(attribute='start') %}
          {% set summary_normalized = event.summary|lower|replace('é','e')|replace('è','e')|replace('ê','e')|replace('ë','e')|replace('à','a')|replace('â','a')|replace('ä','a')|replace('î','i')|replace('ï','i')|replace('ô','o')|replace('ö','o')|replace('ù','u')|replace('û','u')|replace('ü','u')|replace('ç','c') %}
          {% if 'retour famille' in summary_normalized or ('retour' in summary_normalized and 'enfant' not in summary_normalized) %}
            {{ event.start.split('+')[0] }}{% break %}
          {% endif %}
        {% endfor %}
      first_summary_famille: |-
        {% for event in events_list|sort(attribute='start') %}
          {% set summary_normalized = event.summary|lower|replace('é','e')|replace('è','e')|replace('ê','e')|replace('ë','e')|replace('à','a')|replace('â','a')|replace('ä','a')|replace('î','i')|replace('ï','i')|replace('ô','o')|replace('ö','o')|replace('ù','u')|replace('û','u')|replace('ü','u')|replace('ç','c') %}
          {% if 'retour famille' in summary_normalized or ('retour' in summary_normalized and 'enfant' not in summary_normalized) %}
            {{ event.summary }}{% break %}
          {% endif %}
        {% endfor %}
      first_date_enfants: |-
        {% for event in events_list|sort(attribute='start') %}
          {% set summary_normalized = event.summary|lower|replace('é','e')|replace('è','e')|replace('ê','e')|replace('ë','e')|replace('à','a')|replace('â','a')|replace('ä','a')|replace('î','i')|replace('ï','i')|replace('ô','o')|replace('ö','o')|replace('ù','u')|replace('û','u')|replace('ü','u')|replace('ç','c') %}
          {% if 'retour enfant' in summary_normalized or 'retour enfants' in summary_normalized %}
            {{ event.start.split('+')[0] }}{% break %}
          {% endif %}
        {% endfor %}
      first_summary_enfants: |-
        {% for event in events_list|sort(attribute='start') %}
          {% set summary_normalized = event.summary|lower|replace('é','e')|replace('è','e')|replace('ê','e')|replace('ë','e')|replace('à','a')|replace('â','a')|replace('ä','a')|replace('î','i')|replace('ï','i')|replace('ô','o')|replace('ö','o')|replace('ù','u')|replace('û','u')|replace('ü','u')|replace('ç','c') %}
          {% if 'retour enfant' in summary_normalized or 'retour enfants' in summary_normalized %}
            {{ event.summary }}{% break %}
          {% endif %}
        {% endfor %}
      first_date_depart_famille: |-
        {% for event in events_list|sort(attribute='start') %}
          {% set summary_normalized = event.summary|lower|replace('é','e')|replace('è','e')|replace('ê','e')|replace('ë','e')|replace('à','a')|replace('â','a')|replace('ä','a')|replace('î','i')|replace('ï','i')|replace('ô','o')|replace('ö','o')|replace('ù','u')|replace('û','u')|replace('ü','u')|replace('ç','c') %}
          {% if 'depart famille' in summary_normalized or ('depart' in summary_normalized and 'enfant' not in summary_normalized) %}
            {{ event.start.split('+')[0] }}{% break %}
          {% endif %}
        {% endfor %}
      first_summary_depart_famille: |-
        {% for event in events_list|sort(attribute='start') %}
          {% set summary_normalized = event.summary|lower|replace('é','e')|replace('è','e')|replace('ê','e')|replace('ë','e')|replace('à','a')|replace('â','a')|replace('ä','a')|replace('î','i')|replace('ï','i')|replace('ô','o')|replace('ö','o')|replace('ù','u')|replace('û','u')|replace('ü','u')|replace('ç','c') %}
          {% if 'depart famille' in summary_normalized or ('depart' in summary_normalized and 'enfant' not in summary_normalized) %}
            {{ event.summary }}{% break %}
          {% endif %}
        {% endfor %}
      first_date_depart_enfants: |-
        {% for event in events_list|sort(attribute='start') %}
          {% set summary_normalized = event.summary|lower|replace('é','e')|replace('è','e')|replace('ê','e')|replace('ë','e')|replace('à','a')|replace('â','a')|replace('ä','a')|replace('î','i')|replace('ï','i')|replace('ô','o')|replace('ö','o')|replace('ù','u')|replace('û','u')|replace('ü','u')|replace('ç','c') %}
          {% if 'depart enfant' in summary_normalized or 'depart enfants' in summary_normalized %}
            {{ event.start.split('+')[0] }}{% break %}
          {% endif %}
        {% endfor %}
      first_summary_depart_enfants: |-
        {% for event in events_list|sort(attribute='start') %}
          {% set summary_normalized = event.summary|lower|replace('é','e')|replace('è','e')|replace('ê','e')|replace('ë','e')|replace('à','a')|replace('â','a')|replace('ä','a')|replace('î','i')|replace('ï','i')|replace('ô','o')|replace('ö','o')|replace('ù','u')|replace('û','u')|replace('ü','u')|replace('ç','c') %}
          {% if 'depart enfant' in summary_normalized or 'depart enfants' in summary_normalized %}
            {{ event.summary }}{% break %}
          {% endif %}
        {% endfor %}
      current_date_famille: >-
        {% if states('input_datetime.date_retour_famille') != 'unknown' and
        states('input_datetime.date_retour_famille') != 'unavailable' %}
          {{ states('input_datetime.date_retour_famille')|replace(' ', 'T') }}
        {% else %}
          none
        {% endif %}
      current_date_enfants: >-
        {% if states('input_datetime.date_retour_enfants') != 'unknown' and
        states('input_datetime.date_retour_enfants') != 'unavailable' %}
          {{ states('input_datetime.date_retour_enfants')|replace(' ', 'T') }}
        {% else %}
          none
        {% endif %}
      current_date_depart_famille: >-
        {% if states('input_datetime.date_depart_famille') != 'unknown' and
        states('input_datetime.date_depart_famille') != 'unavailable' %}
          {{ states('input_datetime.date_depart_famille')|replace(' ', 'T') }}
        {% else %}
          none
        {% endif %}
      current_date_depart_enfants: >-
        {% if states('input_datetime.date_depart_enfants') != 'unknown' and
        states('input_datetime.date_depart_enfants') != 'unavailable' %}
          {{ states('input_datetime.date_depart_enfants')|replace(' ', 'T') }}
        {% else %}
          none
        {% endif %}
      should_notify_famille: >-
        {{ first_date_famille|trim != '' and first_date_famille|trim !=
        current_date_famille|trim and current_date_famille != 'none' }}
      should_notify_enfants: >-
        {{ first_date_enfants|trim != '' and first_date_enfants|trim !=
        current_date_enfants|trim and current_date_enfants != 'none' }}
      should_notify_depart_famille: >-
        {{ first_date_depart_famille|trim != '' and
        first_date_depart_famille|trim != current_date_depart_famille|trim and
        current_date_depart_famille != 'none' }}
      should_notify_depart_enfants: >-
        {{ first_date_depart_enfants|trim != '' and
        first_date_depart_enfants|trim != current_date_depart_enfants|trim and
        current_date_depart_enfants != 'none' }}
  - choose:
      - conditions:
          - condition: template
            value_template: >-
              {{ should_notify_famille or should_notify_enfants or
              should_notify_depart_famille or should_notify_depart_enfants }}
        sequence:
          - choose:
              - conditions:
                  - condition: template
                    value_template: "{{ should_notify_famille }}"
                sequence:
                  - target:
                      entity_id: input_datetime.date_retour_famille
                    data:
                      datetime: "{{ first_date_famille }}"
                    action: input_datetime.set_datetime
          - choose:
              - conditions:
                  - condition: template
                    value_template: "{{ should_notify_enfants }}"
                sequence:
                  - target:
                      entity_id: input_datetime.date_retour_enfants
                    data:
                      datetime: "{{ first_date_enfants }}"
                    action: input_datetime.set_datetime
          - choose:
              - conditions:
                  - condition: template
                    value_template: "{{ should_notify_depart_famille }}"
                sequence:
                  - target:
                      entity_id: input_datetime.date_depart_famille
                    data:
                      datetime: "{{ first_date_depart_famille }}"
                    action: input_datetime.set_datetime
          - choose:
              - conditions:
                  - condition: template
                    value_template: "{{ should_notify_depart_enfants }}"
                sequence:
                  - target:
                      entity_id: input_datetime.date_depart_enfants
                    data:
                      datetime: "{{ first_date_depart_enfants }}"
                    action: input_datetime.set_datetime
          - variables:
              notif_famille: >-
                {%- if should_notify_famille -%} {%- set dateF =
                first_date_famille|as_datetime -%} {%- set jour =
                dateF.strftime("%A")|replace('Monday','Lundi')|replace('Tuesday','Mardi')|replace('Wednesday','Mercredi')|replace('Thursday','Jeudi')|replace('Friday','Vendredi')|replace('Saturday','Samedi')|replace('Sunday','Dimanche')
                -%} {%- set mois =
                dateF.strftime("%B")|replace('January','Janvier')|replace('February','Février')|replace('March','Mars')|replace('April','Avril')|replace('May','Mai')|replace('June','Juin')|replace('July','Juillet')|replace('August','Août')|replace('September','Septembre')|replace('October','Octobre')|replace('November','Novembre')|replace('December','Décembre')
                -%} 👨‍👩‍👧‍👦 Retour Famille mis à jour : {{
                first_summary_famille }} (le {{ jour|lower }} {{
                dateF.strftime("%d") }} {{ mois|lower }} à {{
                first_date_famille.split('T')[1][:5] }}) {%- endif -%}
              notif_enfants: >-
                {%- if should_notify_enfants -%} {%- set dateE =
                first_date_enfants|as_datetime -%} {%- set jour =
                dateE.strftime("%A")|replace('Monday','Lundi')|replace('Tuesday','Mardi')|replace('Wednesday','Mercredi')|replace('Thursday','Jeudi')|replace('Friday','Vendredi')|replace('Saturday','Samedi')|replace('Sunday','Dimanche')
                -%} {%- set mois =
                dateE.strftime("%B")|replace('January','Janvier')|replace('February','Février')|replace('March','Mars')|replace('April','Avril')|replace('May','Mai')|replace('June','Juin')|replace('July','Juillet')|replace('August','Août')|replace('September','Septembre')|replace('October','Octobre')|replace('November','Novembre')|replace('December','Décembre')
                -%} 👶 Retour Enfants mis à jour : {{ first_summary_enfants }}
                (le {{ jour|lower }} {{ dateE.strftime("%d") }} {{ mois|lower }}
                à {{ first_date_enfants.split('T')[1][:5] }}) {%- endif -%}
              notif_depart_famille: >-
                {%- if should_notify_depart_famille -%} {%- set dateDF =
                first_date_depart_famille|as_datetime -%} {%- set jour =
                dateDF.strftime("%A")|replace('Monday','Lundi')|replace('Tuesday','Mardi')|replace('Wednesday','Mercredi')|replace('Thursday','Jeudi')|replace('Friday','Vendredi')|replace('Saturday','Samedi')|replace('Sunday','Dimanche')
                -%} {%- set mois =
                dateDF.strftime("%B")|replace('January','Janvier')|replace('February','Février')|replace('March','Mars')|replace('April','Avril')|replace('May','Mai')|replace('June','Juin')|replace('July','Juillet')|replace('August','Août')|replace('September','Septembre')|replace('October','Octobre')|replace('November','Novembre')|replace('December','Décembre')
                -%} 🚶 Départ Famille mis à jour : {{
                first_summary_depart_famille }} (le {{ jour|lower }} {{
                dateDF.strftime("%d") }} {{ mois|lower }} à {{
                first_date_depart_famille.split('T')[1][:5] }}) {%- endif -%}
              notif_depart_enfants: >-
                {%- if should_notify_depart_enfants -%} {%- set dateDE =
                first_date_depart_enfants|as_datetime -%} {%- set jour =
                dateDE.strftime("%A")|replace('Monday','Lundi')|replace('Tuesday','Mardi')|replace('Wednesday','Mercredi')|replace('Thursday','Jeudi')|replace('Friday','Vendredi')|replace('Saturday','Samedi')|replace('Sunday','Dimanche')
                -%} {%- set mois =
                dateDE.strftime("%B")|replace('January','Janvier')|replace('February','Février')|replace('March','Mars')|replace('April','Avril')|replace('May','Mai')|replace('June','Juin')|replace('July','Juillet')|replace('August','Août')|replace('September','Septembre')|replace('October','Octobre')|replace('November','Novembre')|replace('December','Décembre')
                -%} 👶🚶 Départ Enfants mis à jour : {{
                first_summary_depart_enfants }} (le {{ jour|lower }} {{
                dateDE.strftime("%d") }} {{ mois|lower }} à {{
                first_date_depart_enfants.split('T')[1][:5] }}) {%- endif -%}
          - data:
              message: >-
                📅 Nouvelles dates pour l'automatisation du chauffage détectées
                !

                {{ notif_famille }}

                {{ notif_enfants }}

                {{ notif_depart_famille }}

                {{ notif_depart_enfants }}
            action: notify.telegram_ben

Wow tout une automation!
Je ne sais pas quel est le plus simple, essayer de comprendre ton automation, ou de faire marcher le calendrier :smile:

Je test un blueprint, je vais le faire tourner plusieurs jours, et voir s’il est stable. Je reviendrais donner des nouvelles, si j’arrive à avoir quelque chose qui fonctionne

Elle a l’air compliquee mais elle est tres simple en fait.
Selon ce dont tu as besoin, elle peut ne pas depasser 15 lignes.
Si besoin, je t’explique les etapes.
Et je confirme encore que les calendriers caldav ou ics ne declenchent toujours pas les automations chez moi…

Quel blueprint teste tu?

j’utilise celui la:

De mon coté ça declenche, mais pas toujours, j’essaye de demeler ca

Ok… si ca marche.
Sinon mon automation (qui peut etre largement simplifiée) fonctionne nickel.
Si besoin n’hesite pas.
Bon courage.

oui merci pour ton aide. Pour le blueprint je le laisse tourner plusieurs jours pour voir si ca fonctionne.