OS X'te güncel watt bilgisi nasıl alınır?


21

OS X Snow Leopard'daki güncel watt kullanım bilgisini almanın bir yolu var mı? 2010'un ortalarında iMac kullanıyorum, bu yüzden yalnızca pille ilgili uygulamalar aramıyorum.

OS X güç kullanımını izliyor mu? Güç kablosu ve priz arasında harici bir okuyucu kullanmam gerekir mi?

Ben en çok daha uygun günlük ve istatistikleri için komut satırı / applescript tabanlı çözümler ile ilgilenen, ancak alternatifler açığım.


Her ikisi de (@ bmike 'ın @ @ michaelmichael ' s) cevapları şüphesiz doğrudur. Buradaki meta-soru , zaten PSU'da bulunan ve “watt öldür” e benzer şekilde çalışacak herhangi bir sensör / okuyucunun bulunmasıydı. Bunun cevabını "hayır" olarak hissediyorum.

Biliyorum, muhtemelen sadece ıslak bir rüya, ama gemideki bir watt metre bilgisayarın bağırması için ideal olacaktır: "Bakın ne kadar çevre dostu olduğumu, sadece bu wattları kullanıyorum!"


Ah!

@ Kerri Shotts 'önerilen iStat Menüler 3 yapmak gelen elektrik gücü değerlerini almak bir sensör volt amper istatistikleri ile birlikte. Sayaçlar orada, ama onlara programlı olarak nasıl erişebilirim?


Bounty! Sağlam komut satırı sensörü okuma çözümü veya son derece iyi 3. parti yazılımları önermek için verilecek (en azından istatistiksel ve tarihsel veri araçlarına sahip olanlar gibi).

Sadece bilgi vermek için: yukarıda belirtilen iStat Menüler 3, aşağıdaki güçle ilgili sensörleri listeler:

  • Voltaj Sensörleri (Volt)
    • AC / DC
    • AC / DC
    • AC / DC Şönt
    • İşlemci
    • CPU 1.8V S0
    • CPU CTT
    • Grafik Modülü
    • Bellek
  • Akım Sensörleri (Amper)
    • AC / DC
    • İşlemci
    • CPU VTT
    • Grafik Modülü
  • Güç Sensörleri (Watt)
    • AC / DC
    • İşlemci
    • Grafik Modülü

"Sensörleri" belirtir, ancak @msanford'un yorumladığı gibi hesaplanabilirler. Ellerimi programlı olarak bu verilerden nasıl edinebilirim?


Mac'ler çevre dostudur ve bir birimin testi Apple tarafından ve ayrıca kalibre edilmiş test teçhizatı bulunan laboratuarlar tarafından yapılır. Neyse ki ayarları, yarın daha verimli modellerle ortaya çıktıkça sahip olduğumuz mac'leri en üst düzeye çıkarmak için kullanabiliriz.
bmike

1
PSU mevcut yükünü rapor etmiyor mu (voltajını bildirdiğinden oldukça eminim)? Öyleyse, P = IV veya Watt = Akım (amper olarak) • Voltaj (volt olarak). Watt, doğrudan ölçülen ancak akım ve voltajdan hesaplanan bir şey değildir, bu nedenle voltaj ve akım hakkında zaten raporlar varsa bir sensörün watt bildirmesini beklemem. Bu yardımcı olur…
msanford

@msanford yardımcı olabilir - eğer biri bize PSU'dan okumaları nasıl okuyacağımızı söylerse.
Jari Keinänen

Yanıtlar:


20

system_profiler SPPowerDataTypeEn alakalı bilgiyi sağlıyor gibi görünüyor. Dizüstü bilgisayarlarda size güç tüketimi sağlayabilecek voltaj ve amper raporları yapar (mVolts × mAmperes × 10 ^ -6 = Watt). Ayrıca Wattage’i de rapor ediyor, ancak bu aslında Apple’ın güç adaptörü tarafından bildirilen bir meta veri parçası, üçüncü parti güç adaptörleri burada boşluk gösterebiliyor. Masaüstlerinde şarj edilebilir pil bulunmadığından, pilin şarjını ve deşarjını ölçerek güç tüketimini hesaplamanın yolu yoktur.

Ama bekle, hala umut var! Apple, çok sayıda kaynak kodu yayınlar ve Wattage veya Power + mV için googling , belirli çekirdek uzantılarının güç tüketimi konusunda sorgulanabileceğini ima eder. Ne yazık ki, şu anda çalışan bir senaryo ile gelemiyorum, ancak mümkün görünüyor.


1
Bunun için komut satırı arayüzü olduğunu görüyorum System Profiler.app. Ne yazık ki, masaüstlerinde, EnergySaver.prefpaneUPS'in kurulu olup olmadığını ve sadece ayarlarını gösterir .
Jari Keinänen

. Benim rMBP 2015 15" Üzerine, bölüm Pil Bilgilerden Amper ve Voltaj az ya da çok sabittir en azından karşılaştırıldığında 'her saniye günceller Istat, Sistem toplam' değeri Ayrıca, Amper olmak ettim 0.
Johannes Bittner

Bunu sev; kısa ve basit. İndirecek veya yükleyecek bir şey yok. Eğer insanlar ilgileniyorlarsa, ben (veya bir başkası), gerekli alanları bu komuttan çıkarmak ve kullanılan fiili gücü tükürmek için kolayca bir betiği / komutu çalıştırabilirim.
rinogo,

Güncelleme: İlk defa ihtiyacım olduğunda belirtilen komut benim için işe yaradı, fakat tekrar ihtiyacım olduğunda işe yaramadı. Amper için tuhaf değerler gösteriyor. Belki de doğru yere bakmıyorum. Kim bilir ... ymmv.
Rinogo,

11

Bu komut satırı gereksinimlerini karşılamıyor, ancak iStat Menüler 3'ü denemelisiniz . Makinenizdeki hemen hemen her sensör hakkında okumalar verir (benim için AC / DC Watt, CPU Watt ve GPU Watt içerir). % 100 kesin olmadığından eminim, ancak makinemi APC pilimin sınırlı kısıtlamaları dahilinde çalışacak şekilde ayarlamak için yeterince doğru bir işlemdi.

Bütün bunlar benim makinem bir 2010 iMac olduğundan, makinenize bağlı olarak çalışmayabilir veya çalışmayabilir. Ek olarak, özellikle HDD için (minimum düzeyde olması gereken) güç okumaları veya ekrana özgü herhangi bir şey görmüyorum (bu, LCD parlaklığının azaltılması, gücü biraz azaltıyor, bu nedenle toplam sayılır).

En azından bir denemeye değer. IIRC ücretsiz bir sürümü var, ancak devam ettim ve parasını ödedi. Biraz kontrol hastasıyım, bu yüzden menubarımda hafıza, sıcaklık, disk etkinliği, ağ etkinliği vb. Var ve onu seviyorum. :-)


2
Aynı düzeyde mükemmel! Şimdi soru şu: iStat Menüler sensör okumalarını nasıl alıyorlar…
Jari Keinänen

8

Bir monitörde aradığınıza inandığınız voltaj, akım ve vat miktarı da dahil olmak üzere hemen hemen her sensöre erişim sağlayan Hardware Monitor adında ücretli bir uygulama var. Bu bilgiyi okumak için bir komut satırı yardımcı programı içerir.

Bunu geçen yıl bir iMac'de hatalı bir mantık panosunu bulmak için kullandım ve 7 € değerinde buldum. Sensör değerlerini, verilerin kaydedilmesi ve görsel olarak gösterilmesi için yardımcı olabilecek bir CSV'ye verebilme özelliğini içerir. PSU okumaları yapıp yapmadığımdan emin değilim (makinede uygulamasına sahip olduğum için atm kullanıyorum) ancak pci, slot, cpu ve daha pek çok kişiye isabet ediyor.

Yazılımı burada bulabilirsiniz: http://www.bresink.com/osx/HardwareMonitor.html

Bu şirketle hiç bir ilişkim yok, tanılama cephaneliğimde çok kullanışlı bir araç buldum.


Lyken bu cevabı ödülü kazandı. Ne muhteşem bir yazılım. Komut satırı aracı, menü çubuğu ve tam uygulama. Güç kaynağının kendisi yeni mac'larda izlenmiyorsa, toplam güç derecelendirmesi vermez, ancak bu kesin olarak kullanılabilir tüm verilere erişerek harika bir iş çıkarır.
bmike

Geç güncellemeler için üzgünüm, fakat @ Lyken, +100'ünüz hak ediyor: Tam olarak +200'ü Donanım Monitörü olarak göründüğü gibi PSU'yu iStat Menüler 3'ün verdiği gibi vermeyecek şekilde tereddüt ettim; Bazı nedenlerden dolayı, HWM sadece CPU A4 CPU High Sidesn ve için güç sensörlerini listeler MXM Graphics Module. Büyük yine uygulama ve ben güzel olabilir ki başka kelle cevap tanıştım olsaydı bir esinti cevabınızı layık otomatik yarım kelle ödül kurallarını . Dediğim gibi, +100 haklı.
Jari Keinänen

Evet, HWM'nin sensörleri model bazında okuduğuna inanıyorum, bu nedenle sürümünüzde neyin mevcut olduğuna bağlı. İStat Menu 3 modelinizdeki PSU watt değerini de okudu mu?
Digitalchild

Ne yazık ki Hardware Monitor 19 Haziran 2017'de EOL'yi
walterra

7

IANAEE (Elektrik Mühendisi değilim), fakat anladığım kadarıyla bir bilgisayarın güç tüketimini yazılım üzerinden doğru olarak ölçmek mümkün değil. En iyi çözüm, Mac'inizi Kill-a-Watt gibi bir cihaza bağlamaktır.

Script edilebilir bir çözüm - ve ilginç bir proje - arıyorsanız, burada kablosuz bir watt izleme sistemi veya bir " Tweet-a-Watt " oluşturma talimatı verilmiştir .


7

İStat'taki tüm veriler sadece ioregistry'deki anahtarlardandır. Bir dökümü komut satırından ioreg kullanarak çekebilirsiniz:

ioreg -w 0 -l

Bu, içine bakmak için çok fazla veri olacak, çeşitli şekillerde onu ayırabilirsin. İstediğiniz verilerin iMac'te sağlandığına inanmıyorum, sistem sıcaklığı birçok yerde izliyor, ancak bir bataryayla çalışmadığı için sistemin çektiği anlık akımı bilmek daha az önemli ve bu nedenle muhtemelen bir sensörün maliyetine değmez.


5

Güç kaynağında ölçülü sensör yoktur.

Mantık panosu, üfleyicileri kontrol etmek için çeşitli yerlerde sıcaklığı ölçer ve CPU, üfleyiciler tarafından soğuyabileceğinden daha sıcak olduğunda saat hızını düşürmek için sıcaklığı izler.

Beklenen bir güç tüketimini hesaplamak için fan hızını ve çeşitli sıcaklık sensörlerini entegre etmek için bazı doktora tezi yapılabilir. Hesaplama yapmak mümkündür ve bir miktar kalibrasyon ile oldukça doğru olabilir.

Gerçekte, bu veriler açığa çıkmadığından veya kaydedilmediğinden, harici olarak ölçmeniz gerekebilir. İyi ev enerji sayaçları 150 ila 300 $ arasındadır.

Prizi kullanarak gücü ölçen bir ünite kiralayabilir veya satın alabilir ve ardından mac'in belirli koşullarda ne kadar güç harcadığını görmek için bir test yapabilirsiniz.

  • kapalı
  • Uyku
  • boş
  • Çeşitli CPU yükleri
  • Maksimum işlemci, her şey gidiyor

Daha sonra bunları zaman içinde kullanımı önemsiz topve ekleyebilecek CPU kullanım izlemesi ile ilişkilendirebilirsiniz .

Her şey, donanımın nasıl çalıştığını ve bazı harika grafiklere sahip olmayı öğrenmek dışındaki verilerle gerçekten ne yapmak istediğinize bağlıdır.


2
+ Listeye sonsuz miktarda daha fazla şey eklemeniz gerekiyor . Muhtemelen tüm koşulları kalibre ettiğimde şu anki iMac'i değiştirmem gerekirdi :-D Belki de bazı harici temel W & kWh sayaçları, eğer sayaçta hiç sayaç yoksa hile yapardı.
Jari Keinänen

2
:-) Mizahı gördüğüne sevindim. Tecrübelerim, mac'ların, her şeyin maksimum güçte çalışmasını sağlamak için zorlu testler altında bile Apple tarafından yayınlanan spesifikasyonlardan% 20 ila 25 daha az çiziyor.
bmike

1
@bmike Bundan emin olamam, rMBP'nin yetersiz akım sağlayan 85W adaptör nedeniyle CPU + GPU'ya yeterince yüklendiğinde pili boşalttığı biliniyor .
Steven Lu,

1
@stevenlu En son 2013 dönemi donanımı, burada tartışılan 2010 ortasındaki teknolojiden daha fazla zorlarsa şaşırmam. Benzer şekilde, 10.8'deki güç yönetimi, 10.6'dan daha karmaşıktır. Ayrıca - dahili bataryayı sert çekiyorlar - deneyimlerime göre AC adaptöründen pek değil. Yeni USB-C PD modelleri bile bu ağır iç tüketim / tamponlu + daha hafif dış tüketim modelini takip ediyor
bmike

3

System_profiler çıktısına dayalı küçük bir script hazırladım. Verilen voltajı ve amperi kullanarak vat miktarı hesaplar.

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

Gibi bir şey çıktılar:

$ powerstat
    Battery Information:

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

    AC Charger Information:

      Connected: No
      Charging: No

Şarj ederken:

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

Aslında yanlış soruyu cevapladım, üzgünüm ... Buraya bir USB-C şarj cihazından gelen şarj voltajını ve akımını araştırmanın bir sonucu olarak geldim ... burada. Ama aslında istediğin bu değildi; Kullanım verilerini anlamak için muhtemelen DC giriş verilerini (bu) pil verisiyle (diğer cevaplar) birleştirebilirsiniz.
Luyer

2
system_profiler SPPowerDataType | grep Wattage

Hile MacBook Pro'da (15-inç, 2016)!


2
Bu, AC güç adaptörünün gücünü mevcut elektrik tüketimini değil rapor eder. Bağlam için:system_profiler SPPowerDataType | grep -C4 Wattage
Edward Anderson,

1

MacBook 10.6.8'deyim ve ioreg -l | grep LegacyBatteryInfobenim için çalıştı.

Daha önce denedim

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

ve 0 döndürdü.

Apple'ın Dev kütüphanesinden bir çözüm var mı?

Neden elektrik sayacına dışarı bakmıyorsun? Okumalarınızı kaydedin ve ardından sabit ve ortak bir% CPU kullanımıyla ilişkilendirin. O zaman bir yaklaşım alabilirsin.


1

İşte ioreg'grep' olmadan güç bilgilerinin çoğunu basan bir komut. Makinemdeki system_profiler aygıtından çok daha hızlı bir şekilde dönüyor, bu nedenle komut dosyası yazmak veya arka planda çalıştırmak için muhtemelen daha uygun.

ioreg -w 0 -f -r -c AppleSmartBattery

0

10.7 için bunun terminalden çalışması gerektiğini düşünüyorum:

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


2
ioreg -l | grep LegacyBatteryInfoiMac'te benim için hiçbir şey döndürmez.
Jari Keinänen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.