SwitchBotHub非対応のシーリングライトをAlexaでなんとかコントロールできるようにした

この方法はAlexaのIFTTT非サポート化により使えなくなりました。


## 経緯

最近引っ越した部屋はシーリングライトが付けられておらず、自分で購入する必要がありました。
そこで以下の商品を購入したのですが、リモコンがBluetooth方式になっており、赤外線でコントロールするSwitchBotHubには登録できないことに気づき絶望しました。
https://amzn.asia/d/dkWy83H
<img src= "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276059/51cfc307-6424-4082-acf5-2c43dcdd3e60.png" width="500px">

しかし！自分にはSwitchBot Switchがある！これで物理スイッチを押してやると考えたのですが、部屋にシーリングライトの壁面スイッチがなく、また絶望しました。SwitchBot Switchでシーリングライトのリモコンを押すことも考えたのですが、ボタンが小さくうまくいかなそうだったので諦めました。
<img src= "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276059/ee11f405-62d2-8b8a-c93d-0619de771aee.png" width="500px">

そこで、使っていなかったAndroidタブレットとMacroDroid、IFTTT、Alexaを連携させることで音声で点灯消灯できるようにできたので解説します。

## 解説

1. 使っていないAndroidタブレット(Androidスマホでも可)に[MacroDroid](https://play.google.com/store/apps/details?id=com.arlosoft.macrodroid)アプリとこのシーリングライト用のアプリ[LampSmart Pro](https://play.google.com/store/apps/details?id=com.jingyuan.lamp&pli=1)と[IFTTT](https://play.google.com/store/apps/details?id=com.ifttt.ifttt)をインストールします。

2. LampSmart Proアプリで電気が消せるように設定しておきます。

3. 設定>ユーザー補助>MacroDroidをON MacroDroid UI画面操作もONにします。
<img src= "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276059/fe0d2476-51ce-305a-0f4c-8f520bd16150.png" width="500px">

4.設定>システム>開発者向けオプションを開きます。
開発者向けオプションを有効にしていない人はこの記事を参考に有効化してください。
[開発者向けオプションを有効にする方法](https://onl.bz/L9h8Pab)

5.開発者向けオプションの中のスリープモードにしないをON

6.開発者向けオプションの中のポインタの位置をON

7.MacroDroidを開きMacroDroidの設定からバッテリー最適化を除外

8.MacroDroidのホームを開きマクロを追加ボタンをタッチ

9.マクロ名に「Alexaでライトを消す」と入れる

10.LampSmart Proを開きオンオフのトグルボタンに指を置いている状態でスクショを撮る
<img src= "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276059/66844e5b-6eb0-e2b1-4846-059a2dcd7f8a.png" width="200px">

11.MacroDroidの作成中のマクロを開き、アクションを追加>機器の操作や動作>UI画面操作>クリック>XY座標

12.先ほどのスクショの上部にXY座標が乗っているのでその値を入れる。
クリック結果を待たない設定にする。

13.トリガーを追加>Webhook(URL)を開き識別IDにLampControlと入れる

14.URLをコピー

15.IFTTTアプリを開き、適当に登録を完了させます。

16.作成するボタンをクリックしIF ThisのところにAlexa>Say a speciffic phaaseを選択しWhat phaase?の欄にLightと入力します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276059/1ba528a0-5cba-3cb1-fb0e-1c67bacca5c2.png" width="200"> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276059/d8ebcec8-951b-9a3b-30a0-0504385893f0.png" width="200"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276059/3e8ec9c6-14b2-ab15-ff3c-8011f9ac1f2f.png" width="200">

17.続けるをタッチし この辺りで自分のAmazonアカウントへのログインが求められるのでログインしておきます。

18.Then Thatを選択>Webhook>Make a Web requestを選択します。

19.Webhookの設定画面で、URLに先ほどコピーしたMacroDroidのURLを入れMethodはGETに変更しその他のオプションはそのままで続けるボタンを押します。
<img src= "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276059/c52aa14c-78e2-79cd-4d87-ddffd51c1c20.png" width="200px">

20.IFTTTの設定が完了しました！ MacroDroidを開きます。マクロを保存し有効化させます。

21.LampSmart Proのアプリを開き、Alexaに「ライト」と言ってみましょう。
うまくいきましたか？
うまく行った場合もあると思いますが、おそらく「すみません、ライトというグループまたはデバイスを見つけられませんでした」と言われてしまったかと思います。
これはAlexaの認識ワードとして「ライト」という言葉は認識されづらいためです。

22.Alexaアプリを開き定型アクションを追加します。実行条件で音声を追加
「ライトつけて」
「ライトけして」
「らいと」
「でんき」
というように複数のワードを追加し認識されやすくします。

23.AlexaのアクションでIFTTTを選択しLightを追加します。保存ボタンを押して再度、音声認識してくれるか試します。
精度が悪い場合はワードを調整します。

24.設定済みのスマホは充電ケーブルに繋いだまま、スリープにせずどこかに置いておきます。


これで完成です。
ぜひ試してみてください。
動かない場合はコメントください。