nandemodou

AlexaとSwitchBotを連携して複数のことを1音声コマンドでやらせる方法


「宇宙から来た少女」「私は、神」少女はそう言った。「宇宙から来た少女」シリーズ。宇宙から来た不思議な少女と周囲の人々が織りなす、突拍子も無い物語が始まる!

★2024.01.30追記
また正しく動作しなくなったので、修正方法をUpしました↓

いつの間にかAlexaからSwitchBotのコマンドが消えていた

 

★★2023.10.1よりSwitchBotとAlexaが連携できなくなっておりましたが、↓以下の方法で再接続出来るようになりました!

【解決】AlexaとSwitchBotの連携を復活させる(2023.10.1から繋がらなくなった場合の対処・対策)方法

↑こちらの記事をご覧ください。

 

前記事「【解決】古いテレビだとAlexaでチャンネル変更できない!?」の続きです。

前回に引き続き、今回はAlexaとSwitchBot Hub miniを連携させて複数のコマンドを連続して実行させる方法をご紹介します。慣れないうちはかなり混乱してうまく行かず、多くの方が諦めてしまうのではないでしょうか? なので今回は、考え方・仕組みから実際のやり方まで、詳しくご紹介します!

■結構混乱する

実は、Alexaの中にある連続実行機能と、SwitchBotの中にある連続実行機能(以降「バッチ処理」と呼びます)をうまく使い分けないと、思っていた通りに連続実行させるのは難しいです……。^^;

ただ、実際にはそれらを「どう使い分けるとうまくいくのか」などの原理さえ分かれば、自由に実行させることが出来るようになります。

今回の目的は「Alexaに音声コマンドを一つ発声するだけで、複数の動作を実行してくれるようにすること」です。
具体的には私が帰ってきたらよくやる……

  1. テレビの電源をON
  2. テレビの入力をブルーレイレコーダーに切り替える
  3. ブルーレイレコーダーの電源をON
  4. ブルーレイレコーダーの再生リストを表示させる

の4つを連続でやってみたいと思います。

因みに私が使っているデバイスは

  • Panasonic TH-P50VT2(2010年発売) ※テレビ
  • Panasonic DMR-BZT700(2011年発売) ※ブルーレイレコーダー
  • Fire TV Cube ※ここにAlexaがついている
  • SwitchBot Hub mini ※赤外線リモコンコントローラー

です。

テレビとブルーレイレコーダーは両方ともSwitchBot Hub miniにリモコンを登録し、ほぼ全てのボタンが使えるようにしてあります。※方法は前記事をご覧ください。

最初にご理解いただきたいポイントを紹介します。

・AlexaとSwitchBotの関係を理解しよう

※目的は「Alexaに音声コマンドでバッチ処理(連続自動処理)をさせること」なので、前記事でご紹介した「AlexaとSwitchBot Hub Miniの連携」が完了している前提です。

この場合「Alexaが上位」で、「Alexaから見たら、SwitchBotに登録されているデバイスとシーンはどちらもデバイス」である点にご注意ください。そのため「Alexaから見れば、SwitchBotに登録されているデバイスもシーンもONかOFFしかできません」。
ここが(人間もAlexaも)混乱するポイントの一つです。

・バッチ処理させる機能はAlexaとSwitchBotそれぞれに存在する

さらにややこしくするのがバッチ処理機能が複数存在すること。
Alexaでは「定形アクション」
SwitchBotでは「シーン」
というのがそれぞれバッチ処理にあたり、これらを上手く連動させる必要があります。

・ウェイト(待機時間設定)はAlexaにしかない

そしてバッチ処理させる際に重要なのがこの「ウェイトの設定」です。

例えば……
1.テレビの電源をON
2.テレビの入力をブルーレイレコーダーに切り替える

この1と2の間に待機時間が必要です。理由は「電源をONにしてから、テレビが入力切替を受け付ける事ができるようになるまでには数秒待つ必要があるから」です。これを無視した場合、入力切替が反応しません。

同様に
3.ブルーレイレコーダーの電源をON
4.ブルーレイレコーダーの再生リストを表示させる
の間にもウェイトが必要です。

そしてこのウェイトの設定はAlexaにしかありません。

ここまで理解できれば後は結構簡単です。



■バッチ処理を設定する

今回の場合、テレビもブルーレイレコーダーもSwitchBotのデバイス(SwitchBot Hub Miniに登録したリモコン)として
動作させます。そのため、先にテレビとブルーレイレコーダーのリモコンをSwitchBot Hub Miniに登録して「必要なボタンが全て使える」ようにしておいてください。
※やり方は前記事をご参照ください。

一旦考え方を整理しますね。

  • SwitchBotでバッチ処理をさせるには「シーン」を作る。
  • Alexaでバッチ処理をさせるには「定形アクション」を作る。
  • Alexa側で操作できるのは「電源のON・OFF」と「ウェイト設定」くらい。その他のリモコン操作はSwitchBotでやる。
  • Alexaから見ると、SwitchBotのシーンもデバイスも両方「デバイス」として扱われる。そのためON・OFF以外のSwitchBotで必要な動作は全てSwitchBotのシーンとして登録する。

ここまでOK?

次に実際にやる事を整理します。

  1. (Alexa)テレビの電源をON
  2. (Alexa)10秒ウェイト
  3. (SwitchBotのシーン)テレビの入力をブルーレイレコーダーに切り替える
  4. (Alexa)ブルーレイレコーダーの電源をON
  5. (Alexa)10秒ウェイト
  6. (SwitchBotのシーン)ブルーレイレコーダーの再生リストを表示させる

あれ? 10秒ウェイトが2回発生してますね。
このままだとウェイトだけで20秒待ってしまうことに。
ウェイトの理由は「電源を入れてから赤外線リモコンに反応するまで待たせること」なので、これを一つにまとめたほうが良さそうです。
そこで、↓こんなふうに変更して、動作時間を短くします。

  1. (Alexa)テレビの電源をON
  2. (Alexa)ブルーレイレコーダーの電源をON
  3. (Alexa)10秒ウェイト
  4. (SwitchBotのシーン)テレビの入力をブルーレイレコーダーに切り替える
  5. (SwitchBotのシーン)ブルーレイレコーダーの再生リストを表示させる

・Alexaからは直接SwitchBotのリモコンボタンを操作できない

先に書きましたが「AlexaはSwitchBotのデバイスもシーンも、両方デバイスとして認識」します。そのため、AlexaにとってはSwitchBotのリモコンに「どんなボタンがあるのか」が分かりません。

そのため……
例えば、Alexaに「SwitchBotのテレビの入力切替ボタンを押す」という動作をさせるには、SwitchBot側で「テレビの入力切替ボタンを押す」というシーンを作成する必要があります。

そしてAlexa側では「テレビの入力切替ボタンを押すというシーン」という名前のデバイスをON・OFFさせる。という考え方です。AlexaとSwitchBotを連携させる場合「AlexaはSwitchBotのデバイスをON・OFFさせるもの」だと思ってください。

SwitchBotのシーン = ボタン動作(1つのボタンを押すのも複数のボタンを押すのもどちらもシーンとして作成する)です。

それでは実際にやってみましょう!



■実際にやってみよう

Alexaが上位、つまりSwitchBotのシーンをAlexa側で呼び出すので、先にSwitchBotの設定を行います。

 

★★AlexaアプリやSwitchBotアプリのVersionが新しくなって見た目が変わっておりますが、設定する内容や名称は同じなので、似たものを探してみてください。

 

・SwitchBotを設定する

・「4.(SwitchBotのシーン)テレビの入力をブルーレイレコーダーに切り替える」を作る

1.SwitchBotアプリを立ち上げて「シーン」をタップ

2.右上にある「+」ボタンをタップ

3.「新しいシーン」と書かれたタイトルの右にある「鉛筆アイコン」をタップ

4.シーンの名前を「ブルーレイに切り換える2」に変更
※既に1個作成してあるので、個人的な都合で以降の名前には2を入れています

5.「確認」をタップ

6.「条件を追加」をタップ

7.「手動実行」をタップ

8.「アクションを追加」をタップ

9.「テレビ」をタップ

10.「入力切替」をタップ

11.中段にある「下記のアクションを実行します」の右側にある「+」をタップ

12.「テレビ」をタップ

13.下へスクロールしてチャンネルボタンの「5」をタップ
※私のテレビでは入力切替を押してから5を押すとブルーレイ入力に切り替わるので5を押しています。ご自分の環境に合わせて変更してください。

14.右上の「チェックマーク」をタップして保存

・「5.(SwitchBotのシーン)ブルーレイレコーダーの再生リストを表示させる」を作る

1.SwitchBotアプリを立ち上げて「シーン」をタップ

2.右上にある「+」ボタンをタップ

3.「新しいシーン」と書かれたタイトルの右にある「鉛筆アイコン」をタップ

4.シーンの名前を「ブルーレイのメニュー2」に変更
※既に1個作成してあるので、個人的な都合で以降の名前には2を入れています

5.「確認」をタップ

6.「条件を追加」をタップ

7.「手動実行」をタップ

8.「アクションを追加」をタップ

9.「ブルーレイ」をタップ

10.下へスクロールして「メニュー」をタップ
※私はここに再生リストボタンを登録しています

11.右上の「チェックマーク」をタップして保存

SwitchBotの設定はここまでです。
次にAlexaに登録していきます。

・Alexaを設定する

1.Alexaアプリを立ち上げて「その他」をタップ

2.「定形アクション」をタップ

3.右上の「+」をタップ

4.「定形アクション名を入力」をタップ

5.「ビデオをオンにする」など好きな名前を入力

6.「次へ」をタップ

7.「実行条件を設定」をタップ

8.「音声」をタップ

9.「ビデオをつけて」など「Alexaに呼びかけるコマンド」を入力
※ウェイクワード(アレクサ、など)は入力しない

10.「次へ」をタップ

11.「アクションを追加」をタップ

12.「スマートホーム」をタップ

13.「すべてのデバイス」をタップ

14.「テレビ」をタップ

15.「次へ」をタップ
※これでテレビをONが入りました。

16.「アクションを追加」をタップ

17.「スマートホーム」をタップ

18.「すべてのデバイス」をタップ

19.「ビデオデバイス」をタップ
※私はブルーレイを「ビデオデバイス」として登録しています。理由はAlexaが「ブルーレイ」という言葉を認識しづらいから。さらに「デバイス」とつけないと他のコマンドと混ざるので、区別するためにつけています。

20.「次へ」をタップ
※これでブルーレイをONが入りました。

21.「アクションを追加」をタップ
※ウェイトを追加します。

22.下へスクロールして「待機」をタップ

23.「00:00:10」に設定して「次へ」をタップ
※ここがウェイトタイムです。5秒だと出来たり出来なかったりするので、安全策として10秒にしています。

24.「アクションを追加」をタップ
※入力切替をブルーレイにします。

25.「スマートホーム」をタップ

26.「シーンをコントロール」をタップ

27.「ブルーレイに切り替える2」をタップ
※先に名前をつけたシーン

28.「追加」をタップ

29.「アクションを追加」をタップ
※再生リストを表示するを追加します。

25.「スマートホーム」をタップ

26.「シーンをコントロール」をタップ

27.「ブルーレイのメニュー2」をタップ
※先に名前をつけたシーン

28.「追加」をタップ

この時点ではまだ動作順番が狂っているので修正します。

29.「ブルーレイのメニュー2」の右側にある二重線を長押しして一番下へ移動

30.「ブルーレイに切り替える2」の右側にある二重線を長押しして「10秒待機する」の下へ移動

31.右上の「保存」をタップ

お疲れさまでした。これで一連の登録が完了しました。
実際にコマンドが使えるようになるまでに1分ほどかかる様です。



■テストしよう!

では、先に登録したコマンド

「Alexa、ビデオをつけて」※定形アクションの実行条件で設定したコマンド。

と言ってみましょう!
どうです? うまくいきました?

因みに今回の設定は「テレビとブルーレイ両方の電源がOFFになっている」という前提です。もし、ONになっていたらOFFにされてしまうのでご注意ください。

さらに「テレビだけONの状態からやりたい」場合は、今回作ったAlexaの定形アクションを複製して、テレビの電源をONにする項目を削除すればOKです。その際、音声コマンドが混ざらないように「ビデオ2をオン」などにしておきましょう。

ここまで理解できれば、後はアイディア次第で様々なことが出来るようになります。

⇒「おはよう」と言ったら 電灯をON、テレビをON、エアコンをON、カーテンを開ける
などなど……夢は膨らみます。^^;

是非、お好みの設定を追加して、楽しいスマートホームライフを♪

そ宇宙から来た少女 「私は、神」少女はそう言った。 「宇宙から来た少女」シリーズ 宇宙から来た不思議な少女と周囲の人々が織りなす、突拍子も無い物語が始まる!