【VUI 2022】スマート電球 2種を声で制御： Alexa と IFTTT の SwitchBot・TP-Link Tapo の組み合わせ

## はじめに
この記事は、以下の [VUI Advent Calendar 2022](https://qiita.com/advent-calendar/2022/vui) の 17日目の記事です。

## この記事の内容
この記事では、最近自分が入手したスマート電球（異なるメーカーのもの 2種類 ⇒ SwitchBot と TP-Link のもの）を、Alexa経由で操作してみた時の話です。その実現方法について、スキル連携をする方法でもできますが、それとは別の IFTTT を使った方法でやってみました。

ちなみに、スキル連携でやるとすると、自分が買った 2種の製品の場合は以下のスキルで実現できます（※ アカウントリンクを使うやり方）。

- [Amazon.co.jp: スイッチボット : Alexa Skills](https://www.amazon.co.jp/Wonderlabs-Inc-%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%83%9C%E3%83%83%E3%83%88/dp/B078S7B2FG)
- [Amazon.co.jp: Tapo : Alexa Skills](https://www.amazon.co.jp/TP-Link-Tapo/dp/B07TFDRB34)

### 実際の動作
実際に動作させた時の様子は、スマホで撮ってツイートしました。

https://twitter.com/youtoy/status/1603986759511310337

このように、「2つの電球を点灯させる動作」と「片方の電球を消灯させる動作」をそれぞれ実行できました。

ちなみに、ここで Alexa を動作させるために使っているデバイスは、今は入手できなくなってしまった「Echo Flex（人感センサーを接続した状態のもの）」です。
![Echo Flex と人感センサー](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/b71eb3f7-dfcb-5b89-76ef-82bc1355f541.png)

## 操作対象のスマート電球（2種類）
今回、声で制御したデバイス 2種は、以下のスマート電球です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/7f89b0f7-304b-7cfb-4b91-897bca50e72c.png)

●SwitchBotスマート電球｜目に優しく、安定して作動するスマートLED電球 – SwitchBot (スイッチボット)
　https://www.switchbot.jp/products/switchbot-color-bulb
●Tapo L530E | マルチカラー対応 スマートLEDランプ | TP-Link 日本
　https://www.tp-link.com/jp/home-networking/smart-bulb/tapo-l530e/

## IFTTT でのスマート電球制御
### IFTTT で Alexa を使う
IFTTT で Alexa を使っていきます。
Alexa を IFTTT のトリガーで使う場合、選べるものは以下の通りです（全部で16個）。
![Alexa を IFTTT のトリガーで使う（全体）](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/95da14e2-7137-38c1-5794-1bb6ab84ec90.png)

半分ずつ見ていくと、上半分は以下の通りです。
今回は、この中の左上に出てきている「Say a specific phrase」を使います。
![Alexa を IFTTT のトリガーで使う（半分1）](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/97dc0c87-0d05-8e9b-8fc0-c3fef3e1b8e3.png)
そして、下半分は以下の通りです。
![Alexa を IFTTT のトリガーで使う（半分2）](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/5893ca5a-143e-c7c6-a2bc-fb822e85ac94.png)

なお、Alexa 以外の AIアシスタントでは、Googleアシスタントもあります。
Googleアシスタントの場合に選べる内容は、以下の 1つのみです（以前は、もっといろいろな種類があったのですが...）。
![Googleアシスタントの場合](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/bb4c1c4c-0af2-5880-06a4-d548b7514934.png)

### IFTTT で TP-Link Tapo を使う
次に TP-Link Tapo のアクションを見ていきます。全部で以下の 6つです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/35260491-f6fe-cd0a-5e60-fbdf26b491c7.png)

### IFTTT で SwitchBot を使う
ここでは SwitchBot のアクションを見てみます。
![SwitchBot のアクション](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/1e9e49c5-e66b-9743-9c33-8bda089b8670.png)

選べる内容について、3つに分けて掲載してみると、このようになります。
![SwitchBot のアクション1](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/971ccf16-d253-6abe-2190-5cd063df9933.png)
![SwitchBot のアクション2](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/62f42de6-0abe-c508-f63e-84c0ebbbb746.png)
![SwitchBot のアクション3](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/c37f252f-412e-a9c8-8360-e14542f53195.png)

たくさんありますが、英語で書かれたものと日本語で書かれたものが混じっている部分は、同じ機能の英語版と日本語版があるように見える...

### IFTTT で Alexa と TP-Link Tapo を組み合わせる
それでは、上で見てきた Alexa と TP-Link Tapo を組み合わせたものを、IFTTT で作っていきます。ここでは、スマート電球を消す動作をさせるものを作ります。

利用されたことがある方にはおなじみの、この画面から。
If This にある「Add」を選びます。
![作成画面の最初](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/a7907d53-7060-3a5c-eacf-dffd22f4d797.png)

そして、alex くらいまで文字を入れて検索すると、Amazon Alexa がフィルタされて残ります。これを選びます。
![Amazon Alexa がフィルタされた状態](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/ca1f49fe-c506-171e-ade7-101ae700e9f6.png)

ここで Alexa のアカウントと IFTTT とを連携させておきましょう。
そして、以下の左上に出てきている「Say a specific phrase」を選びます。
![Alexaのトリガー一覧](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/d9985f99-547f-a5ef-a1f4-62fc3766e622.png)

TP-Link のスマート電球は寝室に置いているので、フレーズは「寝室のライトを消して」にしました。
![フレーズの設定など](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/58ea8510-a45c-04ad-f144-96ca0f40f6eb.png)

次に Then That　の「Add」を選びます。
![Then That　のほうを設定していく](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/ad0e03fd-3e68-7762-1b58-4046fc3e263c.png)

tapo と入力して、TP-Link Tapo を検索しました。これを選びます。
![TP-Link Tapoが残った状態](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/2326be0c-2101-ae5f-6528-75aca09680e5.png)

ここで、IFTTT と TP-Link Tapo のアカウントは連携させた状態にしておきましょう。
そうするとデバイスの部分で、TP-Link Tapo のアプリ上でスマート電球につけた名前を選ぶことができるようになります。
![デバイスの選択](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/cb000705-d27e-f927-317c-4175d3c6bee1.png)

これで IFTTT のトリガーとアクションを設定できました。
![トリガーとアクションを設定した状態](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/7182d221-2e7a-f8dc-42b9-3879d0d15e1e.png)

これで、Alexa に話しかけて TP-Link のスマート電球を消せるようになりました。
今回使った IFTTT で Alexa をトリガーに使う機能を呼び出す場合、「アレクサ、トリガー」という内容をしゃべってから自分が決めたフレーズをしゃべる形になります。
上で設定した内容の場合は、「アレクサ、トリガー、寝室のライトを消して」となります。

### スマート電球全てを点灯させる
さらに、上で見てきた Alexa と TP-Link Tapo と SwitchBot を組み合わせたものを、IFTTT で作ってみます。ここでは、全てのスマート電球を点灯させるものを作ります。
作るのはアクションが 2つあるものとなり、これは Proプラン以上でないと作成できないものですので、ご注意ください。

トリガーの部分は、Alexa で「ライトを全部つけて」というフレーズを使うように設定しました。
![トリガー](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/087e88c1-9dfc-60e1-317a-619eaa5356b6.png)

そして、アクションを 2つ設定していきます。
1つ目は SwitchBot になりますが、SwitchBot のアカウントを IFTTT に連携させておきましょう。

アクションは「電球をオン／オフにする」を選んでいます。
設定では、SwitchBot アプリ上でスマート電球につけた名前のものを選ぶことができるので、それを選びます。そして、「オンにする」⇒「インスタント」という内容を設定しました。
![SwitchBotでのアクション](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/4bb7dd2e-5da3-3a80-a029-1ae6c1a09038.png)

さらに TP-Link Tapo のアクションを設定します。
ここでは TP-Link Tapo のアプリ上で設定した、ショートカットを使うアクションを選んでいます。アプリ上で「自動調整で電球を点灯」というショートカットを事前に作成している状態なのですが、それをショートカットとして選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/18870122-eebd-5fe2-81b1-dc9be572f2a2.png)

TP-Link Tapo のアプリのショートカットで設定している内容を、以下に掲載しておきます。
![ショートカット一覧](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/8062b0e5-565a-d07b-94c3-98979b7b80a5.png)
![自動調整で点灯させるアクション](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/27dde75c-4297-a71f-ab40-d583d1843186.png)

作成完了後は、全体がこのようになりました。
![作成完了後](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/88071220-1152-e2c8-d3f2-5dc85b67a28f.png)

これを実行すると、2つのスマート電球を点灯させることができます。

### 上で作ったアプレット 2つを実行する
上で 2つのアプレットを作りましたが、それを実際に実行してみます。
冒頭に掲載したツイートの再掲となりますが、以下のように声で制御することができました。

https://twitter.com/youtoy/status/1603986759511310337

この動画の内容について、少し内容を補足します。

左側にあるスマート電球はカラーで光っていますが、これは IFTTT上で設定した内容ではありません（IFTTT で設定したのはスマート電球をオンにするだけでした）。
カラーで光ったのは、消灯させる前に以下の設定で光らせる設定にしていたのが、そのまま維持されていたのがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/7d4d327a-ec96-48ab-a4c5-0dfb73992f4e.png)

それと、IFTTT のフレーズで設定した内容と、しゃべっている内容に少し違いがありますが、そこは完全一致ではなくても（少し違いがあっても）違いを吸収してくれます。

## 【追記】 余談
余談になりますが、この翌日に書いた記事でも VUI に関する内容を書きました。
具体的には、iPhone の Siri に話しかけて、複数の LINE のグループに通知を送る、という内容です。

VUI関連つながりということで、もしよろしければ、こちらもご覧ください。

●【LINE DC 2022】iPhone の Siri を声で操作して複数のグループに LINE通知（LINE Notify・IFTTT・ショートカットアプリを組み合わせて） - Qiita
　https://qiita.com/youtoy/items/4534daf4d44f330ed1ab

https://twitter.com/youtoy/status/1604268474528038917

## IFTTT について書いた過去の記事
今回の記事で使った IFTTT は、過去にも Qiita の記事を書いたことがあります。
具体的には以下の内容でした。

- [【NoCode 2020】 MQTTブローカーの shiftr.io と IFTTT の Webhook をつなぐ（shiftr.io の HTTP Interface） - Qiita](https://qiita.com/youtoy/items/c690e2f1aa064e6dd289)
- [【NoCode 2020】IFTTT Pro の新機能活用を模索： Googleカレンダー連携をクエリーで使う方向性（まだ模索中） - Qiita](https://qiita.com/youtoy/items/8439d987ec07aadf1329)
- [【IoTLT 2020】 micro:bit を使った IoT（Grove - UART Wifi V2 との組み合わせ、IFTTT利用） - Qiita](https://qiita.com/youtoy/items/459289951134544e73eb)
- [【スマートスピーカー 2020】 IFTTT で Alexa・Google Assistant を利用して IFTTT Pro の新機能（クエリー・フィルター）との組み合わせも試す - Qiita](https://qiita.com/youtoy/items/ab6747622d137fcadead0)
- [【NoCode 2020】 IFTTT Pro の新機能 3つ（クエリー・フィルター・複数のアクションの実行）の内容をチェックしてみる！ - Qiita](https://qiita.com/youtoy/items/a5e70c1dbf1c78eb94fa)
- [MESH と LINE Notify を IFTTT を使って連携させる 【LINE Developer Community（ #linedc ） #GWアドベントカレンダー】 - Qiita](https://qiita.com/youtoy/items/55265567c8f892594bc8)