Lautstärke speichern und wieder herstellen

Hallo in die Runde

In einer Automatisierung soll die Lautstärke eines Mediaplayers erhöht werden. Soweit, so einfach. Zuvor soll die aktuelle Lautstärke gespeichert und im Anschluss wieder hergestellt werden. Wie mache ich das?

Es gab hier im Forum schon Beiträge dazu, ich finde sie aber nicht. Links wären auch ok.

Ich mach das z.B. in Scripts so:

sequence:
  - data:
      entity_id: '{{ media_entity }}'
      volume_level: 0.25
    action: media_player.volume_set
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 500
  - data:
      entity_id: '{{ media_entity }}'
      volume_level: '{{ temp_volume }}'
    action: media_player.volume_set
  - action: tts.speak
    metadata: {}
    data:
      cache: true
      media_player_entity_id: '{{ media_entity }}'
      message: bla blupp
      language: de
    target:
      entity_id: tts.google_translate_de_de
  - 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
alias: TTS
description: ''
variables:
  media_entity: media_player.meine_box
  temp_volume: 0.4
  temp_duration_seconds: 5
  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'') }}'
mode: single

Falls Du Sonos Geräte verwendest:
Die Sonos Integration bietet die Aktionen sonos.snapshot und sonos.restore für so was.

Ich habe einen Google Nest Hub.

Ich dank euch, habe es hinbekommen. Bin allerdings einen anderen Weg als von @maxe beschrieben gegangen.

Ich habe als erste Aktion ein ‘scene.create’, in dieser wird der Zustand vom Nest Hub gespeichert und in einer letzten Aktion ‘scene.turn_on’ wieder hergestellt. Funktioniert.

Der versuch mit der scene.turn_on war leider nicht die Lösung.

Die Lautstärke wird zwar nach dem abspielen einer Audio Datei wie gewünscht wieder auf das ursprüngliche Level gesetzt, aber wenn vor der Aktion ein Stream lief dann wird dieser nicht wieder fortgesetzt. Der Nest Hub bleibt stumm und der Bildschirm schwarz.

Es muss also eine andere Lösung her. @maxe ich muss gestehen, bei deinem script blicke ich nicht durch. Ist das nur das script oder auch ein Teil einer Automatisierung?

Das ist nur ein Script. Kannst du dann auch in einer Automation als Aktion aufrufen.

Mich irritiert der Teil mit dem TTS.

Ok, der Teil mit dem TTS kann ich löschen. Aber wo im Ablauf wird die aktuelle Lautstärke gespeichert um sie im Anschluss wieder herzustellen? Was genau passiert im Ablauf?

In den mediaplayer_xxx Variablen wird alles gespeichert.
temp_volume ist die temporäre Lautstärke.

Hi,

Kannst Du vielleicht Mal den Code dazu teilen ?

Gruß

Hat er doch schon