💡

操作していないのにMacのスリープが解除されてしまう原因と対応方法

2024/01/07に公開

Macはシャットダウンするよりスリープするメリットが大きいので、普段使いでは電源を落とす=スリープにすることが多いです。
ざっくりとこんなメリットがあるようです。

  • スリープ前の状態にすぐ戻って再開できる
  • SSDなので物理的な摩耗が少なく、シャットダウンするメリットが薄い
  • 消費電力量もスリープ状態で十分に低い(M1だと月4.54円ほど)※1
  • スリープ状態でもiCloudの同期やTime Machineのバックアップなどが自動で実行される
  • セーフスリープ機能で開いているアプリや書類などの状態が保存される ※2
  1. ※1 1時間あたり0.18W、日本の家庭用電気料金は35円/kWhで計算
  2. ※2 Macのセーフスリープとは - Apple サポート (日本)

ただ、なぜかスリープ状態にしても1分と経たないうちにスリープが解除されてしまっていました。
「セキュリティとプライバシー」にある「スリープとスクリーンセーバの解除にパスワードを要求」を「すぐに」に設定していたのでセキュリティ的なリスクはないのですが、夜中に何度も画面がついたり、Macと接続している機器に電源が入ってしまっていました。

原因はBluetoothマウス

結論から言うと、Bluetoothで接続している「MX ERGO」が原因でした。Logicool関連のマウスを使っている人に多く見られる現象のようです。
MX ERGOにはペアリング先を切り替えるEasy-Switchボタンがあるので、ペアリング先を登録していない2つ目に切り替えることで解決しました(ちょっとだけ面倒ではありますが)。

その他の解決方法

こちらの記事を参考にしたのですが「FluTooth」というアプリを使う方法もあるようです

Macmini(M2)で勝手にスリープ解除される原因を調べて解決する方法 | ブログハック

FluToothはGumroadで無料で公開されており、スクリプトを利用した同様の解決策も考案されていますが、復帰後すぐにキーボードやマウスが使えない難点があり、根本的な解決にはなっていないので、MacBookユーザーの方は注意して下さい。

という記事もあったので完璧な解決方法ではないかもしれませんが、Macとの接続を簡単に解除できない場合は「FluTooth」を使うのもアリかもしれません。

ログを確認する

スリープが解除されてしまってから次のコマンドをターミナルで実行するとログを確認できます。

sudo pmset -g log

最初のDisplay is turned offでディスプレイが消灯されたので、スリープが有効になっています。
4つ目のログにBluetooth LE HID Activityがあり、ChatGPTに聞いてみると、これが原因と考えられそうでした。

Bluetoothデバイスの活動があったことが示されています。これは、Bluetoothキーボード、マウス、または他のHID(Human Interface Device)が何らかの入力を検知し、それがスリープ解除のトリガーとなった可能性があります。

Time stamp                Domain              	Message                                                                        	Duration  	Delay
==========                ======              	=======                                                                        	========  	=====
UUID: xxxxxxxx-xxxxxxxxx-xxxx-xxxxxxxxxxxxxxxxxxxx
2024-01-06 02:52:16 +0900 Notification        	Display is turned off
...

2024-01-06 02:52:16 +0900 Assertions          	PID xxx(bluetoothd) Summary UserIsActive "Bluetooth LE HID Activity" 00:12:14  id:xxxxxxxxxxxx [System: PrevIdle DeclUser SRPrevSleep IPushSrvc kCPU kDisp]

幸い(?)Bluetoothで接続しているのはマウスだけだったので、Macとの接続を解除してみると、スリープが解除されてしまう状態を解決できました。

Discussion