This blueprint will help you automate an Alexa device connected to an amplifier that’s not always on.
It will:
- turn on the amplifier and switch to the correct source when the Alexa device starts playing music
- turn off the amplifier after 10 seconds of no music playing
- stop playback on the alexa device if the amplifier is turned off or the source is switched
It is intended for the following setup:
- One “Main” Alexa device which you’ll talk to and get answers from
- One “Music” Alexa device which will be muted
- An amplifier which is controllable in Home Assistant via a media_player entity
The “Music Alexa” must be connected to the amplifier.
Set up a group in the Alexa app and add the “Main” and “Music” Alexa and set the preferred speaker for music to the “Music Alexa”.
This blueprint currently doesn’t support multiroom audio groups. The amp will not turn on if you, for example, start music on the “Everywhere” group. This feature might get added in a future version of this blueprint.
This blueprint requires the alexa_media custom integration.
blueprint:
name: DIY Echo Link Amp
description: Emulate the behaviour of an Amazon Echo Link Amp by using your existing Amp and an Amazon Echo device connected to your Amp.
domain: automation
input:
echo:
name: Amazon Echo device
description: The Amazon Echo device that is connected via AUX to the speakers.
selector:
entity:
integration: alexa_media
domain: media_player
speaker:
name: Speaker
description: The media_player for the speaker.
selector:
entity:
domain: media_player
source:
name: Source
description: The source of the speaker to which the Amazon Echo is connected.
selector:
text:
variables:
echo: !input echo
speaker: !input speaker
source: !input source
trigger:
- platform: state
entity_id: !input speaker
to: "on"
- platform: state
entity_id: !input speaker
attribute: source
- platform: state
entity_id: !input echo
from: playing
for: 00:00:10
- platform: state
entity_id: !input echo
to: playing
condition: []
action:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.entity_id == speaker
and ((trigger.from_state.state == "on" and trigger.to_state.state == "off")
or trigger.from_state.attributes.source == source and trigger.to_state.attributes.source
!= source) }}'
sequence:
- service: media_player.media_stop
data: {}
entity_id: !input echo
- conditions:
- condition: template
value_template: '{{ trigger.entity_id == echo and
trigger.to_state.state == "playing" }}'
sequence:
- service: media_player.turn_on
data: {}
entity_id: !input speaker
- service: media_player.select_source
data:
source: line3
entity_id: !input speaker
- conditions:
- condition: template
value_template: '{{ trigger.entity_id == echo and
trigger.from_state.state == "playing" and trigger.to_state.state != "playing"
}}'
sequence:
- service: media_player.turn_off
data: {}
entity_id: !input speaker
default: []
mode: restart
This blueprint is based on a previous blog post of mine where I achieved this using Node Red: https://vigonotion.com/blog/alexa-connected-to-an-audio-receiver/