macの充放電回数をアラートされたい
ゆずさん(hisakazu)です。
きっかけ。
https://twitter.com/Niratama/status/1015413338577104896
持ってるMBAはまだ大丈夫っぽい。けどいつかは、、、。ならヤバくなりそうなときにいい感じに通知がほしい。
https://support.apple.com/ja-jp/HT201585
次の表を参考にして、お使いのコンピュータのバッテリーの充放電回数の上限をご確認ください。決まった上限を超えると、バッテリーは消耗したとみなされます。
1000回がへたる境目らしい
何か良いアプリは?
https://itunes.apple.com/us/app/battery-monitor-health-info/id836505650?mt=12
https://www.coconut-flavour.com/coconutbattery/
平常時のモニタリングはツールバーの表示に間に合ってる。チラチラ視界に入るのはちょっとね、、、。けれど、ヘタリ具合がわかるのは嬉しい。
けど、欲しい機能はないんだ。
いい感じに通知されたい
要は1000回を超えたときに通知を受けたいのである。なければ作ればいいじゃない。
Automatorで充放電回数をチェック、超えていれば通知するアプリを作成
定期的に実行するスケジュール作成(.plist)
launchctlで設定の登録
1. Automatorで充放電回数をチェック、超えていれば通知するアプリを作成
ActionsからRun script shellを選択し、次のスクリプトを打ち込む。そして保存。保存先は自分がわかればよし。
battery_cycle_count=$(system_profiler SPPowerDataType | grep "Cycle Count" | awk '{print $3}') limit=1000 if [ $battery_cycle_count -gt $limit ] ; then message="Caution: Battery cycle count is $battery_cycle_count. I reccomend you to exchange new Battery-pack in your laptop" osascript -e "tell app \"System Preferences\" to display dialog \"$message\"" fi
2. launchctlで定期的にチェック
Labelの値は.plistのベースネームが慣例らしい。Programの値はアプリのパス。ただし、Contents/MacOS/Application Stubをつけないとだめなんだって(ググればでる)。保存先は私が見た例だと 、~/Library/LaunchAgents/においてた。.plistの名前つけ方は他を参考にすればいいと思うよ。
定期的にのチェック間隔は毎月1日にした。ここはお好みで。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>filename.plist</string> <key>Program</key> <string>/path/to/app/Contents/MacOS/Application Stub</string> <key>StartCalendarInterval</key> <array> <dict> <key>Day</key> <integer>1</integer> </dict> </array> </dict> </plist>
3. launchctlで設定の登録
設定の登録
launchctl load <plist file>
うまく登録されていれば次のコマンドで確認できる。
launchctl list <Label name>
おしまい
あたらしいMBPほしいな。4core/8threadでちょっぱやだし、メモリ32GBだもんな。SSDは言わずもがなPCIe接続で爆走だよ。


















