Windows 8.1 desktop PC wakes up from sleep mode every night around 3am.
To find out what woke up computer last time you can run powercfg -lastwake
Owner: [SERVICE] \Device\Harddisk\Volume2\Windows\System32\svchost.exe (SystemEventBroker)
Owner Supplied Reason: Windows will execute 'NT TASK\Microsoft\Windows\TaskScheduler\Regular Maintenance' scheduled task that requested waking the computer.
To find out what is scheduled to wake up computer next time you can run: powercfg /waketimers
Timer set by [SERVICE] \Device\HarddiskVolume2\Windows\System32\svchost.exe (SystemEventsBroker) expires at 05:08:51 on 28/11/2014.
Reason: Windows will execute 'NT TASK\Microsoft\Windows\WindowsUpdate\AUScheduledlnstall' scheduled task that requested waking the computer.
In this particular case, as you can from screenshots above, computer is being waken up by a Scheduled Task: Regular Maintenance.
It's not a good idea to modify system scheduled tasks directly. "Regular Maintenance" settings can be adjusted in Control Panel > Action Center > Maintenance > Change maintenance settings.
Windows automatically runs scheduled maintenance on a daily schedule when you're not using your computer.
This includes tasks such as software updates, security scanning and system diagnostics. This maintenance will run daily if you aren't using your computer at the time you've chosen. If your computer is in use at the scheduled time or maintenance is behind schedule. Automatic Maintenance will run the next time the computer is not being used.
To prevent Regular Maintenance from waking up the computer, uncheck "Allow scheduled maintenance to wake up my computer at the scheduled time". You may also want to change task run time to a more suitable time (when computer is most likely be on, but not actively used).
Run: powercfg /waketimers again to make sure there are no other tasks that are scheduled to wake up the PC.
Windows 8.1 Update 1