Fernbedienung Lautstärke für Echo 4 (z.B.)

Basteltipp für Besitzer eines Echos mit eingebautem Thread Border Router (z.B. Echo 4 oder Echo Dot max):

Mit dem Ikea Bilresa Dual Button (kostet 5€) lässt sich nun einfach und billig eine Lautstärke-Fernbedienung für einen Echo realisieren.
Der Bilresa Doppeltaster arbeitet mit Thread und kann mit dem Echo 4 (z.B.) über Matter verbunden werden. Gerät hinzufügen, Schalter auswählen, Marke: other, Logo = Matter auswählen, ja hat Logo, QR-Code scannen usw. Der Bilresa muss sich im Kopplungsmodus befinden (blinkt langsam gelb).
Nach erfolgreicher Verbindung braucht man noch 2 Routinen für leiser und lauter. Beispiel:
Wenn … Bilresa Dual Button: obere Taste, Einmal drücken
Alexa wird
“Benutzerdefiniert” wählen und eingeben: “Stelle Lautstärke Echo Wohnzimmer lauter”
Das gleiche macht man mit einer 2. Routine für die untere Taste und leiser.

So lässt sich nun diskret mit Tastendruck vom Tisch aus (Beispiel) die Lautstärke ändern, ohne dass man nervige Alexa-Befehle durch den Raum rufen muss.
Denkbar ist auch, dass man die Befehle stop und weiter auf die Tasten legt.

In Alexa wird nur der Einmaldruck erkannt und in Routinen als Trigger angeboten.
Man kann den Button auch an Home Assistant durchreichen. Dann steht dort auch "Released after being held down"und “Pressed Twice” zur Verfügung.

Wie in einem anderen Posting hier schon geschrieben, habe ich es mit dem Amazon-Echo-Thread aufgegeben und ein Thread-Netz mit einem ZBT-2 im Thread-Modus am HA aufgespannt.

Das läuft stabil und zuverlässig und gibt mir 6 Funktionen mit jedem Bilresa Dual Button.

Meine Echo Fernsteuerung habe ich damit und mit Unterstützung des Alexa Media Players wie folgt erweitern können:

Bilresa Taste |  oben      |  unten
--------------+------------+----------------
multi_press_1 |  lauter    |  leiser
multi_press_2 |  stop      |  next track
long_press    | Südwestfunk| Playlist Lounge

Man kann damit nun jeden Echo fernsteuern, es muss kein Echo 4 oder Echo Dot Max mit Thread sein.
Bei Interesse kann ich gerne den Code noch anhängen.

Ich hab Interesse!

Magst Du den Code hier rein stellen?

Gerne :slightly_smiling_face:

Es sind 3 Automatisierungen, je eine für kurzes Drücken, Doppel-Drücken und langes Drücken.

Erläuterung zu long_press:
Mit der oberen Taste rufe ich eine Alexa-Routine auf, die mir den Radiosender SWR1 abspielt.
Mit der unteren Taste gebe ich Alexa den Befehl, meine Amazon-Music-Playlist Lounge in Zufallswidergabe abzuspielen.

- id: lautstaerke_wohnzimmer
  alias: Lautstärke wohnzimmer mit BILRESA
  mode: restart
  triggers:
  - trigger: state
    entity_id:
    - event.bilresa_4_dual_button_taste_1
    - event.bilresa_4_dual_button_taste_2
  conditions:
  - condition: template
    value_template: '{{ trigger.to_state.attributes.event_type == ''multi_press_1''
      }}'
  actions:
  - choose:
    - conditions:
      - condition: template
        value_template: '{{ trigger.entity_id == ''event.bilresa_4_dual_button_taste_1''
          }}'
      sequence:
      - action: media_player.volume_up
        target:
          entity_id: media_player.echo_4_wohnzimmer
    - conditions:
      - condition: template
        value_template: '{{ trigger.entity_id == ''event.bilresa_4_dual_button_taste_2''
          }}'
      sequence:
      - action: media_player.volume_down
        target:
          entity_id: media_player.echo_4_wohnzimmer
- id: musik_wohnzimmer
  alias: Musik wohnzimmer mit BILRESA
  mode: restart
  triggers:
  - trigger: state
    entity_id:
    - event.bilresa_4_dual_button_taste_1
    - event.bilresa_4_dual_button_taste_2
  conditions:
  - condition: template
    value_template: '{{ trigger.to_state.attributes.event_type == ''long_press'' }}'
  actions:
  - choose:
    - conditions:
      - condition: template
        value_template: '{{ trigger.entity_id == ''event.bilresa_4_dual_button_taste_1''
          }}'
      sequence:
      - action: media_player.play_media
        target:
          entity_id: media_player.echo_4_wohnzimmer
        data:
          media:
            media_content_id: Südwestfunk
            media_content_type: routine
            metadata: {}
    - conditions:
      - condition: template
        value_template: '{{ trigger.entity_id == ''event.bilresa_4_dual_button_taste_2''
          }}'
      sequence:
      - action: media_player.play_media
        target:
          entity_id: media_player.echo_4_wohnzimmer
        data:
          media:
            media_content_id: shuffle meine Playlist Lounge auf Amazon Music
            media_content_type: custom
            metadata: {}
- id: musik_wohnzimmer stop next
  alias: Musik wohnzimmer stop / next mit BILRESA
  mode: restart
  triggers:
  - trigger: state
    entity_id:
    - event.bilresa_4_dual_button_taste_1
    - event.bilresa_4_dual_button_taste_2
  conditions:
  - condition: template
    value_template: '{{ trigger.to_state.attributes.event_type == ''multi_press_2''
      }}'
  actions:
  - choose:
    - conditions:
      - condition: template
        value_template: '{{ trigger.entity_id == ''event.bilresa_4_dual_button_taste_1''
          }}'
      sequence:
      - action: media_player.media_stop
        target:
          entity_id: media_player.echo_4_wohnzimmer
    - conditions:
      - condition: template
        value_template: '{{ trigger.entity_id == ''event.bilresa_4_dual_button_taste_2''
          }}'
      sequence:
      - action: media_player.media_next_track
        target:
          entity_id: media_player.echo_4_wohnzimmer

lieben Dank für den Code!

Bitte, gerne.
Nachdem da mindestens eine Automation in letzter Zeit mehrfach durch Geisterhand ausgelöst wurde und der Echo ohne mein Zutun anfing zu dudeln, habe ich den Code auf den Trigger “event.received” umgestellt.
Um ehrlich zu sein, ChatGPT hat das für mich gemacht und meint, damit wäre der Code robuster.

Hier die 3 umgestellten Automationen:

- id: lautstaerke_wohnzimmer
  alias: Lautstärke wohnzimmer mit BILRESA
  triggers:
  - trigger: event.received
    target:
      entity_id: event.bilresa_4_dual_button_taste_1
    options:
      event_type:
      - multi_press_1
    id: lauter
  - trigger: event.received
    target:
      entity_id: event.bilresa_4_dual_button_taste_2
    options:
      event_type:
      - multi_press_1
    id: leiser
  actions:
  - choose:
    - conditions:
      - condition: trigger
        id: lauter
      sequence:
      - action: media_player.volume_up
        target:
          entity_id: media_player.echo_4_wohnzimmer
    - conditions:
      - condition: trigger
        id: leiser
      sequence:
      - action: media_player.volume_down
        target:
          entity_id: media_player.echo_4_wohnzimmer
  mode: restart
- id: musik_wohnzimmer
  alias: Musik wohnzimmer mit BILRESA
  triggers:
  - trigger: event.received
    target:
      entity_id: event.bilresa_4_dual_button_taste_1
    options:
      event_type:
      - long_press
    id: radio
  - trigger: event.received
    target:
      entity_id: event.bilresa_4_dual_button_taste_2
    options:
      event_type:
      - long_press
    id: lounge
  actions:
  - choose:
    - conditions:
      - condition: trigger
        id: radio
      sequence:
      - action: media_player.play_media
        target:
          entity_id: media_player.echo_4_wohnzimmer
        data:
          media:
            media_content_id: Südwestfunk
            media_content_type: routine
            metadata: {}
    - conditions:
      - condition: trigger
        id: lounge
      sequence:
      - action: media_player.play_media
        target:
          entity_id: media_player.echo_4_wohnzimmer
        data:
          media:
            media_content_id: shuffle meine Playlist Lounge auf Amazon Music
            media_content_type: custom
            metadata: {}
  mode: restart
- id: musik_wohnzimmer stop next
  alias: Musik wohnzimmer stop / next mit BILRESA
  triggers:
  - trigger: event.received
    target:
      entity_id: event.bilresa_4_dual_button_taste_1
    options:
      event_type:
      - multi_press_2
    id: stop
  - trigger: event.received
    target:
      entity_id: event.bilresa_4_dual_button_taste_2
    options:
      event_type:
      - multi_press_2
    id: next
  actions:
  - choose:
    - conditions:
      - condition: trigger
        id: stop
      sequence:
      - action: media_player.media_stop
        target:
          entity_id: media_player.echo_4_wohnzimmer
    - conditions:
      - condition: trigger
        id: next
      sequence:
      - action: media_player.media_next_track
        target:
          entity_id: media_player.echo_4_wohnzimmer
  mode: restart