Amazon Echo でラズパイのコマンドを実行

Amazon Echo でラズパイのコマンドを実行

声で部屋の電気のON/OFFをしたい(後編:音声認識しちゃうよ)

AmazonEchoからRaspberryPiのコマンドを実行する(node-red-contrib-amazon-echo)

を参考に

ubuntu のブラウザ
今回は firefox で
http://raspberrypi.local:1880/admin/
へアクセス

すでにログインしているなら数日間は
自動ログインできる

ハンバーガーメニューから
パレットの管理をクリック

ノードを追加 をクリック

node-red-contrib-amazon-echo
で検索

node-red-contrib-amazon-echo

ノードを追加をクリック

追加をクリック

しばらくすると追加されるので
閉じるをクリック

これで入力欄に
amazon echo hub
amazon echo device
が追加される

amazon echo hub をドラッグ&ドロップ

ダブルクリックし
編集画面をだす

Port を 8111 にして
完了をクリック

次に
Amazon Echo Device をドラッグ&ドロップし
灰色の○をクリックして
Amazon Echo Hub とワイヤーをつなげる

Amazon Echo Device をダブルクリックし
設定画面で
Name に任意の名前を入力

今回は テスト として完了をクリック

これでデブロイをクリック

次に
https://alexa.amazon.co.jp/
へアクセスし

スマートホーム > デバイス > 検出
としたが
なぜか追加されない

とりあえず後にして
Node-RED のフローを作成

http://raspberrypi.local:1880/admin/
へアクセス

debug をドラッグ&ドロップすると
msg.payload となるので

これを
テスト
とワイヤーでつなぐ

なお
つなげるところを間違えたら
ワイヤーをクリックし
delete キーで消すことができる

今回はテストと
Amazon Echo Hub をつなげるときに
ワイヤーを間違えて設定したので
これを修正した

つなげることができたら
デブロイをクリック

次に
msg.payload をクリックし
デバッグアイコンをクリック

しかし反応がないため

sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8111

で設定

iptables コマンドについては
iptables – システム管理コマンドの説明 – Linux コマンド集 一覧表

を参考に
ーI オプションでルール追加
–dport は送信先ポート設定
今回は80ポートを送信先にしている
-j で行動の設定
ACCEPTなのでパケットを通している

-A はルールの追加
PREROUTING は
送信先IPをマシン自身のIPへ変換

sudo apt-get install iptables-persistent

でインストール

現在のIpv4ルールを保存しますか?
現在のIpv6ルールを保存しますか?
となるので
はい
を選択

これで

sudo reboot

で再起動後

再度
デバイスを検出すると
Royal Philips Electronics スマートデバイス
として認識された

これで
Amazon Echo に
アレクサ テスト オン
アレクサ テスト つけて
と言っても動作しない

Android の Alexa アプリで見ると
照明として認識されているので

アレクサ 照明 オン
アレクサ 照明 オフ
とすると反応した

これで反応するようにはなったので
次に
Node-RED でのラズパイコマンドを実行

機能のところにある
exec をドラッグ&ドロップ

テストから
exec までをワイヤーでつなぐ

execをダブルクリックし
コマンドに
sh /home/pi/test.sh
として
完了をクリック

デブロイをクリック

次にラズパイで

vim test.sh

でファイルを作成し

if [ $1 = "on" ]
then
    echo "ON" >> /tmp/test.txt
elif [ $1 = "off" ]
then
    echo "OFF" >> /tmp/test.txt
fi

として保存

これで
アレクサ 照明 つけて
とすると
/tmp/test.txt

ON
と書き込まれる

確認したいのなら

cat /tmp/test.txt

とすればファイルの中身を見ることができる

なお
Alexa アプリで
文字化けしていたデバイス名を
テスト
と変更すれば
アレクサ テスト つけて
でも反応するようになった

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です