dotfiles/.local/bin/pair_to_mx5_bluetooth_reset

81 lines
1.7 KiB
Bash
Executable File

#! /bin/sh -
###################### STOP ###################
# Put device in pairing mode!!!
# hex MUST be uppercase
MX5_MAC="AC:80:0A:6D:F3:7B"
MX3_MAC="14:3F:A6:A8:7F:CD"
DEVICE_MAC="$MX5_MAC"
log () {
printf "\n\033[31m%s\033[m\n" "$*" >/dev/tty
}
log "rfkill block bluetooth..."
rfkill block bluetooth
log "sudo rmmod btusb..."
sudo rmmod btusb
log "sudo modprobe btusb..."
sudo modprobe btusb
log "rfkill unblock bluetooth..."
rfkill unblock bluetooth
log "sudo systemctl restart bluetooth..."
sudo systemctl restart bluetooth
# echo "btmgmt"
# btmgmt
log "Waiting 3 seconds..."
sleep 3
(
log "Powering on bluetooth agent..."
cat <<- CMDS
power on
agent on
default-agent
pairable on
discoverable on
CMDS
log "Removing ${DEVICE_MAC}..."
echo "remove ${DEVICE_MAC}"
log "Turning on scanning..."
echo "scan on"
log "Waiting until ${DEVICE_MAC} is found..."
while : ; do
sleep 1
bluetoothctl devices | grep -q "${DEVICE_MAC}" && break
done
log "Found ${DEVICE_MAC}."
log "Turning off scanning..."
echo "scan off"
log "Pairing with ${DEVICE_MAC}..."
echo "trust ${DEVICE_MAC}"
echo "pair ${DEVICE_MAC}"
log "Waiting 3 seconds"
sleep 3
log "Connecting to ${DEVICE_MAC}..."
echo "connect ${DEVICE_MAC}"
log "Waiting until connected"
while : ; do
connected="0"
for mac in $(bluetoothctl devices | awk '{print $2}'); do
[ ! "${mac}" = "${DEVICE_MAC}" ] && continue
bluetoothctl info "${mac}" | grep -q "Connected: yes" && { connected="1"; break; }
done
[ "${connected}" = "1" ] && break
log "Not yet connected with ${DEVICE_MAC}."
sleep 1
done
log "Connected with ${DEVICE_MAC}."
log "Trying one more time..."
echo "connect ${DEVICE_MAC}"
log "Done."
) | bluetoothctl