2

I have a Windows 10 Desktop PC I built recently with all new parts, Windows is fully updated, as are all drivers, BIOS, etc. I had a problem with my PC waking up from sleep randomly at night, and then staying on all night, so I disabled all possible wake timers, which seems to have fixed that issue; however, now the PC stays asleep until I press a key on my keyboard.

  • My PC does not go to sleep automatically by itself based on the timer I set in Power Settings (presumably this is why it would stay up all night after automatically waking up with the previous issue above)
  • When I try specific programs to make only the monitors go to sleep, such as Turn off LCD and NirCmd, the monitors turn off for 1 second, then turn back on, so that is perhaps a clue

I've tried virtually everything [screenshots below] and nothing makes my PC go to sleep automatically when idle, including disabling all Wake Armed devices in Device Manager, which didn't fix it either, so I only left the Keyboard enabled to ensure I can wake my PC when I manually put it to sleep. I do not want to reset anything as it's taken me a long time to get my PC configured just right and fix the issue of my PC waking randomly from sleep.

  • Advanced Power Settings:
    Advanced Power Settings
  • Power Troubleshooting Results:
    Power Troubleshooting

  • Group Policy Sleep Settings set to ensure automatic sleep:
    All relevant "Sleep Settings" in "Local Group Policy Editor" set to ensure automatic sleep

  • powercfg:
    • devicequery wake_armed:
      HID Keyboard Device (003)
      HID Keyboard Device (004)
      
    • -energy: 14 Errors, 9 Warnings, 58 Informational (rebooted, didn't touch anything)
    • -requests:
      DISPLAY:
        None.
      
      SYSTEM:
        None.
      
      AWAYMODE:
        None.
      
      EXECUTION:
        None.
      
      PERFBOOST:
        None.
      
      ACTIVELOCKSCREEN:
        None.
      

What else can I try to find out what in the world is keeping my PC from sleeping automatically and fix this issue, considering powercfg -requests returns everything as none?

FINAL UPDATE: With the help of a combination of everyone's suggestions (see my answer below), I was able to find the culprit: Creative Pebble V3 external speakers connected via USB-C. I updated its Firmware and it resolved the problem.

26
  • Have a look at superuser.com/questions/1576236/…
    – Tetsujin
    Commented Mar 15, 2021 at 17:13
  • @Tetsujin Thanks, but I had already seen that answer before I posted, and it did not provide a solution to my problem. As per my post and screenshot, powercfg -requests shows everything as "none". That answer you linked to does mention something interesting, that programs can "Call SetThreadExecutionState periodically to reset the idle time", but it doesn't answer or explain how to check for that. Any ideas? Commented Mar 15, 2021 at 17:20
  • tbh, no. That was my question, no-one came up with a satisfactory answer. I'm too used to Mac, where I can just look at the column that says 'preventing sleep' yes/no.
    – Tetsujin
    Commented Mar 15, 2021 at 17:26
  • 1
    Have you disconnected all peripherals and tried it, and I mean even the mouse and keyboard? I had a PC that did this once and after doing this it worked, turned out the mouse was defective and showed movement on occasion that was not visible to the eye, but prevented the computer from sleeping.
    – acejavelin
    Commented Mar 17, 2021 at 16:07
  • 1
    @harrymc: See the list of components here: codepen.io/TheProgrammerGirl/pen/qBqzYpZ (2 monitors are connected to the PC, one at 240hz and the other at 120hz, both via DisplayPort). PSU has USB link cable connected. 8TB drive is via RAID 0. (Please do not edit my post to include parts list here.) Commented Mar 19, 2021 at 5:52

4 Answers 4

3

A workaround that might work if nothing else is an AutoHotkey script:

#Persistent
if not A_IsAdmin ; powercfg must run as admin
{
    Run *RunAs "%A_ScriptFullPath%"
    ExitApp
}

SetTimer, IdleCheck, 15000 ; checks every 15 seconds for idleness
Return

IdleCheck:
If A_TimeIdle > 300000 ; adjust to however many milliseconds you want to wait before standby
{
   RunWait, nircmd.exe execmd "powercfg -requests > "%A_Temp%\pwrcfg_output.txt" "
   Sleep, 1000
   FileRead, PwrOutput, %A_Temp%\pwrcfg_output.txt
   If RegExMatch(PwrOutput, "DISPLAY:\r\n *None")
   && RegExMatch(PwrOutput, "SYSTEM:\r\n *None")
   && RegExMatch(PwrOutput, "AWAYMODE:\r\n *None")
   && RegExMatch(PwrOutput, "EXECUTION:\r\n *None")
   && RegExMatch(PwrOutput, "PERFBOOST:\r\n *None")
   {
      Run, nircmd.exe standby
   }
}
Return

You can check to see whether or not the idle timer is not being constantly reset when there's no input by using the following script:

loop
{
  Sleep, 500
  Tooltip, %A_TimeIdle%
}

ESC::
ExitApp

The milliseconds in the tooltip should keep counting up without resetting when there's no mouse or keyboard input.

2
  • The poster already indicated that nircmd didn't help.
    – harrymc
    Commented Mar 24, 2021 at 13:42
  • The thing the asker tried only turns off the monitor(s) without putting the computer on sleep mode (nircmd monitor off). The command in my script puts the computer on sleep mode just like as though it was done manually (nircmd standby).
    – Aenfa
    Commented Mar 24, 2021 at 13:56
2

Try to disconnect PSU USB 'corsair link' cable as googling corsair link sleep has people talking about that being problematic. In the comments you electronically disabled all your devices, please physically disconnect everything possible except for keyboard, might want to even try another one of those. This is a normal troubleshooting step that Microsoft recommends & Level 2 techs at HP (I was a lvl1 tech there) suggested, process of elimination. No one is saying disconnecting everything will BE the fix, it will help us understand IF ANY of the devices are problematic. If not then we know its not those pieces of equipment.

1

What you have done should have been enough, but is not working. You have done everything we could think of and answered all our questions, but Windows is still behaving in an abnormal manner.

Here are some more actions that you may take to check for and return Windows to a known state:

1

After countless hours over many days, I was finally able to resolve this issue with a combination of all of the other solutions.

I used Aenfa's 2nd script for AutoHotKey:

loop
{
  Sleep, 500
  Tooltip, %A_TimeIdle%
}

ESC::
ExitApp

which showed something was definitely continuously resetting the idle timer, so this allowed me to easily tell when the idle timer was no longer being reset by something.

So then I followed gregg's answer and acejavelin's suggestion of physically unplugging peripherals. I just disconnected them one by one until I noticed the idle timer no longer resetting.

What was the culprit? The Creative Pebble V3 external speakers connected via USB-C.

harrymc's had earlier suggested a driver issue. Although there was no new driver for these speakers, there was a Firmware update. So I followed his advice and updated the Firmware of the speakers and it finally fixed the problem.

I want to thank harrmyc, gregg, Aenfa, acejavelin, and all others for their help with this.

I find it completely absurd that PC Sleep issues with Microsoft Windows 10 require this much effort and detective work to simply find the culprit. It's 2021!

1
  • Thank you for this answer! I had the exact same problem and I solved it like you! The simple 2nd script from Aenfa was the key to identify the device causing the problem! Incredible that Windows doesn't have a utility to help detecting this!
    – alelom
    Commented Jan 27, 2023 at 16:15

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .