foresta profonda

眠くない日はない。

Node-REDでPhilips Hueを操作する

Node-REDで組んだフロー上からPhilipsのHueを操作したくなったので試してみた。ノードは "node-red-contrib-node-hue" というのが公開されているのでコレを使う。

flows.nodered.org

インストールは以下のようにする。ローカルインストールの場合はグローバルインストールのオプション(-g)を消しておく。

$ npm install -g node-red-contrib-node-hue

インストール後、Node-REDを再起動すると、入力用のnode-hue-inと出力用のnode-hue-outが使えるようになる。パレット上に配置して設定画面を開くと、以下のようにHueのブリッジと操作したいランプを指定する。

f:id:rongon_xp:20170623222133p:plain

ブリッジのテキストボックス右にある編集アイコンを押すとIPアドレスAPIキー、あとポーリング時間を指定する画面になる。IPアドレスは自動で探してくれるようなので、ブリッジのボタンを押してAPIキーのテキストボックス横のボタンを押せばAPIキーが代入される。

次に元の画面に戻ってランプの設定を行う。ブリッジの設定直後だとランプが見つからないようだが、しばらく待つとブリッジに接続済みのランプを選べるようになるので、操作したいランプを選べば良い。

基本設定は以上。
ランプを消灯したい場合はfunctionノードで以下のようにすれば良い。

msg.payload =  {
    "on": false
};

return msg;

逆に点灯したいときは以下のようにする。

msg.payload =  {
    "on": true,
    "xy": [0.3393, 0.3316],
    "hsv": [201, 42, 100],
    "hex": "92D8FE",
    "color": "lightskyblue",
};

return msg;

これで他の機器と連携してHueを点けたり消したりできるようになった。