概要
Alexaとラズパイを連携してラズパイ内のスクリプトを実行する方法を紹介します。
これを活用することで、Alexaに呼びかけて、ラズパイに接続した赤外線LEDを動作させて照明のON/OFFをしたり、PCをWOL(Wake ON Lan)で起動させたりすることができます。
(他にも色々スクリプトで実行できることならアイデア次第で色々できると思います)
仕組み
Node-RED Alexa Home Skill Bridge でデバイスの登録を行い、
RaspberryPi上にインストールした Node-RED に紐付けし、コマンドを実行させる
導入
ラズパイにNode-REDをインストール
## Node-REDのインストール
$ bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
## サービスの自動起動設定
$ sudo systemctl enable nodered.service
Node-RED Alexa Home Skill Bridgeの設定
アカウントの作成
からアカウントを作成を行う。
デバイスの登録
Add Device
からName、Description、スイッチの種別を選択する。
Node-REDの設定
node-redの起動
ラズパイでnode-redを起動しておく
$ node-red-start
起動後、ブラウザで http://xxx.xxx.xxx.xxx:1880/ へアクセス(xxx.xxx.xxx.xxxはラズパイのIPアドレス)
各動作ノードの追加
画面が開けたら右上ハンバーガーメニューからパレットの管理を選択
ノードを追加
タブでnode-red-contrib-alexa-home-skill
を検索し、ノードを追加ボタンをクリック
起点として alexa-home
それを受けて Switch
分岐先に exec
終点に debug
のノードを配置する(下図は完成形の図)
akexa-homeノードの設定
alexa-home
のノードをクリックすると設定画面が開くので、Account:新規にalexa-home-conf
を追加を選択し、鉛筆アイコンをクリック→Node-RED Alexa Home Bridge で登録したアカウント情報を入力すると、Deviceの欄に登録したデバイスが表示されるので選択する
switchノードの設定
switch
のノードをクリックすると分岐条件を追加できるので追加する(スイッチ系の場合は「つけて!オン!」の場合 is true
、「消して!オフ!」の場合is false
となる)
is true
やis false
の先にexecのノードを配置する
execノードの設定
exec
コマンドをクリックすると実行コマンドを割り当てられるので、ラズパイ上でshellを記述して、パスを指定する
Alexaに Node-RED のスキルインストール
AmazonAlexaアプリもしくはhttps://alexa.amazon.co.jp からNode-REDのスキルを検索し、インストールする
有効にしたときにログイン情報が聞かれるので、Node-RED Alexa Home Skill Bridgeで登録したユーザ情報を入力する
動作確認
ここまでの設定でNode-RED Alexa Home Skill Bridgeで登録したデバイス名 + 「つけて!オン!」のようにAlexaに呼びかければラズパイでコマンドが実行されるようになります。