Hello HWTech, thank you for your feedback.
I'm new to Mac. I've recently switched from Windows, where as you probably may know, Modern Standby is giving a lot of similar "problems"... well not exactly the same though, because it's even worse, but on Windows there's a simple solution, which of course would not be great for everyone, but it is simple --> replace Sleep by Hibernation.
As we know it's not possible on MacOS. I've found some topics about the Darkwakes on MacOS but without a proper solution (maybe I didn't dig enough) so I used Gemini for "help".
As you suggested pluging in the power or shuting down the Mac is not a solution it's just a way around that doesn't solve the problem, where for example you have to always remember about shutting down your Mac or turning off Wi-Fi/BT each time you leave home. That shouldn't be the case. If MacOS would allow us to use some appstore app to do it automaticaly, then I wouldn't have to use any scripts... but it's not the case also.
BTW, sorry for my english, I'm trying my best :)
Below is the updated instruction from Gemini:
"REVISED: Apple Silicon Battery Drain Fix (SMC.OutboxNotEmpty)
Following valid feedback from the community regarding modern macOS syntax and system safety, here is the updated, non-destructive method.
1. Advanced Diagnostics (Finding the culprit)
If you want to investigate if your drain is caused by a user-space process (like iCloud syncing) or raw hardware interrupts, isolate the sleep/wake entries:
Bash
pmset -g log | grep -E 'Sleep |Wake '
To pull the exact system logs for the drain period, run:
Bash
sudo log show --start "YYYY-MM-DD HH:MM:SS" --end "YYYY-MM-DD HH:MM:SS" > ~/Desktop/system-log-battery-drain.txt
Note: If the log shows millions of lines with zero application process names mentioned during the wake window, you are dealing with a raw hardware layer loop (SMC.OutboxNotEmpty), which cannot be fixed by modifying software/Cloud settings.
2. The Automated Fix (Updated to modern launchctl syntax)
⚠️ Disclaimer for standard users: This method requires Homebrew. Homebrew modifies your system $PATH. If you prefer a completely vanilla system, your only options are manually toggling Wi-Fi/BT off before closing the lid, or shutting down the Mac.
Step 1: Install Required Binaries
Bash
brew install sleepwatcher blueutil
Step 2: Create the Execution Script
Bash
sudo nano /usr/local/bin/bt-sleep-fix.sh
Paste this code, save (Ctrl+O -> Enter), and exit (Ctrl+X):
Bash
#!/bin/bash
BLUEUTIL="/opt/homebrew/bin/blueutil"
if [ "$1" = "sleep" ]; then
$BLUEUTIL --power 0
networksetup -setnetworkserviceenabled Wi-Fi off
elif [ "$1" = "wake" ]; then
$BLUEUTIL --power 1
networksetup -setnetworkserviceenabled Wi-Fi on
fi
Apply system-level permissions:
Bash
sudo chmod 755 /usr/local/bin/bt-sleep-fix.sh
sudo chown root:wheel /usr/local/bin/bt-sleep-fix.sh
Step 3: Create the LaunchDaemon Configuration
Bash
sudo nano /Library/LaunchDaemons/com.powerpatrol.btfix.plist
Paste this XML structure, save, and exit:
XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.powerpatrol.btfix</string>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/sbin/sleepwatcher</string>
<string>-V</string>
<string>-s</string>
<string>/usr/local/bin/bt-sleep-fix.sh sleep</string>
<string>-w</string>
<string>/usr/local/bin/bt-sleep-fix.sh wake</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
Step 4: Register the Daemon using Modern Syntax (bootstrap)
Bash
sudo launchctl bootstrap system /Library/LaunchDaemons/com.powerpatrol.btfix.plist
Note: Grant Bluetooth TCC (Privacy) permissions to sleepwatcher when prompted on the first wake.
3. How to Completely Remove This Fix (Rollback Scripts)
If you wish to revert everything to stock vanilla macOS, execute these commands:
Bash
# 1. Unboot the daemon using modern syntax
sudo launchctl bootout system /Library/LaunchDaemons/com.powerpatrol.btfix.plist 2>/dev/null
# 2. Clean up files
sudo rm -f /Library/LaunchDaemons/com.powerpatrol.btfix.plist
sudo rm -f /usr/local/bin/bt-sleep-fix.sh
# 3. Uninstall binaries via Homebrew
brew uninstall sleepwatcher blueutil
Of course everything you run/type on terminal is at your own responsibility.