13
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Node-RED Alexa Home Skill Bridgeを設定する[On Onion Omega2+]

Last updated at Posted at 2018-07-02

image.png
前回、node-red-contrib-alexa-home-skill のインストールまで完了しました。
今回は、Node-RED Alexa Home Skill Bridge の設定を行い、Node-Red に Alexa ノードを登録するところまで、やってみたいと思います。

やることは、以下の4つです。
尚、赤外線リモコンを実際操作する部分は、次のフェーズでやる予定です。

  1. Node-RED Alexa Home Skill Bridgeでアカウントを作成する。
  2. 制御するデバイスを作成する。
  3. Alexaスキル「Node-Red」を追加し、アカウントをリンクする。
  4. Node-Red でフローを作成する。

#0. 前提条件

  • Onion Omega2 Plus
    • BusyBox v1.26.2
    • Ω-ware: 0.1.10 b160
    • Linux 4.4.46 mipsel LE
  • 2GB Micro-SD Card
    • パーティション2分割
      • 512MB=スワップ、残り=システム領域
  • Omega2拡張ドック
  • Node.js version: v4.3.1
  • Node-RED version: v0.18.4
  • node-red-contrib-alexa-home-skillインストール済み

#1. アカウントの作成
Alexa(Amazon Echo Dot)と Node-Red にインストールした node-red-contrib-alexa-home-skill を連携させるには、Node-RED Alexa Home Skill Bridgeにアカウントを作成する必要があります。

アカウント作成はこちらでできます。
image.png

#2. 制御デバイスの追加
アカウントを登録したら、ログインします。
[Devices]タブから、制御するデバイスを登録します。

image.png

とりあえず、以下で追加してみました。

項目
Name リビングライト
Description リビングのライト
Actions On, Off, +%, -%をチェック
Application Type LIGHTをチェック

image.png

「リビングライト」が登録されました。
image.png

#3. Alexaスキル「Node-Red」の追加とアカウントリンク
スマホやタブレットの Amazon AlexaアプリでAlexaスキル「Node-Red」スキルを追加・有効化します。
※PCからも「https://alexa.amazon.co.jp」でできると思います。

image.png

有効化の際に、Node-RED Alexa Home Skill Bridgeで作成したアカウントとのリンクを要求されますので、ユーザ名とパスワードを入力して、認証します。

image.png

認証が終わると、デバイスの検出を促す画面がでるので、デバイスの検出を行います。
検出ができたら、以下のようにスマートホーム画面に、Node-RED Alexa Home Skill Bridge で作成した「リビングライト」が表示されます。
image.png

実は、ここにたどり着くのに2つ問題がありました。
1つ目は、アカウントリンクできない問題でした。
ユーザとパスワード入力後、アカウントリンクが完了せず、Alexaスキルの「Node-Red」が有効化されない状態でした。私がアカウント作成したのは、半年くらい前で、Raspberry-Piで試行していた際に作成してから、使っていない期間が結構ありました。何が原因かわかりませんでしたが、新たなアカウントを作成して、そのアカウントでリンクをかけたら上手くいきました。

2つ目は、アカウントの問題解決後、今度は、デバイスの検出で何も検出されないという問題が発生しました。何度やってもダメで、最後に、Node-RED Alexa Home Skill Bridge でのデバイス登録を、英語の名称(Name)で登録してみました(Descriptionも適当に英語で入力、日本語のデバイスは残したまま)。なんと、これで解決できました。
尚、その後は、日本語のみのデバイス登録も問題ありません。こちらも原因不明です。

#4. Node-Red フロー作成と接続確認
ノードの一覧でフローを作成して、Alexaとの接続確認を行います。

##フロー作成
まず、ノード一覧から、「alexa home」と「debug」をフローペインにドラッグして、2つを接続します。

image.png

image.png

image.png

「Alexa Home」をダブルクリックすると、「Account」、「Device」を設定する画面が表示されるので、「Account」の設定に Node-RED Alexa Home Skill Bridge のアカウント情報を入力します。

image.png

入力後、「Device」部分の更新ボタンを押すと、デバイスが選択可能になりますので、デバイス「リビングライト」を選択し、「完了」ボタンで設定画面を閉じます。

image.png

これで、接続確認用のフローが完成しました。
image.png

このフローを「デプロイ」ボタンでデプロイします。
image.png

デプロイ時にエラーメッセージが出力される場合がありますが、無視しても大丈夫っぽいです(タイミングの問題?)。

Node-RED-Log
Jul 21:40:02 - [error] [alexa-home-conf:82372a7e.ad4a18] Error: connect ECONNREFUSED 34.240.81.189:8883

##接続確認
Alexaに問いかけて、実際に接続できているかを確認します。

以下の内容をAlexaに問いかけてみます。
自分:「Alexa、リビングライトを付けて」
Alexa:「はい」
自分:「Alexa、リビングライトを消して」
Alexa:「はい」
自分:「Alexa、リビングライトを暗くして」
Alexa:「はい」
自分:「Alexa、リビングライトを明るくして」
Alexa:「はい」

Node-RED のデバッグペインは、以下のように表示されます。
image.png

Node-REDのログファイルにも、同じ内容が出力されます。

  • 「Alexa、リビングライトを付けて」
Node-RED-Log
2 Jul 21:43:35 - [info] [debug:a60137fd.c462a8] true
  • 「Alexa、リビングライトを消して」
Node-RED-Log
2 Jul 21:43:42 - [info] [debug:a60137fd.c462a8] false
  • 「Alexa、リビングライトを暗くして」
Node-RED-Log
2 Jul 21:44:25 - [info] [debug:a60137fd.c462a8] -25
  • 「Alexa、リビングライトを明るくして」
Node-RED-Log
2 Jul 21:44:31 - [info] [debug:a60137fd.c462a8] 25

AlexaとNode-REDとの接続確認まで完了しました。
次は、フローに分岐を設けて、赤外線学習リモコンとの接続を行おうと思います。

以上

13
17
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?