数ヶ月に1回ほど使用する MacBook Air があるのだが、長期的に充電池を放置することになるので、充電池が劣化するリスクが有る。
こういう場合のベストプラクティスは、 Apple が公式に公開している記事によると、
【50% の充電状態で電源を切って適正温度で維持すること。半年に一度は確認して 50% を維持すること。】だそうである。
だから使用後には AC アダプターから外して 50% になるまで待ってから電源を切るという行動をする必要があるのだが、こんなこと人間がやる必要ないなと思ったので自動化した。
下のコードに名前をつけて $ caffeinate -di python BatteryTo50PercentAndShutdown.py
というふうにスクリーンロックを抑止しながら実行してやればよい。
# Usage: $ caffeinate -di python BatteryTo50PercentAndShutdown.py import time import subprocess import re # Drain battery until it reaches to the percentage of aim.: percentage_of_aim = 50 # percentage_of_aim = 100 # debug cmd = 'pmset -g batt' # re_percent = re.compile('-InternalBattery-0\s*([0-9]+)%') re_percent = re.compile('\s*([0-9]+)%') while True: proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) out, err = proc.communicate() percentage = int(re_percent.findall(out)[0]) print percentage if percentage < percentage_of_aim: break time.sleep(60) # Shutdown: # http://stackoverflow.com/questions/28438247/computer-shut-off-python-3-4 import subprocess subprocess.call(['osascript', '-e', 'tell app "System Events" to shut down'])