Спираючись на інші відповіді та даючи більшість / усі фрагменти головоломки, але не ціле рішення:
- Переконайтесь, що ви хочете, щоб пристрої Bluetooth пробудили ваш Mac
- Якщо ви цього не хочете, зніміть прапорець у системних налаштуваннях і перевірте, чи зберігається небажана поведінка (це в
Bluetooth
→ Advanced…
→ Allow Bluetooth devices to wake this computer
)
- Якщо вам потрібно / хочете розбудити свій Mac на пристроях Bluetooth, або це не відбувається, незважаючи на вимкнення опції, виконайте наступні дії:
Встановіть допоміжну програму для перевірки системного сну (якщо ви хочете розрізняти лише кришку, відкриту / закриту без сплячого Mac, здається, що в даний час немає простого способу - тобто я не дізнався, як це виявити), і переключіть Bluetooth залежно від подій сну / неспання.
Допомагає виявити сон / неспання (ознайомтеся з різними варіантами в цій публікації):
Дивіться також цей пост про тему " Автоматично вмикати або вимикати Bluetooth, залежно від поточної мережі (MBP під управлінням Lion) ", згадуючи ControlPlane
Увімкнути Bluetooth через сценарії:
Моя рекомендація: встановіть blueutil через homebrew
Бігати blueutil power 0
на сон
І blueutil power 1
прокинувшись
Тепер про мій внесок у цю проблему: Якщо енергетична дрімота спричиняє несподівану подію, спробуйте за допомогою цього сценарію для пробудження розрізнити інші причини невідповідності та відкриття кришки:
#!/bin/bash
limitSec=3
currentEpoch=$(date "+%s")
wakeEpoch=$(cat /var/log/system.log | grep LidOpen | tail -n 1 | date -j -f "%b %d %T" "$(cut -c1-15)" "+%s")
wakeSeconds=$(( $currentEpoch - $wakeEpoch ))
if [[ $wakeSeconds -lt $limitSec ]]; then
logger "Enabling bluetooth again due to lid open"
blueutil power 1
fi
Він встановлює час очікування в 3 секунди (limitSec), отримує поточний час і останній час пробудження Wake reason: EC.lidOpen
, і якщо це було менше 3 секунд тому, він знову включить Bluetooth