Anúncios em alto-falantes Google Home com Home Assistant: TTS automático, mídia e função de parada

Anúncios de casa inteligente em alto-falantes Google Home com Home Assistant

Há muito tempo eu queria usar meus alto-falantes Google Home no Smart Home não só para música ou temporizadores, mas também para anúncios automáticos. Se o cozedor de ovos terminou, o dia de coleta de lixo chegou ou alguém toca a campainha – um breve anúncio de voz no momento certo pode tornar a vida diária muito mais fácil.

Com o Home Assistant, isso pode ser implementado excelentemente através do serviço integrado de Text-to-Speech (TTS). Depois de uma saída de voz, o alto-falante fica preso no modo de reprodução e exibe permanentemente o ícone TTS ou a última imagem reproduzida. Apenas depois de algum tempo ou manualmente a tela padrão – por exemplo, o tempo – é exibido novamente.

Isso me incomodou, então desenvolvi dois scripts personalizados do Home Assistant que resolvem o problema de uma vez por todas.

O que é um script no Home Assistant?

Em Home Assistant, automações e processos podem ser controlados não só com gatilhos e condições, mas também como Scripts Loja. Os scripts são sequências de ação predefinidas que podem ser iniciadas manualmente ou chamadas de outras automações. Isso permite que tarefas recorrentes, como anúncios ou controles de iluminação, sejam gerenciadas centralmente e facilmente adaptadas.

Meu problema e a ideia por trás do script

Uso cerca de 15 dispositivos do Google Home em casa, incluindo vários displays do Google Nest Hub e Google Home Minis, espalhados pelo meu apartamento e apartamento dos meus pais (todos em uma mesma rede e no mesmo prédio).
Nas minhas automações, por exemplo, para lembretes, o cozedor de ovos ou avisos de porta, sempre tive dois problemas:

  1. A reprodução da mídia permaneceria ativa depois que a mensagem TTS terminasse.
  2. Tive que criar várias ações de “parada de mídia” para cada alto-falante.

Isso rapidamente se tornou confuso. Portanto, eu criei dois scripts universais que combinam todas as funções desejadas em um único fluxo:

  • Script “Anúncio – TTS”
    Reproduz uma mensagem de Text-to-Speech em alto-falantes selecionados do Google e automaticamente interrompe a reprodução em seguida.
  • Script “Anúncio – Mídia”
    Além disso, exibe uma imagem — por exemplo, um símbolo de aviso ou o ícone da lixeira a ser coletada (verde, amarelo ou preto) — e então para a reprodução também.

Estrutura do script

Ambos os scripts são modulares e usam variáveis que podem ser personalizadas quando executadas:

  • Varmessage: A mensagem a ser dita
  • Varspeaker: lista de alto-falantes do Google Home
  • Varrepeat: Número de repetições
  • Vardelay: atraso entre anúncios
  • Varimage (opcional): Arquivo de imagem para exibir em telas Nest Hub

Isso permite que o mesmo script seja usado em muitas automações – por exemplo, para lembretes de calendário, notificações de dispositivos ou alertas de segurança.

Exemplo: anúncio TTS em alto-falantes Google Home

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

Home-assistant-google-texto-para-fala-durchsage-01

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

Home-assistente-google-texto-para-fala-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

O script reproduz o texto em todos os alto-falantes especificados e então automaticamente pára a reprodução. Como resultado, os dispositivos mudam imediatamente para o modo inativo.

Exemplo: anúncio TTS com imagem em telas Google Nest Hub

O segundo script expande a funcionalidade exibindo uma imagem em suas telas Nest Hub – perfeito para alertas visuais ou lembretes.

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 no dia a dia

Eu uso esses scripts para uma ampla gama de automações, como:

  • Lembretes de coleta de lixo ou compromissos.
  • Mensagens de status no início ou no final da cozedor de ovos (automação com tomada inteligente Tasmota) (*)
  • Avisos quando portas, garagem ou janelas ainda estiverem abertas à noite ()Sensor de contato da janela com bateria AAA para facilitar a instalação) (*)
  • Anúncios para visitantes ou chamadas (Google Home Mini, Google Nest Hub)
  • Anúncios automáticos para eventos em Home Assistant

Os scripts são flexíveis o suficiente para serem usados em quase qualquer automação. As mudanças só precisam ser feitas uma vez no script – não mais em cada automação.

Vantagens do script

  • Anúncios de TTS centralizados em vários alto-falantes.
  • Interrompe automaticamente a reprodução após o anúncio.
  • Visualização opcional de imagens nas telas do Google Nest Hub
  • Repetição configurável de anúncios várias vezes.
  • Personalização simples por variáveis.
  • Configuração limpa, reutilizável e escalável.

FAQ

Posso também usar outros idiomas?
Sim, você pode ajustar o serviço TTS na ação, por exemplo, tts.google_translate_en_us Para inglês.

Funciona com Alexa ou Sonos?
Sim, com pequenas modificações – você só precisa mudar o serviço TTS e os nomes das entidades.

As imagens precisam ser armazenadas localmente?
Não, você também pode usar URLs de imagens externas ou arquivos de sua pasta de mídia.

O que acontece se um alto-falante estiver desligado?
Home Assistant automaticamente pula essa entidade e continua com os outros.

Glossário

Assistente: Plataforma para automatizar dispositivos e rotinas.
TTS: Converte texto em áudio falado.
Entidade de reprodutor de mídia: Um dispositivo de reprodução em Home Assistant, como um alto-falante ou tela.
Automação: Um conjunto de ações desencadeadas por eventos ou condições.
YAML: Uma linguagem de configuração estruturada usada para scripts e automações.

(*) Links de Afiliados

Este artigo foi traduzido com a ajuda de IA.

Durchschnittliche Bewertung 0 / 5. Bewertungen: 0

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima