Question:
Comment sélectionner le périphérique Bluetooth en utilisant la ligne de commande?
nachocab
2016-04-29 05:57:14 UTC
view on stackexchange narkive permalink

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 flux de travail actuel monte dans le menu Bluetooth, je passe à la maison ou au bureau et je clique sur Connect , mais j'aimerais pouvoir le faire à partir du terminal.

[Voici une réponse en utilisant Applescipt plutôt qu'en l'appelant depuis la ligne de commande] (http://stackoverflow.com/questions/17519804/connect-to-bluetooth-device-iphone-via-command-line-on-macosx) - c'est queassez bien?
Pouvez-vous clarifier votre réponse afin que nous sachions ce que vous avez déjà essayé sur la ligne de commande?Sinon, vous risquez d'obtenir beaucoup de suggestions / réponses inutiles.De plus, si cela est pertinent, vous voudrez peut-être expliquer pourquoi vous souhaitez vous connecter via le terminal - je demande parce que si c'est pour contourner le problème, il peut y avoir d'autres meilleures options pour le contourner plutôt que d'utiliser le terminal.
Cinq réponses:
luckman212
2019-03-03 00:20:56 UTC
view on stackexchange narkive permalink

Cette application CLI open source BluetoothConnector semble être une bonne solution.J'ai testé et confirmé qu'il fonctionnait aussi récemment que macOS 10.15.2.

Il est disponible sur GitHub ainsi que sur Homebrew:

  $ brew install bluetoothconnector
$ BluetoothConnector --connect 00-11-22-33-44-55 --notify
$ BluetoothConnector --déconnecter 00-11-22-33-44-55
 
Mais il n'y a pas de découverte de nouveaux appareils :(
nachocab
2016-05-04 04:56:41 UTC
view on stackexchange narkive permalink

J'ai fini par utiliser cette version modifiée de cette réponse et j'ai créé deux fichiers, un avec "Home Trackpad" et un autre avec "Office Trackpad".Cela fonctionne, mais cela prend quelques secondes pour terminer

  dire à l'application "Evénements système" de dire au processus "SystemUIServer" définir bt sur (premier élément de la barre de menu dont la description est "Bluetooth")barre 1 clic bt tell (premier élément de menu dont le titre est "Home Trackpad") du menu de bt cliquez sur tell menu 1 s'il existe élément de menu "Connect" cliquez sur élément de menu "Connect" retour "Connexion ..." sinon cliquez sur bt -fermer la liste déroulante principale pour nettoyer après nous-mêmes retourner "Pas de bouton de connexion; est-il déjà connecté?"end if end tell end tellend tell  
J'ai utilisé le code ci-dessus.Une remarque cependant, si le nom de votre appareil a une apostrophe (par exemple, "Bob's Airpods", vous devrez peut-être utiliser un caractère non standard. Il semble que les appareils qui ont été configurés sur un téléphone sont susceptibles d'utiliser le U + 2019caractère, alors que nos IDE utilisent généralement U + 0027. J'ai copié / collé l'apostrophe de fantaisie et cela a bien fonctionné.J'utilise Alfred pour le déclencher et cela ne prend que des fractions de seconde
Allan
2016-05-03 20:34:46 UTC
view on stackexchange narkive permalink

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

En fait, la page de manuel man blued (démon Bluetooth OS X) déclare spécifiquement:

Le démon Bluetooth gère les transactions SDP, la gestion des clés de liaison et l'acceptation des connexions entrantes. Il ne peut pas être utilisé directement par l'utilisateur. (Je souligne)

Donc, il semble 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 appareil est actif, OS X se connectera automatiquement à l'appareil 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 émettons la commande les valeurs par défaut lisent /Library/Preferences/com.apple.Bluetooth.plist ControllerPowerState

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


Décharger le démon

L'émission de la commande sudo killall blued devrait tuer le démon BT. L'inconvénient ici 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 , cela indiquera au démon de (re) démarrer. Après cela, il devrait détecter l'appareil à portée.

Tout rassembler En le rassemblant en une seule ligne, nous pouvons lancer la commande

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

Ce que cela fait, c'est ....

  1. Tuez le démon
  2. Attend 3 secondes pour s'assurer qu'il a été tué (vous pouvez changer cela si vous le souhaitez)
  3. Démarre le démon.

Maintenant pour le rendre plus facile

Pour vous faciliter la tâche, nous lui attribuons un alias . Vous pouvez appeler l'alias comme vous le souhaitez; J'ai juste 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 le shell de votre terminal, si vous tapez btrestart il émettra la commande. Une fois qu'il fonctionne, vous pouvez l'ajouter à votre .bash_profile afin que l'alias soit persistant 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 aurez pour saisir votre mot de passe à chaque fois. Launchctl est une commande système et nécessite des privilèges élevés.
  2. Tous vos appareils BT seront déconnectés et reconnectés. Si vous n'avez qu'un ou deux appareils BT, ce n'est peut-être pas vraiment un problème

J'espère que cela vous amènera dans la bonne direction ....

frank ankersly
2016-05-04 05:22:33 UTC
view on stackexchange narkive permalink
  blued listall  

Cette commande Terminal vous indiquera tous les appareils actuellement «connus». Vous allez devoir déterminer (en lisant entre les lignes) lequel est lequel (en supposant que vous avez nommé vos trackpads quelque chose de "gentil", comme "maison" ou "travail", etc.)

J'ai fait cela et j'ai obtenu:

  2016-05-03 20: 14: 58.392 bleui [3852: 507] hostControllerOnline - Nombre de périphériques appariés = 3, Liste des appareils appairés = ( Clé de lien "d8-96-95-e0-3e-f8", "c4-2c-03-b7-87-57", "90-84-0d-e4-7b-41") trouvée pour l'appareil: c4- 2c-03-b7-87-572016-05-03 20: 15: 04.637 clé de liaison bleuie [3852: 507] trouvée pour l'appareil: c4-2c-03-b7-87-572016-05-03 20: 15: 04.639 blued [3852: 507] [setSystemPreference] syncs renvoie false2016-05-03 20: 15: 04.639 blued [3852: 507] Enregistrer la clé de lien pour l'appareil: c4-2c-03-b7-87-57lien clé trouvé pour l'appareil: 90 -84-0d-e4-7b-412016-05-03 20: 15: 04.640 clé de liaison bleuie [3852: 507] trouvée pour l'appareil: 90-84-0d-e4-7b-412016-05-03 20:15: 04.640 bleui [3852: 507] Enregistrer la clé de lien pour l'appareil: 90-84-0d-e4-7b-41lien clé trouvé pour l'appareil: d8-96-95-e0-3e-f82016-05-03 20: 15: 04.640 bleui [3852: 507] clé de lien pour und pour l'appareil: d8-96-95-e0-3e-f82016-05-03 20: 15: 04.641 blued [3852: 507] Enregistrer la clé de lien pour l'appareil: d8-96-95-e0-3e-f8 La création de la connexion a échoué (0x4) pour l'appareil: D8-96-95-E0-3E-F8  

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

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

suivant:

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

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

Vous devrez peut-être aussi ajouter une fonction kill, car il semble que blued ne «parle» pas bien avec le terminal.

Alors peut-être qu'une commande shell possible serait:

  blued join c4-2c-03-b7-87-57killall terminal  
Merci!C'est exactement ce dont j'avais besoin.Beaucoup plus rapide que de le faire avec applescript et il n'est pas nécessaire de saisir un mot de passe sudo.Au lieu de `killall` je viens d'appuyer à nouveau sur ctrl + c
Je pense que j'ai parlé trop tôt.Votre commande permet de connecter et de déconnecter la dernière commande Bluetooth activée, mais le passage de l'une à l'autre échoue avec cette erreur: `La création de la connexion a échoué (0x4) pour le périphérique: 7C-C3-A1-4D-CF-99`
Victor Sergienko
2020-03-18 00:45:13 UTC
view on stackexchange narkive permalink

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

Installé à partir de MacPorts:

  $ sudo port install blueutil
 

a découvert l'ID de mon appareil:

  $ blueutil - apparié
adresse: 03-5e-1c-4a-a8-11, non connecté, pas favori, non couplé, nom: "Los Headphones", date d'accès récent: 17/03/2020 17:58:09 +0000
...
 

Connecté:

  $ blueutil --connecter 03-5e-1c-4a-a8-11
 
infusion installer blueutil


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...