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

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

ジョー・ヒタギ の 止リ木

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

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

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

「ショートカット」アプリについて

ショートカットとは

iOSには「ショートカット」という公式アプリがあります。これはスマホの様々な操作を事前にプログラムしておくことで、一連の動作をボタン一つで自動的に実行できるようにするものです。iPhoneとiPadのいずれでも使用可能。

このアプリには「オートメーション」と呼ばれる、事前に設定した条件が満たされたらショートカットを自動的に実行する機能もあります。こちらについては[以前の記事](https://www.joe-hitagi.com/entry/ios-shortcut-auto-play)をご覧ください。

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

公式ドキュメント

iPhone や iPad でショートカット App を使う - Apple サポート

ショートカット ユーザガイド - Apple サポート 

ショートカットのレシピ

全体図

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

次項でそれぞれの動作について説明します。作り方の参考になれば幸いです。

アクションの説明

適宜、アクションの入力にマジック変数を指定する必要あり。

目的地の設定

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

あらかじめ場所を指定しておきます。今回の場合は自宅からの最寄り駅になりますが、バス停や商業施設など何でも大丈夫です。

メール本文の作成

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

「テキスト」にあらかじめ送りたいメールの内容を入力しておきます。{1}のような中かっこと数字は、あとで文字列を置換するための目印です。目印の書き方にこれといった決まりはないので、【駅名】など分かりやすくて一意に特定できるものを使えばいいと思います。

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

時刻と現在地の取得

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

最寄りのバス停を取得

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

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

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

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

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

到着時刻の算出

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

交通機関での移動時間を計算した後に数字に変換します。変換された数字は常に秒になるので扱いやすいのです。

この秒数をあらかじめ取得しておいた現在時刻に足すことで到着時刻を割り出します。その後、到着時刻を文字列に変換。デフォルトでは年月日も出力されるため、「文字列をフォーマット」の項目で時刻のみを抽出しています。

なお私の環境では、算出された到着時刻と実際の時刻表とのずれは±3~5分といったところです。到着時刻をより正確に知らせたいとき、私は次のようにしています

まず、バスや電車に乗った直後に本ショートカットを使い、おおよその到着時刻を知らせておきます。
次に、「自宅~到着駅までの所要時間」と「自分が今いる駅~到着駅までの移動時間」が同じになるタイミングで相手に電話をかけ、相手が電話に出た直後に無言で電話を切る(電車では通話ができないので)。
こうした使い方ならお互いそれほど手間ではないですし、相手に到着時刻が伝わったことを自分も確認できます。

メールの完成と送信

テキストの置換を使い、メール本文に必要事項を埋め込みます。

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

完成したメール本文を任意の件名と宛先で送信して完了。

メール本文と同じ要領で、件名に乗車したバス停や駅の名前を埋め込めば、自分の居場所や到着時刻がより相手に伝わりやすくなっていいかもしれません。

結果

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

ショートカットではメールに限らずショートメールやWhatsAppでもメッセージを送ることができます。これらも機会があれば試してみたいものです。

関連記事

先にも述べましたが、ショートカットのオートメーション機能を使って音楽の自動再生を試みるという記事を以前に書きました。
結果は完全な成功ではなく半自動とでもいうべきものでしたが、お時間があればぜひご覧ください。