Trigger calendar (caldav) ne se lance pas

Bonjour à tous,

Après plusieurs années sur Jeedom je me décide enfin à passer sur HA, mais !

J’ai un petit soucis d’automatisation, je n’arrive pas à trouver d’où cela pourrait provenir alors que c’est un exemple hyper simple.

J’ai synchronisé un calendrier via caldav depuis infomaniak, aucun soucis de synchro :

Dans le menu de test je vois bien l’état changer :

J’ai donc créé une automatisation qui doit se lancer au début de l’événement pour qu’il déclenche un script qui va envoyer un message sur slack (aucun soucis d’envoi de message sur slack quand j’exécute le script manuellement ou si j’appel directement le service dans « action ») :

Mon problème

Mais l’automatisation en elle même ne fonctionne pas, elle ne se lance pas quand l’événement arrive au début, je ne trouve aucune trace, et j’ai bien pris en compte les 15min avant (vu sur le forum et sur la doc), donc je mettais 30min ^^.
Aucun soucis si je passe par un autre service comme une heure précise ou un nombre aléatoire au-dessus de 10.

J’ai vraiment l’impression qu’il y’a un soucis avec le trigger du calendrier, ou j’ai manqué quelque chose mais je ne vois pas, j’ai passé déjà la journée hier sans succès :sweat_smile:

Du coup je me permets de venir vers vous voir si d’autres yeux verront le problème ><

J’ai testé le script en créant soit via l’UI soit directement en mettant le YAML dans le fichier automations.yaml.

Mon script :

alias: testdr
description: ""
trigger:
  - platform: calendar
    event: start
    offset: "0:0:0"
    entity_id: calendar.hass
condition: []
action:
  - service: script.1691483455715
    data: {}
mode: single

Mon but final (quand le minimum fonctionnera) étant de déclencher le chauffage / sèche serviette 2h avant un événement.
Ma compagne étant infirmière en 12h avec 3 horaires différents et des jours différents de travail, j’aimerais mettre en chauffe pour qu’elle n’est pas froid le matin sous la douche ou en petit déjeunant.

Notre sèche serviette à un fil pilote donc à voir si je part sur un module zigbee ou shelly et la « clim » est réversible, c’est du daikin et j’ai vu qu’il y’a une intégration.

Si ça vous intéresse je mettrais le tout dans le topic dédié une fois le système en place.

Merci beaucoup.

Ma configuration

J’utilise la dernier image docker avec un docker-compose.yaml en suivant les specs de la doc.


[center]

System Information

version core-2023.8.1
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.11.4
os_name Linux
os_version 5.15.0-78-generic
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4950
Installed Version 1.32.1
Stage running
Available Repositories 1266
Downloaded Repositories 2
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Dashboards
dashboards 1
resources 0
mode auto-gen
Recorder
oldest_recorder_run 7 août 2023 à 11:53
current_recorder_run 9 août 2023 à 09:19
estimated_db_size 1.16 MiB
database_engine sqlite
database_version 3.41.2
[/center] ___

Bonjour,

J’utise le script suivant pour un fonction similaire

alias: Calendar Event Notification
description: Calendar Event Notification
trigger:
  - platform: calendar
    event: start
    offset: "-0:15:0"
    entity_id: calendar.mycalendar
condition: []
action:
  - if:
      - condition: state
        entity_id: group.family
        state: home
    then:
      - service: script.alexa_say
        data:
          title: Calendar Notification
          message: >-
            {{ [ "Pardon me,", "Excuse me,", "I beg your pardon,", "I do not
            mean to intrude, but,", "I am sorry to interrupt, but."] | random }}
            Event {{ trigger.calendar_event.summary }} starts in 15 minutes!
    else:
      - service: notify.mobile_app_abels_iphone_xr
        data:
          title: Calendar Notification
          message: Event {{ trigger.calendar_event.summary }} starts in 15 minutes!
mode: single

Si il y a du monde à la maison la nodification va sur l’echo dot de ma dernière localisation dans le domicile via un script « alexa_say », sinon sur mon iphone.
{{ trigger.calendar_event.summary }} retrouve l’evenement dans le calendrier

Cordialement,

Abel

Merci @Abel pour ta réponse.

Juste pour savoir tu utilises quel type de calendrier ?

J’ai testé avec l’intégration Local Calendar en créant manuellement un événement et en effet ça fonctionné.

En relisant la doc du CalDav en effet à priori il ne fonctionne pas avec le trigger Calendrier mais avec un sensor de type bool.

The caldav platform allows you to connect to your WebDAV calendar and generate binary sensors. A different sensor will be created for each individual calendar, or you can specify custom calendars which match a criteria you define (more on that below). These sensors will be on if you have an on going event in that calendar or off if the event is later in time, or if there is no event at all. The WebDAV calendar get updated roughly every 15 minutes.
J’essaye du coup avec un trigger de type Etat et qu’il passe de off à on, mais pas l’impression que ça fonctionne mieux, le code généré le voici :

alias: booltest
description: ""
trigger:
  - platform: state
    entity_id:
      - calendar.mywork
    from: "off"
    to: "on"
condition: []
action:
  - service: script.1691483455715
    data: {}
mode: single

Egalement ce qui ne va pas dans le module Caldav, c’est la partie déclenchement avant l’événement qui doit être dans le nom de l’événement, pas trop top pour ma compagne, alors peut-être que je pourrais tricher avec un bout de template à voir.

offset_reached: If set in the event title and parsed out will be on/off once the offset in the title in minutes is reached. So the title Very important meeting !! -10 would trigger this attribute to be on 10 minutes before the event starts. This should be in the format of HH:MM or MM.

Merci

J’utilise Google Calendar, j’en ai 3 ou 4 et je ne les ai pas encore passés en local calendar

Ok, merci beaucoup.

En tout cas ça fonctionne en mode bool avec Caldav :
image

image

Je vais tester l’intégration isc_calendar voir si je peux déclencher avec le trigger calendrier et définir 15min avant.

Bon ça fonctionne avec l’intégration ics_calendar :
image

Avec 12min en avance :
image

alias: testics
description: ""
trigger:
  - platform: calendar
    event: start
    offset: "-0:12:0"
    entity_id: calendar.myworkics
condition: []
action:
  - service: script.1691483455715
    data: {}
mode: single