Merci Pulpy
Vu que j’ai déjà le calendrier, je vais arrêter d’investiguer sur la partie config
Et revoir ma copie sur les conditions !
J’ai avancé
Plus d’erreur et ça a l’air de fonctionner … mais reste à circonscrire l’event à une heure donnée !
Voici le code yaml:
alias: Chauffage si travail
description: ""
trigger:
- platform: calendar
event: start
offset: "-0:30:0"
entity_id: calendar.xxxxxxxxxxxxxx_gmail_com
condition:
- condition: template
value_template: "{{ 'Travail' in trigger.calendar_event.summary }}"
action:
- device_id: 21997295cec9b621e85f1e9276c8ad88
domain: climate
entity_id: climate.rez_de_chaussee
type: set_hvac_mode
hvac_mode: heat
mode: queued
Ceci dit, il me met la température à « Max » !!!
Y a du boulot quand on débute
Tu peux créer des ‹ vues › du calendrier
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- cal_id: xxxxxx@gmail.com
entities:
- device_id: télétravail
name: Télétravail
search: "#Télétravail"
ça crée tout ce qui contient télétravail
Pour le moment je cherche comment modifier un paramètre d’état:
la température max est définie à 30 (max_temp)…
J’ai beau le modifier via l’appli dans l’outil de développement/état, je me retrouve avec 30° quand j’exécute la routine …
Dans ton automatisation tu ne fais qu’une action : passer en mode chauffage. Donc forcément il ne fait rien d’autre
Là c’est les bases de HA qui manquent. La modification se fait via l’appel des services (tu peux t’entrainer dans outil de développement/service). La modification dans état est temporaire.
Merci de ton aide. je vais tatonner et m’instruire.
J’ai trouvé le service à déclarer.
service: climate.set_temperature
data:
temperature: 20
target_temp_high: 22
target_temp_low: 16
hvac_mode: heat
target:
area_id: rez_de_chaussee
device_id: 21997295cec9b621e85f1e9276c8ad88
entity_id: climate.rez_de_chaussee
Comment je peux l’insérer dans l’action à faire dans le code du dessus ?
Je suppose que je dois le sauvegarder dans un fichier yaml spécifique
Si t’en a marre, n’hésites pas à me renvoyer un RTFM
=> EDIT: trouvé. Suffit de le mettre dans la partie action !
Maintenant, me reste à vérifier l’automatisation quotidienne , mais ça, c’est une autre histoire !
Tu peux faire plus simple
service: climate.set_temperature
data:
temperature: 20
hvac_mode: heat
target:
entity_id: climate.rez_de_chaussee
Les valeurs min/max sont à définir une fois pour toutes (customize.yaml cf la doc)
A partir du moment où tu donnes l’entité, pas besoin de préciser son ID (qui est nettement moins facile à retenir)
Quant à la pièce (area), attention marcherai mais pour toutes entités climate qui s’y trouveraient… Dans ton cas, c’est pas forcément gênant 1 radiateur par pièce mais autant le savoir
Il semble que les conditions que j’ai mises ne fonctionnent pas. L’action se fait à chaque fois que je lance le test.
J’ai combiné trois conditions:
- avoir « travail » dans le google calendar
- être entre 5h et 8h
- être à la bonne heure pour lancer l’action
Si je teste les conditions , la 1ère et la 3ème me renvoient une erreur « trigger is undefined » , ce qui m’empêche d’avancer (notamment pour gérer la 3ème qui est surement mal foutue !)
alias: Chauffage si travail
description: ""
trigger:
- platform: calendar
event: start
offset: "-0:30:0"
entity_id: calendar.xxxxxxxxxxxx_gmail_com
condition:
- condition: and
conditions:
- condition: template
value_template: "{{ 'Travail' in trigger.calendar_event.summary }}"
- condition: time
after: "05:30:00"
before: "08:00:00"
- condition: template
value_template: >-
{{ states(trigger.calendar_event.start) | timestamp_custom('%A %B %-d,
%I:%M %p') == as_timestamp(states('sensor.date_time_iso')) |
timestamp_custom('%A %B %-d, %I:%M %p') }}
action:
- service: climate.set_temperature
data:
temperature: 20
target:
area_id: rez_de_chaussee
device_id: 21997295cec9b621e85f1e9276c8ad88
entity_id: climate.rez_de_chaussee
mode: queued
max: 10
Est-le meilleur moyen de faire fonctionner un calendrier ? Notamment le fait de vérifier l’heure ?
J’entends pas là que quand une tache est planifiée, elle commence un jour/heure que HA sait déterminer (y compris avec un offset)… Du coup, au démarrage de la tache (-30 min), c’est le moment de faire les actions. Démarrage de la tache sera le trigger
platform: calendar
event: start
offset: "-0:30:0"
entity_id: calendar.teletravail
Le prochain déclenchement sera au prochain démarrage de la tache
Dans ton cas, la seule condition c’est que la tache est bien celle de « télétravail » (ce que j’ai fais en filtrant les calendriers, cf message d’hier)
Quand tu déclenches à la main trigger
n’est pas le calendrier, donc trigger.calendar_event.start
n’existe pas
J’ai besoin de vérifier l’heure (peut être pas celle de la 2ème condition, je suis d’accord) , mais le travail commence, soit à 7h, soit à 8h et je veux déclencher le chauffage 1h30 avant (je m’aperçois qu’il va falloir que je modifie l’offset)
J’ai pas tout compris sur ton filtre, je vais m’y pencher:
La vue, tu la mets où (cad dans quel fichier yaml)
Et ta tache dans le calendrier commencer à 7 ou à 8 …
Donc 1h30 avant le début, quelqu’il soit, c’est suffisant
Dans google_calendars.yaml
le fichier google_calendars.yaml doit-il être déjà présent ? Si oui, je ne l’ai pas, j’ai don cun bug, sinon, je vais le créer avec une vue
Encore merci pour ton temps et ton aide !
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
Mais il a disparu du côté gauche de l’aperçu
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 .
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