Bagaimana cara mengambil informasi watt saat ini di OS X?


21

Apakah ada cara untuk mengambil informasi penggunaan watt saat ini di OS X Snow Leopard? Saya menggunakan pertengahan 2010 iMac, jadi saya tidak mencari hanya aplikasi yang terkait dengan baterai.

Apakah OS X bahkan memonitor penggunaan daya? Apakah saya perlu menggunakan pembaca eksternal antara kabel listrik dan stopkontak?

Saya paling tertarik dengan solusi berbasis baris perintah / applescript untuk pencatatan & statistik yang lebih nyaman, tetapi saya terbuka untuk alternatif.


Kedua jawaban (@ bmike & @ michaelmichael ) tidak diragukan lagi benar. The meta-pertanyaan di sini adalah bahwa apakah ada sensor / pembaca sudah di PSU, yang akan bekerja jenis seperti cara "membunuh-a-watt" karya. Saya merasakan jawaban untuk itu adalah "tidak".

Saya tahu, itu mungkin hanya mimpi basah, tetapi satu meter watt di papan akan ideal bagi komputer untuk berteriak: "Lihat betapa ramah lingkungan saya; hanya menggunakan watt ini!"


Ah!

@ Kerri Shotts menyarankan iStat Menus 3 agar mendapatkan pembacaan watt dari beberapa sensor , bersama dengan statistik volt dan amp. Jadi meter ada di sana, tetapi bagaimana saya bisa mengaksesnya secara terprogram?


Karunia! Akan diberikan untuk baris perintah solusi sensor membaca padat atau untuk merekomendasikan 3 sangat baik rd perangkat lunak pihak (seperti dengan alat data statistik dan sejarah minimal).

Sekedar informasi: iStat Menus 3 yang disebutkan di atas mencantumkan sensor terkait daya berikut:

  • Sensor Tegangan (Volt)
    • AC / DC
    • AC / DC
    • AC / DC Shunt
    • CPU
    • CPU 1.8V S0
    • CPU CTT
    • Modul Grafik
    • Ingatan
  • Sensor Saat Ini (Amp)
    • AC / DC
    • CPU
    • CPU VTT
    • Modul Grafik
  • Sensor Daya (Watt)
    • AC / DC
    • CPU
    • Modul Grafik

Itu menyatakan "sensor", tetapi mereka mungkin dihitung sebagai @msanford berkomentar. Bagaimana saya bisa mendapatkan data itu secara terprogram?


Mac sangat ramah lingkungan dan pengujian unit dilakukan oleh Apple dan juga lab dengan rig uji yang dikalibrasi. Untungnya kita dapat menggunakan pengaturan untuk memaksimalkan mac yang kita miliki saat mereka datang dengan model yang lebih efisien besok.
bmike

1
Apakah PSU tidak melaporkan beban saat ini (karena saya cukup yakin melaporkan tegangannya)? Jika demikian, P = IV, atau Watts = Arus (dalam ampere) • Tegangan (dalam volt). Watt bukanlah sesuatu yang diukur secara langsung tetapi dihitung dari arus dan tegangan, jadi saya tidak akan mengharapkan sensor untuk melaporkan watt jika sudah ada laporan tentang tegangan dan arus. Jika itu membantu ...
msanford

@msanford mungkin membantu — jika seseorang memberi tahu kami cara membaca bacaan dari PSU.
Jari Keinänen

Jawaban:


21

system_profiler SPPowerDataTypetampaknya memberikan informasi yang paling relevan. Pada laptop ini melaporkan voltase dan arus listrik yang dapat memberikan Anda konsumsi daya (mVolts × mAmperes × 10 ^ -6 = Watts). Ini juga melaporkan Wattage, tapi itu sebenarnya sepotong metadata yang dilaporkan oleh adaptor daya Apple, adaptor daya pihak ketiga dapat menunjukkan kekosongan di sini. Karena desktop tidak memiliki baterai yang dapat diisi ulang, tidak ada cara untuk menghitung konsumsi daya dengan mengukur pengisian dan pemakaian baterai.

Tapi tunggu, masih ada harapan! Apple menerbitkan banyak kode sumber, dan googling untuk Wattage atau Power + mV mengisyaratkan bahwa ekstensi kernel tertentu dapat ditanyakan tentang konsumsi daya. Sayangnya, saya tidak dapat membuat skrip yang berfungsi saat ini, tetapi tampaknya memungkinkan.


1
Saya melihat itu adalah antarmuka baris perintah untuk System Profiler.app. Sayangnya, pada desktop, itu hanya menunjukkan pengaturan dari EnergySaver.prefpanedan jika UPS dipasang.
Jari Keinänen

Pada rMBP 2015 15 "saya, Ampere dan Tegangan dari bagian Informasi Baterai lebih atau kurang konstan, paling tidak dibandingkan dengan nilai" Total sistem "dari iStat, yang diperbarui setiap detik. Juga, saya perhatikan Amperage sedang 0.
Johannes Bittner

Suka ini; pendek dan sederhana. Tidak ada yang diunduh atau dipasang. Jika orang tertarik, saya (atau orang lain) dapat dengan mudah menyiapkan skrip / perintah untuk menarik bidang yang diperlukan dari perintah ini dan memuntahkan watt aktual yang digunakan.
rinogo

Pembaruan: Perintah yang ditentukan bekerja untuk saya ketika saya membutuhkannya pertama kali, tetapi ketika saya membutuhkannya lagi, itu tidak berhasil. Ini menampilkan nilai aneh untuk arus listrik. Mungkin aku hanya tidak mencari di tempat yang tepat. Siapa tahu ... ymmv.
rinogo

11

Ini tidak memenuhi persyaratan baris perintah, tetapi cobalah iStat Menus 3 . Ini memberi Anda bacaan di hampir setiap sensor di mesin Anda (yang bagi saya termasuk AC / DC Watts, CPU Watts, dan GPU Watts). Saya yakin itu tidak 100% akurat, tetapi itu lebih dari cukup akurat dalam menyetel mesin saya untuk bekerja dalam batasan terbatas baterai APC saya.

Semua yang mengatakan, mesin saya adalah iMac 2010, jadi tergantung pada mesin Anda, mungkin atau mungkin tidak berfungsi. Selain itu, saya tidak melihat pembacaan daya khusus untuk HDD (yang seharusnya minimal), atau apa pun yang spesifik untuk tampilan (yang mengatakan, mengurangi kecerahan LCD mengurangi watt cukup sedikit, sehingga dihitung secara total).

Patut dicoba setidaknya. IIRC ada versi gratis, tetapi sangat berharga sehingga saya melanjutkan dan membayarnya. Saya sedikit aneh kontrol, jadi saya memiliki memori, suhu, aktivitas disk, aktivitas jaringan, dll., Dalam menubar saya dan menyukainya. :-)


2
Keunggulan par! Sekarang pertanyaannya adalah: bagaimana cara iStat Menu mendapatkan bacaan sensor ...
Jari Keinänen

8

Ada aplikasi berbayar yang disebut Hardware Monitor yang menyediakan akses ke hampir setiap sensor yang tersedia pada mac termasuk tegangan, arus dan watt yang saya yakin Anda cari. Itu memang termasuk utilitas baris perintah untuk membaca informasi ini.

Saya menggunakan ini untuk melacak papan logika yang salah di iMac tahun lalu dan menemukan nilai € 7. Ini termasuk kemampuan untuk mengeluarkan nilai-nilai sensor ke CSV yang dapat membantu untuk logging dan tampilan visual data. Saya tidak yakin apakah itu pembacaan PSU (karena saya tidak memiliki aplikasi pada mesin saya di atm) tetapi hits pci, slot, cpu dan banyak lainnya.

Anda dapat menemukan perangkat lunaknya di sini: http://www.bresink.com/osx/HardwareMonitor.html

Saya sama sekali tidak terkait dengan perusahaan ini, hanya menemukan alat yang sangat berguna dalam gudang diagnostik saya.


Lyken memenangkan hadiah dengan jawaban ini. Sungguh perangkat lunak yang luar biasa. Alat baris perintah, bilah menu, dan aplikasi lengkap. Kecuali jika catu daya itu sendiri dimonitor di mac baru, itu tidak akan memberikan peringkat daya total, tetapi ini tentu saja sangat bagus dalam mengakses semua data yang tersedia.
bmike

Maaf atas pembaruan yang terlambat, tetapi, @Lyken, +100 Anda memang layak: Saya ragu-ragu memberikan +200 penuh karena Hardware Monitor tampaknya tidak akan memberikan watt PSU seperti yang dilakukan iStat Menus 3; untuk beberapa alasan HWM mencantumkan sensor daya hanya untuk CPU A, 4 CPU High Sidedetik dan MXM Graphics Module. Namun, aplikasi yang bagus dan saya akan memberikan jawaban Anda dengan mudah jika beberapa jawaban karunia lainnya telah memenuhi aturan penghargaan setengah hadiah otomatis . Seperti yang saya katakan, +100 memang layak.
Jari Keinänen

Ya, saya percaya bahwa HWM membaca sensor pada setiap model sehingga tergantung pada apa yang tersedia pada versi Anda. Apakah iStat Menu 3 juga membaca watt PSU pada model Anda?
Digitalchild

1
Sayangnya Hardware Monitor mengumumkan EOL pada 19 Juni 2017. bresink.com/osx/216202/eol.html
walterra

7

IANAEE (saya bukan Insinyur Listrik), tetapi seperti yang saya pahami, tidak mungkin mengukur konsumsi daya komputer secara akurat melalui perangkat lunak. Solusi terbaik adalah menyambungkan Mac Anda ke perangkat seperti Kill-a-Watt

Jika Anda mencari solusi skrip - dan proyek yang menarik - berikut adalah petunjuk untuk membuat sistem pemantauan watt nirkabel, atau " Tweet-a-Watt ".


7

Semua data di iStat hanya dari kunci di ioregistry. Anda dapat menarik dump dari baris perintah menggunakan ioreg:

ioreg -w 0 -l

Itu akan menjadi banyak data untuk dilihat, Anda dapat mengukirnya dengan berbagai cara. Saya tidak percaya data aktual yang Anda inginkan disediakan di iMac, sistem memonitor suhu di sejumlah tempat, tetapi karena tidak berjalan pada baterai, kurang penting untuk mengetahui arus sesaat yang ditarik oleh sistem, dan dengan demikian mungkin tidak sebanding dengan biaya sensor.


5

Tidak ada sensor meteran yang ada di catu daya.

Papan logika mengukur suhu di beberapa tempat untuk mengontrol blower dan CPU memonitor suhu untuk mengurangi laju jam ketika menjadi lebih hangat daripada blower yang dapat mendinginkannya.

Saya kira beberapa tesis PHD mungkin dilakukan pada mengintegrasikan kecepatan kipas dan berbagai sensor suhu untuk menghitung konsumsi daya yang diharapkan. Dimungkinkan untuk mendapatkan perhitungan dan dengan kalibrasi tertentu, bahkan mungkin cukup akurat.

Pada kenyataannya karena data itu tidak diekspos atau direkam, Anda mungkin harus mengukur secara eksternal. Penghitung energi rumah yang layak adalah antara $ 150 dan $ 300 w

Anda dapat menyewa atau membeli unit yang mengukur daya melalui outlet dan kemudian menjalankan beberapa tes untuk melihat berapa banyak daya yang dibutuhkan mac lebih dari satu jam dalam kondisi tertentu.

  • Mati
  • Tidur
  • Diam
  • Berbagai beban CPU
  • CPU maksimum, semuanya berjalan

Kemudian Anda bisa menghubungkan ini dengan pemantauan penggunaan CPU yang sepele dari waktu ke waktu menggunakan topdan dapat menambahkan hal-hal.

Semuanya tergantung pada apa yang benar-benar ingin Anda lakukan dengan data selain mempelajari cara kerja perangkat keras dan memiliki beberapa grafik keren.


2
+ Anda perlu menambahkan lebih banyak iklan ke daftar. Mungkin pada saat saya sudah memiliki semua kondisi yang dikalibrasi saya akan perlu mengganti iMac saat ini :-D Mungkin hanya beberapa W & kWh dasar dasar eksternal akan melakukan trik, jika tidak ada meter onboard.
Jari Keinänen

2
:-) Senang Anda punya humor. Pengalaman saya adalah bahwa mac menggambar 20 hingga 25% lebih rendah dari spesifikasi yang diterbitkan oleh Apple bahkan di bawah pengujian ketat untuk mendapatkan semuanya menggambar dengan daya maksimal.
bmike

1
@ sepeda Saya tidak akan begitu yakin tentang itu, rMBP diketahui menguras baterai ketika cukup dimuat pada CPU + GPU karena adaptor 85W memberikan arus yang tidak mencukupi.
Steven Lu

1
@stevenlu Saya tidak akan terkejut jika perangkat keras era 2013 terbaru mendorong lebih keras daripada teknologi era 2010 yang sedang dibahas di sini. Demikian pula, manajemen daya pada 10.8 lebih canggih dari 10.6 sebelumnya. Juga - mereka menggunakan baterai internal - tidak begitu banyak dari adaptor AC dalam pengalaman saya. Bahkan model USB-C PD baru mengikuti pola konsumsi internal yang berat / buffered + konsumsi eksternal yang lebih ringan
bmike

3

Saya telah membuat skrip kecil berdasarkan output system_profiler. Ini menghitung watt menggunakan tegangan dan ampere yang diberikan.

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:'
}

Menghasilkan sesuatu seperti:

$ powerstat
    Battery Information:

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

    AC Charger Information:

      Connected: No
      Charging: No

Saat mengisi daya:

$ 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;
}

Sebenarnya menjawab pertanyaan yang salah, maaf ... Saya datang ke sini sebagai hasil dari pencarian untuk tegangan dan arus pengisian dari pengisi USB-C ... dan karena saya tidak menemukannya, mencari tahu di atas, dan memposting itu disini. Tetapi sebenarnya itu bukan yang Anda inginkan; Anda mungkin bisa menggabungkan data input DC (ini) dengan data baterai (jawaban lain) untuk menyimpulkan data penggunaan.
Luyer

2
system_profiler SPPowerDataType | grep Wattage

Apakah triknya untuk saya di MacBook Pro (15 inci, 2016)!


2
Ini melaporkan watt adaptor AC, bukan konsumsi daya saat ini. Untuk konteks:system_profiler SPPowerDataType | grep -C4 Wattage
Edward Anderson

2

Berikut adalah ioregperintah yang mencetak sebagian besar informasi daya tanpa 'grep'. Ini mengembalikan jauh lebih cepat daripada system_profiler di komputer saya, jadi mungkin lebih cocok untuk dituliskan atau dijalankan di latar belakang.

ioreg -w 0 -f -r -c AppleSmartBattery

1

Saya menggunakan MacBook 10.6.8 dan ioreg -l | grep LegacyBatteryInfobekerja untuk saya.

Saya sebelumnya mencoba

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

dan itu mengembalikan 0.

Apakah ada solusi dari perpustakaan Dev Apple?

Mengapa tidak melihat keluar di meteran listrik? Rekam bacaan Anda dan kemudian berkorelasi dengan penggunaan CPU% konstan dan umum. Maka Anda bisa mendapatkan perkiraan.


0

Saya pikir untuk 10.7 ini harus bekerja dari terminal:

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


2
ioreg -l | grep LegacyBatteryInfotidak mengembalikan apa pun untuk saya di iMac.
Jari Keinänen
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.