Mediaplayer Lautstärke setzen mit Template (Überbrückungsschalter)

Hallo Zusammen,

in einer etwas komplexeren Fenster Offen AUtomation, möchte ich jetzt gerne für meine Homepods einen Stummschalter einfügen.

Das ganze wollte ich mit Hilfe von Chat gpt über die Volume Set Funktion versuchen, scheitere aber leider daran - die Automation stoppt bei diesem SChritt. Was ist hier falsch konfiguriert?

Die Idee wäre: Wenn ein Helfer Schalter auf “On” steht, soll der jeweilige Homepod auf Lautstärke 0 gesetzt werden, wenn auf “Off” auf 55% und somit die Benachrichtigung abspielen.

Hier das Code snippet aus der Volume Set:

service: media_player.volume_set
data:
  entity_id: media_player.esszimmer_homepod
  volume_level: >
    {% if is_state("input_boolean.homepod_stummschaltung_esszimmer", "on") %} 0
    {% else %} 0.55 {% endif %}

Was erhälst du, wenn du das unter Entwicklerwerkzeuge → Template einfügst?

{% if is_state("input_boolean.homepod_stummschaltung_esszimmer", "on") %} 0
{% else %} 0.55 {% endif %}
{{ states('media_player.esszimmer_homepod') }}

Welche Attribute hat dein media_player.esszimmer_homepod?

Edit: Hast du es mal so versucht?

service: media_player.volume_set
data:
  volume_level: >
    {% if is_state("input_boolean.homepod_stummschaltung_esszimmer", "on") %} 0
    {% else %} 0.55 {% endif %}
target:
  entity_id: media_player.esszimmer_homepod

Edit 2:
Sonst mach es doch so, wenn es um eine Automation geht

action:
  - if:
      - condition: state
        entity_id: input_boolean.homepod_stummschaltung_esszimmer
        state: "on"
    then:
      - service: media_player.volume_set
        metadata: {}
        data:
          volume_level: 0
        target:
          entity_id: media_player.esszimmer_homepod
    else:
      - service: media_player.volume_set
        metadata: {}
        data:
          volume_level: 0.55
        target:
          entity_id: media_player.esszimmer_homepod

Die Lautstärke lässt sich problemlos templaten.
Wenn es ein wenig kürzer sein darf, nimmst dieses.

{{ iif(is_state('input_boolean.homepod_stummschaltung_esszimmer', 'on'), 0, 0.55) }}

Grup
Osorkon

Vielen Dank für die schnelle Rückmeldung.

In den Entwicklerwerkzeugen funktioniert das Template.
Habe jetzt auch mal deinen Alternativvorschlag getestet. Leider stoppt die Automation immer noch an diesem SChritt.

Ich würde es schon gern ein der Lautstärke festlegung umsetzen, da die Automation etwas größer ist :slight_smile:

Hier der komplette Code - ohne den Schalter funktioniert alles super.

alias: Fenster Offen Benachrichtigung Winter_V4_Test
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.eve_door_20ebn9901_tur_2
      - binary_sensor.eve_door_20ebn9901_tur_4
      - binary_sensor.kuche_fenster_tur_5
      - binary_sensor.spielzimmer_fenster_tur_5
      - binary_sensor.eve_door_20ebn9901_tur_5
      - binary_sensor.eve_door_20ebn9901_tur
      - binary_sensor.schlafzimmer_fenster_tur_6
      - binary_sensor.eve_door_20ebn9901_tur_6
      - binary_sensor.fenster_badezimmer_tur_5
      - binary_sensor.nahzimmer_fenster_tur_8
    to: "on"
    for:
      hours: 0
      minutes: 0
      seconds: 5
condition:
  - condition: state
    entity_id: binary_sensor.temperaturbereich_fenster_offen_notification_sommer
    state: "off"
  - condition: state
    entity_id: binary_sensor.homepod_benachrichtigungen_tagsuber_ein
    state: "on"
action:
  - service: scene.create
    metadata: {}
    data:
      snapshot_entities:
        - media_player.esszimmer_homepod
        - media_player.kuche
        - media_player.buro_johannes
      scene_id: homepods_snapshot
  - service: media_player.volume_set
    metadata: {}
    data:
      volume_level: 0.55
    target:
      entity_id: media_player.kuche
  - service: media_player.volume_set
    data:
      volume_level: >
        {% if is_state("input_boolean.homepod_stummschaltung_esszimmer", "on")
        %} 0 {% else %} 0.55 {% endif %}
    target:
      entity_id: media_player.esszimmer_homepod
  - service: media_player.volume_set
    data:
      volume_level: >
        {% if is_state("input_boolean.homepod_stummschaltung_buro", "on") %} 0
        {% else %} 0.55 {% endif %}
    target:
      entity_id: media_player.buro_johannes
  - service: tts.cloud_say
    data:
      entity_id: media_player.alle_homepods
      message: >
        {% set triggered_sensor = trigger.entity_id.split('.')[1] %} {{
        states[trigger.entity_id].attributes.friendly_name }} Ist seit 20
        Minuten geöffnet!
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
  - service: scene.turn_on
    metadata: {}
    target:
      entity_id: scene.homepods_snapshot
  - service: notify.alle_gerate
    data:
      message: >
        {{ states[trigger.entity_id].attributes.friendly_name }} Ist seit 20
        Minuten geöffnet! 
      title: Fenster geöffnet
mode: single

@Osorkon den kürzeren Code hab ich auch getestet, geht leider auch nicht.

Irgendwo hab ich wohl noch einen Fehler drin - da ich noch recht neu mit Templates unterwegs bin, wohl auch nicht verwunderlich :slight_smile:

Hoffe da findet jemand versiertes das Problem.

An welcher Stelle genau, bricht sie Automatisierung ab?

Ein Screenshot vom Ablauf und die dazugehörigen Fehlermeldung wären interessant.

Gruß
Osorkon

Auf die Idee hätte ich auch mal kommen können, einen Screenshot vom Ablauf zu erstellen.
Dieser Anbei.

Abgebrochen wird bei der Lautstärkeeinstellung für den Esszimmer HomePod, der für die Küche - ohne Template - läuft noch sauber durch

Unter SChrittdetails steht nur: “Dieser Schritt wurde nicht ausgeführt und daher sind keine weiteren Trace-Informationen verfügbar.”

Was steht den unter „Schrittdetauls“, an der Stwllw wo die Automatisierung abbricht?

Hast mal versucht zwischen den Aktionen mit 1-2 sek Verzögerung zu arbeiten?

Gruß
Osorkon

Unter Schrittdetails steht beim vorigen Schritt, der noch ausgeführt wird:

Ausgeführt: 20. Februar 2024, 14:33:25
Ergebnis:
params:
  domain: media_player
  service: volume_set
  service_data:
    volume_level: 0.55
    entity_id:
      - media_player.kuche
  target:
    entity_id:
      - media_player.kuche
running_script: false

Dort wo die Automation abbricht, dann das oben geschriebene → keine weiteren Details.

Verzögerung hab ich noch nicht probiert, wo sollte ich diese einbauen?

Zwischen der zuletzt ausgeführten Aktion und der nicht ausgeführten.

Gruß
Osorkon

Läuft die Automation durch bzw. der Schritt mit dem Esszimmer, wenn du einen festen Wert einträgst, z. B. 0.55? Ggf. hat der Homepod ein Problem mit media_player.volume_set.

Ja das läuft, habe die gleiche Automation ohne den off switch - also mit festem Lautstärkewert schon im Einsatz.
Da geht es ohne Probleme. Ich kanns mir tatsächlich nicht erklären. Das Set Volume auf dem Küchen Homepod geht ohne Probleme - mit festem Wert, bei Esszimmer und Büro gehts mit dem Template nicht…

Edit: Habe es jetzt eben auch in dieser Automation nochmal probiert, sobald ich ein festes Volume setze ist es kein Thema und funktioniert, der Fehler muss also wirklich irgendwo im Template stecken - was ich nicht verstehe, denn das funktioniert ja in den Entwicklerwerkzeugen auch…

Es ist kurios, aber reproduzierbar.

Machmal tut es machmal nicht und die Automatisierung bricht ab.
Sobald mehrere HomePods nacheinander, aber auch parallel angesprochen werden.
Und zwar sobald für die Lautstärke ein Template verwendet wird.
Selbst wenn ich die Aktionen parallel laufen lasse, erwischt es mal den einen oder anderen. Sehr komisch

Dann wird Dir nichts anders übrig bleiben, als den Vorschlag von @sirector anzuwenden. Und mit Wenn Dann zu arbeiten. Damit funktioniert es zumindest bei mir zuverlässig.

  - if:
      - condition: state
        entity_id: input_boolean.homepod_stummschaltung_esszimmer
        state: "on"
    then:
      - service: media_player.volume_set
        metadata: {}
        data:
          volume_level: 0
        target:
          entity_id: media_player.esszimmer_homepod
    else:
      - service: media_player.volume_set
        metadata: {}
        data:
          volume_level: 0.55
        target:
          entity_id: media_player.esszimmer_homepod

Gruß
Osorkon

Das ist ja spannend, ich habe schon an mir gezweifelt… Aber dann deckt sich das ja.
Ich habe jetzt wie von euch vorgeschlagen eine WEnn Dann Schleife für die beiden Homepods eingefügt, damit klappts perfekt - danke!

Schön das es jetzt funktioniert. Die Lösung :white_check_mark: wurde ja bereits hier gepostet.

Ja da hast du recht, sorry, ich hatte vorhin um die falsche Ecke gedacht und war der Ansicht, ich müsste diese Abfrage dann sehr komplex verschachteln. Aber das lies sich dann doch einfach integrieren!

Jetzt melde ich mich hier nochmal, da es gerade leider insbesondere beim setzen der Lautstärke hakt…

Anfangs hat es gut funktioniert, seit einiger Zeit jedoch wird trotz setzen der Lautstärke auf “0” weiterhin leise abgespielt.

Grundsätzlich funktioniert Automation, Helfer und Laustärke setzen also (denn die Lautstärke wird ja stark verringert) - aber eben nicht wie bislang ganz auf 0.

Ist das Problem bekannt, bzw. gibt es einen Workaround?

Hast du es mal mit 0.01 anstatt 0 versucht? Vielleicht hat Apple etwas umgestellt? Ich selber nutze kein Apple.

Danke für die Idee! Soeben probiert, ist damit gleich laut wie auf 0… sehr seltsam das ganze.

Ich habe auch schon vermutet, dass es ggf. An Apple liegt. Aber leider wüsste ich nicht wie ich das rausfinde.

Das zweite Problem ist, dass das fortsetzen der Wiedergabe nach der Ansage auch sehr unzuverlässig klappt, das hatte auch schonmal Perfekt funktioniert…

Kann ich bestätigen. Solange die Lautstärke > 0.1 bzw.10% beträgt.
Wird beim Abspielen von TTS die Lautstärke automatisch auf 0.1/10% eingestellt.

Gruß
Osorkon

Danke dir für die Rückmeldung!

D.h. Komplett aus geht beim Homepod nicht / nicht mehr?
Ich meine, dass es am Anfang funktioniert hat.

Kannst du mit meinem 2. Problem auch etwas anfangen? Das aktuell die Wiedergabe nur sehr unzuverlässig fortgesetzt wird nach der Ansage.
Es klappt nur noch in 10% der Fälle bei Podcasts. Bei der Wiedergabe von Apple Music etwas öfters, aber dennoch unzuverlässig.

Auch das hat mal perfekt funktioniert.