Jumeler les appareils bluetooth avec Clé de sécurité/Mot de passe en python - RFCOMM (Linux)
Je suis en train de travailler sur un script Python pour rechercher les périphériques bluetooth et connectez-les à l'aide de RFCOMM. Ces dispositifs a Clé/Mot de passe. Je suis à l'aide de PyBlueZ et, autant que je sache, cette bibliothèque ne peut pas gérer Clé/Mot de passe de connexions (Python PyBluez de la connexion de la clé d'authentification appareil protégé).
Je suis en mesure de la découverte de périphériques et de récupérer leurs noms et adresses:
nearby_devices = bluetooth.discover_devices(duration=4,lookup_names=True,
flush_cache=True, lookup_class=False)
Mais si essayé de se connecter à un périphérique spécifique à l'aide de:
s = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
s.connect((addr,port))
J'obtiens une erreur 'Device or resource busy (16)'
.
J'ai essayé quelques commandes bash à l'aide de la hcitool et bluetooth-agent, mais j'ai besoin de faire la connexion par programmation. J'ai été en mesure de se connecter à mon appareil à l'aide de la procédure décrite ici: Comment connecter un périphérique bluetooth à partir de la ligne de commande sur Linux.
Je veux vous demander si quelqu'un s'est connecté à un appareil bluetooth avec Clé de sécurité/Mot de passe à l'aide de Python. Je pense à utiliser les commandes bash en Python à l'aide de subprocess.call()
, mais je ne suis pas sûr si c'est une bonne idée.
Merci pour toute aide.
OriginalL'auteur Juan C. Vanegas | 2016-05-26
Vous devez vous connecter pour publier un commentaire.
Enfin, je suis en mesure de vous connecter à un périphérique à l'aide de PyBlueZ. J'espère que cette réponse sera aider les autres dans le futur. J'ai essayé le suivant:
Tout d'abord, importer les modules et la découverte de périphériques.
Lorsque vous découvrez l'appareil que vous souhaitez connecter, vous avez besoin de connaître le port, l'adresse et le mot de passe. Avec cette information en ne le suivant:
Maintenant, vous êtes connecté!! Vous pouvez utiliser votre socket pour la tâche dont vous avez besoin:
Officiel PyBlueZ de la documentation est disponible ici
bluetooth-agent
? C'est une commande Linux?Salut Yahya. Oui, c'est une commande.
bluetooth-agent
est un outil pour gérer le code d'appairage. Vous pouvez en lire plus à ce sujet: askubuntu.com/questions/763939/... wiki.debian.org/BluetoothUser#Pairing_using_CLIOk, merci, donc, c'est essentiellement:
your bluetooth agent
par exemplebluetoothctl
Oui. Vous pouvez utiliser
bluetoothctl
si vous n'avez pasbluetooth-agent
Tout en passant pour les futurs lecteurs, pas tous les debians dists ont
bluetooth-agent
, il est clairement mentionné que: "Sibluetooth-agent
n'est pas disponible, essayez debluetoothctl
"OriginalL'auteur Juan C. Vanegas