14 votos

¿Es posible detectar la entrada de corriente en un MacBook?

Por lo que yo sé, los MacBooks siguen cargándose si la fuente de alimentación conectada proporciona menos vatios que para los que fue diseñado el portátil. ¿Hay alguna forma de ver la potencia de entrada actual, preferiblemente un simple comando de terminal, o eso sería imposible/siempre igual por alguna razón?

Si es relevante, tengo un MacBook Pro (13 pulgadas, 2017, Dos puertos Thunderbolt 3), pero me gustaría una manera que funciona en otros modelos también.

19voto

rybosome Puntos 1829

Existe una forma sencilla de determinar la corriente de carga instantánea* de la batería, suponiendo que tengas instaladas herramientas de desarrollo:

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

El número se especifica en miliamperios.

Sin embargo, esto no va a ser lo mismo que la corriente que entra a través de su adaptador de CA (esto es más evidente cuando la batería está completamente cargada, en cuyo caso la corriente será 0 ), así que puede que no te ayude con lo que estás haciendo. No conozco ningún lugar donde se publique esa información, aunque la PMU debe medirla sin duda.

Del mismo modo, puede ver la tensión instantánea* de la batería, en milivoltios, con

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

que, multiplicado por la corriente anterior, nos dará la potencia que se suministra a la batería (en microvatios, así que divídelo por un factor de 1.000.000 para obtener vatios). Pero, de nuevo, no es lo mismo que la potencia suministrada por el adaptador de CA.

Puedes ver más parámetros relacionados con la potencia con

ioreg -rw0 -c AppleSmartBattery

Actualización:

Experimenté en dos sistemas - un MBP basado en T2 con Catalina y un MBP no basado en T2 con Big Sur - y descubrí que el primero tiene las teclas AdapterPower y SystemPower contenida en el BatteryData propiedad de diccionario 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}

Se trata, pues, de una fuente prometedora para determinar tanto la potencia suministrada por el adaptador de CA como la consumida por el sistema. Esto, junto con la corriente de carga de la batería y el voltaje que mostré anteriormente, podría darle una imagen bastante completa de la situación energética.

Al principio no pude averiguar las unidades, ya que los números son demasiado altos para ser W , mW e incluso µW y demasiado bajo para ser nW . Entonces recordé que algunas claves se almacenan como valores de coma flotante, y cuando convertí 1101610469 en un IEEE-754 float Tengo el muy razonable 21.1552219391 lo que significa que se publica en unidades de vatios.

Por lo tanto, al menos en determinados equipos o programas, puede ver el consumo de energía del adaptador de CA con

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-

y el consumo de energía del sistema con

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-

Esto utiliza lldb para realizar la conversión IEEE-754, por lo que, de nuevo, necesitarás tener instaladas las herramientas de desarrollo. También es muy sencillo escribir una pequeña herramienta CLI que utiliza el marco IOKit para volcar estos sin necesidad de Xcode instalado en el sistema de destino, si usted necesita tener eso.

* - Tenga en cuenta que estos valores sólo parecen actualizarse una vez por minuto más o menos, por lo que no son verdaderamente instantáneo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X