Bonjour,
J’ai 2 Google Home sur lesquelles je fait des annonces en TTS
Je m’embête dans chacune de mes automatisations de faire les enchainement suivant.
- augmenter le volume des 2 Ghome à 1
- Parler sur Ghome 1
- Attendre 3s
- Parler sur Ghome 2
- Diminuer le volume des 2 Ghomes à 0.5
Plus malin que tout le monde je me suis dit, bah je vais faire un script qui va me permettre de faire ces actions dans toutes mes automatisations.
C’est pas une mauvaise idée je pense ![]()
Voiçi mon script.
sequence:
- action: media_player.volume_set
metadata: {}
target:
entity_id:
- media_player.googlehome5583
- media_player.googlehome2453
data:
volume_level: 1
- action: tts.speak
metadata: {}
target:
entity_id: tts.google_translate_fr_fr
data:
cache: true
media_player_entity_id: media_player.googlehome5583
- delay:
hours: 0
minutes: 0
seconds: 3
milliseconds: 0
- action: tts.speak
metadata: {}
target:
entity_id: tts.google_translate_fr_fr
data:
cache: true
media_player_entity_id: media_player.googlehome2453
- action: media_player.volume_set
metadata: {}
target:
entity_id:
- media_player.googlehome5583
- media_player.googlehome2453
data:
volume_level: 0.5
alias: 2GHOME-PARLE
description: ""
j’ai essayé de le tester dans une automatisation et ca failed ![]()
alias: ENFANT-COUVERT
description: >-
Annonce vocale qui dit qui doit mettre le couvert. Vacances, week-end ou
mercredi : Lisa à midi, Adam le soir. Hors vacances (jours normaux) : Lisa le
lundi et jeudi, Adam le mardi et vendredi (uniquement le soir).
triggers:
- at:
- "12:00:00"
trigger: time
id: midi
- at:
- "12:55:00"
trigger: time
id: midi
- at:
- "19:00:00"
trigger: time
id: soir
- at:
- "19:56:00"
trigger: time
id: soir
actions:
- variables:
is_vacances: "{{ is_state('sensor.vacances_scolaires_aujourd_hui_zone_a', 'on') }}"
is_weekend: "{{ now().weekday() in [5, 6] }}"
is_mercredi: "{{ now().weekday() == 2 }}"
jour: "{{ now().weekday() }}"
periode: "{{ trigger.id }}"
enfant: >
{% set est_vacances_ou_mercredi_ou_weekend = is_vacances or is_weekend
or is_mercredi %}
{% if est_vacances_ou_mercredi_ou_weekend %}
{# Cas 1 : Vacances, Week-end ou Mercredi : Lisa (midi), Adam (soir) #}
{% if trigger.id == 'midi' %}
Lisa
{% elif trigger.id == 'soir' %}
Adam
{% else %}
aucun
{% endif %}
{% else %}
{# Cas 2 : Jours normaux (Lundi, Mardi, Jeudi, Vendredi) #}
{% if trigger.id == 'midi' %}
aucun # Pas d'annonce à midi les jours d'école normaux
{% elif trigger.id == 'soir' %}
{# Lundi (0) et Jeudi (3): Lisa | Mardi (1) et Vendredi (4): Adam #}
{% if jour in [0, 3] %}
Lisa
{% elif jour in [1, 4] %}
Adam
{% else %}
aucun
{% endif %}
{% else %}
aucun
{% endif %}
{% endif %}
salutation: |
{% if trigger.id == 'midi' %}
Bonjour
{% else %}
Bonsoir
{% endif %}
- if:
- condition: template
value_template: "{{ enfant != 'aucun' }}"
then:
- action: media_player.volume_set
metadata: {}
target:
entity_id:
- media_player.googlehome5583
- media_player.googlehome2453
data:
volume_level: 1
enabled: false
- alias: Annonce vocale unique (Lisa ou Adam)
data:
cache: true
media_player_entity_id: media_player.googlehome5583
message: >-
{{ salutation }}, ce {{ periode }} {{ enfant }} doit mettre le
couvert.
target:
entity_id: tts.google_translate_fr_fr
action: tts.speak
enabled: false
- action: media_player.volume_set
metadata: {}
target:
entity_id:
- media_player.googlehome5583
- media_player.googlehome2453
data:
volume_level: 0.5
enabled: false
- action: shell_command.smartled_msg
data:
message: "{{ enfant }} doit mettre le couvert."
intensity: 0
speed: 60
static: 0
- action: script.2ghome_parle
metadata: {}
data: {}
response_variable: >-
{{ salutation }}, ce {{ periode }} {{ enfant }} doit mettre le
couvert.
mode: single
