Amazon Echo + rasberry pi + Nature Remoで家電操作
前回電気を良い感じに点灯するscriptを書いたので、これをraspberry-piから起動する設定を実施。
以下作業メモ
1. Node-RED Alexa Home Skill Bridgeの登録
Node-RED Alexa Home Skill Bridgeにアクセスし、Registerのリンクをクリックする
下記画面の項目を入力し、「Register」ボタンをクリック https://alexa-node-red.bm.hardill.me.uk/
「Device」→「Add Device」ボタンをクリック
デバイスを登録。
とりあえずは電源のON/OFFを実行したいので以下の設定
Node-RED Alexa Home Skill Bridgeの設定は以上。
2. AlexaスキルにNode-RED追加
iphoneのAlexaアプリより以下の手順を実行
* スキルで「Node-RED」検索
* 「有効にする」ボタンをクリック
* 1で作成したアカウント・パスワードを入力し「Authorize」ボタンを押す。
* 正常にリンクされました のメッセージを確認
* 「端末の検出」ボタンをクリック
* 1で作成した「Light」というデバイスが存在することを確認
以上でNode-Redスキルの設定は完了
3. raspberry-piにNode-Redをインストール
インストール方法はこのRunning on Raspberry Piを参考に実施。
何もしない状態でも確かにNode-Redは入っている模様
念の為Upgradingを実行
一般ユーザで下記コマンドを実行
$ update-nodejs-and-nodered
正常終了することドキドキ待つこと5分あまり、問題なく終了した模様
下記コマンドを実行し、Node-Red自動起動の設定を実施
$ sudo systemctl enable nodered.service
下記コマンドでNode-Redの起動
$ node-red-start
ブラウザからhttp://raspberry-piのIP:1880に接続すると以下画面が起動
Node-RED Alexa Home Skill Bridgeと連携するためのプラグインをインストールする。
* 右上のメニューを開き、「パレットの管理」→「ノードの追加」を選択する。
* 「node-red-contrib-alexa-home-skill」で検索し、「ノードを追加」ボタンをクリックする
* 左下のパレットに「Alexa」が追加されたことを確認
以上で、raspberry-piへのNode-Redインストールは完了。
4. Node-Redでフローを作成する
パレット上で「Alexa Home」をドロップ
「Alexa Home」をダブルクリックすると編集メニューが出てくるので、Accountの鉛筆ボタンをクリック
ログイン画面が出てくるので、1で作ったアカウントでログイン
ログイン完了するとDevice欄に「Light」が表示される
パレットからアイテムをドラッグ&ドロップしてフローを作成する。
完成図は以下の通り
各ノードの設定は以下
まずはswitchノード
プロパティのmsg.commandにAlexaからON/OFFした場合の値を設定
詳細は公式Docを参照のこと
次はONノード
ONノードの場合はmsg.payloadにonを設定している。
この値が次のノードであるexecノードで実行されるshell scriptの引数になる。
(OFFノードは設定値がoffにしてあるだけなので、画面割愛)
最後のexecノードでは実行するshell scriptを指定する
ここのノードで実行されるscriptは以下
# pyenv実行 . ~/py36/bin/activate case $1 in on) python ~/py_project/nature_remo/light/light_on.py;; off) python ~/py_project/nature_remo/light/light_off.py;; esac
pyenvでpython実行環境を設定した後、引数に合わせたpython scriptを実行するのみ。
python scriptについては前回記事 で作成したものを呼んでいる。
これにてフロー作成は完了。
Node-Red画面右上の「デプロイ」ボタンをクリックして設定の反映を行う。
これにて全ての設定が完了。