MacにLogicoolのマウスやキーボードをBluetoothで接続するとスリープから勝手に復帰する件が解決!…せず
MacをmacOS Montereyにしてから、Bluetoothの設定に「Bluetoothデバイスでコンピュータのスリープ解除を可能にする」という項目がなくなったため、この項目をOFFにすることで可能であった、Bluetoothデバイスからスリープ解除を行わない(させない)という指定ができなくなっていました。
上記ができないと、自分の環境ではLogicoolのマウス「MX Anywhere 2S」をBluetoothで接続しているとスリープさせても、すぐにスリープが解除するのを防ぐことができないという悩みがありました。
それについては、こちらに記事にしました。
macOSをMontereyにしてからの困りごと…Bluetoothの設定に詳細ボタンが出てこない
この時は結局、LogicoolのデバイスではUSBドングルのUnifyingレシーバーで接続できるので、それで一件落着したのです。
しかし、新たにLogicoolのキーボード「MX KEYS mini」を購入し、Bluetoothで接続した所、やっぱりマウスのときと同じように、スリープさせてもすぐに解除されてしまう症状が…
またUnifyingレシーバーで、と思ったのですがMX KEYS miniはUnifyingではなく、Logi Boltという新しいレシーバーでしか接続できない。それにレシーバーが本体に付属しておらず別売り。
スリープしたときにキーボードをOFFにするか、Bluetoothの接続先を切り替えれば当然Macにつながっていないのでスリープを解除されることはないのだけど、やっぱり面倒だしスマートではない。
念の為、キーボードを接続した時のスリープ解除の理由を、ログで確認してみると、
(AppleBCMWLANCore) Wake reason = wlan, kern.wakereason: 'SMC.OutboxNotEmpty smc.70070000 wifibt wlan'
マウスの時と同じログが出ている。
あれ?「wlan」ってwifi lanのことで、コレってネットワーク経由でMacをスリープから叩き起こしているってログなのでは?と思い、関連するの設定を確認すると、ネットワーク経由でスリープ解除するかどうかの設定が、
システム環境設定の中の「バッテリー」の中の「電源アダプタ」に「ネットワークアクセスによるスリープ解除」としてある。
そして自分の環境ではコレにチェックが付いている。このチェックを外した所…
Bluetoothでキーボードをつなげたままでもスリープがすぐに解除されなくなりました。
更にマウスもBluetooth接続に変更したのですが、こちらもスリープがすぐに解除がされることはなくなりました。
Bluetooth機器が接続されたMacで、スリープが勝手に解除される症状があって、ネットワーク越しにスリープを解除させる必要がない場合は、この設定は外すのが吉かもしれませんね。
やっぱりダメでした
上の「ネットワークアクセスによるスリープ解除」のチェックを外して(OFFにして)一件落着かと思ったのですが、、
たしかにスリープにしてから数十秒で解除されることはなくなったけど、十数分(17分ぐらい)経つとスリープが解除されてしまう現象が発生。
ただ、自分の設定ではスリープ開始から5分以上経ってからスリープが解除されるとログイン画面が表示され、そのままちょっと放置すると再びスリープに入っていたため、すぐに気が付かなかった。
ちなみに解除されていたときに出ていたログが以下と
( log stream --style syslog | fgrep "Wake reason"で出力)
(AppleTopCaseHIDEventDriver) [HID] [ATC] AppleDeviceManagementHIDEventService::processWakeReason Wake reason: Host (0x01)
以下のログが出てました
(pmset -g logで出力)
(mDNSResponder) Created MaintenanceWake "mDNSResponder:maintenance"
さらにBluetooth接続したマウスとキーボードの電源をOFFにして試してみても、このログが記録されていた。
あれっ?マウスとキーボードは関係ないの??
切り分けのため、「ネットワークアクセスによるスリープ解除」のチェックを入れて(ONにして)、Bluetooth接続したマウスとキーボードの電源をOFFにしスリープにすると、スリープは解除されない。でもログに「AppleTopCaseHIDEventDriver〜」は出ている。。
このログの内容だけが、スリープ解除の条件ではないということなのかな?
まとめると
・「ネットワークアクセスによるスリープ解除」がONの時
Bluetooth接続されたLogicoolのマウスやキーボードがあると、すぐにスリープが解除されてしまう。
上記のマウスやキーボードが接続されていない状態では、勝手にスリープが解除されることはない。
・「ネットワークアクセスによるスリープ解除」がOFFの時
Bluetooth接続されたLogicoolのマウスやキーボードがあっても、すぐにスリープが解除されない。
しかし、17分ぐらい経つとスリープが解除されてしまう。
と言うことで、結局どちらもスリープが勝手に解除されてしまう…(泣)
前の構成(マウスはLogicoolのマウスをUnifyingレシーバー、キーボードはKeychron K1をBluetooth接続)のときは、「ネットワークアクセスによるスリープ解除」がONでもスリープが勝手に解除することはなかったので、Bluetooth接続だと必ずこのように解除されてしまうわけでもないし。
やっぱり、USB接続にしないとダメなのか。