Alexaから家電を操作したい
これまでで、Raspberry Piに接続した赤外線LEDで家電が操作できるようになりました。
また、Siriを用いることで音声にも対応しましたが、やっぱりAlexaから操作したいですよね。
今回はAlexaとRaspberry Piを接続して音声で家電を操作できるようにします。
Node-RED Alexa Home Skill Bridge
今回はAlexaとRaspberry Piとの接続にNode-RED Alexa Home Skill Bridgeというサービスを利用します。
簡単に言うとRaspberry PiのNodeREDとAlexa間の仲介を行ってくれるサービスです。
以下のサイトから登録します。
登録ができたら、使用する家電の名前を登録していきます。
ここでの名前がAlexaにデバイスとして登録されます。
Actionは「ON / OFF」を付けます。
私のAmazon Echo Flexはリビングにあるので、「エアコン付けて」と言えばリビングのエアコンが付き、「寝室のエアコンを付けて」といえば寝室のエアコンがつくようにしています。
Alexaの定形アクションを使えば好きな言葉に変えることもできるので、デバイス名は適当でも最悪大丈夫です。
つぎにAlexaにスキルを追加します。
アプリからでもOKです。
Raspberry PiでNodeREDの準備
NodeREDのインストールは省略しますが、大抵の場合プリインストールされています。
NodeREDのインストール、起動が終わったら、ブラウザからアクセスします。
Raspberry PiのIPアドレスの1880番ポートに接続します。
http://ラズパイのIPアドレス:1880/
このような画面が出ればOKです。
Node-RED Alexa Home Skill Bridgeと接続するプラグインを導入します。
右上のボタンからパレットの管理を選択します。
「ノードを追加」を選び、「node-red-contrib-alexa-home-skill」で検索して追加してください。
すると画面右側に以下のようなアイコンが現れます。
これをドラッグして挿入します。
このようにdebugノードとexec(プログラム実行ノード)をつなぎます。
Alexa Homeをダブルクリックして、設定画面を開きます。
右の鉛筆マークをクリックして先程作成したHome Bridgeのアカウントでログインします。
ログインに成功すると、先程追加したデバイスが表示されるので選択して完了を押します。
これでAlexa Home側はOKです。
次にexecノードをダブルクリックします。
このように、エアコンをon/offするスクリプトのフルパスを指定します。
引数としてmsg.payloadを使います。
引数としてtrueやfalseといったデータでAlexaから送られてくるので、この引数に対応したシェルを作る必要があります。
これで完成です。
AlexaのWEBサイトからデバイスを検索します。
以下のように表示されればAlexaから認識されています。
Alexaから家電を操作する
AlexaとRaspberry Piとの接続が完了したら、Alexaに向かって「アレクサ、寝室のエアコンを付けて!」としゃべるだけで自動的にエアコンの電源が入ります。
エアコン以外でも同様の手順でシーリングライトや赤外線に対応した家電なら何でも作動させることが可能です!
今回は寝室のRaspberry Pi 3にNodeREDを導入してエアコンを操作しましたが、リビングにあるRaspberry Pi zero WHに対して3からSSHでコマンドを実行すればリビングの家電も操作できます。
他にもAlexaの定形アクションを使えば、「アレクサ、行ってきます」といえば家のエアコンとライトをすべて消すことも可能です。
また、Alexaを使うことのメリットとして、特に特別な設定不要で外出先から家電を操作できます。
スマホにAlexaアプリを入れれば外から簡単に家電のON/OFFができます。
最後に
これで今までRaspberry Piからコマンドを叩く、もしくはiPhoneから操作することで家電をRaspberry Piから操作していましたが、Alexaから可能になりました。
音声での家電操作はスマートホームの醍醐味です。
ぜひやってみてください。
コメント