こういうフローで試しました
私も以前使っていましたが、node-red-contrib-alexa-home-skillの情報はすでに十分ありますが、node-red-contrib-alexa-localの日本語の情報が少ないのでもう少し調べてみました。英語は読めないので検索にヒットしても読み飛ばしています。
node-red-contrib-alexa-localノードとdebugノードを繋いだだけです。
alexaへの掛け声に応じたmsg.何某の値の変化
msg. | on | on_off_command | payload | change_direction | bri | bri_normalized |
---|---|---|---|---|---|---|
つけて | true | true | "on" | 0 | 100 | 1 |
けして | false | true | "off" | 0 | 0 | 0 |
明るくして | true | false | "on" | 1 | 74 | 0.74 |
暗くして | true | false | "on" | -1 | 24 | 0.24 |
大きくして | true | false | "on" | 1 | 74 | 0.74 |
小さくして | true | false | "on" | -1 | 24 | 0.24 |
高くして | true | false | "on" | 1 | 74 | 0.74 |
低くして | true | false | "on" | 0 | 39 | 0.39 |
1にして | true | false | "on" | 0 | 1 | 0.01 |
後日、実験したら”1にして”が通りました。
もう何が何だかよくわかりません。
msg.briの値が24だったり39だったりする仕組みがよくわかりません。
ここまで試してあることに気がつきます。
「alexa、仮想デバイスを1にして」
...
ん?
「alexa、仮想デバイスを1にして」
...
なんで?
「alexa、テレビを1にして」
はい
うん。だよね。
「alexa、テレビを小さくして」
テレビはその操作に対応していません
なんで?
「テレビ」と「仮想デバイス」の違いはなんだろう。
node-red-contrib-alexa-localノードには、名前をつけるくらいしか設定できるものはありません。
入力があったときに何かするチェックボックスはありましたが、今回は無視して良さそうです。
テレビも仮想デバイスもどちらとも同様です。
もしかして
後に続くノードで受け付ける掛け声を分けてる?と考え、switchノードでmsg.briを分岐させてみました。
「alexa、仮想デバイスを1にして」
...
変わらない。
と思ったら
「alexa、仮想デバイスを1%にして」
はい
msg. | on | on_off_command | payload | change_direction | bri | bri_normalized |
---|---|---|---|---|---|---|
1%にして | true | false | "on" | 0 | 1 | 0.01 |
50%にして | true | false | "on" | 0 | 50 | 0.5 |
%をつけたら認識してくれました。
謎が多い
今回の実験で新しくわかったことは、「わからないことがある」ということでした。
こちらの方もできない掛け声があったとのことですので、alexaがデバイス名をふんわり認識し、それに応じた掛け声をいい感じに解釈してくれることの弊害かと考えます。多分。
node-red-contrib-alexa-localノードはデバイス名を設定する以外に何もできないし、alexaからのコマンドを受け付けるだけなので、そういうことなのでしょう。
テレビが大きくしてを受け付けるのに、小さくしてが受け付けられないのは納得できませんけども。
同じ呼びかけ方で有効なデバイスとそうでないデバイスがある
alexaが判定している?node-red-contrib-alexa-localノードは仮想的にPhilips Hueをエミュレートしているだけならそうかも。
できることとできないこと
過去、node-red-contrib-alexa-localはオンオフしかできない頃があったのでしょうか。そう書いてた記事を以前に読んだ記憶がありますが、少なくとも体感上20180802現在は同様のことができるようです。
node-red-contrib-alexa-localノードができないことは、現在値の取得、色、色温度の変更くらいかと思います。
それよりも問題なのはEcho Dotでしかデバイスを認識できないことかと。
結果
alexaの気分次第。
Amazon Echoで遊ぼう
前提環境
大凡1.5hで構築するraspberry pi + node-red + samba
Amazon Echoから家電を制御シリーズ
Amazon Echoから家電を制御 0 ~RMmini3 + python-broadlinkで学習~
Amazon Echoから家電を制御 1 ~node-red-contrib-alexa-local~
Amazon Echoから家電を制御 2 ~テレビを我が手中に収めてやった 基本操作編~
Amazon Echoから家電を制御 3 ~テレビを我が手中に収めてやった ch操作編~
node-red-dashboardでwebリモコンを作ってみた