そこらへんのパパの独り言

そこらへんにいるパパの独り言をツラツラと。 子供とガジェット関連でいくよ

【IoT】7.Node-REDの動作をいろいろと調べてみる(ON/OFF、%)

echo dotが届いてすっかり満足したら更新頻度がぐっと落ちてしまいましたが、
まだまだいじるところがありそうなので、少しずつ進めて行こうと思う。

1.準備

まず、おさらいとして必要な準備を確認。
 A.Raspberry PiでNode-REDを起動する
 B.Raspberry PiのNode-REDをブラウザで開く(例:http://192.168.XX.XXX:1880
 C.Node-RED Alexa Home Skill Bridgeを開く
 E.https://alexa.amazon.co.jpを開く

2.Node-RED Alexa Home Skill Bridgeで設定できること

 Node-RED Alexa Home Skill Bridge
を見ると、下記のようにいろいろなactionが設定できるようになっている。

f:id:sokoranopapa:20180113231535p:plain

これ1つずつが何かしらの音声コマンドに対応しているはずなのだが、
どんなコマンドをいれたらどんな風に動くのかわからない。

英語サイトを見に行けば書いてありそうだけど、読むのも難しいので体当たりでできることを確認してみる。

3.体当たりの準備

まず、Node-RED Alexa Home Skill Bridge を開いて、「テスト」というデバイスを作成する。

その際、まずは下記のように
・ON/OFF
・%/+%/-%
の3種類を有効かする。

f:id:sokoranopapa:20180113232622p:plain


次に、https://alexa.amazon.co.jpで、今作成した「テスト」をデバイスとして認識させる。

f:id:sokoranopapa:20180113232925p:plain


最後にnode-redを開いて、下記のように新しいフローを作成する。
f:id:sokoranopapa:20180113233313p:plain
ここでのポイントは、「debug」を2つつないで、「command」と「payload」をみえるようにすること。


なお、配置した時点ではpayloadになっていると思うので、「対象」のところを書き換えてあげる。
f:id:sokoranopapa:20180113233518p:plain
node-redはいじったら「デプロイ」するのを忘れないように。
これで一応準備は完了。
どのようなコマンドでどのような動作をしているのかを調べていく。

4.ON/OFFに対応するコマンド

まずわかりやすいところから。
【ON】
音声入力:「オンにして」「つけて」「起動して」
出力(command):TurnOnRequest
出力(payload):true

f:id:sokoranopapa:20180114001908p:plain

【OFF】
音声入力:「オフにして」「消して」「終了して」
出力(command):TurnOffRequest
出力(payload):false
f:id:sokoranopapa:20180114002131p:plain

上記の通りとなるため、Switchノードを「command」で切り替えたい場合は下記となる。
f:id:sokoranopapa:20180114232653p:plain

「payload」で切り替える場合は下記3,4のようにすること。
1,2のように文字列で「true」「false」を入れても反応しない。
f:id:sokoranopapa:20180115001035p:plain

ON/OFFについては、比較的わかりやすい。

5.% +% -% に対応するコマンド

ちょっと説明しづらいのですが、つづいて%たち。
%については、数値指定ができるので応用が広がりそう。

【%】
音声入力:「○%にして」「○にして」
 ※下記出力は「5%にして」と入力した場合
出力(command):SetPercentageRequest
出力(payload):5

f:id:sokoranopapa:20180114235232p:plain

【+%】
音声入力:「○%増やして」「明るくして」
 ※下記出力は「5%増やして」と入力した場合
出力(command):IncrementPercentageRequest
出力(payload):5
f:id:sokoranopapa:20180114235641p:plain


【-%】
音声入力:「○%減らして」「暗くして」
 ※下記出力は「5%減らして」と入力した場合
出力(command):DecrementPercentageRequest
出力(payload):-5

f:id:sokoranopapa:20180114235818p:plain


なお、数値を指定せず「明るくして」「暗くして」と音声入力した場合は、「payload」の数値が±25で出力される。

音声入力:「明るくして」
出力(command):IncrementPercentageRequest
出力(payload):25

f:id:sokoranopapa:20180115000136p:plain


上記の通りとなるため、Switchノードを「command」で切り替えたい場合は下記となる。
f:id:sokoranopapa:20180115003046p:plain


「payload」で切り替える場合は下記のとおり。
「明るくして」「暗くして」の場合は、1,2のように数値で「25」「-25」を入れる。
「5%明るくして」「5%暗くして」のように数値を指定した場合は、その数値を入れる。

f:id:sokoranopapa:20180115002706p:plain

 

「payload」を利用した場合、音声入力時にswitchノードで数値指定による切り替えができるので、
必要な分だけの切り替えを用意すればテレビの切り替えなんかもできちゃいます。

例えば、テレビの操作を行うswitchノードにおいて、
1:電源オン
2:電源オフ
3:ボリュームアップ
4:ボリュームダウン
5:1chに切り替え
6:2chに切り替え
7:4chに切り替え
をしたい場合、

f:id:sokoranopapa:20180115003557p:plain

と設定して

f:id:sokoranopapa:20180115004733p:plain

とつなげばチャンネル切り替えもできるわけです。
でも、チャンネル分のswitchを用意する必要があるのでめんどくさい。

そんなときは「command」にして「function」ノードを挟んであげるとすっきりできます。
f:id:sokoranopapa:20180115004609p:plain
体当たりが終わったら、これのやり方をまとめようかと。

6.まとめ

一番多く使うであろう、ON/OFF、%はこんな感じだろうか。
もっと別の音声コマンドもあるかもしれないけど、見つけられなかったのでご存知のものがあれば、ぜひ教えていただければ幸いです。

次は「℃」と「Lock」に行こうかな。
「Query Set Point」とか「Set Color Temperature」とか体当たり候補すら思いつかないんだよなぁ…

今日はここまで。