ジョー・ヒタギの止リ木 | 「ものづくり」や「ものなおし」をするブログ

色々なものを作ったり直したりするブログです。主な話題は日用品・電子機器・エアガンなど。

ジョー・ヒタギ の 止リ木

【iPhone ショートカット】駅まで迎えに来てもらう連絡を自動化する【レシピあり】

f:id:Jo-Bitaki:20200222140651j:plain:h300

「帰宅時にバスに乗ったら、自宅の最寄り駅までの所要時間と到着時刻を自動的に算出してメールで送信する」というショートカットを自分用に作ったのでご紹介。
このショートカットは、駅まで迎えに来てくれる人に必要事項をメールするためのものです。位置情報などを取得し、「今××駅を通過しました。あと〇〇分で到着します。」といったメールを自動で作成できます。

この記事でできるようになること

バス(または電車)に乗ったタイミングで起動するだけで、
「今、○○駅でバス(または電車)に乗りました。●●駅には、△△分後の▲▲時ごろに着きます。」
といったメールを自動で作成できるショートカットを作れるようになります。

駅名や到着時刻も自動で取得するので非常に楽です。

そもそも「ショートカット」アプリとは?

ショートカットとは

iOSには「ショートカット」という公式アプリがあります。これはスマホの様々な操作を事前にプログラムしておくことで、一連の動作をボタン一つで自動的に実行できるようにするものです。iPhoneとiPadのいずれでも使用可能。 このアプリには「オートメーション」と呼ばれる、事前に設定した条件が満たされたらショートカットを自動的に実行する機能もあります。こちらについては以前の記事をご覧ください。

iPhoneのショートカットでFMトランスミッターの自動再生を試みた【レシピあり】

公式ドキュメント

実際にショートカットを作るときには、以下のサイトも参考にしてみてください。

ショートカットのレシピ

全体図

ショートカット全体の流れはこのような感じです。

f:id:Jo-Bitaki:20191104152704j:plain:w350

それでは、各アクションの詳しい説明をしていきます。

アクションの説明

※アクションによっては、入力としてマジック変数を指定する必要があります。

目的地の設定

目的地となる場所をあらかじめ指定しておきます。

f:id:Jo-Bitaki:20191024220205j:plain:w350

私の場合は自宅からの最寄り駅になりますが、バス停や商業施設など何でも大丈夫です。

メール本文の作成

「テキスト」にあらかじめ送りたいメールの内容を入力しておきます。

f:id:Jo-Bitaki:20191024220208j:plain:w350

{1}のような中かっこと数字は、あとで文字列を置換するための目印です。
目印の書き方にこれといった決まりはないので、例えば「【駅名】」など分かりやすいものを使ってください。本文の内容まで置換されないように、普通の文章では使わない記号を入れておくと良いです。

「名前を場所から取得」では最初に設定した「目的地」から名前を取り出し、「テキストの置き換え」でメール本文に場所の名前を埋め込みます。
わざわざ名前を取り出すのは、「場所」には名前以外に緯度経度などの情報も含まれるためです。

時刻と現在地の取得

現在の時刻と場所を取得します。

f:id:Jo-Bitaki:20191024220212j:plain:w350

「現在の日付」とありますが、時刻の情報も含まれています。

最寄りのバス停を取得

現在地から最も近いバス停を取得します。

f:id:Jo-Bitaki:20191024220216j:plain:w350

まずは「現在地周辺のバス停を検索」で付近にあるバス停をリストアップします。
一応距離の制限ができますが、取得内容を確認すると倍以上の距離があるバス停が入っていることもあります。そのため、距離の制限はあまり意味がなさそうです。

次に、取得したバス停のリストから「最初の項目を取得」することで最寄りのバス停を推定しています。
この操作は、「場所を検索したらその結果は現在地から近い順に並ぶだろう」という推測を前提としています。今のところ正しく動作しているため、この推測は間違ってはいないようです。

万全を期すならリストアップした各項目と現在地の距離をそれぞれ計算し、距離が最も短い項目を最寄りのバス停とすべきです。
しかし、残念ながらショートカットにはリストの最小値を取得するアクションがありません。

ちなみに最寄り駅を検索したいのなら、検索ワードを「駅」か「近くの駅」にすれば正しく動きました。近くに大きな駅がある場合、「最寄り駅」で検索すると、その大きな駅が本当の最寄り駅よりも優先的に先頭に来てしまいます

到着時刻の算出

目的地に到着する時刻を計算します。

f:id:Jo-Bitaki:20191024220220j:plain:w350

まずは交通機関での移動時間を取得し、その結果を数字に変換します。時間から変換された数字は常に単位が秒になるため、その後の操作で扱いやすいのです。

次に、算出した移動時間(秒)を、あらかじめ取得しておいた現在時刻に足すことで到着時刻を割り出します。

その後、到着時刻を文字列に変換します。
デフォルトでは年月日も出力されるため、「文字列をフォーマット」の項目で時刻のみを抽出しています。

メールの完成と送信

テキストの置換を使い、今までに取得してきた必要事項をメール本文に埋め込みます。

f:id:Jo-Bitaki:20191024220226j:plain:w350

最後に、完成したメール本文を任意の件名と宛先で送信します。

メール本文と同じ要領で、件名に乗車したバス停や駅の名前を埋め込めば、相手が要件をより早く把握できるでしょう。

結果

現在地と最寄りのバス停の取得に少し時間がかかる時もあります。
しかし、それを差し引いても格段に時間と手間を短縮できるようになりました。
特に、毎回変わる到着時刻をいちいち調べて入力する必要がないのは想像以上に楽です

ちなみに、ショートカットではメールに限らずショートメールやWhatsAppでもメッセージを送ることができます
ぜひお試しください。

おまけ:より正確な到着時刻を知らせる小技

私の環境では、ショートカットで算出された到着時刻と実際の時刻表とのずれは±3~5分といったところです。

このズレを許容できない場合、次のようにすれば到着時刻をより正確に知らせることができます。

まず、バスや電車に乗った直後にショートカットを使い、おおよその到着時刻を知らせておきます。

次に、「相手が自宅から目的地に移動するまでの所要時間」と「自分が今いる駅から目的に移動するまでの所要時間」が同じになるタイミングで相手に電話をかけ、相手が電話に出た直後に無言で電話を切ります。
無言なのは、電車では通話ができないからです。

こうした方法ならお互いそれほど手間ではないですし、到着時刻を確実に伝えられます。

関連記事

前回、ショートカットのオートメーション機能を使って音楽の自動再生を試みるという記事を書きました。
今回の記事では使わなかった「オートメーション」という機能を利用していますので、ぜひご覧ください。