かずきち。の日記

サーバサイドエンジニアのつぶやき

GAS×Automatorを使って1日にiPhoneを何回充電器につないだか集計してみる

iPhoneのバッテリーの劣化はなぜ起きる?

mobile-shuri.jp
引用:
https://mobile-shuri.jp/matome/11482

iPhoneを長く使っていると最大の充電容量は徐々に減ってきます。
その原因は頻繁に充電をすることなどに依存します。
充電器があればつい充電してしまうなんてことはあります。
では人は1日に何回充電器にスマホをつないでいるのかを自動集計していきたいと思います。

まず充電器につないだ回数を集計するためには「ショートカット」を使います

time-space.kddi.com
引用:
https://time-space.kddi.com/mobile/20191120/2783

非常に優秀なアプリですが、iPhoneに標準に入っていないアプリです。
ですがAppleが開発しているアプリで無料で使うことができます。
今回はこのアプリを使っていきます。
このアプリを起動すると条件の変化に応じたオートメーションを作ることができます

ここで〜〜のiPhoneが充電開始をトリガーとしてメールの送信を自動化します。
充電器にiPhoneが接続されたら有無も言わさず、Gmailに即時転送をかけます。

するとこのような形で充電を行うと受信ボックスに充電開始が通知されますので、あとはこれをGmailフィルタ*GASで処理をしていきます。
まずはGmailのラベルを自動でつけたいので…

fromを自分自身にして、「充電を開始しました」ラベルを集計します。
この動作を毎日23:59に今日1日メールを検索する演算子で抽出します。

  var threads = GmailApp.search("label:充電を開始しました newer_than:1d");

ここで充電を開始した際に通知されるメールを一網打尽で数えます。

そうしたら、あとはメール件数を取得してGoogleカレンダーに自自動転記します。

  //件数を習得
  Logger.log(threads.length);
  
  //今日の日付を習得
  var date = new Date();
  Logger.log(Utilities.formatDate(date,'Asia/Tokyo', 'yyyy/MM/dd'));
  var today = new Date(Utilities.formatDate(date,'Asia/Tokyo', 'yyyy/MM/dd'));

  //8mgqrj3tk6t4queifa1p5f8ka8@group.calendar.google.comに充電を開始しましたを記入

  //登録するカレンダーIDを呼び出してeventへ格納
  var calendar = CalendarApp.getCalendarById('****************@group.calendar.google.com');
  
  //カレンダー登録
  calendar.createAllDayEvent(threads.length+"回充電しました",today);
}

完成です。
トリガーを毎日23時に設定すれば1日何回iPhoneが充電器に接続されたか集計します。

こんな具合でその日に何回充電器に接続されたかを集計します。
簡単ですね。
思い立って1時間位で完成してしまいました。
しかもiPhone上でのバックグラウンド起動ですので非常にクレバーです。
興味ある人はiPhoneの自動化も兼ねてぜひ勉強してみてください。
個人的にメールが絡めばほぼ全ての業務を自動化もできるんだろうなと思います。