OS Xで現在のワット数情報を取得する方法は?


21

OS X Snow Leopardで現在のワット使用情報を取得する方法はありますか?私は2010年半ばのiMacを使用しているので、バッテリー関連のアプリだけを探しているわけではありません。

OS Xは電力使用量も監視しますか?電源コードとコンセントの間に外部リーダーを使用する必要がありますか?

私は、ほとんどのコマンドラインに興味/ AppleScriptのより便利なログ&統計のためのソリューションをベースにしていますが、私は代替のために開いています。


両方(@ bmikeと@ michaelmichael)の答えは間違いなく正しいです。ここでのメタ疑問は、PSUに既にセンサー/リーダーがあり、それが "ワットを消す"ように機能するということです。その答えは「ノー」だと思います。

たぶんただの濡れた夢かもしれませんが、搭載されているワットメーターは、コンピューターが「私がどれだけ環境に優しいか見てください。これらのワットだけを使用してください!」と叫ぶのに理想的です。


あ!

@ ケリーShotts「提案ISTATコードメニュー3を やるからワット数の測定値を取得し、いくつかのセンサーボルトとアンペア統計情報と一緒に、。メーターはありますが、プログラムでどのようにアクセスできますか?


バウンティ!堅牢なコマンドラインセンサー読み取りソリューション、または非常に優れたサードパーティソフトウェア(少なくとも統計および履歴データツールを備えたソフトウェアなど)を推奨するために提供されます。

お知らせするだけです。前述のiStatメニュー3には、以下の電力関連センサーがリストされています。

  • 電圧センサー(ボルト)
    • AC / DC
    • AC / DC
    • AC / DCシャント
    • CPU
    • CPU 1.8V S0
    • CPU CTT
    • グラフィックモジュール
    • 記憶
  • 電流センサー(アンペア)
    • AC / DC
    • CPU
    • CPU VTT
    • グラフィックモジュール
  • パワーセンサー(ワット)
    • AC / DC
    • CPU
    • グラフィックモジュール

「センサー」と表示されますが、@ msanfordがコメントしたとおりに計算される場合があります。プログラムでそのデータを取得するにはどうすればよいですか?


Macは非常に環境にやさしく、ユニットのテストはAppleとキャリブレーションされたテストリグを備えたラボで行われます。幸いなことに、これらの設定を使用して、明日より効率的なモデルを作成しながら、所有しているMacを最大化できます。
bmike

1
PSUは現在の負荷を報告していませんか(電圧を報告していると確信しています)。その場合、P = IV、またはワット=電流(アンペア)•電圧(ボルト)。ワット数は直接測定されるものではなく、電流と電圧から計算されるため、電圧と電流に関するレポートが既に存在する場合、センサーがワットをレポートすることは期待できません。それが役立つ場合...
msanford

@msanfordは、誰かが私たちにPSUからの読み取り値の読み方を教えてくれると役立つかもしれません。
ヤリケイネン

回答:


21

system_profiler SPPowerDataType最も関連性の高い情報を提供しているようです。ラップトップでは、電圧とアンペア数が報告され、消費電力が得られます(mVolts×mAmperes×10 ^ -6 = Watts)。Wattageも報告しますが、実際にはAppleの電源アダプターによって報告されたメタデータの一部であり、サードパーティの電源アダプターはここに空白を表示できます。デスクトップには充電式バッテリーがないため、バッテリーの充電と放電を測定して消費電力を計算する方法はありません。

しかし、待ってください、まだ希望があります!Appleは多くのソースコードを公開しており、WattageまたはPower + mVのグーグル検索では、特定のカーネル拡張機能に消費電力について問い合わせることができます。残念ながら、今のところ作業スクリプトを思い付くことができませんが、可能です。


1
のコマンドラインインターフェイスであることがわかりますSystem Profiler.app。悲しいことに、デスクトップでEnergySaver.prefpaneは、UPSの設定とUPSがインストールされているかどうかが表示されるだけです。
ヤリケイネン

。私のrMBP 2015 15"で毎秒更新ISTATコードから、システム合計『の値も、私は気づいたセクションから、アンペア数と電圧バッテリ情報は、多かれ少なかれ一定の、と比較して少なくともある』アンペア数ビーイング0
ヨハネスBittner

これが大好き; 短くてシンプル。ダウンロードまたはインストールするものはありません。人々が興味を持っている場合、私(または他の誰か)はスクリプト/コマンドを簡単に作成して、このコマンドから必要なフィールドを引き出し、実際に使用されているワット数を吐き出すことができます。
rinogo

更新:指定したコマンドは、最初に必要になったときに機能しましたが、再度必要になったときに機能しませんでした。アンペア数に奇妙な値が表示されています。たぶん、私はちょうど適切な場所を見ていません。誰が知っている... ymmv。
rinogo

11

これはコマンドラインの要件を満たしていませんが、iStat Menus 3を試してください。マシンのほぼすべてのセンサーの読み取り値を提供します(私にはAC / DCワット、CPUワット、GPUワットが含まれます)。100%正確ではないと確信していますが、APCバッテリーの制限された制約内で動作するようにマシンを調整するのに十分なほど正確でした。

とは言っても、私のマシンは2010 iMacなので、マシンによっては動作する場合と動作しない場合があります。さらに、HDDの電力測定値(最小値である必要があります)またはディスプレイ固有のものは表示されません(つまり、LCDの輝度を下げるとワット数がかなり減少するため、合計でカウントされます)。

少なくとも試してみる価値があります。IIRCには無料版がありますが、それだけの価値があったので先に進んで支払いました。私はちょっとしたコントロールマニアなので、メニューバーにメモリ、温度、ディスクアクティビティ、ネットワークアクティビティなどがあり、大好きです。:-)


2
パーエクセレンス!ここでの質問は次のとおりです。iStatメニューはどのようにしてセンサーの測定値を取得しますか
JariKeinänen11年

8

ハードウェアモニターと呼ばれる有料のアプリケーションがあり、電圧、電流、ワット数など、Macで使用可能なほとんどすべてのセンサーにアクセスできます。この情報を読み取るためのコマンドラインユーティリティが含まれています。

私はこれを使用して、昨年iMacで故障したロジックボードを追跡し、7ユーロの価値があると判断しました。センサーの値をCSVに出力する機能が含まれており、データのログ記録や視覚的な表示に役立ちます。それがPSUの読み取りを行うかどうかはわかりません(私はATMにあるマシンにアプリがないので)が、それはpci、スロット、cpuおよび他の多くにヒットします。

ここでソフトウェアを見つけることができます:http : //www.bresink.com/osx/HardwareMonitor.html

私はこの会社とはまったく関係がありませんが、このツールが私の診断兵器に非常に役立つことがわかりました。


ライケンはこの答えで賞を受賞しました。なんて素晴らしいソフトウェアだ。コマンドラインツール、メニューバー、完全なアプリ。電源自体が新しいMacで監視されない限り、総電力定格は得られませんが、これは利用可能なすべてのデータにアクセスするのに優れた仕事をします。
bmike

アップデートが遅くなって申し訳ありませんが、@ Lyken、あなたの+100は当然のことです。ハードウェアモニターはiStat Menus 3のようにPSUワット数を与えないように見えるので、+ 200を与えるのをためらいました。何らかの理由で、HWMはCPU A4 CPU High Side秒間および4 秒間だけ電力センサーをリストしますMXM Graphics Module。それにも関わらず、すばらしいアプリであり、他の賞金の答えが自動半賞金の賞のルールを満たしていれば、私あなたの答えを簡単に与えていただろう。私が言ったように、+ 100に値する。
ヤリケイネン

はい、HWMはモデルごとにセンサーを読み取るので、バージョンで利用可能なものに依存すると考えています。iStatメニュー3は、モデルのPSUワット数も読みましたか?
デジタルチャイルド

1
残念ながら、2017年6月19日にハードウェアモニターはEOLを発表しました。bresink.com
osx/216202/

7

IANAEE(私は電気技師ではありません)ですが、理解しているように、ソフトウェアを介してコンピューターの消費電力を正確に測定することはできません。最善の解決策は、MacをKill-a-Wattなどのデバイスに接続することです

スクリプト化可能なソリューションと興味深いプロジェクトを探している場合は、ワイヤレスワット数監視システム、または「Tweet-a-Watt」の作成手順をご覧ください。


7

iStatのすべてのデータは、ioregistryのキーからのものです。ioregを使用してコマンドラインからダンプを取得できます。

ioreg -w 0 -l

これは多くのデータを調べる必要があるため、さまざまな方法で切り分けることができます。必要な実際のデータがiMacで提供されるとは思いませんが、システムは多くの場所で温度を監視しますが、バッテリーで動作しないため、システムが引き込む瞬間電流を知ることはそれほど重要ではありません。おそらくセンサーのコストの価値はありません。


5

電源にはメーター付きセンサーはありません。

ロジックボードはいくつかの場所で温度を測定して送風機を制御し、CPUは温度を監視して送風機が冷却できる温度よりも高くなるとクロックレートを下げます。

ファン速度とさまざまな温度センサーを統合して、予想される消費電力を計算することで、PHDの論文がいくつか作成されると思います。計算を取得することが可能であり、ある程度のキャリブレーションを行うと、かなり正確になる可能性さえあります。

実際には、そのデータは公開または記録されていないため、外部で測定する必要があります。まともな家庭用エネルギーカウンターは150ドルから300ドルの間です。

コンセントから電力を測定するユニットをレンタルまたは購入してから、特定の条件でテストを実行して、Macが1時間で消費する電力を確認できます。

  • オフ
  • 睡眠
  • アイドル状態
  • さまざまなCPU負荷
  • 最大CPU、すべてが進行中

次に、これらをCPU使用率の監視と相関させて、時間の経過とともに些細なことをtop行い、それを追加することができます。

それはすべて、ハードウェアがどのように機能し、いくつかのクールなグラフを持っているかを学ぶこと以外に、データで本当にやりたいことによって異なります。


2
+ リストにさらに無限のものを追加する必要があります。おそらく、すべての条件が調整された時点で、現在のiMacを交換する必要があります:-Dメーターが搭載されていない場合は、外部の基本的なWおよびkWhメーターだけでうまくいくかもしれません。
ヤリケイネン

2
:-)ユーモアをもらえてよかった。私の経験では、Macの描画は、厳しいテストを行ってもAppleが公開している仕様よりも20〜25%少ないため、すべてを最大限に活用できます
bmike

1
@bmikeそれについては確信が持てませんが、85MB アダプターが不十分な電流を供給するため、CPU + GPUに十分な負荷がかかるとrMBPがバッテリーを消耗することが知られています。
スティーブンルー

1
@stevenlu最新の2013年時代のハードウェアが、ここで議論されている2010年半ばの時代の技術よりも難しくなっても驚かないでしょう。同様に、10.8の電源管理は10.6よりも洗練されています。また、彼らは内部バッテリーを強く引きます-私の経験ではACアダプターからそれほど多くはありません。新しいUSB-C PDモデルは、重内部消費/緩衝+ライター外部消費のパターンをたどる
bmike

3

system_profilerの出力に基づいて小さなスクリプトを作成しました。指定された電圧とアンペアを使用してワット数を計算します。

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

次のようなものを出力します。

$ powerstat
    Battery Information:

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

    AC Charger Information:

      Connected: No
      Charging: No

充電するとき:

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

実際に間違った質問に答えました、申し訳ありません...私はUSB-C充電器からの充電電圧と電流の検索の結果としてここに来ました...そして私はそれを見つけられなかったので、上記を理解し、投稿しましたここに。しかし、実際にはあなたが望んだものではありません。おそらく、DC入力データ(これ)とバッテリーデータ(その他の回答)を組み合わせて、使用データを推測できます。
ルイアー

2
system_profiler SPPowerDataType | grep Wattage

MacBook Pro(15-inch、2016)で私のためのトリックはありますか!


2
これは、現在の消費電力ではなく、ACアダプターのワット数を報告します。コンテキスト:system_profiler SPPowerDataType | grep -C4 Wattage
エドワードアンダーソン

2

ioreg「grep」なしでほとんどの電力情報を出力するコマンドは次のとおりです。私のマシンではsystem_profilerよりもはるかに高速に戻るため、スクリプトを作成したり、バックグラウンドで実行したりするのに適しています。

ioreg -w 0 -f -r -c AppleSmartBattery

1

私はMacBook 10.6.8を使ってioreg -l | grep LegacyBatteryInfoいて、私のために働いていました。

以前に試した

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

0を返しました。

AppleのDevライブラリから解決策はありますか?

パワーメーターの外を見てみませんか?測定値を記録してから、一定の一般的な%CPU使用率と相関させます。その後、近似値を取得できます。


0

10.7では、これは端末から動作するはずだと思います。

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


2
ioreg -l | grep LegacyBatteryInfoiMacでは何も返されません。
ヤリケイネン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.