8 votes

Comment sélectionner le périphérique Bluetooth à l'aide de la ligne de commande ?

J'ai deux trackpads Bluetooth, un au travail et un à la maison. Existe-t-il un moyen de sélectionner l'un ou l'autre à partir de la ligne de commande ? Mon processus actuel consiste à aller dans le menu bluetooth, à survoler home ou office et à cliquer sur Connecter mais j'aimerais pouvoir le faire à partir du terminal.

12voto

Haentz Points 302

Cette application CLI open-source Connecteur Bluetooth semble être une bonne solution. J'ai testé et confirmé qu'elle fonctionne depuis MacOS 10.15.2.

Il est disponible sur GitHub ainsi que Homebrew :

$ brew install bluetoothconnector
$ BluetoothConnector --connect 00-11-22-33-44-55 --notify
$ BluetoothConnector --disconnect 00-11-22-33-44-55

3voto

piersb Points 485

J'ai finalement opté pour cette version modifiée à partir de ceci répondre et créer deux fichiers, l'un avec "Home Trackpad" et l'autre avec "Office Trackpad". Cela fonctionne, mais prend quelques secondes.

tell application "System Events" to tell process "SystemUIServer"
  set bt to (first menu bar item whose description is "bluetooth") of menu bar 1
  click bt
  tell (first menu item whose title is "Home Trackpad") of menu of bt
    click
    tell menu 1
      if exists menu item "Connect"
        click menu item "Connect"
        return "Connecting..."
      else
        click bt  -- close main dropdown to clean up after ourselves
        return "No connect button; is it already connected?"
      end if
    end tell
  end tell
end tell

3voto

Wayne Khan Points 875

Je viens de le faire avec https://github.com/toy/blueutil .

Je l'ai installé à partir de MacPorts :

$ sudo port install blueutil

a trouvé l'identifiant de mon appareil :

$ blueutil --paired
address: 03-5e-1c-4a-a8-11, not connected, not favourite, not paired, name: "Los Headphones", recent access date: 2020-03-17 17:58:09 +0000
...

Connecté :

$ blueutil --connect 03-5e-1c-4a-a8-11

2voto

Douglas Points 10417

AFIK, il n'existe pas d'utilitaire de ligne de commande intégré pour gérer les connexions Bluetooth individuelles.

En fait, la page de manuel man blued (le démon Bluetooth d'OS X) :

Le démon Bluetooth gère les SDP t et l'acceptation des connexions entrantes. Il ne peut pas être utilisé directement par l'outil l'utilisateur. (souligné par moi)

Il semble donc que vous soyez limité au chargement/déchargement du démon BT à partir de la ligne de commande. Cela peut cependant être utile. Si votre périphérique est actif, OS X se connectera automatiquement au périphérique au démarrage. En d'autres termes, il se connectera automatiquement à tout appareil à portée lorsque le démon démarre.

Obtenir l'état du démon Si nous lançons la commande defaults read /Library/Preferences/com.apple.Bluetooth.plist ControllerPowerState

Il répond par un 1 ou 0 selon que le démon BT est en cours d'exécution ou non ; 1 étant en cours d'exécution, 0 étant en cours d'exécution.

Décharger le démon

Envoi de la commande sudo killall blued devrait tuer le démon BT. L'inconvénient est que si vous avez un clavier BT, il cessera de fonctionner.

(Re)Démarrage du démon

Si nous émettons la commande launchctl start com.apple.blued il indiquera au démon de (re)démarrer. Après cela, il devrait détecter l'appareil à portée.

La mise en place de l'ensemble En les regroupant sur une seule ligne, nous pouvons lancer la commande suivante

sudo killall blued && sleep 3 && launchctl start com.apple.blued

Il s'agit de ....

  1. Tuer le démon
  2. Attend 3 secondes pour s'assurer qu'il a été tué (vous pouvez modifier cette durée si vous le souhaitez).
  3. Démarre le démon.

Pour faciliter les choses

Pour faciliter la tâche, nous lui attribuons un alias . Vous pouvez appeler l'alias comme vous le souhaitez ; j'ai utilisé "btrestart" parce que cela a du sens dans ce contexte.

alias btrestart=sudo killall blued && sleep 3 && launchctl start com.apple.blued

Maintenant, n'importe où dans votre terminal, si vous tapez btrestart il émettra la commande. Une fois que vous l'avez fait fonctionner, vous pouvez l'ajouter à votre fichier .bash_profile de manière à ce que l'alias persiste lors des redémarrages :

echo alias btrestart=sudo killall blued && sleep 3 && launchctl start com.apple.blued >> ~/.bash_profile

Quelques mises en garde

  1. Vous devrez saisir votre mot de passe à chaque fois. Launchctl est une commande système et nécessite des privilèges élevés.
  2. Tous de vos appareils BT seront déconnectés et reconnectés. Si vous n'avez qu'un ou deux appareils BT, le problème ne se pose pas vraiment.

J'espère que cela vous permettra d'aller dans la bonne direction....

2voto

frank ankersly Points 559
blued listall

Cette commande du terminal vous indiquera tous les appareils actuellement "connus". Vous devrez trouver (en lisant entre les lignes) lequel est lequel (en supposant que vous ayez donné à vos trackpads un nom "sympa", comme "maison" ou "travail", etc.)

Je l'ai fait et j'ai obtenu :

2016-05-03 20:14:58.392 blued[3852:507] hostControllerOnline - Number of Paired devices = 3, List of Paired devices = (
    "d8-96-95-e0-3e-f8",
    "c4-2c-03-b7-87-57",
    "90-84-0d-e4-7b-41"
)
link key found for device: c4-2c-03-b7-87-57
2016-05-03 20:15:04.637 blued[3852:507] link key found for device: c4-2c-03-b7-87-57
2016-05-03 20:15:04.639 blued[3852:507] [setSystemPreference] syncs returns false
2016-05-03 20:15:04.639 blued[3852:507] Save link key for device: c4-2c-03-b7-87-57
link key found for device: 90-84-0d-e4-7b-41
2016-05-03 20:15:04.640 blued[3852:507] link key found for device: 90-84-0d-e4-7b-41
2016-05-03 20:15:04.640 blued[3852:507] Save link key for device: 90-84-0d-e4-7b-41
link key found for device: d8-96-95-e0-3e-f8
2016-05-03 20:15:04.640 blued[3852:507] link key found for device: d8-96-95-e0-3e-f8
2016-05-03 20:15:04.641 blued[3852:507] Save link key for device: d8-96-95-e0-3e-f8 
Create connection failed (0x4) for device: D8-96-95-E0-3E-F8

(j'ai ensuite appuyé sur "ctrl-c" pour annuler)

Supposons que je sache que "c4-2c-03-b7-87-57" est la "maison" ....

suivant :

blued join c4-2c-03-b7-87-57

Cela fonctionne sur mon système (10.9.5). YMMV.

Il se peut que vous deviez également ajouter une fonction kill, car il semble que blued ne "parle" pas bien avec Terminal.

Une commande de l'interpréteur de commandes pourrait donc être la suivante :

blued join c4-2c-03-b7-87-57
killall terminal

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X