Notication vocale état porte de garage

Hello, hello
j’ai dans l’idée de faire avec HA ce que j’ai actuellement dans Google Home avec Google Assistant (GA) :
1/ que GA me prévienne entre 20 h et 7h si la porte du garage s’ouvre
2/ que GA me dise à 18h45 l’état de la porte de garage (ouvert/fermé)

J’ai donc commencé par le point 2/ en utilisant un blueprint que voici :

Ze blueprint
blueprint:
  name: Garage Door Open TTS Announcer v2
  domain: automation
  input:
    monitored_entity:
      name: Monitored Sensor
      description: Entity that causes announcement
      selector:
        entity:
          domain:
          - cover
          device_class:
          - garage
          multiple: false
    speaker_target:
      name: Speaker
      description: Entity to announce event on
      selector:
        target:
          entity:
          - domain:
            - media_player
    announcement_message:
      name: Announcement message
      description: What to say when door is opened
    final_message:
      name: Final message
      description: What to say when door is closed
    cooldown:
      name: Announcement cooldown
      description: The minimum time needed in between announcements
      default: 10
      selector:
        number:
          min: 0.0
          max: 600.0
          unit_of_measurement: seconds
          mode: slider
          step: 1.0
  source_url: https://community.home-assistant.io/t/garage-door-open-tts-announcer-reminder-google-translate-say/365197
mode: single
trigger:
  platform: state
  entity_id: !input monitored_entity
  from: closed
  to: open
action:
- alias: Repeat the sequence UNTIL the door is closed
  repeat:
    sequence:
    # changé tts.google_translate_say en tts.speak
    #https://community.home-assistant.io/t/resolved-has-the-service-tts-google-translate-say-been-removed/589253/2
    - service: tts.speak
      target: !input speaker_target
      data:
        message: !input announcement_message
    - wait_for_trigger:
      - platform: state
        entity_id: !input monitored_entity
        to: closed
        for: 10
      timeout: !input cooldown
    until:
    - condition: state
      entity_id: !input monitored_entity
      state: closed
- service: tts.speak
  target: !input speaker_target
  data:
    message: !input final_message

Ce qui me permet de produire cette automatisation :

mode: single
trigger:
  platform: state
  entity_id: cover.smart_garage_door_2201056910492536102948e1e98494c8_garage
  from: closed
  to: open
action:
  - alias: Repeat the sequence UNTIL the door is closed
    repeat:
      sequence:
        - service: tts.speak
          target:
            device_id:
              - 6cdf765ab680c65e1d4edfd7a2f01a45
              - d272e8f4e0c5016a011c5494ed47d267
          data:
            message: Le garage est ouvert
        - wait_for_trigger:
            - platform: state
              entity_id: cover.smart_garage_door_2201056910492536102948e1e98494c8_garage
              to: closed
              for: 10
          timeout: 10
      until:
        - condition: state
          entity_id: cover.smart_garage_door_2201056910492536102948e1e98494c8_garage
          state: closed
  - service: tts.speak
    target:
      device_id:
        - 6cdf765ab680c65e1d4edfd7a2f01a45
        - d272e8f4e0c5016a011c5494ed47d267
    data:
      message: Le garage vient d’être fermé
id: '1712585810875'
alias: Garage Door Open TTS Announcer v2
description: Notifications garage

Et là: boum ! Ça ne marche pas.

Déjà il y avait un problème avec le blueprint originel : tts.google_translate_say ne marchait pas ; je l’ai donc changé en tts.speak et l’automatisation ne râle plus sur ce point.
Mais elle râle toujours : quand je l’exécute elle me renvoit ce message d’erreur :

Erreur : required key not provided @ data[‹ media_player_entity_id ›]

Et là je suis comme la poule qui a trouvé un couteau…
C’est quoi ce truc ?

EDIT : j’ai vu qu’il y avait ce scheduler pour faciliter ce genre d’automatisation. Vous, les spécialistes, en pensez quoi ?

Salut,
ta changer de service tts.google_translate_say par tts.speak ok, mais la syntaxe du service est pas bonne.

un exemple quand tu apelle le service dans l’outils de dev. Tu détermine l’entité TTS et une entité media_player.

service: tts.speak
target:
  entity_id: tts.google_fr_fr
data:
  cache: false
  media_player_entity_id: media_player.nest_mini

le blueprint que tu tuilise date un peu et a pas été mis a jour avec le nouveau service TTS.

Bonjour Monsieur
il y a un truc que je pige pas :
dans les paramètres du blueprint les assistants vocaux sont pourtant bien sélectionnés :


et figurent bien dans l’assistant vocal lui-même :

C’est le blueprint qui bugue ?

oui les assistant voucaux, mais l’entité du TTS tts.google_fr_fr elle ce trouve ou dans le blueprint ?

oui, comme je te disait le service tts.google_translate_say a été supprimer et remplacer par tts.speak

un exemple d’appele avec tts.google_translate_say ( qui existe plus !)

service: tts.google_translate_say
data:
  entity_id: media_player.floor
  message: "May the force be with you."

par tts.speak:

service: tts.speak
target:
  entity_id: tts.google_fr_fr
data:
  media_player_entity_id: media_player.floor
  message: "May the force be with you."

la syntaxe est différente avec tts.speak, faut adapter le blueprint avec le nouveau service.

faudrais changer:

action:
  - alias: Repeat the sequence UNTIL the door is closed
    repeat:
      sequence:
        - service: tts.speak
          target:
            device_id:
              - 6cdf765ab680c65e1d4edfd7a2f01a45
              - d272e8f4e0c5016a011c5494ed47d267
          data:
            message: Le garage est ouvert

remplacer par:

action:
  - alias: Repeat the sequence UNTIL the door is closed
    repeat:
      sequence:
        - service: tts.speak
          target:
            entity_id: tts.google_fr_fr  #remplacer par ton entité TTS
          data:
            media_player_entity_id:
              - 6cdf765ab680c65e1d4edfd7a2f01a45
              - d272e8f4e0c5016a011c5494ed47d267
            message: Le garage est ouvert

Ça coince :

action:
  - alias: Repeat the sequence UNTIL the door is closed
    repeat:
      sequence:
        - service: tts.speak
          target:
            entity_id: tts.google_fr_fr  #remplacer par ton entité TTS
          data:
            media_player_entity_id:
              - 6cdf765ab680c65e1d4edfd7a2f01a45
              - d272e8f4e0c5016a011c5494ed47d267
            message: Le garage est ouvert
    - wait_for_trigger:
      - platform: state
        entity_id: !input monitored_entity
        to: closed
        for: 10
      timeout: !input cooldown
    until:
    - condition: state
      entity_id: !input monitored_entity
      state: closed

File Editor me dit :

ad indentation of a sequence entry (59:5)

56 | - 6cdf765ab680c65e1d4 …
57 | - d272e8f4e0c5016a011 …
58 | message: Le garage est …
59 | - wait_for_trigger:
----------^
60 | - platform: state
61 | entity_id: .input monitored …

Tandis que l’automatisation me dit :

There is an error in this Blueprint: Failed to load blueprint: while parsing a block mapping in « /config/blueprints/automation/tekhawk/garage-door-open-tts-announcer-reminder-google-translate-say.yaml », line 48, column 5 expected , but found ‹ - › in « /config/blueprints/automation/tekhawk/garage-door-open-tts-announcer-reminder-google-translate-say.yaml », line 59, column 5

Punaise ! Pour faire un truc simple dans GH je me complique la vie avec ce blueprint dans HA, non ?

À ma place (de newbie) comment t’y prendrais-tu pour faire ce que je souhaite faire ?

EDIT :
et puis maintenant voilà que j’ai ça :

Et Crash du serveur, et Crash de l’OS qui devient inaccessible même en SSH.

ta un problème d’indexion a partir de - wait_for_trigger:

ici l’indexion été bonne:

C’est l’automatisation, qui fallait éditer et pas le blueprint original.

il fallait bien éditer les 2.
De toute façon ce blueprint est hors d’âge ; je ne vais pas m’acharner dessus.
Et j’emm*rde tout le monde en + !
Direction : poubelle.

1 « J'aime »