Anuncios en altavoces Google Home con Home Assistant: TTS automático, contenido multimedia y función de parada

Anuncios domóticos en altavoces Google Home con Home Assistant

He querido utilizar mis altavoces de Google Home en el Smart Home no sólo para música o temporizadores, sino también para anuncios automáticos. Ya sea que el cocedor de huevos haya terminado, sea el día de recogida de basura o alguien llame al timbre – un breve anuncio de voz en el momento adecuado puede hacer la vida cotidiana mucho sencillo.

Con Home Assistant, esto se puede implementar excelentemente a través del servicio integrado de texto a voz (TTS). El problema: Después de una salida de voz, el altavoz a menudo se queda atascado en modo de reproducción y muestra permanentemente el icono TTS o la última imagen mostrada. Sólo después de algún tiempo o manualmente la vista estándar, por ejemplo el tiempo, se muestra de nuevo.

Eso me molestó, así que he desarrollado dos costumbres Home Assistant scripts eso arregla el problema de una vez por todas.

¿Qué es un script en Home Assistant?

En Home Assistant, las automatizaciones y los procesos se pueden controlar no sólo con los desencadenantes y las condiciones, sino también como Scripts tienda. Los scripts son secuencias de acción predefinidas que pueden iniciarse manualmente o llamarse de otras automatizaciones. Esto permite que las tareas recurrentes, como anuncios o controles de iluminación, sean gestionadas de forma centralizada y adaptarlas fácilmente.

Mi problema y la idea detrás del script

Uso alrededor de 15 dispositivos de Google Home en casa – incluyendo varias pantallas de Google Nest Hub y Google Home Minis – repartidos a través de mi apartamento y el apartamento de mis padres (todos en la misma red y edificio).
En mis automatizaciones, por ejemplo para recordatorios, la cocedor de huevos o avisos de puerta, siempre he tenido dos problemas:

  1. La reproducción de los medios permanecería activa después de que el mensaje TTS terminara.
  2. Tuve que crear manualmente múltiples acciones de “parada de medios” para cada altavoz.

Esto se volvió rápidamente confuso. Por lo tanto, he creado dos scripts universales que combinan todas las funciones deseadas en un solo flujo:

  • Script “Anuncio – TTS”
    Reproduce un mensaje Text-to-Speech en los altavoces seleccionados de Google y detiene automáticamente la reproducción después.
  • Script “Anuncio – Medios”
    Además muestra una imagen —por ejemplo, un símbolo de advertencia o el icono de la basura que se recogerá (verde, amarillo o negro)— y luego detiene la reproducción también.

Estructura del script

Ambos scripts son modulares y utilizan variables que se pueden personalizar cuando se ejecutan:

  • varmessage: El mensaje a hablar
  • Varspeaker: lista de altavoces de Google Home
  • varrepeat: Número de repeticiones
  • vardelay: retardo entre los anuncios
  • varimage (opcional): Archivo de imagen para mostrar en pantallas Nest Hub

Esto permite que el mismo script se utilice en muchas automatizaciones, por ejemplo para recordatorios de calendario, notificaciones de dispositivos o alertas de seguridad.

Ejemplo: anuncio TTS en altavoces Google Home

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

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

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

home-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

El script reproduce el texto en todos los altavoces especificados y luego detiene automáticamente la reproducción. Como resultado, los dispositivos cambian inmediatamente al modo inactivo.

Ejemplo: anuncio TTS con imagen en pantallas Google Nest Hub

El segundo script amplía la funcionalidad mostrando una imagen en las pantallas Nest Hub, perfecta para alertas visuales o recordatorios.

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

Uso cotidiano

Uso estos scripts para una amplia gama de automatizaciones, como:

  • Recordatorios de recogida de basura o citas (entrada de Google Calendar)
  • Mensajes de estado al inicio o al final de la cocedor de huevos (automatización con enchufe inteligente Tasmota) (*)
  • Avisos cuando las puertas, garaje o ventanas todavía están abiertas por la noche ()Sensor de contacto ventana con batería AAA para un cambio sencillo) (*)
  • Anuncios para visitantes o llamadas (Google Home Mini, Google Nest Hub)
  • Anuncios automáticos para eventos en Home Assistant

Los scripts son lo suficientemente flexibles para ser utilizados en casi cualquier automatizaciones. Los cambios sólo tienen que hacerse una vez en el script – ya no en cada automatizaciones.

Ventajas del script

  • Anuncios de TTS centralizados a través de varios altavoces
  • Detiene automáticamente la reproducción después del anuncio del anuncio
  • Visualización opcional de imágenes en las pantallas de Google Nest Hub
  • Anuncios repetidos varias veces
  • Personalización sencilla mediante variables
  • Configuración limpia, reutilizable y escalable

FAQ

¿Puedo usar también otros idiomas?
Sí, puede ajustar el servicio TTS en la acción, por ejemplo, tts.google_translate_en_us para inglés.

¿Funciona con Alexa o Sonos altavoces?
Sí, con pequeñas modificaciones — solo necesita cambiar el servicio TTS y los nombres de las entidades.

¿Hay que almacenar las imágenes localmente?
No, también puede utilizar URL de imágenes externas o archivos de su carpeta multimedia.

¿Qué pasa si un altavoz está fuera de línea?
Home Assistant salta automáticamente esa entidad y continúa con los demás.

Glosario

Home Assistant: Plataforma domótica de código abierto para automatizar dispositivos y rutinas.
TTS (Text-to-Speech): Convierte texto en audio hablado.
Entidad de reproductor multimedia: Un dispositivo de reproducción en Home Assistant, como un altavoz o pantalla.
Automatización: Un conjunto de acciones desencadenadas por eventos o condiciones.
YAML: Un lenguaje de configuración estructurado utilizado para scripts y automatizaciones.

(*) Enlaces de afiliación

Este artículo ha sido traducido con ayuda de IA.

Durchschnittliche Bewertung 0 / 5. Bewertungen: 0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio