ショートカットアプリと Raspberry Pi を使ってスマートスピーカーっぽいことをやってみる


Raspberry Pi で何かしたいなーと思い購入してから早1年
そろそろ埃が被り始めてきたので引っ張り出して活用してあげたいと思います

iOS12 より、ショートカット という標準アプリが増えました
このアプリを活用すると、複数の操作をワンタップで実行できるように設定できたりします

このアプリでは、登録したショートカットを Siri から実行できる機能も含まれています

そこで、このショートカットアプリを使用すると
**「電気付けて」→ Raspberry Pi へ接続　→ 部屋の電気が点灯する**
みたいなことができるんじゃないかなーと思い、試してみることにしました


#開発環境

- デバイス側
 - iOS12.1
 - iPhone SE

- Raspberry Pi
 - Raspberry Pi3 Model B


#やりたいこと
「ショートカットアプリを使って部屋の電気を点灯させる」

ただ、Raspberry Pi で部屋の電気を点灯させることに関しては他の人がいっぱいやってらっしゃるかと思うので今回は割愛し、

**「ショートカットアプリを使って Siri から Raspberry Pi へ接続する」**

というところまでやってみたいと思います


<h1>Raspberry Pi 側の準備</h1>

Raspberry Pi に同一 LAN 内から SSH 接続できるようになるところまで設定しています

※Raspberry Pi の設定は参考に記載した記事を参考にさせていただきました

<br>


#iPhone（ショートカットアプリ）から Raspberry Pi へ SSH 接続してみる

iOS12 から追加された Apple 純正のアプリ、[ショートカットアプリ](https://itunes.apple.com/jp/app/%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88/id915249334?mt=8)を使用します



##1. ショートカットを作成

<img width="320" alt="IMG_2231.png" src="https://qiita-image-store.s3.amazonaws.com/0/311018/81c02462-8f93-14c6-6eb9-8078a3fcc621.png">

ショートカットアプリを起動させると、上記のような画面が表示されるので、
「ショートカットを作成」をタップします


<br>


##2. SSHを検索
<img width="320" alt="IMG_2231.png" src="https://qiita-image-store.s3.amazonaws.com/0/311018/df3933a7-9f07-9b13-c3d7-f7cfcb640c87.png">

検索欄に「ssh」と入力し、表示される「SSH経由でスクリプトを実行」を選択します

<br>



##3. Raspberry Pi にアクセスするための情報を入力
<img width="320" alt="IMG_2234.png" src="https://qiita-image-store.s3.amazonaws.com/0/311018/19fe9605-ae2a-e781-678f-3caf318fe4f2.png">

Raspberry Pi にアクセスするために必要なホスト名、パスワード等を入力します

ここまでの作業でワンタップで Raspberry Pi に iPhone 上からアクセスできるようになりました

<br>


##4. スクリプトを設定

しかし、これだけでは Raspberry Pi にアクセスするだけで終わってしまうのですが、
実行するスクリプトも一緒に登録することができます
<img width="320" alt="IMG_2234.png" src="https://qiita-image-store.s3.amazonaws.com/0/311018/e69645ad-0fa6-8f4f-9721-037cb6403d8e.png">


上記ではテストとして `/etc/` 以下に `test_script` というファイルを作成するようにしています

ここにスクリプトを書くことで、SSH 接続完了後に Raspberry Pi に行わせたい処理を指定することができます

<br>

##5. Siri の設定

<img width="320" alt="IMG_2234.png" src="https://qiita-image-store.s3.amazonaws.com/0/311018/12d3eee9-8a6c-d913-d99f-8cc4f47c2635.png">  **→**  <img width="320" alt="IMG_2234.png" src="https://qiita-image-store.s3.amazonaws.com/0/311018/d5a10960-2753-b546-bcac-a26f06893fb3.png">



右上のスイッチのようなボタンをタップし、名前を設定します
Siri で起動する際に使用するので簡単な名前にしておきましょう

ここでは、よりスマートスピーカーっぽさを出すために「電気つけて」としておきます


<br>

次に 「Siriに追加」をタップし、Siri からショートカットを起動するための設定を行ないます
<img width="320" alt="IMG_2236.png" src="https://qiita-image-store.s3.amazonaws.com/0/311018/74183c82-ddc7-d6d4-6279-8dd6cb1dd18e.png">


#動かしてみる

以上の流れで
Siri 起動 → 「電気つけて」 → Raspberry Pi へ接続 → スクリプト実行
の流れが完成しました！

<br>
<br>

実際に Siri からショートカットを呼び出してみるとこんな感じになります
<img width="320" alt="IMG_2242.png" src="https://qiita-image-store.s3.amazonaws.com/0/311018/e1864085-85a1-731a-3420-43a972a9b6fa.png">

スマートスピーカーっぽく実行できました！


ここまでできたら、あとは実行したいスクリプトを自由に変えることで、
Siri から Raspberry Pi にアクセスし、色々なスマートスピーカーっぽいことが手軽に可能になります！




#まとめ

iPhone から Siri を用いて SSH 接続で Raspberry Pi に接続することができました！

現状では同一 LAN 内に制限されたり、電気をつけるだけの処理になってしまったりしているので、
今後はもっと拡張していきたいと思います



#参考

 - [Raspberry Pi3のLAN外からのSSH接続設定方法](https://qiita.com/3no3_tw/items/4b5975a9f3087edf4e20)