The short answer
Your Mac logs every wake. Run pmset -g log | grep -E "(DarkWake|Wake) from" and read the reason after “due to” on each line: lid, a USB-C charger, Wi-Fi network upkeep or a maintenance timer. pmset -g log | grep "Wake Requests" names the processes that asked to wake it. Then fix the setting or app behind most wakes.
On this page
Two kinds of wake
| In the log | What happened | Do you notice it? |
|---|---|---|
| Wake | A full wake: the lid opened, a key was pressed, or you pressed the power button. | Yes, the screen comes on. |
| DarkWake | A dark wake: the Mac woke with the screen off to do background work, then went back to sleep. | No. You only see it in the log, or as lost battery. |
Wake
- What happened
- A full wake: the lid opened, a key was pressed, or you pressed the power button.
- Do you notice it?
- Yes, the screen comes on.
DarkWake
- What happened
- A dark wake: the Mac woke with the screen off to do background work, then went back to sleep.
- Do you notice it?
- No. You only see it in the log, or as lost battery.
Most dark wakes are short and routine: network upkeep, a scheduled task, a charger being connected. The ones worth fixing are the ones that happen every few minutes all night, or that turn into an hour awake.
Step 1: list the wakes and their reasons
pmset -g log | grep -E "(DarkWake|Wake) from|Entering Sleep" | tail -4006:59:35 DarkWake DarkWake from Deep Idle [CDNPB] : due to NUB.SPMISw3IRQ nub-spmi0.0x02 rtc/Maintenance Using AC (Charge:100%) 53 secs
07:07:25 DarkWake DarkWake from Deep Idle [CDNPB] : due to smc.sysState.Wake(0x70070000) USB-C_plug ATC2.USBWakeup/ Using AC (Charge:100%) 45 secs
07:23:17 DarkWake DarkWake from Deep Idle [CDNPB] : due to smc.sysState.Wake(0x70070000) wifibt SMC.OutboxNotEmpty/ Using AC (Charge:100%) 45 secs
07:31:13 Wake Wake from Deep Idle [CDNVA] : due to smc.sysState.Wake(0x70070000) lid SMC.OutboxNotEmpty/UserActivity Assertion Using BATT (Charge:100%)Each line has the time, the kind of wake, the reason after “due to”, whether the Mac was on battery (BATT) or power (AC) with the charge, and, on dark wakes, how long it stayed awake. To see which reason comes up most, count them:
pmset -g log | grep "DarkWake from" | grep -oE "due to [^/]+" | sort | uniq -c | sort -rn | head 35 due to smc.sysState.Wake(0x70070000) wifibt SMC.OutboxNotEmpty
8 due to NUB.SPMISw3IRQ nub-spmi0.0x02 rtc
5 due to smc.sysState.Wake(0x70070000) acdetach SMC.OutboxNotEmpty
2 due to smc.sysState.Wake(0x70070000) USB-C_plug SMC.OutboxNotEmptyStep 2: read the reason
Apple doesn't document the reason names one by one, and they vary between Mac models. Ignore the hardware prefix (such as smc.sysState.Wake(…)) and look for the word that follows. These are the ones you'll see most:
| Word in the reason | What it points to | What to do |
|---|---|---|
lid | The lid was opened. | Nothing. That was you. |
UserActivity, HID Activity | A key, the trackpad or a mouse. | Nothing, unless a mouse or keyboard wakes the Mac in a bag. |
USB-C_plug, acattach, acdetach | Something was connected to or removed from a USB-C port, usually the charger. | Nothing. Plugging in the charger wakes the Mac briefly. |
wifibt | Wi-Fi or Bluetooth: network upkeep, or another device reaching this Mac. | If it's most of your wakes, try Wake for network access off for one night (Step 4). |
rtc, Maintenance | A timer: scheduled maintenance or a process that asked to wake the Mac later. | Check the wake requests (Step 3). |
lid- What it points to
- The lid was opened.
- What to do
- Nothing. That was you.
UserActivity,HID Activity- What it points to
- A key, the trackpad or a mouse.
- What to do
- Nothing, unless a mouse or keyboard wakes the Mac in a bag.
USB-C_plug,acattach,acdetach- What it points to
- Something was connected to or removed from a USB-C port, usually the charger.
- What to do
- Nothing. Plugging in the charger wakes the Mac briefly.
wifibt- What it points to
- Wi-Fi or Bluetooth: network upkeep, or another device reaching this Mac.
- What to do
- If it's most of your wakes, try Wake for network access off for one night (Step 4).
rtc,Maintenance- What it points to
- A timer: scheduled maintenance or a process that asked to wake the Mac later.
- What to do
- Check the wake requests (Step 3).
Step 3: see which process asked to wake the Mac
Timer wakes are requested in advance. The power log records the requests, and pmset -g sched shows the ones still waiting:
pmset -g log | grep "Wake Requests" | tail -5Wake Requests [process=mDNSResponder request=Maintenance deltaSecs=7198 info="upkeep wake"] [*process=dasd request=SleepService deltaSecs=998 info="com.apple.dasd:0:com.apple.MobileAccessoryUpdater.deviceIdleCheck"] [process=powerd request=UserWake deltaSecs=3961 info="com.apple.alarm.user-invisible-com.apple.calaccessd.travelEngine.periodicRefreshTimer,668"]- Each pair of brackets is one process that asked to wake the Mac,
deltaSecsseconds later. On every line we read, the asterisk marked the request with the shortest delay, the one that sets the next wake. mDNSResponderwith “upkeep wake” is macOS's network service (Bonjour) keeping the Mac reachable on the network.dasdschedules macOS background tasks; theinfotext names the task.- An app's own name here, repeating every few minutes, is a strong lead. Update the app, change its sync or check settings, or quit it before you close the lid.
pmset -g schedpmset -g statsOn our test Mac pmset -g stats reported a Sleep Count of 46, a Dark Wake Count of 45 and a User Wake Count of 1: dozens of dark wakes for every wake we noticed, which is typical.
Step 4: check the settings that allow wakes
pmset -g | grep -E "womp|powernap|tcpkeepalive"womp is Wake for network access (1 is on), powernap is Power Nap, and tcpkeepalive keeps network connections alive during sleep. Change them in System Settings, not with pmset: on a MacBook in System Settings → Battery → Options, on a desktop Mac in System Settings → Energy. Apple notes that some options aren't available on every Mac.
Step 5: fix the top reason and measure
- Before you close the lid, note the charge with
pmset -g batt. - In the morning, count last night's wakes by reason with the command in Step 1.
- Act on the top reason: an app's wake request (update or quit it),
wifibt(Wake for network access off for one night), a mouse or accessory (unplug it before sleeping). - Compare the next night: same apps open, same accessories, same power source.
If the log shows no Sleep line at all after you closed the lid, the Mac didn't wake up: it never slept. That's a sleep assertion, and the overnight battery drain guide shows how to find the app holding it.
The faster way: Sleep & Battery in iKnowMyMac
iKnowMyMac reads the same power log through its optional read-only helper and turns each night into a timeline. The Why it woke up card lists every wake in plain words, such as “Lid opened”, “Power adapter connected”, “Wi-Fi/network keepalive” and “Network upkeep (Bonjour)”, and names the app when an app is the reason.