Alexaスマートホームスキル『Node-RED』を使ってみた

CHASUKEの記事をシェアする..

どうもCHASUKEです。

Alexaで使えるスマートホームスキル『Node-RED』の利用方法を書いていきます。

なぜ、このスキルが必要と言うと、Amazon EchoからIFTTT経由でNature Remoを使って家電を操作すると、最後に「をトリガー」というトリガーワードをつけなければなりません。

という訳で全く実用性がありません。

今回のAlexaスキル『Node-RED』はスマートホームスキルなため、「アレクサ、電気をつけて」などの自然体な呼び出しが可能となります!!

これを実現するための最大のハードルが、Node-REDをラズベリーパイにインストールして起動してやることです。もちろん、ラズパイの代わりにMacやWindowsパソコンでも利用できますが、実用を考えると常時起動させられるラズパイが一番理想ですね。

ラズパイ導入するならスターターキットがとても簡単って話
どうも、CHASUKEでございます。 G.W.も残り半分となってしまいましたね。 さて、G....

全3回に渡ってやり方を説明し、最終目標は、自然体な音声操作でNature Remoに家電を制御してもらったり、搭載された温度/湿度センサーの情報取得までやってみたいと思います。

1回目の今回は、Alexaに話しかけてNode-REDのフローが反応するまでをやっていきます^^

SPONSORED LINKS

Alexaスマートホームスキル『Node-RED』とは

Node-REDのAlexa専用ノードを呼び出すためのスキルです。

そもそもNode-REDとは、

プログラム言語「Node.js」で開発されたフローベースのプログラミング環境であり、「ノード」と呼ばれる組み合わせ可能なブロックをパレットに配置/接続して、フロー定義することで処理を実行できます。フロー定義はブラウザ上の GUI で手軽に行うことができます。

わかりやすくイメージするために、実際にサンプルで作成したフローがこちら。

矢印のボタンを押すことで処理を実行されます^^

上の例だとボタンを押すことでフローを実行しましたが、Alexaに話しかけて処理が実行できたら面白いですよね。

これを可能にするのがAlexa『Node-REDスキル』です。

これを作っていきます。

「Node-RED」スキルを使うための準備

Node-REDを利用するためには、MacやWindows、またはラズパイにNode-REDをインストールして利用します。

これらはGoogle検索にて「Node-RED インストール ラズパイ」などと検索すると山のように情報が得られます。

例えば、Node-RED日本ユーザー会のドキュメントがこちら。

https://nodered.jp/docs/getting-started/installation

Node-REDでフローを起動してみる

僕の場合、ラズパイにインストールしました。

インストールが完了したら、以下のコマンドでNode-REDを起動させます。

$ node-red

こんな感じで起動します。

続いて、上の赤枠にあるURLにアクセスします。この「127.0.0.1」は自分自身を指す特別なIPアドレスですので、Node-REDをインストールした端末のIPアドレスに変換してブラウザに入力します。

▼すると、フロー定義するためのパレットが表示されます

では、簡単なフローを作成してみます。

左側の一覧からノードをドラッグ&ドロップで配置して、線をビヨーンと伸ばして、別のノードに接続します。

injectノード(左)とdebugノード(右)をくっつけて、簡単なフローを作成。作成後は、忘れずにデプロイを押すように。これをしないと反映されません。

デプロイするとtimestampと記載されたinjectノードのボタンが有効化されます。ボタンから処理を起動するとデバッグエリアにdebugノードの内容が出力されます

timestampと記載されたinjectノードから処理を実行し、デバッグエリアに「1517835025221」と表示されればOKです。

ちなみに、この数字はUNIXタイムスタンプといって、1970年1月1日からの秒数になります。

Alexa Skillノードを追加して実行してみた

ここからがメインイベントですね。

やることは3つなので、少し忙しくなります。

  1. Node-RED Alexa Home Skill Bridge に登録
  2. Alexaスキル「Node-RED」を有効化
  3. Node-REDにAlexaノードを追加

Node-RED Alexa Home Skill Bridge に登録

これがAlexa(Amazon Echo)とNode-RED(ローカル環境にインストール)を連携してくれるブリッジとなります。

登録サイトはこちら

▼ここにアクセスして「Register」を選択します。

登録したら、Loginしましょう。

▼Devicesタブから新しいデバイスを登録します。

ここで登録するNameがAlexaにお願いするときの呼び出し名になります。アクションとしてはOn/Offをチェックしときましょう。

こうしておくと、後々、「電気をオンにして/オフにして」という音声操作ができるようになります。

Alexaスキル「Node-RED」を有効化

ここはAlexaアプリを使ってスキルを有効化すればOKです。

先ほどブリッジ登録したときのアカウントでログインします。

これで「電気」というデバイスが作成できました。Alexaアプリでデバイスの検出をするとスマートホーム内のデバイスに新たに追加されます。

Node-REDにAlexaノードを追加

Alexaスキルから呼び出したときのノードを追加します。

▼メニューを開き、パレットの管理を選択します。

※もしも、「パレットの管理」が表示されない場合、Node-REDのアップデートが必要となります。以下のコマンドを実行してください。

$ update-nodejs-and-nodered

▼[ノードを追加]から「alexa」とかで検索すると出てきます。

node-red-contrib-alexa-home-skill」これをノードを追加します。

追加すると、左側の一覧に「alexa」が登場します!!

このノードをダブルクリックして、先ほどのアカウントでログインします。

ログインして、登録したDeviceを選びます。

完了して、「デプロイ」をするとalexa homeノードの下が緑色でconnectとなればAlexaから呼び出す準備OKということです。

「アレクサ、電気(Device名)をつけて」

「はい」

▼Alexaに話かけたことで処理が実行されました。

デバッグエリアに「true」と出力されていればOKです。

これでAlexaスマートホームスキル「Node-RED」を使って処理を実行することに成功しました!!

最後に

Alexaスマートホームスキル『Node-RED』を使えば、割と自由な仕組みを作ることができます。プログラミングも視覚的なので手軽で簡単です^^

次回は、最近APIが公開された学習リモコン「Nature Remo」のノードを追加して家電を制御してみます!!

Node-REDで『Nature Remo』ノードを使う方法
どうも、CHASUKEです。 Node-REDでNature Remoを使ってみました!! ...

それではまた。