Lautstärke von Sprachdurchsagen

Hallo,
Ich habe hier überall Alexa Geräte welche ich mittels der Alexa Media Player Integration nutze um TTS Sprachbenachrichtigungen auszugeben. Allerdings ist die Lautstärke meist nicht passend.

Wie geht ihr damit um? Setzt ihr die Lautstärke hoch? Und anschließend wieder runter? Wenn das Echo Device nichts abspielt, geht das ja ganz gut. Wenn aber Musik läuft, ich die Lautstärke hochsetze, ist die Musik für ein paar Sekunden zu laut, dann kommt die TTS. Das ist alles andere als Smart.

Wie handhabt ihr das?

Wirklich ein paar Sekunden lang? Hier isses vielleicht ne Viertelsekunde.
Ich für meinen Teil mache es so:

  • Snapshot der Lautstärke
  • delay 0.01
  • TTS
  • ursprüngliche Lautstärke wiederherstellen

Kannst du bitte den yaml Code einmal posten?

Skript:


variables:
  player: media_player.echo_dot
  volume_level: 0.3
  message: ""

sequence:
  - action: scene.create
    data:
      scene_id: snapshot_lautstaerke
      snapshot_entities: "{{ player }}"
  - delay: 0.1
  - action: media_player.volume_set
    data:
      volume_level: "{{ volume_level|float(0.3)|default(0.2) }}"
    target:
      entity_id: "{{ player }}"
  - delay: 0.1
  - action: notify.alexa_media
    data:
      message: "{{ message }}"
      target: "{{ player }}"
  - delay:
      seconds: |-
        {{ (message.split(' ') |count * 0.5 )
        |round(0, 'ceil', default=1 ) }}
  - action: scene.turn_on
    target:
      entity_id: scene.snapshot_lautstaerke

1 „Gefällt mir“

Das ist ja ne coole Idee mit der Szene. Wird damit eigentlich auch der aktuell angespielte Quelle/Lied/Stream gespeichert und wiederhergestellt?

Ich glaube nicht. Aber genau weiß ich es nicht. Alexa setzt Musik ja so oder so fort (im Gegensatz zu Apple oder Google).

Hab das jetzt mal getestet. Wobei das jetzt auch irgendwie nicht so pralle funktioniert. Ich lasse meist Radio von Tunein auf dem Lautsprecher laufen.
Mal läuft das Radio leise im Hintergrund weiter. mal nicht.
Wenn ich es mit der Scene mache, stoppt die Wiedergabe und ich muss sie manuell wieder starten.
Ich hab jetzt testweise mal nur die Lautstärke eingelesen und in eine Variable gespeichert und am Ende setz ich das Volume wieder auf die Variable.
Aber toll funktionieren tut das alles nicht.

Funktioniert bei mir auch nicht mehr, danke für den Hinweis! Scheint ein Bug zu sein in dem scene_create Dienst, denn wenn ich die Snapshot-Szene aktiviere, funktioniert sie wie gewollt. Ich hab das Skript umgeschrieben (und mit Amazon Music sowie mit iTunes getestet):


variables:
  player: media_player.echo_dot
  snapshot: "{{ state_attr(player, 'volume_level') |float(0.3) }}"
  volume_level: 0.3
  message: ""
sequence:
  - action: media_player.volume_set
    data:
      volume_level: "{{ volume_level|float(0.3)|default(0.3) }}"
    target:
      entity_id: "{{ player }}"
  - action: notify.alexa_media
    data:
      message: "{{ message }}"
      target: "{{ player }}"
  - action: media_player.volume_set
    data:
      volume_level: "{{ snapshot }}"
    target:
      entity_id: "{{ player }}"


Anwendung:


action: script.name_deines_skripts
data:
  player: media_player.dein_alexa_gerät
  volume_level: 0.6
  message: Es gibt kein Bier auf Hawaii

Einziger Haken: Die Musik bleibt für einen Bruchteil so laut wie das gewählte volume_level.

so hab ich es jetzt auch erstmal gelöst. Nicht so richtig schön, aber besser als vorher.

Könntest du den Lösungshaken am ersten Skript bitte rausnehmen?

1 „Gefällt mir“

Bin gerade über alexa_media.restore_volume gestolpert, die Action hatte ich vollkommen vergessen. Hab’s getestet, funktioniert wunderbar. Ich blende damit Werbung aus.