Well it's 3:30am right now and my Mac just woke, so sadly, the TCPKeepAlive=0 didn't work.
I'm now going to turn off Find my Mac in iCloud settings to see what happens then.
In the meantime, I've stumbled across this potential fix, but I can't edit the .plist file as I don't have the permissions. As this is a test rig, I don't mind trying it out, however do you (or anyone else) mind helping me execute these commands (from this page
https://apple.stackexchange.com/que...-consumes-10-battery-overnight-with-the-lid-c)
Code:
8
Update : This doesn't work with Catalina, see Django Reinhardt's answer instead.
I was suffering the same issue before, my MBP 2015's battery was draining slowly but when I don't use it so frequently, this caused so much pain. This method helped me so much; now I can go out with my Mac with 20% charge and make my day. There is a significant difference between MacBook Pro 2015 and the previous models of MacBook Pros. You can check these settings by this command line;
ioreg -l | grep IOPlatformFeatureDefaults
The output on your mac would be like this;
{"TCPKeepAliveDuringSleep"=Yes,"DNDWhileDisplaySleeps"=No,"TCPKeepAliveExpirationTimeout"=43200,"NotificationWake"=Yes}
To make your MBP sleep deep like the old versions you should first restart your computer into recovery mode. To do that you should restart your mac and hold CMD+R until you hear the start up sound. After that open terminal and type this;
csrutil disable
Then restart your MacBook again. Go to this destination, you can access inside kext files by right clicking -> Show Package Contents /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources
Find your board id with:
ioreg -l | awk '/board-id/{print $4}' | sed 's/[<">]//g'
Open <your_board_id>.plist (e.g. Mac-E43C1C25D4880AD6.plist) file by a text editor and edit these settings just like these;
<key>TCPKeepAliveDuringSleep</key>
<false/>
<key>NotificationWake</key>
<false/>
<key>DNDWhileDisplaySleeps</key>
<true/>
TCPKeepAliveDuringSleep keeps your MacBook connections open when its sleeping, so it keep Wifi connected. NotificationWake wakes your Mac randomly to check notifications especially make this one false. DNDWhileDisplaySleeps means "Do not disturb on sleep"; MacBook does get disturbed by notifications when it's asleep.
My personal opinion is this process should be done by every 2015+ MacBook user because MacBooks are not cell phones that ring for notifications. Apple should have made a toggle button for this.
Do not forget to enable System Integrity Protection again. You should restart into recovery mode and on terminal type "csrutil enable" and restart.