Як отримати поточну інформацію про потужність в OS X?


21

Чи є спосіб отримати поточну інформацію про витрату ваттів на OS X Snow Leopard? Я використовую середину 2010 року iMac, тому я не шукаю лише програм, що стосуються акумулятора.

Чи контролює OS X навіть споживання енергії? Чи потрібно використовувати зовнішній зчитувач між шнуром живлення та розеткою?

Мене найбільше цікавлять рішення, засновані на командному рядку / яблуці, для більш зручного ведення журналів та статистики, але я відкритий для альтернатив.


Обидва відповіді (@ bmike & @ michaelmichael ), безперечно, правильні. Мета-питання тут в тому , що є якісь - або датчики / читачі вже на БП, які будуть працювати на зразок як спосіб «вбити-а-ватних» робіт. Я відчуваю, що відповідь на це - «ні».

Я знаю, це, мабуть, просто мокрий сон, але ватметр на борту був би ідеальним для того, щоб комп'ютер кричав: "Подивіться, наскільки я екологічний; використовую саме ці ватти!"


Ах!

@ Керрі Shotts 'запропонував ІСТАТ меню 3 робити отримати свідчення споживаної потужності від деякого датчика , а також вольт і ампер статті. Отже, лічильники є, але як я міг програмно отримати доступ до них?


Баунті! Буде надано для твердого рішення зчитування датчика командного рядка або для рекомендування виключно хорошого програмного забезпечення для третьої партії (наприклад, із мінімальними інструментами статистичних та історичних даних).

Потрібно лише повідомити: вищезгадані меню iStat 3 перелічують наступні датчики, пов'язані з потужністю:

  • Датчики напруги (вольт)
    • ЕЙСІ ДІСІ
    • ЕЙСІ ДІСІ
    • Змінювач змінного та постійного струму
    • ЦП
    • CPU 1.8V S0
    • ЦТТ процесора
    • Графічний модуль
    • Пам'ять
  • Датчики струму (Ампер)
    • ЕЙСІ ДІСІ
    • ЦП
    • CPU VTT
    • Графічний модуль
  • Датчики потужності (Вт)
    • ЕЙСІ ДІСІ
    • ЦП
    • Графічний модуль

Він робить "датчики", але їх можна обчислити так, як прокоментував @msanford. Як я можу взяти на руки ці дані програмно?


Маки дуже екологічні, і тестування пристрою проводиться Apple, а також лабораторії з каліброваними тестовими установками. На щастя, ми можемо використовувати налаштування, щоб максимізувати маки, які ми маємо, поки завтра вони придумають більш ефективні моделі.
bmike

1
Чи не повідомляє блок живлення про своє поточне навантаження (наскільки я впевнений, що він повідомляє про свою напругу)? Якщо так, P = IV, або Вт = струм (в амперах) • Напруга (у вольтах). Напруга - це не те, що безпосередньо вимірюється, але обчислюється із струму та напруги, тому я не очікував би, що датчик повідомляє ват, якщо вже є повідомлення про напругу та струм. Якщо це допоможе…
msanford

@msanford це може допомогти - якщо хтось скаже нам, як читати показання з блоку живлення.
Jari Keinänen

Відповіді:


21

system_profiler SPPowerDataTypeздається, надає найбільш релевантну інформацію. На ноутбуках він повідомляє про напругу і струмі струму, які можуть давати вам споживану енергію (мВольт × мАмпер × 10 ^ -6 = Вт). Він також повідомляє Wattage, але це фактично фрагмент метаданих, про який повідомляє адаптер живлення від Apple, сторонні адаптери живлення можуть показувати пробіли тут. Оскільки настільні комп’ютери не мають акумуляторних батарей, немає можливості розрахувати споживання електроенергії шляхом вимірювання зарядки та розряду акумулятора.

Але зачекайте, ще є надія! Apple публікує багато вихідного коду, а googling для Wattage або Power + mV натякає, що певні розширення ядра можна запитувати про споживання енергії. На жаль, зараз я не можу придумати робочий сценарій, але це здається можливим.


1
Я бачу, що це інтерфейс командного рядка для System Profiler.app. На жаль, на настільних комп’ютерах він просто показує налаштування EnergySaver.prefpaneта встановлення UPS.
Jari Keinänen

На моєму rMBP 2015 15 "ампераж та напруга в розділі Інформація про акумулятор є більш-менш постійними, принаймні порівняно зі значенням" Загальна система "від iStat, яке оновлюється щосекунди. Також я помітив, що Amperage є 0.
Йоханнес Біттнер,

Люблю це; короткий і простий. Нічого не завантажувати чи встановлювати. Якщо люди зацікавлені, я (або хтось інший) міг би легко виконати скрипт / команду, щоб витягнути необхідні поля з цієї команди і виплюнути фактичну потужність, що використовується.
rinogo

Оновлення: Вказана команда працювала для мене, коли мені вона потрібна була вперше, але коли мені знову потрібна, вона не працювала. Це відображає дивні значення амперажу. Можливо, я просто не шукаю в потрібному місці. Хто знає ... йммв.
rinogo

11

Це не відповідає вимогам командного рядка, але спробуйте скористатися меню iStat 3 . Він дає вам ознайомлення практично з кожним датчиком на вашій машині (що для мене включає в себе AC / DC Watts, CPU Watts та GPU Watts). Я впевнений, що він не на 100% точний, але він був більш ніж точним при налаштуванні моєї машини для роботи в обмежених обмеженнях моєї батареї APC.

Все, що сказано, моя машина є iMac 2010 року, тому залежно від вашої машини вона може працювати, а може і не працювати. Крім того, я не бачу показань живлення спеціально для жорсткого диска (який повинен бути мінімальним) або нічого специфічного для дисплея (це означає, що зменшення яскравості РК зменшує витрату енергії досить небагато, тому вона підраховується загалом).

Варто принаймні спробувати. У IIRC є безкоштовна версія, але вона була настільки варта того, що я пішов вперед і заплатив за неї. Я трохи чувак від управління, тому в мене є пам'ять, температура, активність диска, мережева активність тощо, і я люблю це. :-)


2
Par excellence! Тепер питання: як меню iStat отримують показання датчиків…
Jari Keinänen

8

Існує платна програма під назвою Hardware Monitor, яка забезпечує доступ майже до кожного датчика, доступного на комп'ютері, включаючи напругу, струм і напругу, які, я вважаю, ви шукаєте. Вона включає в себе утиліту командного рядка для читання цієї інформації.

Я використовував це для того, щоб відшукати несправний логічний щит в iMac минулого року і виявив, що він коштує 7 євро. Він включає можливість виведення значень датчика в CSV, що може бути корисним для ведення журналів та візуального відображення даних. Я не впевнений, чи має це читання PSU (оскільки у мене немає додатка на машині, я перебуваю на атм), але він потрапляє на pci, слоти, процесори та багато іншого.

Програмне забезпечення ви можете знайти тут: http://www.bresink.com/osx/HardwareMonitor.html

Я взагалі не пов'язаний з цією компанією, просто знайшов інструмент, який дуже корисний у моєму арсеналі діагностики.


Lyken виграє приз із цією відповіддю. Яке дивовижне програмне забезпечення. Інструмент командного рядка, панель меню та повна програма. Якщо електропостачання не контролюватиметься в нових комп'ютерах, воно не дасть загальної оцінки потужності, але це впевнено справляється із доступом до всіх наявних даних.
bmike

Вибачте за пізнє оновлення, але, @Lyken, ваш +100 заслужено заслуговує на це: я вагався, щоб дати повний +200, оскільки апаратний монітор, здавалося б, не дасть живлення блоку живлення, як це робить iStat Menus 3; чомусь HWM перераховує датчики живлення лише протягом CPU A4 CPU High Sideс і MXM Graphics Module. Тим не менше чудовий додаток, і я б нагородив вашою відповіддю на вітрі, якби якась інша відповідь на винагороду відповідала б правилам автоматичного присудження напівфабрикатів . Як я вже сказав, +100 заслужено.
Ярі Кейненен

Так, я вважаю, що HWM зчитує датчики на основі моделі, так що це залежить від того, що є у вашій версії. Чи читав iStat Menu 3 потужність блоку живлення на вашій моделі?
Digitalchild

1
На жаль, Hardware Monitor оголосив EOL 19 червня 2017 року. Bresink.com/osx/216202/eol.html
walterra

7

IANAEE (я не інженер-електрик), але, як я розумію, неможливо точно виміряти енергоспоживання комп'ютера за допомогою програмного забезпечення. Найкраще рішення - підключити свій Mac до такого пристрою, як Kill-a-Watt

Якщо ви шукаєте можливий сценарій - і цікавий проект - ось інструкції по створенню системи моніторингу бездротової потужності, або " Tweet-a-Watt ".


7

Усі дані в iStat - це лише ключі в іореєстрі. Ви можете витягнути дамп із командного рядка, використовуючи ioreg:

ioreg -w 0 -l

Це буде дуже багато даних для перегляду, ви можете зібрати їх різними способами. Я не вірю, що фактичні дані, які ви хочете, надаються на iMac, система моніторить температуру в декількох місцях, але, оскільки вона не працює від акумулятора, менш важливо знати миттєвий струм, який витягує система, і таким чином напевно, не варто витрат на сенсор.


5

У джерелі живлення відсутні вимірювані датчики.

Логічна плата вимірює температуру в декількох місцях для контролю вентиляторів, а процесор відстежує темп, щоб зменшити тактову частоту, коли стає тепліше, ніж вентилятори можуть охолодити її.

Я припускаю, що для інтеграції швидкості вентилятора та різних температурних датчиків може бути зроблено тезу PHD щодо обчислення очікуваного споживання електроенергії. Можна отримати розрахунок, і за допомогою певної калібрування це може бути навіть досить точно.

Насправді, оскільки ці дані не піддаються впливу та не записуються, можливо, доведеться проводити вимірювання зовні. Пристойні лічильники домашньої енергії складають від 150 до 300 доларів США

Ви можете взяти в оренду або придбати прилад, який вимірює потужність через розетку, а потім провести деякий тест, щоб побачити, яку потужність займає Mac протягом години в певних умовах.

  • Вимкнено
  • Сон
  • Холостий
  • Різні навантаження на процесор
  • Максимальний процесор, все відбувається

Тоді ви можете співвіднести це з моніторингом використання процесора, який є тривіальним у часі, використовуючи topта зможете додавати речі.

Все залежить від того, що ви насправді хочете зробити з іншими даними, ніж дізнатися, як працює апаратне забезпечення та мати якісь цікаві графіки.


2
+ вам потрібно додати в список нескінченного оголошення більше речей. Можливо, до моменту калібрування всіх умов мені потрібно було б замінити поточний iMac :-D Можливо, лише деякі зовнішні базові лічильники W & кВт-год зробили б цю справу, якщо немає лічильників на борту.
Ярі Кейненен

2
:-) Радий, що ти отримав гумор. Мій досвід полягає в тому, що маки притягують на 20-25% менше, ніж технічні характеристики, опубліковані Apple, навіть під час суворих тестів, щоб все витягнути з максимальною потужністю.
bmike

1
@bmike Я би не був у цьому впевнений, як відомо, rMBP розряджає акумулятор, коли достатньо завантажений на процесор + графічний процесор через 85Вт адаптер, що забезпечує недостатній струм.
Стівен Лу

1
@stevenlu Я не був би здивований, якщо остання техніка обладнання епохи 2013 рветься сильніше, ніж техніка епохи середини 2010 року, про яку йдеться тут. Аналогічно, управління потужністю на 10,8 є складнішим, ніж 10,6. Крім того - вони сильно затягують внутрішній акумулятор - просто не так багато з адаптера змінного струму на мій досвід. Навіть нові моделі 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 ... і оскільки я не знайшов його, зрозумів вищезазначене та опублікував це тут. Але це насправді не те, чого ти хотів; ви, ймовірно, можете комбінувати вхідні дані постійного струму (це) з даними про акумулятор (інші відповіді) для отримання даних про використання
Луєр

2
system_profiler SPPowerDataType | grep Wattage

Чи підходить мені фокус на MacBook Pro (15-дюймовий, 2016)!


2
Це повідомляє про потужність адаптера змінного струму, а не про споживання електроенергії. Для контексту: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.

Чи є рішення з бібліотеки Dev Apple від Apple?

Чому б не подивитися зовні на лічильник електроенергії? Запишіть свої показання, а потім співвіднесіться до постійного та загального використання% 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 LegacyBatteryInfoне повертає нічого для мене на iMac.
Jari Keinänen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.