Annonces sur les enceintes Google Home avec Home Assistant : TTS automatique, médias et fonction d’arrêt

Annonces domotiques sur les enceintes Google Home avec Home Assistant

J’ai longtemps voulu utiliser mes enceintes Google Home dans le Smart Home non seulement pour la musique ou les minuteries, mais aussi pour les annonces automatiques. Que le cuiseur à œufs soit prête, que le jour de collecte des déchets arrive ou que quelqu’un sonne à la porte – une courte annonce au bon moment peut faciliter la vie quotidienne.

Avec Home Assistant, cela peut être mis en œuvre de manière optimale via le service de texte à la parole intégré (TTS). Le problème : Après une annonce vocale, l’enceinte est souvent coincée en mode lecture et affiche en permanence l’icône TTS ou la dernière image affichée. Seulement après un certain temps ou manuellement l’affichage par défaut – par exemple le temps – s’affiche à nouveau.

Cela m’a dérangé — donc j’ai développé deux coutumes scripts d’assistant à la maison qui résolvent le problème une fois pour toutes.

Qu’est-ce qu’un script dans Home Assistant ?

Dans Home Assistant, les automatismes et les processus peuvent être contrôlés non seulement avec des déclencheurs et des conditions, mais aussi comme Scripts En magasin. Les scripts sont des séquences d’actions prédéfinies qui peuvent être démarrées manuellement ou appelées depuis d’autres automatismes. Cela permet de gérer les tâches récurrentes – comme les annonces ou les commandes d’éclairage – de manière centralisée et facilement modifiées.

Mon problème et l’idée derrière le script

J’utilise environ 15 appareils Google Home à la maison – y compris plusieurs écrans Google Nest Hub et Google Home Minis – répartis dans mon appartement et mes parents (tous sur le même réseau et dans le même bâtiment).
Dans mes automatismes, par exemple pour les rappels, le cuiseur à œufs ou les avertissements de porte, j’ai toujours eu deux problèmes:

  1. La lecture des médias resterait active après la fin du message TTS.
  2. J’ai dû créer manuellement plusieurs actions d’arrêt de la lecture pour chaque enceinte.

C’est vite devenu confus. Par conséquent, j’ai créé deux scripts universels qui combinent toutes les fonctions souhaitées en un seul flux:

  • Script : Annonce – TTS
    Diffuse un message Text-to-Speech sur des haut-parleurs Google sélectionnés et arrête automatiquement la lecture après.
  • Script : Annonce – Média
    En outre, affiche une image — par exemple, un symbole d’avertissement ou l’icône de la poubelle à collecter (vert, jaune ou noir) — puis arrête également la lecture.

Structure du script

Les deux scripts sont modulaires et utilisent des variables qui peuvent être personnalisées lors de l’exécution:

  • varmessage: Le message à prononcer
  • haut-parleur: liste des enceintes Google Home
  • varrepeat: Nombre de répétitions
  • vardelay: délai entre les annonces
  • varimage (facultatif): Fichier image à afficher sur les écrans Nest Hub

Cela permet d’utiliser le même script dans de nombreuses automatisations – par exemple pour les rappels de calendrier, les notifications de périphérique ou les alertes de sécurité.

Exemple : annonce TTS sur les enceintes Google Home

home-assistant-google-text-to-speech-durchsage-01

Accueil-assistant-google-text-to-speech-durchsage-01

home-assistant-google-text-to-speech-durchsage-02

Accueil-assistant-google-text-to-speech-durchsage-02

sequence:
  - sequence:
      - repeat:
          count: "{{varrepeat}}"
          sequence:
            - repeat:
                for_each: "{{ varspeaker }}"
                sequence:
                  - action: tts.speak
                    metadata: {}
                    data:
                      cache: true
                      message: "{{varmessage}}"
                      media_player_entity_id: "{{ repeat.item }}"
                    target:
                      entity_id: tts.google_translate_de_de
            - delay: "{{ vardelay }}"
      - repeat:
          for_each: "{{ varspeaker }}"
          sequence:
            - action: media_player.media_stop
              metadata: {}
              data: {}
              target:
                entity_id: "{{ repeat.item }}"
alias: Durchsage - TTS
description: ""
fields:
  varmessage:
    selector:
      text: null
    name: varMessage
    description: Nachricht für die Sprachausgabe
  varspeaker:
    selector:
      entity:
        multiple: true
    name: varSpeaker
    description: Lautsprecher für Sprach und Bild ausgabe
    required: true
    default:
      - media_player.eg_wohnzimmer
  varrepeat:
    selector:
      number:
        min: 1
        max: 100
    name: varRepeat
    default: 3
    required: true
  vardelay:
    selector:
      duration: {}
    name: varDelay
    default:
      hours: 0
      minutes: 1
      seconds: 0
    description: Wartezeit zwischen Druchsagen, Standard 1min

Le script diffuse le texte sur tous les haut-parleurs spécifiés et arrête automatiquement la lecture. Par conséquent, les appareils retournent immédiatement en mode inactif.

Exemple : annonce TTS avec image sur les écrans Google Nest Hub

Le deuxième script élargit la fonctionnalité en affichant une image sur vos écrans Nest Hub, ce qui est parfait pour les alertes visuelles ou les rappels.

sequence:
  - sequence:
      - alias: TTS
        if:
          - condition: template
            value_template: "{{ varmessage != '' }}"
        then:
          - repeat:
              for_each: "{{ varspeaker }}"
              sequence:
                - action: tts.speak
                  metadata: {}
                  data:
                    cache: true
                    message: "{{varmessage}}"
                    media_player_entity_id: "{{ repeat.item }}"
                  target:
                    entity_id: tts.google_translate_de_de
          - delay:
              hours: 0
              minutes: 0
              seconds: 10
              milliseconds: 0
      - alias: Bild
        repeat:
          for_each: "{{ varspeaker }}"
          sequence:
            - target:
                entity_id: "{{ repeat.item }}"
              data:
                media:
                  media_content_id: >-
                    media-source://media_source/local/Media/Nachrichten/{{varimage}}
                  media_content_type: image/jpeg
                  metadata:
                    title: "{{varimage}}"
                    thumbnail: null
                    media_class: image
                    children_media_class: null
                    navigateIds:
                      - {}
                      - media_content_type: app
                        media_content_id: media-source://media_source
                      - media_content_type: ""
                        media_content_id: media-source://media_source/local/Media
                      - media_content_type: ""
                        media_content_id: media-source://media_source/local/Media/Nachrichten
              action: media_player.play_media
      - delay:
          hours: 0
          minutes: 1
          seconds: 0
          milliseconds: 0
      - alias: Media Player - Stop
        repeat:
          for_each: "{{ varspeaker }}"
          sequence:
            - action: media_player.media_stop
              metadata: {}
              data: {}
              target:
                entity_id: "{{ repeat.item }}"
alias: Durchsage - Medien
description: ""
fields:
  varmessage:
    selector:
      text: null
    name: varMessage
    description: Nachricht für die Sprachausgabe
  varspeaker:
    selector:
      entity:
        multiple: true
    name: varSpeaker
    description: Lautsprecher für Sprach und Bild ausgabe
    required: true
    default:
      - media_player.eg_wohnzimmer
  varimage:
    selector:
      text: {}
    name: varImage
    description: Pfad zum Bild
    required: true
    default: Achtung.jpg
  vardelay:
    selector:
      duration: {}
    name: vardelay
    description: Anzeigedauer des Bildes
    default:
      hours: 0
      minutes: 1
      seconds: 0

Utilisation au quotidien

J’utilise ces scripts pour une large gamme d’automatisations, telles que:

  • Rappels de collecte des ordures ou rendez-vous (entrée Google Agenda)
  • Messages d’état au début ou à la fin de la cuiseur à œufs (automation avec prise connectée Tasmota) (*)
  • Notification si les portes, garages ou fenêtres sont encore ouverts le soir ()Capteur de contact de la fenêtre avec batterie AAA pour faciliter la commutation) (*)
  • Annonces pour les visiteurs ou les appels (Google Home Mini, Google Nest Hub)
  • Annonces automatiques pour les événements dans Home Assistant

Les scripts sont suffisamment flexibles pour être utilisés dans presque n’importe quelle automatisation. Les changements ne doivent être effectués qu’une fois dans le script – et non dans chaque automatisation.

Avantages du script

  • Annonces TTS centralisées sur plusieurs enceintes
  • Arrêt automatique de la lecture après l’annonce l’annonce
  • Affichage en option de l’image sur les écrans Google Nest Hub
  • Répétition configurable des annonces
  • Personnalisation facile grâce aux variables
  • Configuration propre, réutilisable et évolutive

FAQ

Puis-je également utiliser d’autres langues?
Oui, vous pouvez ajuster le service TTS dans l’action, p. ex. B. le tts.google_translate_en_us pour l’anglais.

Cela fonctionne-t-il avec Alexa ou Sonos ?
Oui, avec de petites modifications — vous devez seulement changer le service TTS et les noms d’entité.

Les images doivent-elles être stockées localement?
Non, vous pouvez également utiliser des URL d’images externes ou des fichiers de votre dossier multimédia.

Que se passe-t-il si un haut-parleur est hors ligne?
Home Assistant saute automatiquement cette entité et continue avec les autres.

Glossaire

Home Assistant : Plateforme domotique open source pour automatiser les appareils et les routines.
TTS (Text-to-Speech): Convertit le texte en audio parlé.
Entité de lecteur multimédia : Un appareil de lecture dans Home Assistant comme un haut-parleur ou un écran.
Automatisation : Un ensemble d’actions déclenchées par des événements ou des conditions.
Oui. Un langage de configuration structuré utilisé pour les scripts et les automatisations.

(*) Liens d’affiliation

Cet article a été traduit à l’aide de l’IA.

Durchschnittliche Bewertung 0 / 5. Bewertungen: 0

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Défiler vers le haut