8 votes

Est-il possible de détecter l'alimentation actuelle d'un MacBook ?

A ma connaissance, les MacBooks se rechargeront toujours si le bloc d'alimentation connecté fournit une puissance inférieure à celle pour laquelle l'ordinateur portable a été conçu. Existe-t-il un moyen d'afficher l'alimentation actuelle, de préférence une simple commande de terminal, ou est-ce que ce serait impossible/toujours la même chose pour une raison quelconque ?

Si cela est pertinent, j'ai un MacBook Pro (13 pouces, 2017, Deux ports Thunderbolt 3), mais j'aimerais avoir un moyen qui fonctionne également sur d'autres modèles.

12voto

rybosome Points 1829

Il existe un moyen simple de déterminer le courant de charge instantané* de la batterie, en supposant que vous ayez installé des outils de développement :

ioreg -rw0 -c AppleSmartBattery | grep -o -e '"ChargingCurrent"=[0-9]*'

Le nombre est spécifié en milliampères.

Cependant, ce n'est pas la même chose que le courant qui passe par votre adaptateur secteur (cela est plus évident lorsque la batterie est complètement chargée, auquel cas le courant sera 0 ), donc il se peut que cela ne vous aide pas dans ce que vous faites. Je ne connais pas d'endroit où ces informations sont publiées, mais le PMU doit certainement les mesurer.

De même, vous pouvez visualiser la tension instantanée* de la batterie, en millivolts, avec

ioreg -rw0 -c AppleSmartBattery | grep -o -e '"Voltage" = [0-9]*'

qui, multiplié par le courant ci-dessus, vous donnera la puissance fournie à la batterie (en microwatts, à diviser par un facteur de 1 000 000 pour obtenir des watts). Mais, encore une fois, ce n'est pas la même chose que la puissance délivrée par l'adaptateur secteur.

Vous pouvez visualiser d'autres paramètres relatifs à la puissance avec

ioreg -rw0 -c AppleSmartBattery

Mise à jour :

J'ai fait des essais sur deux systèmes - un MBP basé sur T2 avec Catalina et un MBP non basé sur T2 avec Big Sur - et j'ai constaté que le premier possède les touches AdapterPower y SystemPower contenu dans le BatteryData propriété du dictionnaire de AppleSmartBattery :

"BatteryData" = {"StateOfCharge"=98,"PMUConfigured"=0,"DesignCapacity"=8790,"QmaxCell1"=9017,"AdapterPower"=1101610469,"SystemPower"=1104635067,"ResScale"=244,"QmaxCell2"=9048,"QmaxCell0"=9082,"CycleCount"=69,"Voltage"=12503}

Il s'agit donc d'une source prometteuse pour déterminer à la fois la puissance fournie par l'adaptateur secteur et la puissance consommée par le système. Ces données, ainsi que le courant et la tension de charge de la batterie que j'ai montrés précédemment, pourraient vous donner une image assez complète de la situation énergétique.

Je n'ai pas pu comprendre les unités au début, car les chiffres sont trop élevés pour être W , mW et même µW et trop faible pour être nW . Puis je me suis souvenu que certaines clés sont stockées sous forme de valeurs à virgule flottante, et quand j'ai converti 1101610469 dans un IEEE-754 float j'ai obtenu le très raisonnable 21.1552219391 ce qui signifie qu'il est publié en unités de watts.

Vous pouvez donc - sur au moins certains matériels ou logiciels - visualiser la consommation électrique de l'adaptateur secteur avec

ioreg -rw0 -c AppleSmartBattery | grep BatteryData | grep -o '"AdapterPower"=[0-9]*' | cut -c 16- | xargs -I %  lldb --batch -o "print/f %" | grep -o '$0 = [0-9.]*' | cut -c 6-

et la consommation électrique du système avec

ioreg -rw0 -c AppleSmartBattery | grep BatteryData | grep -o '"SystemPower"=[0-9]*' | cut -c 16- | xargs -I %  lldb --batch -o "print/f %" | grep -o '$0 = [0-9.]*' | cut -c 6-

Cela utilise lldb pour faire la conversion IEEE-754, donc, encore une fois, vous aurez besoin d'outils de développement installés. Il est également très simple d'écrire un petit outil CLI qui utilise le cadre IOKit pour effectuer ces opérations sans avoir besoin d'installer Xcode sur le système cible, si vous en avez besoin.

* - Notez que ces valeurs ne semblent se mettre à jour qu'une fois par minute environ, elles ne sont donc pas vraiment instantané.

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