Google Calendar - Lancer une action selon le libellé et l'heure d'un événement

il se crée automatiquement quand google calendar est bien configuré je crois

Je ne l’ai pas. Je vois bien le calendrier via chrome sur le PC.
Par contre, il fait planter la page sur le le chrome android !
Je pense que je vais devoir le supprimer et le recharger

EDIT: supprimé, rechargé, même état. Pas de fichier yaml.
Je vais investiguer, mais on a pas beaucoup de trace dispo

EDIT2: En le créant à vide , il a été mis à jour , donc reconnu :slight_smile:
Mais il a disparu du côté gauche de l’aperçu :slight_smile:
Ma foi … on verra ça demain !

J’ai réinstallé HA sur un DD en btrfs sur virtual machine manager et j’ai pu activer le superviseur (et surtout file editor)
Le google agenda est revenue et j’ai fini par me plonger dans la syntaxe yaml (enfin, va falloir approfondir !)
Bref, j’ai fini par faire ma première automatisation fonctionnelle .
Reste à identifier le bon mode pour qu’elle se lance se relance tous les jours : Parallel , Restart ou Queue !

alias: Chauffage_si_Travail_clinique
description: Chauffage si Travail clinique
trigger:
  - platform: calendar
    event: start
    offset: "-1:30:0"
    entity_id: calendar.xxxxxxxxxx_gmail_com
condition:
  - condition: state
    entity_id: calendar.xxxxxxxxxx_gmail_com
    attribute: message
    state: Travail clinique
  - condition: or
    conditions:
      - condition: state
        entity_id: calendar.xxxxxxxxxx_gmail_com
        attribute: message
        state: Travail Clinique
action:
  - service: climate.set_temperature
    data:
      temperature: 20
    target:
      area_id: rez_de_chaussee
      device_id: xxxxxxxxxxxxxxxxxxx
      entity_id: climate.rez_de_chaussee
mode: parallel
max: 10

Deux remarques :

  • A mon avis tu n’as besoin que d’une seule exécution à la fois. Sauf à avoir un calendrier bizarre avec des événements qui se superposent, tu as 1 action par jour. Je crois que single est une option disponible
  • Je ne vois pas bien l’intérêt de la condition double avec le OR… On dirait 2 fois la même chose

OK. Donc single, permet de le lancer tous les jours :slight_smile: .
Pour le OR, c’est pour le tester en prendre en compte la rédaction « Clinique ou clinique »
Question: A quoi sert le max ?

C’est à confirmer mais je pense que c’est pas sensible à la casse…

Quand plusieurs actions, en parallèle notamment on limite à 10

Merci pour les réponses.
J’en ai profité pour faire une deuxième automatisation: le réveil en radio !

alias: Radio_si_Travail
description: ""
trigger:
  - platform: calendar
    event: start
    offset: "-1:15:0"
    entity_id: calendar.xxxxxxxxxxx_gmail_com
condition:
  - condition: state
    entity_id: calendar.xxxxxxxxxxxxx_gmail_com
    attribute: message
    state: Travail clinique
action:
  - service: media_player.play_media
    target:
      entity_id: media_player.chambre_principale
    data:
      media_content_id: media-source://radio_browser/003baf55-9ac9-4352-bceb-375ee4203133
      media_content_type: audio/aac
    metadata:
      title: France Info
      thumbnail: >-
        https://www.francetvinfo.fr/assets/common/images/pwa/launcher-120x120-2e45ada1.png
      media_class: music
      children_media_class: null
      navigateIds:
        - {}
        - media_content_type: app
          media_content_id: media-source://radio_browser
        - media_content_type: music
          media_content_id: media-source://radio_browser/country/FR
mode: single

Bonjour, avant d’ouvrir un nouveau post, je pose ma question ici, c’est un peu dans le thème.
J’ai des automatisations que j’annule en période de Vacances.
Pour ce faire j’ai une condition directement dans l’automatisation, basé sur l’attribut « message » d’un calendrier Google.
Mon souci c’est qu’il faut que l’intitulé soit exacte ! Par exemple si dans mon calendrier je note « Vacances toto » alors la condition est false

Est il possible de passé d’une philosophie de « EST Vacances » à « CONTIENT Vacances » ?
je ne sais pas si je suis clair :sweat_smile:

passe en yaml et modifie ta condition
j’ai fait ceci pour avoir du chauffage 1h30 avant mon départ en cours:

alias: "Chauffage si cours "
description: Chauffage si cours td tp
trigger:
  - platform: calendar
    event: start
    offset: "-1:30:0"
    entity_id: calendar.xxxxxx
condition:
  - condition: and
    conditions:
      - condition: template
        value_template: >-
          {% if (((now().timestamp() | timestamp_custom('%H:%M')) > '05:00' )
          and ((now().timestamp() | timestamp_custom('%H:%M')) < '08:30')) %}
          true {% else %} false  {% endif %}
      - condition: template
        value_template: >-
          {% if  ('cours' in state_attr('calendar.xxxx','message')|lower)  or
          ('tp' in state_attr('calendar.xxxx','message')|lower) or ('td' in
          state_attr('calendar.xxxx','message')|lower) or ('eval' in
          state_attr('calendar.xxxx','message')|lower) %}  true {% else %}
          false  {% endif %}
action:
  - service: climate.set_temperature
    data:
      temperature: 19
    target:
      area_id: rez_de_chaussee
      entity_id: climate.rez_de_chaussee
mode: single

ce qui t’intéresse est dans la deuxième condition

1 « J'aime »

Depuis le temps que je voulais me pencher sur cette formule.
Merci @Thierry.P :ok_hand:

Je suis toujours impressionné, et un peu frustré, de tous ces codes qui m’échappent :exploding_head:
Il y a une bibliothèque ou un tuto qui apprends à coder ???

Essaie chatgpt :slight_smile:
Il aide bien !

Bonjour,

J’ai du mal a vous suivre,
Est ce que quelqu’un peut me dire ce que je dois mettre comme condition pour que ma regle se déclennche quand HA voit « Garde » dans le calendrier « famille » ?

J’ai ca, mais ca ne fonctionne guere

condition: template
value_template: "{{ 'Garde' in state_attr('calendar.famille','message') }}"

merci

il manque le test: if
value_template: >-
{% if (‹ Garde › in state_attr(‹ calendar.xxxx ›,‹ message ›)|lower)

1 « J'aime »

Merci pour l’aide

- condition: template
    value_template: >-
    {% if ("Garde" in state_attr("calendar.famille","message")|lower)}

Mais je ne peux pas encore enregister mon code. tu vois ce qu’il me manque?

merci

regarde mon message au dessus. Tu as un exemple à reprendre et adapter

la tu verifies qu’une de ces conditions soit ok

mais je ne comprends pas ca

{% if  ('cours' in state_attr('calendar.xxxx','message')|lower)  or
       ('tp' in state_attr('calendar.xxxx','message')|lower)     or
       ('td' in state_attr('calendar.xxxx','message')|lower)     or
       ('eval' in state_attr('calendar.xxxx','message')|lower) %}  true 
       {% else %} false
{% endif %}

Ecris comme ca, c’est plus facile à piger

voila, c’est ça.
Tu mets donc ta condition sur la chaine de caractère « Garde » à la place des miennes.
Le | lower permet de s’affranchir des majuscules/minuscules

- condition: template
    value_template: >-
    {% if   ('Garde' in state_attr('calendar.famille','message')|lower) %} true
            {% else %} false
    {% endif %}

Toujours impossible d 'enregistrer
je trouve pas mon erreur de syntaxe

tu as peut être un pb d’indentation sur l’ensemble de la requête
Peux-tu la mettre en entier ?