Problème d'appairage d'un périphérique bluetooth avec pulseaudio

Bonjour à tous

J’ai installé jeedom sur Rasp 3B+ et je tente d’appairer une enceinte bluetooth avec le plugin pulseaudio
Lors de l’étape 2 du scan avec le BT intégré du raspberry, les périphériques ne sont pas identifiés et j’ai le message suivant :

spawn bluetoothctl -a
bluetoothctl: option requires an argument -- 'a'
bluetoothctl ver 5.50
Usage:
	bluetoothctl [options]
Options:
	--agent 	Register agent handler: <capability>
	--timeout 	Timeout in seconds for non-interactive mode
	--version 	Display version
	--help 		Display help

############################################################################
# Try to power on the Bluetooth device on controller B8:27:EB:BB:C7:42
############################################################################
send: spawn id exp3 not open
    while executing
"send "select $port
""
    (file "/var/www/html/plugins/pulseaudio/core/class/../../3rdparty/bluetooth-scan.sh" line 12)

J’ai lu pas mal de posts au sujet du bluetooth sur le rasp3b+ mais la plupart traitaient de l’activation du bluetooth sur pi
Dans mon cas, ça fonctionne bien via accès ssh
Je peux l’allumer avec bluetoothctl (power on), scanner les périph BT (scan on)
Par contre, bluetoothctl ne fonctionne qu’en sudo
Sans sudo, j’ai le message « no controler available »
Est ce que ça viendrait de là ?
N’étant pas à l’aide avec les lignes de commandes, je ne sais pas trop quoi faire
Merci de votre aide

Hello

Pourrais-tu utiliser les balises </> pour mettre des logs dedans se serait plus lisible

1 « J'aime »

Désolé, je constate que Fabrice l’a déjà fait pour moi, merci à lui

Bonjour,
Exactement le même problème. As tu trouvé une solution ?
Peut être que si bluetoothctl ne fonctionne qu’en sudo (comme chez moi), c’est ce qui bloque l’accès de Pulseaudio au bluetooth ? (problème de droits ?)

Bonjour
Non je suis en stand by depuis mon dernier post
Après avoir beaucoup chercher à l’époque, j’ai laissé tomber faute d’éléments complémentaires.

Je pense comme toi sans en avoir la certitude mais je ne sais pas quelle commande appliquer … :thinking:

Je suis en formation Linux aujourd’hui. A la fin de celle-ci, je vais essayé de demander au formateur s’il n’a pas une piste et si je trouve je reviens ici. :wink:

Donc, après avoir regardé un peu, dans le « man » de « bluetoothctl », il n’existe pas de « -a ».
Il fait donc appel à une option qui n’existe pas et c’est peut être pour cela que ça bloque.
Après, à partir de là, mes compétences sont dépassées.
Si quelqu’un de plus compétent a une idée ?

Voilà, j’ai retiré le -a et nouveau problème : « No default controller available », alors que j’ai bien regardé et mon bluethoot est bien fonctionnel…

Bonjour @Elekrea,
Je rencontre les mêmes difficultés que toi avec mon Jeedom ATLAS.
J’ai essayé en supprimant -a ou en remplaçant par -agent mais le résultat reste le même…

As-tu résolut le problème de ton coté ?

Tengo un Jeedom Atlas con el mismo problema. Donde está el archivo …3rdparty/bluetooth-scan.sh? creo que encontrado los comandos adecuados probando manualmente por ssh. el comando sería: « bluetoothctrl agent » sin usar guiones

Chat GPT me ha ayudado a analizar lo que ocurre. Parece ser un error de sintaxis en el script.

El script bluetooth-scan.sh utiliza el programa expect para interactuar con bluetoothctl. es el script lo que no está bien y debe ser modificado

Para acceder al script por ssh utilizando Putty o software similar:
cd /var/www/html/plugins/pulseaudio/core/class/…/…/3rdparty
ls
cat bluetooth-scan.sh

se puede ejecutar el script desde el terminal:
Hay que estar ubicado en la carpeta
cd /var/www/html/plugins/pulseaudio/core/class/…/…/3rdparty
expect bluetooth-scan.sh

Para modificar el script desde el entorno de Jeedom:
Entrar al editor de archivos de Jeedom
carpeta html/plugins/pulseaudio/3rdparty

Segun chatGPT, el contenido del script debería ser este:

#!/usr/bin/expect -f

# Comentario: Inicia el script especificando el intérprete 'expect'.

# Comentario: Para habilitar la depuración en tiempo real, descomenta la siguiente línea.
# exp_internal 1

# Comentario: Reinicia el servicio Bluetooth al inicio. Esto evitará problemas al escanear varias veces seguidas.
spawn sudo systemctl restart bluetooth
expect eof

# Comentario: Espera 5 segundos para dar tiempo a que se reinicie el servicio Bbluetooth.
sleep 5

# Comentario: Configura el prompt para identificarlo en el terminal como "#".
set prompt "#"

# Comentario: Obtiene el puerto Bluetooth de los argumentos de línea de comandos.
set port [lindex $argv 0]

# Comentario: Inicia 'bluetoothctl' y espera hasta que aparezca el prompt.
spawn sudo bluetoothctl
expect -re $prompt

# Comentario: Envía mensajes de usuario para proporcionar información sobre lo que sucede.
send_user "\n"
send_user "############################################################################\n"
send_user "# Try to power on the Bluetooth device on controller $port\n"
send_user "############################################################################\n"

# Comentario: Ejecuta una serie de comandos en 'bluetoothctl' para activar Bluetooth y escanear dispositivos.
send "select $port\r"
send "power on\r"
send "scan on\r"
send_user "\n"
send_user "############################################################################\n"
send_user "# Scan bluetooth device in progress\n"
send_user "############################################################################\n"

# Comentario: Espera 5 segundos para dar tiempo a que se realice el escaneo.
sleep 5

# Comentario: Informa que el escaneo de dispositivos Bluetooth ha finalizado.
send_user "############################################################################\n"
send_user "# Scan bluetooth device done\n"
send_user "############################################################################\n"

# Comentario: Desactiva el escaneo de dispositivos.
send "scan off\r"

# Comentario: Espera a que aparezca la palabra "Controller" en la salida.
expect "Controller"

# Comentario: Muestra información sobre los dispositivos Bluetooth encontrados.
send_user "\n"
send_user "############################################################################\n"
send_user "# Bluetooth device(s) founded  :\n"
send_user "############################################################################\n"
expect -re $prompt
set val $expect_out(buffer)
send_user $val

# Comentario: Envia el comando "quit" para salir de 'bluetoothctl' y espera a que el proceso termine.
send "quit\r"
expect eof

El script proporcionado por ChatGPT funciona!!

En el script « bluetooth-pair-trust.sh » hay que modificar la línea “spawn bluetoothctl -a” eliminando « -a » En mi caso he añadido sudo porque también hay problemas de permisos de usuario. Aún así no se resuelve todavía el siguiente paso para conectar el dispositivo y parece que será necesario modificar permisos de usuario. Sigo investigando…