Come recuperare le informazioni sulla potenza corrente su OS X?


21

Esiste un modo per recuperare le informazioni sull'utilizzo corrente di watt su OS X Snow Leopard? Sto usando metà del 2010 iMac, quindi non cerco solo app relative alla batteria.

OS X monitora anche il consumo di energia? Devo utilizzare un lettore esterno tra il cavo di alimentazione e la presa?

Sono più interessato alle soluzioni basate su riga di comando / applescript per una registrazione e statistiche più convenienti, ma sono aperto a alternative.


Entrambe le risposte (@ bmike e @ michaelmichael ) sono senza dubbio corrette. La meta-domanda qui era che c'erano già sensori / lettori sull'alimentatore, che avrebbero funzionato un po 'come il modo in cui funziona "kill-a-watt". Sento che la risposta è "no".

Lo so, probabilmente è solo un sogno bagnato, ma un wattmetro a bordo sarebbe l'ideale per il computer a gridare: "Guarda quanto sono ecologico; usando solo questi watt!"


Ah!

@ Kerri Shotts 'suggerito iStat Menus 3 do ottenere le letture wattaggio da qualche sensore , insieme a volt e amp statistiche. Quindi i misuratori ci sono, ma come potrei accedervi programmaticamente?


Bounty! Sarà dato per riga di comando soluzione lettura del sensore solido o per raccomandare eccezionalmente buona 3 ° software di terze parti (come quella con strumenti di dati statistici e storici al minimo).

Solo per informare: il menzionato iStat Menus 3 elenca i seguenti sensori relativi all'alimentazione:

  • Sensori di tensione (Volt)
    • AC / DC
    • AC / DC
    • Shunt AC / DC
    • processore
    • CPU 1.8 V S0
    • CPU CTT
    • Modulo grafico
    • Memoria
  • Sensori di corrente (Amp)
    • AC / DC
    • processore
    • CPU VTT
    • Modulo grafico
  • Sensori di potenza (Watt)
    • AC / DC
    • processore
    • Modulo grafico

Indica "sensori", ma potrebbero essere calcolati come commentato da @msanford. Come posso mettere le mani su quei dati a livello di codice?


I Mac sono molto ecologici e il collaudo di un'unità viene effettuato da Apple e dai laboratori con banchi di prova calibrati. Fortunatamente possiamo usare le impostazioni per massimizzare i mac che abbiamo mentre escono domani modelli più efficienti.
bmike

1
L'alimentatore non segnala il carico corrente (poiché sono abbastanza sicuro che segnala la sua tensione)? In tal caso, P = IV o Watt = Corrente (in ampere) • Tensione (in volt). La potenza non è qualcosa che viene misurata direttamente ma calcolata da corrente e tensione, quindi non mi aspetto che un sensore segnali watt se ci sono già rapporti su tensione e corrente. Se questo aiuta ...
msanford,

@msanford potrebbe essere utile se qualcuno ci dice come leggere le letture dell'alimentatore.
Jari Keinänen,

Risposte:


21

system_profiler SPPowerDataTypesembra fornire le informazioni più rilevanti. Sui laptop riporta tensione e amperaggio che possono darti il ​​consumo di energia (mVolt × mAmperes × 10 ^ -6 = Watt). Segnala anche Wattage, ma in realtà è un pezzo di metadati riportato dall'adattatore di alimentazione di Apple, gli adattatori di alimentazione di terze parti possono mostrare spazi vuoti qui. Poiché i desktop non dispongono di batterie ricaricabili, non è possibile calcolare il consumo di energia misurando la carica e la scarica della batteria.

Ma aspetta, c'è ancora speranza! Apple pubblica molto codice sorgente e google per Wattage o Power + mV suggerisce che alcune estensioni del kernel possono essere interrogate sul consumo di energia. Sfortunatamente, non posso trovare uno script funzionante in questo momento, ma sembra possibile.


1
Vedo che è l'interfaccia della riga di comando per il System Profiler.app. Purtroppo, sui desktop, mostra solo le impostazioni da EnergySaver.prefpanee se è installato un UPS.
Jari Keinänen,

Sul mio rMBP 2015 15 ", Amperaggio e tensione dalla sezione Informazioni sulla batteria sono più o meno costanti, almeno rispetto al valore" Totale sistema "di iStat, che si aggiorna ogni secondo. Inoltre, ho notato che Amperage è 0.
Johannes Bittner

Ama questo; breve e semplice. Niente da scaricare o installare. Se le persone sono interessate, io (o qualcun altro) potrei facilmente creare uno script / comando per estrarre i campi necessari da questo comando e sputare la potenza effettiva utilizzata.
Rinogo,

Aggiornamento: il comando specificato ha funzionato per me quando ne ho avuto bisogno per la prima volta, ma quando ne ho avuto bisogno di nuovo, non ha funzionato. Visualizza valori strani per l'amperaggio. Forse non sto cercando nel posto giusto. Chissà ... ymmv.
Rinogo,

11

Questo non soddisfa i requisiti della riga di comando, ma prova iStat Menus 3 . Ti dà letture su quasi tutti i sensori della tua macchina (che per me include AC / DC Watts, CPU Watts e GPU Watts). Sono sicuro che non è preciso al 100%, ma è stato più che accurato nell'ottimizzare la mia macchina per funzionare entro i limiti limitati della mia batteria APC.

Detto questo, la mia macchina è un iMac del 2010, quindi a seconda della tua macchina, potrebbe funzionare o meno. Inoltre, non vedo letture di potenza specifiche per l'HDD (che dovrebbe essere minimo), o qualcosa di specifico per il display (detto questo, ridurre la luminosità dell'LCD riduce la potenza piuttosto, quindi viene conteggiato in totale).

Vale la pena provare almeno. IIRC esiste una versione gratuita, ma ne è valsa la pena che sono andato avanti e l'ho pagato. Sono un po 'un maniaco del controllo, quindi ho memoria, temperatura, attività del disco, attività di rete, ecc., Nella mia barra dei menu e lo adoro. :-)


2
Per eccellenza! Ora la domanda è: in che modo i menu iStat ottengono le letture del sensore ...
Jari Keinänen,

8

Esiste un'applicazione a pagamento denominata Hardware Monitor che fornisce l'accesso a praticamente tutti i sensori disponibili su un Mac, inclusi voltaggio, corrente e potenza che credo tu stia cercando. Include un'utilità della riga di comando per leggere queste informazioni.

L'ho usato per rintracciare una scheda logica difettosa in un iMac l'anno scorso e ho trovato che valeva € 7. Include la possibilità di inviare i valori del sensore a un CSV che può essere utile per la registrazione e la visualizzazione visiva dei dati. Non sono sicuro che esegua le letture dell'alimentatore (dato che non ho l'app sulla macchina, sono su atm) ma colpisce pci, slot, cpu e molti altri.

Puoi trovare il software qui: http://www.bresink.com/osx/HardwareMonitor.html

Non sono affatto associato a questa azienda, ho appena trovato lo strumento molto utile nel mio arsenale di diagnostica.


Lyken vince il premio con questa risposta. Che software straordinario. Strumento da riga di comando, barra dei menu e app completa. A meno che l'alimentatore stesso non sia monitorato nei nuovi mac, non fornirà una potenza totale, ma questo sicuramente fa un ottimo lavoro accedendo a tutti i dati disponibili.
bmike

Ci scusiamo per l'aggiornamento in ritardo, ma, @Lyken, il tuo +100 è ben meritato: ho esitato a dare il +200 completo poiché Hardware Monitor apparentemente non darà la potenza della PSU come fa iStat Menus 3; per qualche motivo l'HWM elenca i sensori di potenza solo per CPU A, 4 se CPU High Sidee MXM Graphics Module. Ottima app e avremmo premiato la tua risposta in un attimo se qualche altra risposta di bontà avesse soddisfatto le regole automatiche di assegnazione della mezza bontà . Come ho detto, +100 meritato.
Jari Keinänen,

Sì, credo che HWM legga i sensori in base al modello, quindi dipende da ciò che è disponibile nella tua versione. IStat Menu 3 ha letto anche la potenza dell'alimentatore sul tuo modello?
Digitalchild,

1
Purtroppo Hardware Monitor ha annunciato EOL il 19 giugno 2017. bresink.com/osx/216202/eol.html
walterra

7

IANAEE (non sono un ingegnere elettrico), ma a quanto ho capito non è possibile misurare accuratamente il consumo di energia di un computer tramite software. La soluzione migliore è connettere il tuo Mac a un dispositivo come un Kill-a-Watt

Se stai cercando una soluzione gestibile da script - e un progetto interessante - ecco le istruzioni per la creazione di un sistema di monitoraggio della potenza wireless o un " Tweet-a-Watt ".


7

Tutti i dati in iStat provengono solo dalle chiavi di ioregistry. Puoi estrarne un dump dalla riga di comando usando ioreg:

ioreg -w 0 -l

Saranno molti i dati da esaminare, è possibile ritagliarli in vari modi. Non credo che i dati effettivi desiderati siano forniti su iMac, il sistema monitora la temperatura in diversi punti, ma poiché non funziona con una batteria è meno importante conoscere la corrente istantanea che viene estratta dal sistema, e quindi probabilmente non vale il costo di un sensore.


5

Non sono presenti sensori misurati nell'alimentatore.

La scheda logica misura la temperatura in diversi punti per controllare i soffiatori e la temperatura dei monitor della CPU per ridurre la frequenza di clock quando diventa più calda di quanto i soffiatori possano raffreddarla.

Suppongo che una tesi di dottorato potrebbe essere fatta sull'integrazione della velocità della ventola e di vari sensori di temperatura per calcolare un consumo di energia previsto. È possibile ottenere un calcolo e con qualche calibrazione, potrebbe anche essere abbastanza preciso.

In realtà poiché i dati non sono esposti o registrati, potrebbe essere necessario misurare esternamente. Contatori di energia a casa decenti sono tra $ 150 e $ 300 w

È possibile noleggiare o acquistare un'unità che misura la potenza attraverso la presa e quindi eseguire alcuni test per vedere quanta energia il mac impiega più di un'ora in determinate condizioni.

  • via
  • Dormire
  • Inattivo
  • Vari carichi di CPU
  • CPU massima, tutto funziona

Quindi è possibile correlarli con il monitoraggio dell'utilizzo della CPU che è banale nel tempo utilizzando toped essere in grado di sommare le cose.

Tutto dipende da cosa vuoi veramente fare con i dati oltre a sapere come funziona l'hardware e avere dei grafici fantastici.


2
+ devi aggiungere all'infinito più cose all'elenco. Probabilmente quando avessi calibrato tutte le condizioni avrei dovuto sostituire l'attuale iMac MrGreen Forse solo alcuni misuratori W & kWh di base esterni farebbero il trucco, se non ci fossero misuratori a bordo.
Jari Keinänen,

2
:-) Sono contento che tu abbia avuto l'umorismo. La mia esperienza è che i mac assorbono dal 20 al 25% in meno rispetto alle specifiche pubblicate da Apple anche sotto test rigorosi per ottenere tutto il disegno alla massima potenza.
bmike

1
@bmike Non ne sarei così sicuro, l'RMBP è noto per scaricare la batteria quando è sufficientemente caricato sulla CPU + GPU a causa dell'adattatore da 85 W che fornisce corrente insufficiente.
Steven Lu

1
@stevenlu Non sarei sorpreso se l'ultimo hardware dell'era del 2013 spinge di più rispetto alla tecnologia dell'era della metà del 2010 che viene discussa qui. Allo stesso modo, la gestione dell'alimentazione su 10.8 è più sofisticata di 10.6. Inoltre - attingono molto dalla batteria interna - non tanto dall'adattatore CA nella mia esperienza. Perfino i nuovi modelli USB-C PD seguono quel modello di consumo interno pesante / bufferizzato + consumo esterno più leggero
bmike

3

Ho realizzato un piccolo script basato sull'output di system_profiler. Calcola la potenza utilizzando la tensione e gli ampere indicati.

powerstat() {
    b=$(system_profiler SPPowerDataType)
    amp=$(echo "$b" | grep 'Amperage (mA):' | cut -d ':' -f 2 | xargs)
    volt=$(echo "$b" | grep 'Voltage (mV):' | cut -d ':' -f 2 | xargs)
    power=$(($amp * $volt / 1000))
    echo "$b" | grep --color=never -A 1 'Battery Information:'
    echo "$b" | grep --color=never -A 1 'Amperage (mA)'
    echo "      Total Power (mW): $power"
    echo ""
    echo "$b" | grep --color=never -A 99 'AC Charger Information:'
}

Emette qualcosa del tipo:

$ powerstat
    Battery Information:

      Amperage (mA): -552
      Voltage (mV): 12794
      Total Power (mW): -7062

    AC Charger Information:

      Connected: No
      Charging: No

Durante la ricarica:

$ powerstat
    Battery Information:

      Amperage (mA): 1545
      Voltage (mV): 12850
      Total Power (mW): 19853

    AC Charger Information:

      Connected: Yes
      Wattage (W): 60
      Charging: No

2
// Build with: gcc psudata.cc -o psudata -framework IOKit
#include <stdio.h>
#include <string.h>
#include <IOKit/IOKitLib.h>

typedef struct {
  uint32_t key;
  char ignored[24];
  uint32_t size;
  char ignored2[10];
  char cmd;
  char ignored3[5];
  float val;
  char ignored4[28];
} smc_t;

int main(void) {
  mach_port_t mp;
  CFMutableDictionaryRef d;
  io_iterator_t it;
  io_object_t svc;
  io_connect_t ioc;
  smc_t req, resp;
  size_t sz = sizeof(resp);
  uint32_t vk  = ('V' << 24) + ('D' << 16) + ('0' << 8) + 'R';
  uint32_t ik  = ('I' << 24) + ('D' << 16) + ('0' << 8) + 'R';
  float v, i;

  IOMasterPort(MACH_PORT_NULL, &mp);
  d = IOServiceMatching("AppleSMC");
  IOServiceGetMatchingServices(mp, d, &it);
  svc = IOIteratorNext(it);
  IOObjectRelease(it);
  IOServiceOpen(svc, mach_task_self(), 0, &ioc);
  IOObjectRelease(svc);
  memset(&req, 0, sizeof(smc_t));
  memset(&resp, 0, sizeof(smc_t));
  req.cmd = 5;
  req.size = 4;
  req.key = vk;
  IOConnectCallStructMethod(ioc, 2, &req, sizeof(req), &resp, &sz);
  v = resp.val;
  req.key = ik;
  IOConnectCallStructMethod(ioc, 2, &req, sizeof(req), &resp, &sz);
  i = resp.val;
  IOServiceClose(ioc);

  printf("%fV %fA %fW\n", v, i, v*i);
  return 0;
}

In realtà ho risposto alla domanda sbagliata, scusa ... Sono venuto qui a seguito di una ricerca della tensione e della corrente di carica da un caricatore USB-C ... e poiché non l'ho trovato, ho capito quanto sopra e pubblicato qui. Ma in realtà non è quello che volevi; probabilmente potresti combinare i dati di ingresso DC (questo) con i dati della batteria (altre risposte) per inferire i dati di utilizzo.
Luyer,

2
system_profiler SPPowerDataType | grep Wattage

Fa il trucco per me su MacBook Pro (15 pollici, 2016)!


2
Questo indica la potenza dell'adattatore CA, non il consumo di corrente. Per il contesto:system_profiler SPPowerDataType | grep -C4 Wattage
Edward Anderson,

2

Ecco un ioregcomando che stampa la maggior parte delle informazioni sul potere senza 'grep'. Ritorna molto più velocemente di system_profiler sulla mia macchina, quindi probabilmente più adatto per essere copiato o eseguito in background.

ioreg -w 0 -f -r -c AppleSmartBattery

1

Sono su un MacBook 10.6.8 e ioreg -l | grep LegacyBatteryInfoho lavorato per me.

Ho già provato

ioreg -l | grep LegacyBatteryInfo | \
    cut -d '{' -f 2 | tr -d \} | tr ',' '=' | \
    awk -F'=' '{print ($2*$10/10^22)}' 

e ha restituito 0.

Esiste una soluzione dalla libreria Dev di Apple?

Perché non guardare fuori sul misuratore di potenza? Registra le tue letture e quindi correlale a un utilizzo costante e comune della CPU%. Quindi puoi ottenere un'approssimazione.


0

Penso che per 10.7 questo dovrebbe funzionare dal terminale:

ioreg -l | grep LegacyBatteryInfo | cut -d '{' -f 2 | tr -d \} | tr ',' '=' | awk -F'=' '{print ($2*$10/10^22)}'


2
ioreg -l | grep LegacyBatteryInfonon restituisce nulla per me su iMac.
Jari Keinänen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.