(追記)
Macの場合、残量については気にしないで良いそうです。
参考: https://apple-no-kajirikata.com/902/#8020
コンセントに繋いで100%の状態でも問題ないとの情報もあります。
従って、この情報を信頼するならば、本記事の方法は取る必要がなさそうです。ご参考までに。
[経緯 ~どうでもいい話~]
常時使っていたMacbookを修理に出す関係で、昔のMacbookを引っ張り出しました。
すると、充電の割合表示がバグっていて、13%とかなっているのに、実は90%充電できていたり、、、バグ?よくわからない状態でした。
再起動してもSMCリセット?みたいなのをしても直らなかったので、いつものMacbookで使っていた充電アラートを入れようとしたのです。
バッテリーの寿命を伸ばすため、充電状況を管理するものです。
「Battery Heroより未然に過充電を防げると思うCharge Check使ってみる」
https://jitenshatoryokou.com/chargecheck-14199.html
が、充電アラートのChargeCheckのダウンロードサイト(*)が「403 Forbidden」エラーとなっていました。
*http://blog.macorz.com/2338.html
GoogleにもIndexされていないようで、困ったのでPythonで作ってみました。
[Code]
PC : MacBook Pro (Retina, 13-inch, Early 2015)
OS : OSX High Sierra 10.13.6
1. python コードを作成
# coding: utf-8
SetMaxThreshold = 0.79 # 上限の閾値を設定(これ以上なら充電しない) 推奨は80%らしいので、直前の079で
SetMinThreshold = 0.41 # 下限の閾値を設定(これ以下なら充電) 推奨は40%らしいので、直前の041で
import subprocess
import sys
import re
import os
cmd = "/usr/sbin/ioreg -l | /usr/bin/grep Capacity"
res =subprocess.check_output(cmd, shell=True).decode('utf-8').strip().split('\n')
Max = 0
Current = 0
for st in res:
ar = st.split('=')
key = re.sub('^(.*?")','',ar[0]).replace('" ','')
if (key=='MaxCapacity'):
Max = ar[1].strip()
elif key=='CurrentCapacity':
Current = ar[1].strip()
cmd = "/usr/sbin/ioreg -l | /usr/bin/grep ExternalChargeCapable"
chk =subprocess.check_output(cmd, shell=True).decode('utf-8').strip().split('=')[1].strip()
isCharge = True if (chk=='Yes') else False
Notify = False
rate=0
if (int(Max) > 0 and int(Current) > 0):
rate =float(Current)/float(Max)
if rate <= SetMinThreshold and not isCharge:
os.system("/usr/bin/osascript -e 'display notification \"充電してください!\"' && /usr/bin/osascript -e 'beep 5'")
Notify = True
elif rate >= SetMaxThreshold and isCharge:
os.system("/usr/bin/osascript -e 'display notification \"充電を止めてください\"' && /usr/bin/osascript -e 'beep 5'")
Notify = True
else:
print('No Nofied = '+str(rate))
print('Notified:'+str(Notify)+' | Rate:'+str(rate)+' |Info : isCharge = '+str(isCharge) + ' | Max ='+str(Max) + ' | Current ='+str(Current))
ポイントは、コマンドを絶対パスで書くこと。
2. crontab に登録
crontab -e
で
作成したPython を保存し、絶対パスで登録
* * * * * python /Users/{user_name}/tool/monitoringMacCharge.py> /dev/null
crontab -l で登録を確認
"> /dev/null" で 標準出力時のメール送信を回避
参考:https://ips.nekotype.com/2407/
できました。
おまけ 充放電回数の確認
optionを押しながら、リンゴマークをクリックして、システム情報を表示
電源 > 状態情報 > 充放電回数
Macbook Pro 13inch だと1000回でバッテリー交換時期とのこと。ここを抑えたい。
(追記)
Macの場合、残量については気にしないで良いそうです。
https://apple-no-kajirikata.com/902/#8020
コンセントに繋いで100%の状態でも問題ないとの情報もあります。
従って、本記事の方法は取る必要がなさそうです。Macは賢くてよかったです。
*こちら、確かに体感値では、以前のMacbookはこのような使い方をしていて、バッテリーに特に大きな影響はありませんでした。
以上