2

I am trying to use Amazon Echo as an speaker with Raspberry PI3. While it mostly works and I am able to pair and play audio files, the bluetooth connection gets dropped after 4-5 hours.

I am thinking if - I can connect to Amazon Echo via script then I can check for connectivity and fix it - when connection is dropped.

I am already able to do this from GUI and I have made some progress via command line using bluetoothctl command as well. The problem is - when I connect to Echo via bluetoothctl command, although connection is successful - it doesn't play media files successfully.

To connect to Echo from CLI, I am simply using bluetoothctl connect command.

  • How did you pair it? I am able to pair but I can not play audio. The echo connects as sink and source at the same time. – Thorsten Mar 2 '17 at 10:19
0

Try also bluetoothctl pair and bluetoothctl trust maybe it will solve your problem.

0

This script worked for me to automate pairing an Amazon Echo with a Pi 4 running Raspbian Buster.

Is this the most elegant way to automate connecting an Amazon Echo speaker? I would suspect not. bluetoothctl is not very script-friendly, so this is best-efforts basis folks. However, I think it's a great starting point to fix a problem I can see at least 3,000 other geeks are interested in solving at the time of me writing this.

Basically, the way I attacked the problem was to filter the MAC address of the Echo speaker and then operate on it as a variable. Again, this script could probably do with a big tidy-up, so if anybody has ideas on improving it, they're welcome folks.

#!/bin/bash

# Add some audio and Bluetooth packages
apt-get install blueman pulseaudio pavucontrol pulseaudio-module-bluetooth
echo
echo
read -p 'Say "ALEXA PAIR" and then press ENTER to continue'
echo
echo

# Capture Mac Address of Alexa Speaker by grepping for the string "Echo" from the bluetoothctl scan:
ALEXAMACADDRESS=$(sudo timeout 10s bluetoothctl scan on >> /home/pi/scan-output.txt | cat /home/pi/scan-output.txt | grep -m1 '.*Echo.*' | awk '{print $3}')

bluetoothctl pair $ALEXAMACADDRESS
bluetoothctl connect $ALEXAMACADDRESS
bluetoothctl trust $ALEXAMACADDRESS

Please note that once paired, it's down to you to set the Echo as the audio output where required- T

Not the answer you're looking for? Browse other questions tagged or ask your own question.