TTS über Google Cast ausgeben

Hallo Community.

Bin neu und mache gerade die ersten Schritte mit mit HA.
Ich möchte nun über eine Automation eine Sprachansage über einen Google cast ausgeben.
Ein Test (Text-to-speech (TTS) ‘Speak’ on Home Assistant Cloud) funktioniert einwandfrei.
Ich möchte nun aber noch folgendes umsetzen:

  • Ein laufendes Medium (Radio oder Spotify) unterbrechen und dann fortsetzen
  • Eine Melodie oder Gong vor der Ansage ausgeben (wie z.B. am Flughafen oder Bahnhof)
  • Eine Variable/Wert einer Entität (z.B. Aktuelle Außentemperatur) mit ansagen lassen.
  • Die Lautstärke erhöhen und nach Ansage wieder zurück auf alten Wert setzen.

Kann mir hierbei jemand Starthilfe geben, Leider finde ich unter meinen gewählten Stichworten hier keine passenden Beiträge.

Vielen Dank im Voraus.

Da musst Du Dir dann schon per HA Scripten und Automationen selber etwas Passendes zusammenbasteln. Bsp.: Die Abfrage einen Außentemp.-Sensors und vor der Sprachantwort wird dann bei meinen drei Nest Hubs die Lautstärke verändert.

alias: Außentemperatur
sequence:
  - data:
      volume_level: 0.4
    target:
      entity_id:
        - media_player.nest_hub_wohnzimmer
        - media_player.nest_hub_kuche
        - media_player.nest_hub_arbeitszimmer
    action: media_player.volume_set
  - data:
      entity_id:
        - media_player.nest_hub_wohnzimmer
        - media_player.nest_hub_kuche
        - media_player.nest_hub_arbeitszimmer
      message: >-
        Die Außentemperatur beträgt aktuell "{{
        states('sensor.wolf_bm2_0x30_220103_aussentemperatur') | string |
        replace('-','minus') }}" Grad
    action: tts.cloud_say
mode: single

D.h. für jede dieser von Dir genannten Aktionen musst Du Dir individuell überlegen wie und womit Du diese umsetzt und dann kannst Du das natürlich auch noch alles irgendwie miteinander kombinieren und in Automationen nutzen.

VG Jim

vielen Dank @Jim_OS
Damit hätte ich die Ansage der Temperatur schon mal gelöst.
BTW: kann ich die Variable auch runden? Die Temperatur beträgt acht punkt acht neun Grad klingt nicht so gut.

Hat sich erledigt.
FYI:

Die Außentemperatur beträgt aktuell “{{states(‘sensor.openweathermap_feels_like_temperature’) | round(0) | string | replace(‘-’,‘minus’) }}” Grad

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)

Und das Thema Lautstärke eigentlich auch. :wink:

Was dann Deinen Melodie oder Gong betrifft. Da besorgst Du Dir einfach aus dem Internet ein passendes Sound-File und lässt das dann vor einer Aktion halt als erstes abspielen.

Bsp.: Ich (miss)brauche meine Nest Hubs hier auch als “Alarmanlage”, :laughing: sprich ich habe mir aus dem Internet eine *.wav-Datei mit einem Sirenenton heruntergeladen und diese *.wav-Datei


wird dann abgespielt wenn die “HA Alarmanlage” aktiviert wurde und irgendetwas (z.B. Fensterkontakt) ausgelöst wird. Nach dem Motto:

action: media_player.play_media
metadata: {}
data:
  media:
    media_content_id: media-source://media_source/local/alarm-sound.wav
    media_content_type: audio/x-wav
    metadata:
      title: alarm-sound.wav
      thumbnail: null
      media_class: music
      children_media_class: null
      navigateIds:
        - {}
        - media_content_type: app
          media_content_id: media-source://media_source
      browse_entity_id: media_player.nest_hub_arbeitszimmer
target:
  device_id: 054c2428a1b81669ba1edc0eb782906c

Was Deinen ersten Punkt mit dem stoppen und dann fortsetzen betrifft: Starten und stoppen ist ja kein Problem, aber an der gestoppten Stelle dann wieder fortsetzen ist mit den Boardmitteln von HA, in Kombination mit Google Home, glaube ich nicht möglich. Ich hatte mich damit vor langer Zeit mal beschäftigt, aber damals dafür keine einfache Lösung gefunden. Danach war das für mich aber bisher auch nie wieder ein Thema, sodass ich dazu nichts weiter sagen kann.

Edit: Thema stoppen und fortsetzen. Du kannst ja mal schauen ob das mit
action: media_player.media_play_pause
oder
action: media_player.media_pause
ggf. so funktioniert wie Du es ggf. gebrauchen kannst. Ich meine aber mit ext. Quellen funktioniert das nicht.

VG Jim

1 „Gefällt mir“

Ich hatte mich auch mal damit beschäftigt und sowas gemacht (nutze ich mittlerweile aber nicht mehr)

alias: TTS
variables:
  media_entity: media_player.xy
  temp_media_ContentId: media-source://media_source/local/xy.mp3
  temp_volume: 0.4
  temp_duration_seconds: 7
  mediaplayer_State: "{{ states(media_entity) }}"
  mediaplayer_volume_level: "{{ state_attr(media_entity,'volume_level') }}"
  mediaplayer_media_content_id: "{{ state_attr(media_entity,'media_content_id') }}"
sequence:
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - data:
      entity_id: "{{ media_entity }}"
      volume_level: "{{ temp_volume }}"
    action: media_player.volume_set
  - data:
      entity_id: "{{ media_entity }}"
      media:
        media_content_id: "{{ temp_media_ContentId }}"
        media_content_type: music
        metadata: {}
    action: media_player.play_media
  - delay:
      hours: 0
      minutes: 0
      seconds: "{{ temp_duration_seconds }}"
      milliseconds: 0
  - if:
      - condition: template
        value_template: "{{ mediaplayer_State == 'playing' }}"
    then:
      - data:
          entity_id: "{{ media_entity }}"
          volume_level: "{{ mediaplayer_volume_level }}"
        action: media_player.volume_set
      - data:
          entity_id: "{{ media_entity }}"
          media:
            media_content_id: "{{ mediaplayer_media_content_id }}"
            media_content_type: music
            metadata: {}
        action: media_player.play_media
    else:
      - data:
          entity_id: "{{ media_entity }}"
        action: media_player.media_pause
mode: single
description: ""