5 votes

Comment puis-je déterminer le niveau de la batterie de ma Magic Mouse à partir de la ligne de commande?

Je sais comment y accéder via la barre de menus, mais comment puis-je y accéder via la ligne de commande?

6voto

Oskar Points 1242

Utilisez ioreg et recherchez la batterie en utilisant grep

Comme ioreg est très verbeux, voici une commande qui affiche les noms des appareils Bluetooth et le pourcentage de batterie pour chacun.

ioreg -l |egrep "BatteryPercent|Bluetooth Product Name"

3voto

BobK77 Points 29

Se basant sur la réponse utile de bmike [30 juil. '17] ... avec un moyen de réduire davantage les répétitions des noms d'appareils : ajouter un symbole carat (^) pour signifier le début de la ligne, et (b) une barre verticale échappée précédée et suivie par un nombre spécifique d'espaces :

 ioreg -r -l -n AppleHSBluetoothDevice | egrep '"BatteryPercent" = |^  \|   "Bluetooth Product Name" = '

Ces filtres ont donné ce résultat :

     |   "Bluetooth Product Name" = "Magic Keyboard with Numeric Keypad"
     |   |       "BatteryPercent" = 59
     |   "Bluetooth Product Name" = "Magic Mouse 2"
     |   |       "BatteryPercent" = 98

Un filtrage supplémentaire avec sed et l'écho de la variable a donné le résultat que je recherchais

    BATTLVL=$(ioreg -r -l -n AppleHSBluetoothDevice | egrep '"BatteryPercent" = |^  \|   "Bluetooth Product Name" = '| sed 's/  |   "Bluetooth Product Name" = "Magic Mouse 2"/  \|  Mouse:/' | sed 's/  |   "Bluetooth Product Name" = "Magic Keyboard with Numeric Keypad"/  \|  Keyboard:/'| sed 's/  |   |       "BatteryPercent" = / /'); echo $BATTLVL 

Le résultat dans la console:

     | Mouse: 96 | Keyboard: 71

Mais, lorsque j'ai voulu mettre tout cela dans un fichier de script bash, j'ai découvert que bien que BATTLVL contienne effectivement uniquement les mots et les phrases désirés à signaler, il contient également des caractères de nouvelle ligne - mais, ils n'apparaissent pas lorsque la commande ECHO est ajoutée à la commande précédente avec un point-virgule.

Donc, pour pouvoir utiliser davantage les résultats du rapport, nous supprimons les nouvelles lignes en utilisant des techniques suggérées dans ce post:

    BATTRPT=${BATTLVL//[$'\t\r\n']};  # Supprime toutes les occurrences de tabulation, de saut de ligne et de retour.

Enfin, pour ajouter une notification OS X du niveau de batterie de la souris et du clavier à partir du script bash, il a été nécessaire de d'abord construire le script sous forme de chaîne dans une variable, puis le rediriger vers osascript pour que les guillemets doubles soient inclus dans la chaîne.

    theScript=$"display notification \"$BATTRPT\" "
    echo $theScript | osascript

1voto

Ian Atkinson Points 11

À partir de 2024 (certaines réponses plus anciennes semblent ne plus être à jour), cette commande en une ligne vous permettra de connaître le niveau de la batterie de tous vos accessoires Bluetooth:

ioreg -c "AppleDeviceManagementHIDEventService" | egrep -i '"Product"|BatteryPercent' | python -c 'import re, sys; print(re.sub(r".*Product.....(.*).\n.* (\d*)", r"\2%\t\1", sys.stdin.read()).strip())'

Exemple:

└─$ ioreg -c "AppleDeviceManagementHIDEventService" | egrep -i '"Product"|BatteryPercent' | python -c 'import re, sys; print(re.sub(r".*Product.....(.*).\n.* (\d*)", r"\2%\t\1", sys.stdin.read()).strip())'
100%  Magic Keyboard with Touch ID and Numeric Keypad
61%   Magic Mouse

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